module TopDriveMain use CLog4 implicit none public contains subroutine TopDrive_Init() !use CSimulationVariables !implicit none !call OnSimulationStop%Add(TopDrive_Stop) !call OnTopDriveStart%Add(TopDrive_Start) !call OnTopDriveStep%Add(TopDrive_Step) !call OnTopDriveMain%Add(TopDriveMainBody) Call TopDrive_StartUp end subroutine subroutine TopDrive_Stop implicit none call Log_4('TopDrive_Stop') ! this is a comment end subroutine TopDrive_Stop subroutine TopDrive_Start implicit none call Log_4('TopDrive_Start') end subroutine TopDrive_Start subroutine TopDrive_Step implicit none call Log_4('TopDrive_Step') Call Rtable_MainSolver end subroutine TopDrive_Step subroutine TopDriveMainBody use CSimulationVariables use TopDrive_VARIABLES use CDrillWatchVariables use CWarningsVariables use CSounds use CTopDrivePanelVariables implicit none integer,dimension(8) :: TDS_START_TIME, TDS_END_TIME INTEGER :: TDS_SolDuration call Log_4('TopDriveMainBody') Call TopDrive_StartUp loopTopDrivestart : do CALL DATE_AND_TIME(values=TDS_START_TIME) Call TopDrive_MainSolver if (IsStopped == .true.) then exit loopTopDrivestart end if CALL DATE_AND_TIME(values=TDS_END_TIME) TDS_SolDuration = 100-(TDS_END_TIME(5)*3600000+TDS_END_TIME(6)*60000+TDS_END_TIME(7)*1000+TDS_END_TIME(8)-TDS_START_TIME(5)*3600000-TDS_START_TIME(6)*60000-TDS_START_TIME(7)*1000-TDS_START_TIME(8)) !print*, 'TDStime=', TDS_SolDuration if(TDS_SolDuration > 0.0) then CALL sleepqq(TDS_SolDuration) end if end do loopTopDrivestart end subroutine TopDriveMainBody end module TopDriveMain