module PipeRams2Main implicit none public contains subroutine PipeRams2_Setup() use CSimulationVariables implicit none call OnSimulationInitialization%Add(PipeRams2_Init) call OnSimulationStop%Add(PipeRams2_Init) call OnPipeRams2Step%Add(PipeRams2_Step) call OnPipeRams2Output%Add(PipeRams2_Output) call OnPipeRams2Main%Add(PipeRams2MainBody) end subroutine subroutine PipeRams2_Init implicit none end subroutine PipeRams2_Init subroutine PipeRams2_Step CALL PIPE_RAMS2 end subroutine PipeRams2_Step subroutine PipeRams2_Output implicit none end subroutine PipeRams2_Output subroutine PipeRams2MainBody USE ifport USE ifmt USE CSimulationVariables ! USE BOP implicit none INTEGER :: PipeRam2Duration integer,dimension(8) :: PipeRam2StartTime , PipeRam2EndTime ! CALL BOP_StartUp() loop1: DO CALL DATE_AND_TIME(values=PipeRam2StartTime) CALL PIPE_RAMS2 CALL DATE_AND_TIME(values=PipeRam2EndTime) PipeRam2Duration = 3600000 * (PipeRam2EndTime(5) - PipeRam2StartTime(5)) + 60000 * (PipeRam2EndTime(6) - PipeRam2StartTime(6)) + 1000 * (PipeRam2EndTime(7) - PipeRam2StartTime(7)) + (PipeRam2EndTime(8) - PipeRam2StartTime(8)) if (PipeRam2Duration < 100) then call sleepqq(100 - PipeRam2Duration) ELSE WRITE (*,*) 'PipeRam2 BOP run duration exceeded 100 ms and =', PipeRam2Duration end if IF (IsStopped==.true.) THEN EXIT loop1 ENDIF ENDDO loop1 ! CALL DEALLOCATE_ARRAYS() end subroutine PipeRams2MainBody end module PipeRams2Main