module KillLineMain implicit none public contains subroutine KillLine_Setup() use CSimulationVariables implicit none call OnSimulationInitialization%Add(KillLine_Init) call OnSimulationStop%Add(KillLine_Init) call OnKillLineStep%Add(KillLine_Step) call OnKillLineOutput%Add(KillLine_Output) call OnKillLineMain%Add(KillLineMainBody) end subroutine subroutine KillLine_Init implicit none end subroutine KillLine_Init subroutine KillLine_Step CALL KILL_LINE end subroutine KillLine_Step subroutine KillLine_Output implicit none end subroutine KillLine_Output subroutine KillLineMainBody USE ifport USE ifmt USE CSimulationVariables ! USE BOP implicit none INTEGER :: KillLineDuration integer,dimension(8) :: KillLineStartTime , KillLineEndTime ! CALL BOP_StartUp() loop1: DO CALL DATE_AND_TIME(values=KillLineStartTime) CALL KILL_LINE CALL DATE_AND_TIME(values=KillLineEndTime) KillLineDuration = 3600000 * (KillLineEndTime(5) - KillLineStartTime(5)) + 60000 * (KillLineEndTime(6) - KillLineStartTime(6)) + 1000 * (KillLineEndTime(7) - KillLineStartTime(7)) + (KillLineEndTime(8) - KillLineStartTime(8)) if (KillLineDuration < 100) then call sleepqq(100 - KillLineDuration) ELSE WRITE (*,*) 'KillLine BOP run duration exceeded 100 ms and =', KillLineDuration end if IF (IsStopped==.true.) THEN EXIT loop1 ENDIF ENDDO loop1 ! CALL DEALLOCATE_ARRAYS() end subroutine KillLineMainBody end module KillLineMain