module COtherProblemsVariables use CProblemDifinition implicit none public ! Input vars type(CProblem) :: RigAlarm type(CProblem) :: RigWaterSupply type(CProblem) :: RigAir type(CProblem) :: Gen1 type(CProblem) :: Gen2 type(CProblem) :: Gen3 type(CProblem) :: Gen4 type(CProblem) :: Scr1 type(CProblem) :: Scr2 type(CProblem) :: Scr3 type(CProblem) :: Scr4 procedure (ActionInteger), pointer :: RigAlarmPtr procedure (ActionInteger), pointer :: RigWaterSupplyPtr procedure (ActionInteger), pointer :: RigAirPtr procedure (ActionInteger), pointer :: Gen1Ptr procedure (ActionInteger), pointer :: Gen2Ptr procedure (ActionInteger), pointer :: Gen3Ptr procedure (ActionInteger), pointer :: Gen4Ptr procedure (ActionInteger), pointer :: Scr1Ptr procedure (ActionInteger), pointer :: Scr2Ptr procedure (ActionInteger), pointer :: Scr3Ptr procedure (ActionInteger), pointer :: Scr4Ptr contains subroutine ProcessOtherProblemsDueTime(time) implicit none integer :: time if(RigAlarm%ProblemType == Time_ProblemType) call ProcessDueTime(RigAlarm, ChangeRigAlarm, time) if(RigWaterSupply%ProblemType == Time_ProblemType) call ProcessDueTime(RigWaterSupply, ChangeRigWaterSupply, time) if(RigAir%ProblemType == Time_ProblemType) call ProcessDueTime(RigAir, ChangeRigAir, time) if(Gen1%ProblemType == Time_ProblemType) call ProcessDueTime(Gen1, ChangeGen1, time) if(Gen2%ProblemType == Time_ProblemType) call ProcessDueTime(Gen2, ChangeGen2, time) if(Gen3%ProblemType == Time_ProblemType) call ProcessDueTime(Gen3, ChangeGen3, time) if(Gen4%ProblemType == Time_ProblemType) call ProcessDueTime(Gen4, ChangeGen4, time) if(Scr1%ProblemType == Time_ProblemType) call ProcessDueTime(Scr1, ChangeScr1, time) if(Scr2%ProblemType == Time_ProblemType) call ProcessDueTime(Scr2, ChangeScr2, time) if(Scr3%ProblemType == Time_ProblemType) call ProcessDueTime(Scr3, ChangeScr3, time) if(Scr4%ProblemType == Time_ProblemType) call ProcessDueTime(Scr4, ChangeScr4, time) end subroutine subroutine ProcessOtherProblemsDuePumpStrokes(strokes) implicit none integer :: strokes if(RigAlarm%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(RigAlarm, ChangeRigAlarm, strokes) if(RigWaterSupply%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(RigWaterSupply, ChangeRigWaterSupply, strokes) if(RigAir%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(RigAir, ChangeRigAir, strokes) if(Gen1%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(Gen1, ChangeGen1, strokes) if(Gen2%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(Gen2, ChangeGen2, strokes) if(Gen3%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(Gen3, ChangeGen3, strokes) if(Gen4%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(Gen4, ChangeGen4, strokes) if(Scr1%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(Scr1, ChangeScr1, strokes) if(Scr2%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(Scr2, ChangeScr2, strokes) if(Scr3%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(Scr3, ChangeScr3, strokes) if(Scr4%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(Scr4, ChangeScr4, strokes) end subroutine subroutine ProcessOtherProblemsDueVolumePumped(volume) implicit none real(8) :: volume if(RigAlarm%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(RigAlarm, ChangeRigAlarm, volume) if(RigWaterSupply%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(RigWaterSupply, ChangeRigWaterSupply, volume) if(RigAir%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(RigAir, ChangeRigAir, volume) if(Gen1%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(Gen1, ChangeGen1, volume) if(Gen2%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(Gen2, ChangeGen2, volume) if(Gen3%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(Gen3, ChangeGen3, volume) if(Gen4%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(Gen4, ChangeGen4, volume) if(Scr1%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(Scr1, ChangeScr1, volume) if(Scr2%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(Scr2, ChangeScr2, volume) if(Scr3%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(Scr3, ChangeScr3, volume) if(Scr4%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(Scr4, ChangeScr4, volume) end subroutine subroutine ProcessOtherProblemsDueDistanceDrilled(distance) implicit none real(8) :: distance if(RigAlarm%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(RigAlarm, ChangeRigAlarm, distance) if(RigWaterSupply%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(RigWaterSupply, ChangeRigWaterSupply, distance) if(RigAir%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(RigAir, ChangeRigAir, distance) if(Gen1%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(Gen1, ChangeGen1, distance) if(Gen2%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(Gen2, ChangeGen2, distance) if(Gen3%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(Gen3, ChangeGen3, distance) if(Gen4%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(Gen4, ChangeGen4, distance) if(Scr1%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(Scr1, ChangeScr1, distance) if(Scr2%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(Scr2, ChangeScr2, distance) if(Scr3%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(Scr3, ChangeScr3, distance) if(Scr4%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(Scr4, ChangeScr4, distance) end subroutine subroutine ChangeRigAlarm(status) implicit none integer, intent (in) :: status if(associated(RigAlarmPtr)) call RigAlarmPtr(status) !if(status == Clear_StatusType) print*,'On_RigAlarm_Clear' !if(status == Executed_StatusType) print*,'On_RigAlarm_Execute' endsubroutine subroutine ChangeRigWaterSupply(status) implicit none integer, intent (in) :: status if(associated(RigWaterSupplyPtr)) call RigWaterSupplyPtr(status) !if(status == Clear_StatusType) print*,'On_RigWaterSupply_Clear' !if(status == Executed_StatusType) print*,'On_RigWaterSupply_Execute' endsubroutine subroutine ChangeRigAir(status) use VARIABLES implicit none integer, intent (in) :: status if(associated(RigAirPtr)) call RigAirPtr(status) if(status == Clear_StatusType) RigAirMalf = 0 if(status == Executed_StatusType) RigAirMalf = 1 endsubroutine subroutine ChangeGen1(status) implicit none integer, intent (in) :: status if(associated(Gen1Ptr)) call Gen1Ptr(status) !if(status == Clear_StatusType) print*,'On_Gen1_Clear' !if(status == Executed_StatusType) print*,'On_Gen1_Execute' endsubroutine subroutine ChangeGen2(status) implicit none integer, intent (in) :: status if(associated(Gen2Ptr)) call Gen2Ptr(status) !if(status == Clear_StatusType) print*,'On_Gen2_Clear' !if(status == Executed_StatusType) print*,'On_Gen2_Execute' endsubroutine subroutine ChangeGen3(status) implicit none integer, intent (in) :: status if(associated(Gen3Ptr)) call Gen3Ptr(status) !if(status == Clear_StatusType) print*,'On_Gen3_Clear' !if(status == Executed_StatusType) print*,'On_Gen3_Execute' endsubroutine subroutine ChangeGen4(status) implicit none integer, intent (in) :: status if(associated(Gen4Ptr)) call Gen4Ptr(status) !if(status == Clear_StatusType) print*,'On_Gen4_Clear' !if(status == Executed_StatusType) print*,'On_Gen4_Execute' endsubroutine subroutine ChangeScr1(status) implicit none integer, intent (in) :: status if(associated(Scr1Ptr)) call Scr1Ptr(status) !if(status == Clear_StatusType) print*,'On_Scr1_Clear' !if(status == Executed_StatusType) print*,'On_Scr1_Execute' endsubroutine subroutine ChangeScr2(status) implicit none integer, intent (in) :: status if(associated(Scr2Ptr)) call Scr2Ptr(status) !if(status == Clear_StatusType) print*,'On_Scr2_Clear' !if(status == Executed_StatusType) print*,'On_Scr2_Execute' endsubroutine subroutine ChangeScr3(status) implicit none integer, intent (in) :: status if(associated(Scr3Ptr)) call Scr3Ptr(status) !if(status == Clear_StatusType) print*,'On_Scr3_Clear' !if(status == Executed_StatusType) print*,'On_Scr3_Execute' endsubroutine subroutine ChangeScr4(status) implicit none integer, intent (in) :: status if(associated(Scr4Ptr)) call Scr4Ptr(status) !if(status == Clear_StatusType) print*,'On_Scr4_Clear' !if(status == Executed_StatusType) print*,'On_Scr4_Execute' endsubroutine subroutine SubscribeRigAlarm(v) !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeRigAlarm !DEC$ ATTRIBUTES ALIAS: 'SubscribeRigAlarm' :: SubscribeRigAlarm implicit none procedure (ActionInteger) :: v RigAlarmPtr => v end subroutine subroutine SubscribeRigWaterSupply(v) !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeRigWaterSupply !DEC$ ATTRIBUTES ALIAS: 'SubscribeRigWaterSupply' :: SubscribeRigWaterSupply implicit none procedure (ActionInteger) :: v RigWaterSupplyPtr => v end subroutine subroutine SubscribeRigAir(v) !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeRigAir !DEC$ ATTRIBUTES ALIAS: 'SubscribeRigAir' :: SubscribeRigAir implicit none procedure (ActionInteger) :: v RigAirPtr => v end subroutine subroutine SubscribeGen1(v) !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeGen1 !DEC$ ATTRIBUTES ALIAS: 'SubscribeGen1' :: SubscribeGen1 implicit none procedure (ActionInteger) :: v Gen1Ptr => v end subroutine subroutine SubscribeGen2(v) !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeGen2 !DEC$ ATTRIBUTES ALIAS: 'SubscribeGen2' :: SubscribeGen2 implicit none procedure (ActionInteger) :: v Gen2Ptr => v end subroutine subroutine SubscribeGen3(v) !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeGen3 !DEC$ ATTRIBUTES ALIAS: 'SubscribeGen3' :: SubscribeGen3 implicit none procedure (ActionInteger) :: v Gen3Ptr => v end subroutine subroutine SubscribeGen4(v) !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeGen4 !DEC$ ATTRIBUTES ALIAS: 'SubscribeGen4' :: SubscribeGen4 implicit none procedure (ActionInteger) :: v Gen4Ptr => v end subroutine subroutine SubscribeScr1(v) !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeScr1 !DEC$ ATTRIBUTES ALIAS: 'SubscribeScr1' :: SubscribeScr1 implicit none procedure (ActionInteger) :: v Scr1Ptr => v end subroutine subroutine SubscribeScr2(v) !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeScr2 !DEC$ ATTRIBUTES ALIAS: 'SubscribeScr2' :: SubscribeScr2 implicit none procedure (ActionInteger) :: v Scr2Ptr => v end subroutine subroutine SubscribeScr3(v) !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeScr3 !DEC$ ATTRIBUTES ALIAS: 'SubscribeScr3' :: SubscribeScr3 implicit none procedure (ActionInteger) :: v Scr3Ptr => v end subroutine subroutine SubscribeScr4(v) !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeScr4 !DEC$ ATTRIBUTES ALIAS: 'SubscribeScr4' :: SubscribeScr4 implicit none procedure (ActionInteger) :: v Scr4Ptr => v end subroutine end module COtherProblemsVariables