module CGaugesProblemsVariables use CProblemDifinition implicit none public type :: GaugesProblemsType type(CProblem) :: WeightIndicator type(CProblem) :: RotaryRpm type(CProblem) :: RotaryTorque type(CProblem) :: StandPipePressure type(CProblem) :: CasingPressure type(CProblem) :: Pump1Strokes type(CProblem) :: Pump2Strokes type(CProblem) :: ReturnLineTemperature type(CProblem) :: TripTank type(CProblem) :: PitGainLoss type(CProblem) :: MudTankVolume type(CProblem) :: ReturnMudFlow type(CProblem) :: TorqueLimit type(CProblem) :: PowerLimit type(CProblem) :: AccumulatorPressure type(CProblem) :: ManifoldPressure type(CProblem) :: AnnularPressure type(CProblem) :: RigAirPressure type(CProblem) :: StandPipe1 type(CProblem) :: StandPipe2 type(CProblem) :: DrillPipePressure type(CProblem) :: ChokePosition type(CProblem) :: CasingPressure2 end type GaugesProblemsType type(GaugesProblemsType)::GaugesProblems ! procedure (ActionInteger), pointer :: WeightIndicatorPtr ! procedure (ActionInteger), pointer :: RotaryRpmPtr ! procedure (ActionInteger), pointer :: RotaryTorquePtr ! procedure (ActionInteger), pointer :: StandPipePressurePtr ! procedure (ActionInteger), pointer :: CasingPressurePtr ! procedure (ActionInteger), pointer :: Pump1StrokesPtr ! procedure (ActionInteger), pointer :: Pump2StrokesPtr ! procedure (ActionInteger), pointer :: ReturnLineTemperaturePtr ! procedure (ActionInteger), pointer :: TripTankPtr ! procedure (ActionInteger), pointer :: PitGainLossPtr ! procedure (ActionInteger), pointer :: MudTankVolumePtr ! procedure (ActionInteger), pointer :: ReturnMudFlowPtr ! procedure (ActionInteger), pointer :: TorqueLimitPtr ! procedure (ActionInteger), pointer :: PowerLimitPtr ! procedure (ActionInteger), pointer :: AccumulatorPressurePtr ! procedure (ActionInteger), pointer :: ManifoldPressurePtr ! procedure (ActionInteger), pointer :: AnnularPressurePtr ! procedure (ActionInteger), pointer :: RigAirPressurePtr ! procedure (ActionInteger), pointer :: StandPipe1Ptr ! procedure (ActionInteger), pointer :: StandPipe2Ptr ! procedure (ActionInteger), pointer :: DrillPipePressurePtr ! procedure (ActionInteger), pointer :: ChokePositionPtr ! procedure (ActionInteger), pointer :: CasingPressure2Ptr contains subroutine ProcessGaugesProblemsDueTime(time) implicit none integer :: time if(GaugesProblems%WeightIndicator%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%WeightIndicator, ChangeWeightIndicator, time) if(GaugesProblems%RotaryRpm%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%RotaryRpm, ChangeRotaryRpm, time) if(GaugesProblems%RotaryTorque%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%RotaryTorque, ChangeRotaryTorque, time) if(GaugesProblems%StandPipePressure%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%StandPipePressure, ChangeStandPipePressure, time) if(GaugesProblems%CasingPressure%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%CasingPressure, ChangeCasingPressure, time) if(GaugesProblems%Pump1Strokes%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%Pump1Strokes, ChangePump1Strokes, time) if(GaugesProblems%Pump2Strokes%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%Pump2Strokes, ChangePump2Strokes, time) if(GaugesProblems%ReturnLineTemperature%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%ReturnLineTemperature, ChangeReturnLineTemperature, time) if(GaugesProblems%TripTank%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%TripTank, ChangeTripTank, time) if(GaugesProblems%PitGainLoss%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%PitGainLoss, ChangePitGainLoss, time) if(GaugesProblems%MudTankVolume%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%MudTankVolume, ChangeMudTankVolume, time) if(GaugesProblems%ReturnMudFlow%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%ReturnMudFlow, ChangeReturnMudFlow, time) if(GaugesProblems%TorqueLimit%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%TorqueLimit, ChangeTorqueLimit, time) if(GaugesProblems%PowerLimit%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%PowerLimit, ChangePowerLimit, time) if(GaugesProblems%AccumulatorPressure%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%AccumulatorPressure, ChangeAccumulatorPressure, time) if(GaugesProblems%ManifoldPressure%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%ManifoldPressure, ChangeManifoldPressure, time) if(GaugesProblems%AnnularPressure%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%AnnularPressure, ChangeAnnularPressure, time) if(GaugesProblems%RigAirPressure%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%RigAirPressure, ChangeRigAirPressure, time) if(GaugesProblems%StandPipe1%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%StandPipe1, ChangeStandPipe1, time) if(GaugesProblems%StandPipe2%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%StandPipe2, ChangeStandPipe2, time) if(GaugesProblems%DrillPipePressure%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%DrillPipePressure, ChangeDrillPipePressure, time) if(GaugesProblems%ChokePosition%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%ChokePosition, ChangeChokePosition, time) if(GaugesProblems%CasingPressure2%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%CasingPressure2, ChangeCasingPressure2, time) end subroutine subroutine ProcessGaugesProblemsDuePumpStrokes(strokes) implicit none integer :: strokes if(GaugesProblems%WeightIndicator%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%WeightIndicator, ChangeWeightIndicator, strokes) if(GaugesProblems%RotaryRpm%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%RotaryRpm, ChangeRotaryRpm, strokes) if(GaugesProblems%RotaryTorque%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%RotaryTorque, ChangeRotaryTorque, strokes) if(GaugesProblems%StandPipePressure%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%StandPipePressure, ChangeStandPipePressure, strokes) if(GaugesProblems%CasingPressure%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%CasingPressure, ChangeCasingPressure, strokes) if(GaugesProblems%Pump1Strokes%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%Pump1Strokes, ChangePump1Strokes, strokes) if(GaugesProblems%Pump2Strokes%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%Pump2Strokes, ChangePump2Strokes, strokes) if(GaugesProblems%ReturnLineTemperature%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%ReturnLineTemperature, ChangeReturnLineTemperature, strokes) if(GaugesProblems%TripTank%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%TripTank, ChangeTripTank, strokes) if(GaugesProblems%PitGainLoss%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%PitGainLoss, ChangePitGainLoss, strokes) if(GaugesProblems%MudTankVolume%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%MudTankVolume, ChangeMudTankVolume, strokes) if(GaugesProblems%ReturnMudFlow%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%ReturnMudFlow, ChangeReturnMudFlow, strokes) if(GaugesProblems%TorqueLimit%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%TorqueLimit, ChangeTorqueLimit, strokes) if(GaugesProblems%PowerLimit%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%PowerLimit, ChangePowerLimit, strokes) if(GaugesProblems%AccumulatorPressure%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%AccumulatorPressure, ChangeAccumulatorPressure, strokes) if(GaugesProblems%ManifoldPressure%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%ManifoldPressure, ChangeManifoldPressure, strokes) if(GaugesProblems%AnnularPressure%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%AnnularPressure, ChangeAnnularPressure, strokes) if(GaugesProblems%RigAirPressure%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%RigAirPressure, ChangeRigAirPressure, strokes) if(GaugesProblems%StandPipe1%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%StandPipe1, ChangeStandPipe1, strokes) if(GaugesProblems%StandPipe2%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%StandPipe2, ChangeStandPipe2, strokes) if(GaugesProblems%DrillPipePressure%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%DrillPipePressure, ChangeDrillPipePressure, strokes) if(GaugesProblems%ChokePosition%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%ChokePosition, ChangeChokePosition, strokes) if(GaugesProblems%CasingPressure2%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%CasingPressure2, ChangeCasingPressure2, strokes) end subroutine subroutine ProcessGaugesProblemsDueVolumePumped(volume) implicit none real(8) :: volume if(GaugesProblems%WeightIndicator%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%WeightIndicator, ChangeWeightIndicator, volume) if(GaugesProblems%RotaryRpm%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%RotaryRpm, ChangeRotaryRpm, volume) if(GaugesProblems%RotaryTorque%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%RotaryTorque, ChangeRotaryTorque, volume) if(GaugesProblems%StandPipePressure%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%StandPipePressure, ChangeStandPipePressure, volume) if(GaugesProblems%CasingPressure%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%CasingPressure, ChangeCasingPressure, volume) if(GaugesProblems%Pump1Strokes%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%Pump1Strokes, ChangePump1Strokes, volume) if(GaugesProblems%Pump2Strokes%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%Pump2Strokes, ChangePump2Strokes, volume) if(GaugesProblems%ReturnLineTemperature%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%ReturnLineTemperature, ChangeReturnLineTemperature, volume) if(GaugesProblems%TripTank%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%TripTank, ChangeTripTank, volume) if(GaugesProblems%PitGainLoss%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%PitGainLoss, ChangePitGainLoss, volume) if(GaugesProblems%MudTankVolume%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%MudTankVolume, ChangeMudTankVolume, volume) if(GaugesProblems%ReturnMudFlow%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%ReturnMudFlow, ChangeReturnMudFlow, volume) if(GaugesProblems%TorqueLimit%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%TorqueLimit, ChangeTorqueLimit, volume) if(GaugesProblems%PowerLimit%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%PowerLimit, ChangePowerLimit, volume) if(GaugesProblems%AccumulatorPressure%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%AccumulatorPressure, ChangeAccumulatorPressure, volume) if(GaugesProblems%ManifoldPressure%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%ManifoldPressure, ChangeManifoldPressure, volume) if(GaugesProblems%AnnularPressure%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%AnnularPressure, ChangeAnnularPressure, volume) if(GaugesProblems%RigAirPressure%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%RigAirPressure, ChangeRigAirPressure, volume) if(GaugesProblems%StandPipe1%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%StandPipe1, ChangeStandPipe1, volume) if(GaugesProblems%StandPipe2%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%StandPipe2, ChangeStandPipe2, volume) if(GaugesProblems%DrillPipePressure%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%DrillPipePressure, ChangeDrillPipePressure, volume) if(GaugesProblems%ChokePosition%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%ChokePosition, ChangeChokePosition, volume) if(GaugesProblems%CasingPressure2%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%CasingPressure2, ChangeCasingPressure2, volume) end subroutine subroutine ProcessGaugesProblemsDueDistanceDrilled(distance) implicit none real(8) :: distance if(GaugesProblems%WeightIndicator%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%WeightIndicator, ChangeWeightIndicator, distance) if(GaugesProblems%RotaryRpm%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%RotaryRpm, ChangeRotaryRpm, distance) if(GaugesProblems%RotaryTorque%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%RotaryTorque, ChangeRotaryTorque, distance) if(GaugesProblems%StandPipePressure%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%StandPipePressure, ChangeStandPipePressure, distance) if(GaugesProblems%CasingPressure%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%CasingPressure, ChangeCasingPressure, distance) if(GaugesProblems%Pump1Strokes%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%Pump1Strokes, ChangePump1Strokes, distance) if(GaugesProblems%Pump2Strokes%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%Pump2Strokes, ChangePump2Strokes, distance) if(GaugesProblems%ReturnLineTemperature%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%ReturnLineTemperature, ChangeReturnLineTemperature, distance) if(GaugesProblems%TripTank%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%TripTank, ChangeTripTank, distance) if(GaugesProblems%PitGainLoss%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%PitGainLoss, ChangePitGainLoss, distance) if(GaugesProblems%MudTankVolume%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%MudTankVolume, ChangeMudTankVolume, distance) if(GaugesProblems%ReturnMudFlow%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%ReturnMudFlow, ChangeReturnMudFlow, distance) if(GaugesProblems%TorqueLimit%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%TorqueLimit, ChangeTorqueLimit, distance) if(GaugesProblems%PowerLimit%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%PowerLimit, ChangePowerLimit, distance) if(GaugesProblems%AccumulatorPressure%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%AccumulatorPressure, ChangeAccumulatorPressure, distance) if(GaugesProblems%ManifoldPressure%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%ManifoldPressure, ChangeManifoldPressure, distance) if(GaugesProblems%AnnularPressure%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%AnnularPressure, ChangeAnnularPressure, distance) if(GaugesProblems%RigAirPressure%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%RigAirPressure, ChangeRigAirPressure, distance) if(GaugesProblems%StandPipe1%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%StandPipe1, ChangeStandPipe1, distance) if(GaugesProblems%StandPipe2%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%StandPipe2, ChangeStandPipe2, distance) if(GaugesProblems%DrillPipePressure%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%DrillPipePressure, ChangeDrillPipePressure, distance) if(GaugesProblems%ChokePosition%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%ChokePosition, ChangeChokePosition, distance) if(GaugesProblems%CasingPressure2%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%CasingPressure2, ChangeCasingPressure2, distance) end subroutine subroutine ChangeWeightIndicator(status) use TD_GeneralData implicit none integer, intent (in) :: status ! if(associated(WeightIndicatorPtr)) call WeightIndicatorPtr(status) if(status == Clear_StatusType) TD_general%WeightIndicatorMalf = 0 if(status == Executed_StatusType) TD_general%WeightIndicatorMalf = 1 endsubroutine subroutine ChangeRotaryRpm(status) use RTable_VARIABLES implicit none integer, intent (in) :: status ! if(associated(RotaryRpmPtr)) call RotaryRpmPtr(status) if(status == Clear_StatusType) RTable%RpmGaugeMalf = 0 if(status == Executed_StatusType) RTable%RpmGaugeMalf = 1 endsubroutine subroutine ChangeRotaryTorque(status) use RTable_VARIABLES implicit none integer, intent (in) :: status ! if(associated(RotaryTorquePtr)) call RotaryTorquePtr(status) if(status == Clear_StatusType) RTable%TorqueGaugeMalf = 0 if(status == Executed_StatusType) RTable%TorqueGaugeMalf = 1 endsubroutine subroutine ChangeStandPipePressure(status) use MudSystemVARIABLES implicit none integer, intent (in) :: status ! if(associated(StandPipePressurePtr)) call StandPipePressurePtr(status) if(status == Clear_StatusType) MudSystem%StandPipePressure_DataDisplayMalf = 0 if(status == Executed_StatusType) MudSystem%StandPipePressure_DataDisplayMalf = 1 endsubroutine subroutine ChangeCasingPressure(status) USE FricPressDropVarsModule implicit none integer, intent (in) :: status ! if(associated(CasingPressurePtr)) call CasingPressurePtr(status) if(status == Clear_StatusType) FricPressDropVars%CasingPressure_DataDisplayMalF = 0 if(status == Executed_StatusType) FricPressDropVars%CasingPressure_DataDisplayMalF = 1 endsubroutine subroutine ChangePump1Strokes(status) use Pumps_VARIABLES implicit none integer, intent (in) :: status ! if(associated(Pump1StrokesPtr)) call Pump1StrokesPtr(status) if(status == Clear_StatusType) PUMP(1)%SPMGaugeMalf = 0 if(status == Executed_StatusType) PUMP(1)%SPMGaugeMalf = 1 endsubroutine subroutine ChangePump2Strokes(status) use Pumps_VARIABLES implicit none integer, intent (in) :: status ! if(associated(Pump2StrokesPtr)) call Pump2StrokesPtr(status) if(status == Clear_StatusType) PUMP(2)%SPMGaugeMalf = 0 if(status == Executed_StatusType) PUMP(2)%SPMGaugeMalf = 1 endsubroutine subroutine ChangeReturnLineTemperature(status) implicit none integer, intent (in) :: status ! if(associated(ReturnLineTemperaturePtr)) call ReturnLineTemperaturePtr(status) !if(status == Clear_StatusType) print*,'On_ReturnLineTemperature_Clear' !if(status == Executed_StatusType) print*,'On_ReturnLineTemperature_Execute' endsubroutine subroutine ChangeTripTank(status) USE MudSystemVARIABLES implicit none integer, intent (in) :: status ! if(associated(TripTankPtr)) call TripTankPtr(status) if(status == Clear_StatusType) MudSystem%TripTankPressure_DataDisplayMalf = 0 if(status == Executed_StatusType) MudSystem%TripTankPressure_DataDisplayMalf = 1 endsubroutine subroutine ChangePitGainLoss(status) USE MudSystemVARIABLES implicit none integer, intent (in) :: status ! if(associated(PitGainLossPtr)) call PitGainLossPtr(status) if(status == Clear_StatusType) MudSystem%PitGainLossGaugeMalf = 0 if(status == Executed_StatusType) MudSystem%PitGainLossGaugeMalf = 1 endsubroutine subroutine ChangeMudTankVolume(status) implicit none integer, intent (in) :: status ! if(associated(MudTankVolumePtr)) call MudTankVolumePtr(status) !if(status == Clear_StatusType) print*,'On_MudTankVolume_Clear' !if(status == Executed_StatusType) print*,'On_MudTankVolume_Execute' endsubroutine subroutine ChangeReturnMudFlow(status) implicit none integer, intent (in) :: status ! if(associated(ReturnMudFlowPtr)) call ReturnMudFlowPtr(status) !if(status == Clear_StatusType) print*,'On_ReturnMudFlow_Clear' !if(status == Executed_StatusType) print*,'On_ReturnMudFlow_Execute' endsubroutine subroutine ChangeTorqueLimit(status) use RTable_VARIABLES implicit none integer, intent (in) :: status ! if(associated(TorqueLimitPtr)) call TorqueLimitPtr(status) if(status == Clear_StatusType) RTable%TorqueLimitGaugeMalf = 0 if(status == Executed_StatusType) RTable%TorqueLimitGaugeMalf = 1 endsubroutine subroutine ChangePowerLimit(status) implicit none integer, intent (in) :: status ! if(associated(PowerLimitPtr)) call PowerLimitPtr(status) !if(status == Clear_StatusType) print*,'On_PowerLimit_Clear' !if(status == Executed_StatusType) print*,'On_PowerLimit_Execute' endsubroutine subroutine ChangeAccumulatorPressure(status) USE VARIABLES implicit none integer, intent (in) :: status ! if(associated(AccumulatorPressurePtr)) call AccumulatorPressurePtr(status) if(status == Clear_StatusType) BopStackAcc%AccumulatorPressureGaugeMalf = 0 if(status == Executed_StatusType) BopStackAcc%AccumulatorPressureGaugeMalf = 1 endsubroutine subroutine ChangeManifoldPressure(status) USE VARIABLES implicit none integer, intent (in) :: status ! if(associated(ManifoldPressurePtr)) call ManifoldPressurePtr(status) if(status == Clear_StatusType) BopStackAcc%ManifoldPressureGaugeMalf = 0 if(status == Executed_StatusType) BopStackAcc%ManifoldPressureGaugeMalf = 1 endsubroutine subroutine ChangeAnnularPressure(status) USE VARIABLES implicit none integer, intent (in) :: status ! if(associated(AnnularPressurePtr)) call AnnularPressurePtr(status) if(status == Clear_StatusType) Annular%AnnularPressureGaugeMalf = 0 if(status == Executed_StatusType) Annular%AnnularPressureGaugeMalf = 1 endsubroutine subroutine ChangeRigAirPressure(status) USE VARIABLES implicit none integer, intent (in) :: status ! if(associated(RigAirPressurePtr)) call RigAirPressurePtr(status) if(status == Clear_StatusType) BopStackAcc%AirSupplyPressureGaugeMalf = 0 if(status == Executed_StatusType) BopStackAcc%AirSupplyPressureGaugeMalf = 1 endsubroutine subroutine ChangeStandPipe1(status) use MudSystemVARIABLES implicit none integer, intent (in) :: status ! if(associated(StandPipe1Ptr)) call StandPipe1Ptr(status) if(status == Clear_StatusType) MudSystem%StandPipeGauge1Malf = 0 if(status == Executed_StatusType) MudSystem%StandPipeGauge1Malf = 1 endsubroutine subroutine ChangeStandPipe2(status) use MudSystemVARIABLES implicit none integer, intent (in) :: status ! if(associated(StandPipe2Ptr)) call StandPipe2Ptr(status) if(status == Clear_StatusType) MudSystem%StandPipeGauge2Malf = 0 if(status == Executed_StatusType) MudSystem%StandPipeGauge2Malf = 1 endsubroutine subroutine ChangeDrillPipePressure(status) use MudSystemVARIABLES implicit none integer, intent (in) :: status ! if(associated(DrillPipePressurePtr)) call DrillPipePressurePtr(status) if(status == Clear_StatusType) MudSystem%DrillPipePressureMalf = 0 if(status == Executed_StatusType) MudSystem%DrillPipePressureMalf = 1 endsubroutine subroutine ChangeChokePosition(status) USE CHOKEVARIABLES implicit none integer, intent (in) :: status ! if(associated(ChokePositionPtr)) call ChokePositionPtr(status) if(status == Clear_StatusType) Choke%GaugeChokePositionMailf = 0 if(status == Executed_StatusType) Choke%GaugeChokePositionMailf = 1 endsubroutine subroutine ChangeCasingPressure2(status) USE FricPressDropVarsModule implicit none integer, intent (in) :: status ! if(associated(CasingPressure2Ptr)) call CasingPressure2Ptr(status) if(status == Clear_StatusType) FricPressDropVars%CasingPressure_ChokeMalF = 0 if(status == Executed_StatusType) FricPressDropVars%CasingPressure_ChokeMalF = 1 endsubroutine ! subroutine SubscribeWeightIndicator(v) ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeWeightIndicator ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeWeightIndicator' :: SubscribeWeightIndicator ! implicit none ! procedure (ActionInteger) :: v ! WeightIndicatorPtr => v ! end subroutine ! subroutine SubscribeRotaryRpm(v) ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeRotaryRpm ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeRotaryRpm' :: SubscribeRotaryRpm ! implicit none ! procedure (ActionInteger) :: v ! RotaryRpmPtr => v ! end subroutine ! subroutine SubscribeRotaryTorque(v) ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeRotaryTorque ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeRotaryTorque' :: SubscribeRotaryTorque ! implicit none ! procedure (ActionInteger) :: v ! RotaryTorquePtr => v ! end subroutine ! subroutine SubscribeStandPipePressure(v) ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeStandPipePressure ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeStandPipePressure' :: SubscribeStandPipePressure ! implicit none ! procedure (ActionInteger) :: v ! StandPipePressurePtr => v ! end subroutine ! subroutine SubscribeCasingPressure(v) ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeCasingPressure ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeCasingPressure' :: SubscribeCasingPressure ! implicit none ! procedure (ActionInteger) :: v ! CasingPressurePtr => v ! end subroutine ! subroutine SubscribePump1Strokes(v) ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribePump1Strokes ! !DEC$ ATTRIBUTES ALIAS: 'SubscribePump1Strokes' :: SubscribePump1Strokes ! implicit none ! procedure (ActionInteger) :: v ! Pump1StrokesPtr => v ! end subroutine ! subroutine SubscribePump2Strokes(v) ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribePump2Strokes ! !DEC$ ATTRIBUTES ALIAS: 'SubscribePump2Strokes' :: SubscribePump2Strokes ! implicit none ! procedure (ActionInteger) :: v ! Pump2StrokesPtr => v ! end subroutine ! subroutine SubscribeReturnLineTemperature(v) ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeReturnLineTemperature ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeReturnLineTemperature' :: SubscribeReturnLineTemperature ! implicit none ! procedure (ActionInteger) :: v ! ReturnLineTemperaturePtr => v ! end subroutine ! subroutine SubscribeTripTank(v) ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeTripTank ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeTripTank' :: SubscribeTripTank ! implicit none ! procedure (ActionInteger) :: v ! TripTankPtr => v ! end subroutine ! subroutine SubscribePitGainLoss(v) ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribePitGainLoss ! !DEC$ ATTRIBUTES ALIAS: 'SubscribePitGainLoss' :: SubscribePitGainLoss ! implicit none ! procedure (ActionInteger) :: v ! PitGainLossPtr => v ! end subroutine ! subroutine SubscribeMudTankVolume(v) ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeMudTankVolume ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeMudTankVolume' :: SubscribeMudTankVolume ! implicit none ! procedure (ActionInteger) :: v ! MudTankVolumePtr => v ! end subroutine ! subroutine SubscribeReturnMudFlow(v) ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeReturnMudFlow ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeReturnMudFlow' :: SubscribeReturnMudFlow ! implicit none ! procedure (ActionInteger) :: v ! ReturnMudFlowPtr => v ! end subroutine ! subroutine SubscribeTorqueLimit(v) ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeTorqueLimit ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeTorqueLimit' :: SubscribeTorqueLimit ! implicit none ! procedure (ActionInteger) :: v ! TorqueLimitPtr => v ! end subroutine ! subroutine SubscribePowerLimit(v) ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribePowerLimit ! !DEC$ ATTRIBUTES ALIAS: 'SubscribePowerLimit' :: SubscribePowerLimit ! implicit none ! procedure (ActionInteger) :: v ! PowerLimitPtr => v ! end subroutine ! subroutine SubscribeAccumulatorPressure(v) ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeAccumulatorPressure ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeAccumulatorPressure' :: SubscribeAccumulatorPressure ! implicit none ! procedure (ActionInteger) :: v ! AccumulatorPressurePtr => v ! end subroutine ! subroutine SubscribeManifoldPressure(v) ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeManifoldPressure ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeManifoldPressure' :: SubscribeManifoldPressure ! implicit none ! procedure (ActionInteger) :: v ! ManifoldPressurePtr => v ! end subroutine ! subroutine SubscribeAnnularPressure(v) ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeAnnularPressure ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeAnnularPressure' :: SubscribeAnnularPressure ! implicit none ! procedure (ActionInteger) :: v ! AnnularPressurePtr => v ! end subroutine ! subroutine SubscribeRigAirPressure(v) ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeRigAirPressure ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeRigAirPressure' :: SubscribeRigAirPressure ! implicit none ! procedure (ActionInteger) :: v ! RigAirPressurePtr => v ! end subroutine ! subroutine SubscribeStandPipe1(v) ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeStandPipe1 ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeStandPipe1' :: SubscribeStandPipe1 ! implicit none ! procedure (ActionInteger) :: v ! StandPipe1Ptr => v ! end subroutine ! subroutine SubscribeStandPipe2(v) ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeStandPipe2 ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeStandPipe2' :: SubscribeStandPipe2 ! implicit none ! procedure (ActionInteger) :: v ! StandPipe2Ptr => v ! end subroutine ! subroutine SubscribeDrillPipePressure(v) ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeDrillPipePressure ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeDrillPipePressure' :: SubscribeDrillPipePressure ! implicit none ! procedure (ActionInteger) :: v ! DrillPipePressurePtr => v ! end subroutine ! subroutine SubscribeChokePosition(v) ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeChokePosition ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeChokePosition' :: SubscribeChokePosition ! implicit none ! procedure (ActionInteger) :: v ! ChokePositionPtr => v ! end subroutine ! subroutine SubscribeCasingPressure2(v) ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeCasingPressure2 ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeCasingPressure2' :: SubscribeCasingPressure2 ! implicit none ! procedure (ActionInteger) :: v ! CasingPressure2Ptr => v ! end subroutine end module CGaugesProblemsVariables