module CIrSafetyValvePermission use COperationScenariosVariables implicit none contains subroutine Evaluate_IrSafetyValvePermission() use TD_DrillStemComponents use CStudentStationVariables, only: FillupHeadInstallation implicit none if (Hoisting%DriveType == TopDrive_DriveType) then #ifdef OST print*, 'Evaluate_IrSafetyValvePermission=TopDrive' #endif !TOPDRIVE-CODE=55 if (GetRotaryRpm() == 0.0d0 .and.& (Get_NearFloorConnection() >= 3.0 .and. Get_NearFloorConnection() <= 10.0) .and.& Get_JointConnectionPossible() == .false. .and.& Get_TdsConnectionModes() == TDS_CONNECTION_NOTHING .and.& FillupHeadInstallation == .false.) then call Set_IrSafetyValvePermission(.true.) return end if endif if (Hoisting%DriveType == Kelly_DriveType) then #ifdef OST print*, 'Evaluate_IrSafetyValvePermission=Kelly' #endif !OPERATION-CODE=57 if (Get_OperationCondition() == OPERATION_TRIP .and.& GetRotaryRpm() == 0.0d0 .and.& !(Get_ElevatorConnection() == ELEVATOR_CONNECTION_NOTHING .or. Get_ElevatorConnection() == ELEVATOR_LATCH_STRING) .and.& !Get_NearFloorConnection() >= 3.0 .and. Get_NearFloorConnection() <= 10.0 .and.& TD_TopJointHeight >= 3.0 .and. TD_TopJointHeight <= 10.0 .and.& !Get_SafetyValveHeight() >= 22.0 .and. Get_SafetyValveHeight() <= 35.0 .and.& Get_JointConnectionPossible() == .false. .and.& Get_FillupHead() == FILLUP_HEAD_REMOVE .and.& Get_Swing() == SWING_WELL_END) then call Set_IrSafetyValvePermission(.true.) return end if call Set_IrSafetyValvePermission(.false.) endif end subroutine subroutine Subscribe_IrSafetyValvePermission() implicit none ! imp me... end subroutine end module CIrSafetyValvePermission