|
- module CHoistingProblemsVariables
- use CProblemDifinition
- implicit none
- public
-
- ! Input vars
- type :: HoistingProblemsType
- type(CProblem) :: MotorFail
- type(CProblem) :: ClutchEngage
- type(CProblem) :: ClutchDisengage
- end type HoistingProblemsType
- type(HoistingProblemsType):: HoistingProblems
- ! procedure (ActionInteger), pointer :: MotorFailPtr
- ! procedure (ActionInteger), pointer :: ClutchEngagePtr
- ! procedure (ActionInteger), pointer :: ClutchDisengagePtr
-
-
- contains
-
- subroutine ProcessHoistingProblemsDueTime(time)
- implicit none
- integer :: time
- if(HoistingProblems%MotorFail%ProblemType == Time_ProblemType) call ProcessDueTime(HoistingProblems%MotorFail, ChangeMotorFail, time)
- if(HoistingProblems%ClutchEngage%ProblemType == Time_ProblemType) call ProcessDueTime(HoistingProblems%ClutchEngage, ChangeClutchEngage, time)
- if(HoistingProblems%ClutchDisengage%ProblemType == Time_ProblemType) call ProcessDueTime(HoistingProblems%ClutchDisengage, ChangeClutchDisengage, time)
- end subroutine
-
- subroutine ProcessHoistingProblemsDuePumpStrokes(strokes)
- implicit none
- integer :: strokes
- if(HoistingProblems%MotorFail%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(HoistingProblems%MotorFail, ChangeMotorFail, strokes)
- if(HoistingProblems%ClutchEngage%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(HoistingProblems%ClutchEngage, ChangeClutchEngage, strokes)
- if(HoistingProblems%ClutchDisengage%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(HoistingProblems%ClutchDisengage, ChangeClutchDisengage, strokes)
- end subroutine
-
- subroutine ProcessHoistingProblemsDueVolumePumped(volume)
- implicit none
- real(8) :: volume
- if(HoistingProblems%MotorFail%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(HoistingProblems%MotorFail, ChangeMotorFail, volume)
- if(HoistingProblems%ClutchEngage%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(HoistingProblems%ClutchEngage, ChangeClutchEngage, volume)
- if(HoistingProblems%ClutchDisengage%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(HoistingProblems%ClutchDisengage, ChangeClutchDisengage, volume)
- end subroutine
-
- subroutine ProcessHoistingProblemsDueDistanceDrilled(distance)
- implicit none
- real(8) :: distance
- if(HoistingProblems%MotorFail%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(HoistingProblems%MotorFail, ChangeMotorFail, distance)
- if(HoistingProblems%ClutchEngage%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(HoistingProblems%ClutchEngage, ChangeClutchEngage, distance)
- if(HoistingProblems%ClutchDisengage%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(HoistingProblems%ClutchDisengage, ChangeClutchDisengage, distance)
- end subroutine
-
-
-
-
-
-
- subroutine ChangeMotorFail(status)
- use Drawworks_VARIABLES
- implicit none
- integer, intent (in) :: status
- ! if(associated(MotorFailPtr)) call MotorFailPtr(status)
- if(status == Clear_StatusType) Drawworks%MotorFaileMalf=0
- if(status == Executed_StatusType) Drawworks%MotorFaileMalf=1
- endsubroutine
-
- subroutine ChangeClutchEngage(status)
- use Drawworks_VARIABLES
- implicit none
- integer, intent (in) :: status
- ! if(associated(ClutchEngagePtr)) call ClutchEngagePtr(status)
- if(status == Clear_StatusType) Drawworks%ClutchEngageMalf=0
- if(status == Executed_StatusType) Drawworks%ClutchEngageMalf=1
- endsubroutine
-
- subroutine ChangeClutchDisengage(status)
- use Drawworks_VARIABLES
- implicit none
- integer, intent (in) :: status
- ! if(associated(ClutchDisengagePtr)) call ClutchDisengagePtr(status)
- if(status == Clear_StatusType) Drawworks%ClutchDisengageMalf=0
- if(status == Executed_StatusType) Drawworks%ClutchDisengageMalf=1
- endsubroutine
-
-
-
-
-
-
-
-
-
-
- ! subroutine SubscribeMotorFail(v)
- ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeMotorFail
- ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeMotorFail' :: SubscribeMotorFail
- ! implicit none
- ! procedure (ActionInteger) :: v
- ! MotorFailPtr => v
- ! end subroutine
-
- ! subroutine SubscribeClutchEngage(v)
- ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeClutchEngage
- ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeClutchEngage' :: SubscribeClutchEngage
- ! implicit none
- ! procedure (ActionInteger) :: v
- ! ClutchEngagePtr => v
- ! end subroutine
-
- ! subroutine SubscribeClutchDisengage(v)
- ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeClutchDisengage
- ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeClutchDisengage' :: SubscribeClutchDisengage
- ! implicit none
- ! procedure (ActionInteger) :: v
- ! ClutchDisengagePtr => v
- ! end subroutine
-
-
- end module CHoistingProblemsVariables
|