module RotaryTableMain implicit none public contains subroutine RotaryTable_Setup() !use CSimulationVariables !call OnSimulationInitialization%Add(RotaryTable_Init) !call OnSimulationStop%Add(RotaryTable_Init) !call OnRotaryTableStep%Add(RotaryTable_Step) !call OnRotaryTableOutput%Add(RotaryTable_Output) !call OnRotaryTableMain%Add(RotaryTableMainBody) end subroutine subroutine RotaryTable_Init Call RTable_StartUp end subroutine RotaryTable_Init subroutine RotaryTable_Step implicit none Call Rtable_MainSolver end subroutine RotaryTable_Step subroutine RotaryTable_Output implicit none end subroutine RotaryTable_Output subroutine RotaryTableMainBody use CDataDisplayConsoleVariables use CDrillingConsoleVariables use CSimulationVariables use RTable_VARIABLES use CDrillWatchVariables use CWarningsVariables use CSounds implicit none integer,dimension(8) :: RT_START_TIME, RT_END_TIME INTEGER :: RT_SolDuration Call RTable_StartUp loopRtablestart : do CALL DATE_AND_TIME(values=RT_START_TIME) Call Rtable_MainSolver if (IsStopped == .true.) then exit loopRtablestart end if CALL DATE_AND_TIME(values=RT_END_TIME) RT_SolDuration = 100-(RT_END_TIME(5)*3600000+RT_END_TIME(6)*60000+RT_END_TIME(7)*1000+RT_END_TIME(8)-RT_START_TIME(5)*3600000-RT_START_TIME(6)*60000-RT_START_TIME(7)*1000-RT_START_TIME(8)) if(RT_SolDuration > 0.0) then CALL sleepqq(RT_SolDuration) end if end do loopRtablestart end subroutine RotaryTableMainBody end module RotaryTableMain