module AnnularMain implicit none public contains ! subroutine Annular_Setup() ! ! use CSimulationVariables ! implicit none ! call OnSimulationInitialization%Add(Annular_Init) ! call OnSimulationStop%Add(Annular_Init) ! call OnAnnularStep%Add(Annular_Step) ! call OnAnnularOutput%Add(Annular_Output) ! call OnAnnularMain%Add(AnnularMainBody) ! end subroutine ! subroutine Annular_Init ! implicit none ! end subroutine Annular_Init subroutine Annular_Step use VARIABLES implicit none if (Annular%finished_Annular/=0) then call ANNULAR_SUB1 if (Annular%AnnularIsOpening .or. Annular%AnnularIsClosing .or. RAM(1)%Bottles_Charged_MalfActive) then if(Annular%finished_Annular==0) then call ANNULAR_SUB2 !only body of loop2 endif endif else call ANNULAR_SUB2 endif end subroutine Annular_Step ! subroutine Annular_Output ! implicit none ! end subroutine Annular_Output ! subroutine AnnularMainBody ! USE ifport ! USE ifmt ! ! use CSimulationVariables ! ! USE BOP ! implicit none ! INTEGER :: AnnularDuration ! integer,dimension(8) :: AnnularStartTime , AnnularEndTime ! ! CALL BOP_StartUp() ! loop1: DO ! CALL DATE_AND_TIME(values=AnnularStartTime) ! CALL ANNULAR ! CALL DATE_AND_TIME(values=AnnularEndTime) ! AnnularDuration = 3600000 * (AnnularEndTime(5) - AnnularStartTime(5)) + 60000 * (AnnularEndTime(6) - AnnularStartTime(6)) + 1000 * (AnnularEndTime(7) - AnnularStartTime(7)) + (AnnularEndTime(8) - AnnularStartTime(8)) ! if (AnnularDuration < 100) then ! call sleepqq(100 - AnnularDuration) ! ELSE ! WRITE (*,*) 'Annular BOP run duration exceeded 100 ms and =', AnnularDuration ! end if ! IF (IsStopped==.true.) THEN ! EXIT loop1 ! ENDIF ! ENDDO loop1 ! ! CALL DEALLOCATE_ARRAYS() ! end subroutine AnnularMainBody end module AnnularMain