module AnnularMain implicit none public contains subroutine Annular_Setup() use CSimulationVariables implicit none call OnSimulationInitialization%Add(Annular_Init) call OnSimulationStop%Add(Annular_Init) call OnAnnularStep%Add(Annular_Step) call OnAnnularOutput%Add(Annular_Output) call OnAnnularMain%Add(AnnularMainBody) end subroutine subroutine Annular_Init implicit none end subroutine Annular_Init subroutine Annular_Step CALL ANNULAR end subroutine Annular_Step subroutine Annular_Output implicit none end subroutine Annular_Output subroutine AnnularMainBody USE ifport USE ifmt USE CSimulationVariables ! USE BOP implicit none INTEGER :: AnnularDuration integer,dimension(8) :: AnnularStartTime , AnnularEndTime ! CALL BOP_StartUp() loop1: DO CALL DATE_AND_TIME(values=AnnularStartTime) CALL ANNULAR CALL DATE_AND_TIME(values=AnnularEndTime) AnnularDuration = 3600000 * (AnnularEndTime(5) - AnnularStartTime(5)) + 60000 * (AnnularEndTime(6) - AnnularStartTime(6)) + 1000 * (AnnularEndTime(7) - AnnularStartTime(7)) + (AnnularEndTime(8) - AnnularStartTime(8)) if (AnnularDuration < 100) then call sleepqq(100 - AnnularDuration) ELSE WRITE (*,*) 'Annular BOP run duration exceeded 100 ms and =', AnnularDuration end if IF (IsStopped==.true.) THEN EXIT loop1 ENDIF ENDDO loop1 ! CALL DEALLOCATE_ARRAYS() end subroutine AnnularMainBody end module AnnularMain