module BlindRamsMain implicit none public contains subroutine BlindRams_Setup() use CSimulationVariables implicit none call OnSimulationInitialization%Add(BlindRams_Init) call OnSimulationStop%Add(BlindRams_Init) call OnBlindRamsStep%Add(BlindRams_Step) call OnBlindRamsOutput%Add(BlindRams_Output) call OnBlindRamsMain%Add(BlindRamsMainBody) end subroutine subroutine BlindRams_Init implicit none end subroutine BlindRams_Init subroutine BlindRams_Step CALL SHEAR_RAMS end subroutine BlindRams_Step subroutine BlindRams_Output implicit none end subroutine BlindRams_Output subroutine BlindRamsMainBody USE ifport USE ifmt USE CSimulationVariables ! USE BOP implicit none INTEGER :: ShearRamDuration integer,dimension(8) :: ShearRamStartTime , ShearRamEndTime ! CALL BOP_StartUp() loop1: DO CALL DATE_AND_TIME(values=ShearRamStartTime) CALL SHEAR_RAMS CALL DATE_AND_TIME(values=ShearRamEndTime) ShearRamDuration = 3600000 * (ShearRamEndTime(5) - ShearRamStartTime(5)) + 60000 * (ShearRamEndTime(6) - ShearRamStartTime(6)) + 1000 * (ShearRamEndTime(7) - ShearRamStartTime(7)) + (ShearRamEndTime(8) - ShearRamStartTime(8)) if (ShearRamDuration < 100) then call sleepqq(100 - ShearRamDuration) ELSE WRITE (*,*) 'ShearRam BOP run duration exceeded 100 ms and =', ShearRamDuration end if IF (IsStopped==.true.) THEN EXIT loop1 ENDIF ENDDO loop1 end subroutine BlindRamsMainBody end module BlindRamsMain