Simulation Core
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

CGaugesProblemsVariables.f90 33 KiB

1 år sedan
1 år sedan
1 år sedan
1 år sedan
1 år sedan
1 år sedan
1 år sedan
1 år sedan
1 år sedan
1 år sedan
1 år sedan
1 år sedan
1 år sedan
1 år sedan
1 år sedan
1 år sedan
1 år sedan
1 år sedan
1 år sedan
1 år sedan
1 år sedan
1 år sedan
1 år sedan
1 år sedan
1 år sedan
1 år sedan
1 år sedan
1 år sedan
1 år sedan
1 år sedan
1 år sedan
1 år sedan
1 år sedan
1 år sedan
1 år sedan
1 år sedan
1 år sedan
1 år sedan
1 år sedan
1 år sedan
1 år sedan
1 år sedan
1 år sedan
1 år sedan
1 år sedan
1 år sedan
1 år sedan
1 år sedan
1 år sedan
1 år sedan
1 år sedan
1 år sedan
1 år sedan
1 år sedan
1 år sedan
1 år sedan
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586
  1. module CGaugesProblemsVariables
  2. use CProblemDifinition
  3. implicit none
  4. public
  5. type :: GaugesProblemsType
  6. type(CProblem) :: WeightIndicator
  7. type(CProblem) :: RotaryRpm
  8. type(CProblem) :: RotaryTorque
  9. type(CProblem) :: StandPipePressure
  10. type(CProblem) :: CasingPressure
  11. type(CProblem) :: Pump1Strokes
  12. type(CProblem) :: Pump2Strokes
  13. type(CProblem) :: ReturnLineTemperature
  14. type(CProblem) :: TripTank
  15. type(CProblem) :: PitGainLoss
  16. type(CProblem) :: MudTankVolume
  17. type(CProblem) :: ReturnMudFlow
  18. type(CProblem) :: TorqueLimit
  19. type(CProblem) :: PowerLimit
  20. type(CProblem) :: AccumulatorPressure
  21. type(CProblem) :: ManifoldPressure
  22. type(CProblem) :: AnnularPressure
  23. type(CProblem) :: RigAirPressure
  24. type(CProblem) :: StandPipe1
  25. type(CProblem) :: StandPipe2
  26. type(CProblem) :: DrillPipePressure
  27. type(CProblem) :: ChokePosition
  28. type(CProblem) :: CasingPressure2
  29. end type GaugesProblemsType
  30. type(GaugesProblemsType)::GaugesProblems
  31. ! procedure (ActionInteger), pointer :: WeightIndicatorPtr
  32. ! procedure (ActionInteger), pointer :: RotaryRpmPtr
  33. ! procedure (ActionInteger), pointer :: RotaryTorquePtr
  34. ! procedure (ActionInteger), pointer :: StandPipePressurePtr
  35. ! procedure (ActionInteger), pointer :: CasingPressurePtr
  36. ! procedure (ActionInteger), pointer :: Pump1StrokesPtr
  37. ! procedure (ActionInteger), pointer :: Pump2StrokesPtr
  38. ! procedure (ActionInteger), pointer :: ReturnLineTemperaturePtr
  39. ! procedure (ActionInteger), pointer :: TripTankPtr
  40. ! procedure (ActionInteger), pointer :: PitGainLossPtr
  41. ! procedure (ActionInteger), pointer :: MudTankVolumePtr
  42. ! procedure (ActionInteger), pointer :: ReturnMudFlowPtr
  43. ! procedure (ActionInteger), pointer :: TorqueLimitPtr
  44. ! procedure (ActionInteger), pointer :: PowerLimitPtr
  45. ! procedure (ActionInteger), pointer :: AccumulatorPressurePtr
  46. ! procedure (ActionInteger), pointer :: ManifoldPressurePtr
  47. ! procedure (ActionInteger), pointer :: AnnularPressurePtr
  48. ! procedure (ActionInteger), pointer :: RigAirPressurePtr
  49. ! procedure (ActionInteger), pointer :: StandPipe1Ptr
  50. ! procedure (ActionInteger), pointer :: StandPipe2Ptr
  51. ! procedure (ActionInteger), pointer :: DrillPipePressurePtr
  52. ! procedure (ActionInteger), pointer :: ChokePositionPtr
  53. ! procedure (ActionInteger), pointer :: CasingPressure2Ptr
  54. contains
  55. subroutine ProcessGaugesProblemsDueTime(time)
  56. implicit none
  57. integer :: time
  58. if(GaugesProblems%WeightIndicator%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%WeightIndicator, ChangeWeightIndicator, time)
  59. if(GaugesProblems%RotaryRpm%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%RotaryRpm, ChangeRotaryRpm, time)
  60. if(GaugesProblems%RotaryTorque%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%RotaryTorque, ChangeRotaryTorque, time)
  61. if(GaugesProblems%StandPipePressure%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%StandPipePressure, ChangeStandPipePressure, time)
  62. if(GaugesProblems%CasingPressure%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%CasingPressure, ChangeCasingPressure, time)
  63. if(GaugesProblems%Pump1Strokes%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%Pump1Strokes, ChangePump1Strokes, time)
  64. if(GaugesProblems%Pump2Strokes%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%Pump2Strokes, ChangePump2Strokes, time)
  65. if(GaugesProblems%ReturnLineTemperature%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%ReturnLineTemperature, ChangeReturnLineTemperature, time)
  66. if(GaugesProblems%TripTank%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%TripTank, ChangeTripTank, time)
  67. if(GaugesProblems%PitGainLoss%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%PitGainLoss, ChangePitGainLoss, time)
  68. if(GaugesProblems%MudTankVolume%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%MudTankVolume, ChangeMudTankVolume, time)
  69. if(GaugesProblems%ReturnMudFlow%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%ReturnMudFlow, ChangeReturnMudFlow, time)
  70. if(GaugesProblems%TorqueLimit%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%TorqueLimit, ChangeTorqueLimit, time)
  71. if(GaugesProblems%PowerLimit%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%PowerLimit, ChangePowerLimit, time)
  72. if(GaugesProblems%AccumulatorPressure%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%AccumulatorPressure, ChangeAccumulatorPressure, time)
  73. if(GaugesProblems%ManifoldPressure%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%ManifoldPressure, ChangeManifoldPressure, time)
  74. if(GaugesProblems%AnnularPressure%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%AnnularPressure, ChangeAnnularPressure, time)
  75. if(GaugesProblems%RigAirPressure%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%RigAirPressure, ChangeRigAirPressure, time)
  76. if(GaugesProblems%StandPipe1%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%StandPipe1, ChangeStandPipe1, time)
  77. if(GaugesProblems%StandPipe2%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%StandPipe2, ChangeStandPipe2, time)
  78. if(GaugesProblems%DrillPipePressure%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%DrillPipePressure, ChangeDrillPipePressure, time)
  79. if(GaugesProblems%ChokePosition%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%ChokePosition, ChangeChokePosition, time)
  80. if(GaugesProblems%CasingPressure2%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%CasingPressure2, ChangeCasingPressure2, time)
  81. end subroutine
  82. subroutine ProcessGaugesProblemsDuePumpStrokes(strokes)
  83. implicit none
  84. integer :: strokes
  85. if(GaugesProblems%WeightIndicator%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%WeightIndicator, ChangeWeightIndicator, strokes)
  86. if(GaugesProblems%RotaryRpm%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%RotaryRpm, ChangeRotaryRpm, strokes)
  87. if(GaugesProblems%RotaryTorque%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%RotaryTorque, ChangeRotaryTorque, strokes)
  88. if(GaugesProblems%StandPipePressure%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%StandPipePressure, ChangeStandPipePressure, strokes)
  89. if(GaugesProblems%CasingPressure%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%CasingPressure, ChangeCasingPressure, strokes)
  90. if(GaugesProblems%Pump1Strokes%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%Pump1Strokes, ChangePump1Strokes, strokes)
  91. if(GaugesProblems%Pump2Strokes%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%Pump2Strokes, ChangePump2Strokes, strokes)
  92. if(GaugesProblems%ReturnLineTemperature%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%ReturnLineTemperature, ChangeReturnLineTemperature, strokes)
  93. if(GaugesProblems%TripTank%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%TripTank, ChangeTripTank, strokes)
  94. if(GaugesProblems%PitGainLoss%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%PitGainLoss, ChangePitGainLoss, strokes)
  95. if(GaugesProblems%MudTankVolume%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%MudTankVolume, ChangeMudTankVolume, strokes)
  96. if(GaugesProblems%ReturnMudFlow%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%ReturnMudFlow, ChangeReturnMudFlow, strokes)
  97. if(GaugesProblems%TorqueLimit%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%TorqueLimit, ChangeTorqueLimit, strokes)
  98. if(GaugesProblems%PowerLimit%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%PowerLimit, ChangePowerLimit, strokes)
  99. if(GaugesProblems%AccumulatorPressure%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%AccumulatorPressure, ChangeAccumulatorPressure, strokes)
  100. if(GaugesProblems%ManifoldPressure%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%ManifoldPressure, ChangeManifoldPressure, strokes)
  101. if(GaugesProblems%AnnularPressure%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%AnnularPressure, ChangeAnnularPressure, strokes)
  102. if(GaugesProblems%RigAirPressure%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%RigAirPressure, ChangeRigAirPressure, strokes)
  103. if(GaugesProblems%StandPipe1%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%StandPipe1, ChangeStandPipe1, strokes)
  104. if(GaugesProblems%StandPipe2%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%StandPipe2, ChangeStandPipe2, strokes)
  105. if(GaugesProblems%DrillPipePressure%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%DrillPipePressure, ChangeDrillPipePressure, strokes)
  106. if(GaugesProblems%ChokePosition%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%ChokePosition, ChangeChokePosition, strokes)
  107. if(GaugesProblems%CasingPressure2%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%CasingPressure2, ChangeCasingPressure2, strokes)
  108. end subroutine
  109. subroutine ProcessGaugesProblemsDueVolumePumped(volume)
  110. implicit none
  111. real(8) :: volume
  112. if(GaugesProblems%WeightIndicator%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%WeightIndicator, ChangeWeightIndicator, volume)
  113. if(GaugesProblems%RotaryRpm%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%RotaryRpm, ChangeRotaryRpm, volume)
  114. if(GaugesProblems%RotaryTorque%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%RotaryTorque, ChangeRotaryTorque, volume)
  115. if(GaugesProblems%StandPipePressure%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%StandPipePressure, ChangeStandPipePressure, volume)
  116. if(GaugesProblems%CasingPressure%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%CasingPressure, ChangeCasingPressure, volume)
  117. if(GaugesProblems%Pump1Strokes%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%Pump1Strokes, ChangePump1Strokes, volume)
  118. if(GaugesProblems%Pump2Strokes%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%Pump2Strokes, ChangePump2Strokes, volume)
  119. if(GaugesProblems%ReturnLineTemperature%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%ReturnLineTemperature, ChangeReturnLineTemperature, volume)
  120. if(GaugesProblems%TripTank%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%TripTank, ChangeTripTank, volume)
  121. if(GaugesProblems%PitGainLoss%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%PitGainLoss, ChangePitGainLoss, volume)
  122. if(GaugesProblems%MudTankVolume%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%MudTankVolume, ChangeMudTankVolume, volume)
  123. if(GaugesProblems%ReturnMudFlow%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%ReturnMudFlow, ChangeReturnMudFlow, volume)
  124. if(GaugesProblems%TorqueLimit%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%TorqueLimit, ChangeTorqueLimit, volume)
  125. if(GaugesProblems%PowerLimit%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%PowerLimit, ChangePowerLimit, volume)
  126. if(GaugesProblems%AccumulatorPressure%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%AccumulatorPressure, ChangeAccumulatorPressure, volume)
  127. if(GaugesProblems%ManifoldPressure%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%ManifoldPressure, ChangeManifoldPressure, volume)
  128. if(GaugesProblems%AnnularPressure%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%AnnularPressure, ChangeAnnularPressure, volume)
  129. if(GaugesProblems%RigAirPressure%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%RigAirPressure, ChangeRigAirPressure, volume)
  130. if(GaugesProblems%StandPipe1%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%StandPipe1, ChangeStandPipe1, volume)
  131. if(GaugesProblems%StandPipe2%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%StandPipe2, ChangeStandPipe2, volume)
  132. if(GaugesProblems%DrillPipePressure%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%DrillPipePressure, ChangeDrillPipePressure, volume)
  133. if(GaugesProblems%ChokePosition%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%ChokePosition, ChangeChokePosition, volume)
  134. if(GaugesProblems%CasingPressure2%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%CasingPressure2, ChangeCasingPressure2, volume)
  135. end subroutine
  136. subroutine ProcessGaugesProblemsDueDistanceDrilled(distance)
  137. implicit none
  138. real(8) :: distance
  139. if(GaugesProblems%WeightIndicator%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%WeightIndicator, ChangeWeightIndicator, distance)
  140. if(GaugesProblems%RotaryRpm%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%RotaryRpm, ChangeRotaryRpm, distance)
  141. if(GaugesProblems%RotaryTorque%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%RotaryTorque, ChangeRotaryTorque, distance)
  142. if(GaugesProblems%StandPipePressure%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%StandPipePressure, ChangeStandPipePressure, distance)
  143. if(GaugesProblems%CasingPressure%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%CasingPressure, ChangeCasingPressure, distance)
  144. if(GaugesProblems%Pump1Strokes%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%Pump1Strokes, ChangePump1Strokes, distance)
  145. if(GaugesProblems%Pump2Strokes%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%Pump2Strokes, ChangePump2Strokes, distance)
  146. if(GaugesProblems%ReturnLineTemperature%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%ReturnLineTemperature, ChangeReturnLineTemperature, distance)
  147. if(GaugesProblems%TripTank%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%TripTank, ChangeTripTank, distance)
  148. if(GaugesProblems%PitGainLoss%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%PitGainLoss, ChangePitGainLoss, distance)
  149. if(GaugesProblems%MudTankVolume%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%MudTankVolume, ChangeMudTankVolume, distance)
  150. if(GaugesProblems%ReturnMudFlow%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%ReturnMudFlow, ChangeReturnMudFlow, distance)
  151. if(GaugesProblems%TorqueLimit%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%TorqueLimit, ChangeTorqueLimit, distance)
  152. if(GaugesProblems%PowerLimit%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%PowerLimit, ChangePowerLimit, distance)
  153. if(GaugesProblems%AccumulatorPressure%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%AccumulatorPressure, ChangeAccumulatorPressure, distance)
  154. if(GaugesProblems%ManifoldPressure%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%ManifoldPressure, ChangeManifoldPressure, distance)
  155. if(GaugesProblems%AnnularPressure%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%AnnularPressure, ChangeAnnularPressure, distance)
  156. if(GaugesProblems%RigAirPressure%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%RigAirPressure, ChangeRigAirPressure, distance)
  157. if(GaugesProblems%StandPipe1%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%StandPipe1, ChangeStandPipe1, distance)
  158. if(GaugesProblems%StandPipe2%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%StandPipe2, ChangeStandPipe2, distance)
  159. if(GaugesProblems%DrillPipePressure%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%DrillPipePressure, ChangeDrillPipePressure, distance)
  160. if(GaugesProblems%ChokePosition%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%ChokePosition, ChangeChokePosition, distance)
  161. if(GaugesProblems%CasingPressure2%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%CasingPressure2, ChangeCasingPressure2, distance)
  162. end subroutine
  163. subroutine ChangeWeightIndicator(status)
  164. use TD_GeneralData
  165. implicit none
  166. integer, intent (in) :: status
  167. ! if(associated(WeightIndicatorPtr)) call WeightIndicatorPtr(status)
  168. if(status == Clear_StatusType) TD_general%WeightIndicatorMalf = 0
  169. if(status == Executed_StatusType) TD_general%WeightIndicatorMalf = 1
  170. endsubroutine
  171. subroutine ChangeRotaryRpm(status)
  172. use RTable_VARIABLES
  173. implicit none
  174. integer, intent (in) :: status
  175. ! if(associated(RotaryRpmPtr)) call RotaryRpmPtr(status)
  176. if(status == Clear_StatusType) RTable%RpmGaugeMalf = 0
  177. if(status == Executed_StatusType) RTable%RpmGaugeMalf = 1
  178. endsubroutine
  179. subroutine ChangeRotaryTorque(status)
  180. use RTable_VARIABLES
  181. implicit none
  182. integer, intent (in) :: status
  183. ! if(associated(RotaryTorquePtr)) call RotaryTorquePtr(status)
  184. if(status == Clear_StatusType) RTable%TorqueGaugeMalf = 0
  185. if(status == Executed_StatusType) RTable%TorqueGaugeMalf = 1
  186. endsubroutine
  187. subroutine ChangeStandPipePressure(status)
  188. use MudSystemVARIABLES
  189. implicit none
  190. integer, intent (in) :: status
  191. ! if(associated(StandPipePressurePtr)) call StandPipePressurePtr(status)
  192. if(status == Clear_StatusType) MudSystem%StandPipePressure_DataDisplayMalf = 0
  193. if(status == Executed_StatusType) MudSystem%StandPipePressure_DataDisplayMalf = 1
  194. endsubroutine
  195. subroutine ChangeCasingPressure(status)
  196. USE FricPressDropVarsModule
  197. implicit none
  198. integer, intent (in) :: status
  199. ! if(associated(CasingPressurePtr)) call CasingPressurePtr(status)
  200. if(status == Clear_StatusType) FricPressDropVars%CasingPressure_DataDisplayMalF = 0
  201. if(status == Executed_StatusType) FricPressDropVars%CasingPressure_DataDisplayMalF = 1
  202. endsubroutine
  203. subroutine ChangePump1Strokes(status)
  204. use Pumps_VARIABLES
  205. implicit none
  206. integer, intent (in) :: status
  207. ! if(associated(Pump1StrokesPtr)) call Pump1StrokesPtr(status)
  208. if(status == Clear_StatusType) PUMP(1)%SPMGaugeMalf = 0
  209. if(status == Executed_StatusType) PUMP(1)%SPMGaugeMalf = 1
  210. endsubroutine
  211. subroutine ChangePump2Strokes(status)
  212. use Pumps_VARIABLES
  213. implicit none
  214. integer, intent (in) :: status
  215. ! if(associated(Pump2StrokesPtr)) call Pump2StrokesPtr(status)
  216. if(status == Clear_StatusType) PUMP(2)%SPMGaugeMalf = 0
  217. if(status == Executed_StatusType) PUMP(2)%SPMGaugeMalf = 1
  218. endsubroutine
  219. subroutine ChangeReturnLineTemperature(status)
  220. implicit none
  221. integer, intent (in) :: status
  222. ! if(associated(ReturnLineTemperaturePtr)) call ReturnLineTemperaturePtr(status)
  223. !if(status == Clear_StatusType) print*,'On_ReturnLineTemperature_Clear'
  224. !if(status == Executed_StatusType) print*,'On_ReturnLineTemperature_Execute'
  225. endsubroutine
  226. subroutine ChangeTripTank(status)
  227. USE MudSystemVARIABLES
  228. implicit none
  229. integer, intent (in) :: status
  230. ! if(associated(TripTankPtr)) call TripTankPtr(status)
  231. if(status == Clear_StatusType) MudSystem%TripTankPressure_DataDisplayMalf = 0
  232. if(status == Executed_StatusType) MudSystem%TripTankPressure_DataDisplayMalf = 1
  233. endsubroutine
  234. subroutine ChangePitGainLoss(status)
  235. USE MudSystemVARIABLES
  236. implicit none
  237. integer, intent (in) :: status
  238. ! if(associated(PitGainLossPtr)) call PitGainLossPtr(status)
  239. if(status == Clear_StatusType) MudSystem%PitGainLossGaugeMalf = 0
  240. if(status == Executed_StatusType) MudSystem%PitGainLossGaugeMalf = 1
  241. endsubroutine
  242. subroutine ChangeMudTankVolume(status)
  243. implicit none
  244. integer, intent (in) :: status
  245. ! if(associated(MudTankVolumePtr)) call MudTankVolumePtr(status)
  246. !if(status == Clear_StatusType) print*,'On_MudTankVolume_Clear'
  247. !if(status == Executed_StatusType) print*,'On_MudTankVolume_Execute'
  248. endsubroutine
  249. subroutine ChangeReturnMudFlow(status)
  250. implicit none
  251. integer, intent (in) :: status
  252. ! if(associated(ReturnMudFlowPtr)) call ReturnMudFlowPtr(status)
  253. !if(status == Clear_StatusType) print*,'On_ReturnMudFlow_Clear'
  254. !if(status == Executed_StatusType) print*,'On_ReturnMudFlow_Execute'
  255. endsubroutine
  256. subroutine ChangeTorqueLimit(status)
  257. use RTable_VARIABLES
  258. implicit none
  259. integer, intent (in) :: status
  260. ! if(associated(TorqueLimitPtr)) call TorqueLimitPtr(status)
  261. if(status == Clear_StatusType) RTable%TorqueLimitGaugeMalf = 0
  262. if(status == Executed_StatusType) RTable%TorqueLimitGaugeMalf = 1
  263. endsubroutine
  264. subroutine ChangePowerLimit(status)
  265. implicit none
  266. integer, intent (in) :: status
  267. ! if(associated(PowerLimitPtr)) call PowerLimitPtr(status)
  268. !if(status == Clear_StatusType) print*,'On_PowerLimit_Clear'
  269. !if(status == Executed_StatusType) print*,'On_PowerLimit_Execute'
  270. endsubroutine
  271. subroutine ChangeAccumulatorPressure(status)
  272. USE VARIABLES
  273. implicit none
  274. integer, intent (in) :: status
  275. ! if(associated(AccumulatorPressurePtr)) call AccumulatorPressurePtr(status)
  276. if(status == Clear_StatusType) BopStackAcc%AccumulatorPressureGaugeMalf = 0
  277. if(status == Executed_StatusType) BopStackAcc%AccumulatorPressureGaugeMalf = 1
  278. endsubroutine
  279. subroutine ChangeManifoldPressure(status)
  280. USE VARIABLES
  281. implicit none
  282. integer, intent (in) :: status
  283. ! if(associated(ManifoldPressurePtr)) call ManifoldPressurePtr(status)
  284. if(status == Clear_StatusType) BopStackAcc%ManifoldPressureGaugeMalf = 0
  285. if(status == Executed_StatusType) BopStackAcc%ManifoldPressureGaugeMalf = 1
  286. endsubroutine
  287. subroutine ChangeAnnularPressure(status)
  288. USE VARIABLES
  289. implicit none
  290. integer, intent (in) :: status
  291. ! if(associated(AnnularPressurePtr)) call AnnularPressurePtr(status)
  292. if(status == Clear_StatusType) Annular%AnnularPressureGaugeMalf = 0
  293. if(status == Executed_StatusType) Annular%AnnularPressureGaugeMalf = 1
  294. endsubroutine
  295. subroutine ChangeRigAirPressure(status)
  296. USE VARIABLES
  297. implicit none
  298. integer, intent (in) :: status
  299. ! if(associated(RigAirPressurePtr)) call RigAirPressurePtr(status)
  300. if(status == Clear_StatusType) BopStackAcc%AirSupplyPressureGaugeMalf = 0
  301. if(status == Executed_StatusType) BopStackAcc%AirSupplyPressureGaugeMalf = 1
  302. endsubroutine
  303. subroutine ChangeStandPipe1(status)
  304. use MudSystemVARIABLES
  305. implicit none
  306. integer, intent (in) :: status
  307. ! if(associated(StandPipe1Ptr)) call StandPipe1Ptr(status)
  308. if(status == Clear_StatusType) MudSystem%StandPipeGauge1Malf = 0
  309. if(status == Executed_StatusType) MudSystem%StandPipeGauge1Malf = 1
  310. endsubroutine
  311. subroutine ChangeStandPipe2(status)
  312. use MudSystemVARIABLES
  313. implicit none
  314. integer, intent (in) :: status
  315. ! if(associated(StandPipe2Ptr)) call StandPipe2Ptr(status)
  316. if(status == Clear_StatusType) MudSystem%StandPipeGauge2Malf = 0
  317. if(status == Executed_StatusType) MudSystem%StandPipeGauge2Malf = 1
  318. endsubroutine
  319. subroutine ChangeDrillPipePressure(status)
  320. use MudSystemVARIABLES
  321. implicit none
  322. integer, intent (in) :: status
  323. ! if(associated(DrillPipePressurePtr)) call DrillPipePressurePtr(status)
  324. if(status == Clear_StatusType) MudSystem%DrillPipePressureMalf = 0
  325. if(status == Executed_StatusType) MudSystem%DrillPipePressureMalf = 1
  326. endsubroutine
  327. subroutine ChangeChokePosition(status)
  328. USE CHOKEVARIABLES
  329. implicit none
  330. integer, intent (in) :: status
  331. ! if(associated(ChokePositionPtr)) call ChokePositionPtr(status)
  332. if(status == Clear_StatusType) Choke%GaugeChokePositionMailf = 0
  333. if(status == Executed_StatusType) Choke%GaugeChokePositionMailf = 1
  334. endsubroutine
  335. subroutine ChangeCasingPressure2(status)
  336. USE FricPressDropVarsModule
  337. implicit none
  338. integer, intent (in) :: status
  339. ! if(associated(CasingPressure2Ptr)) call CasingPressure2Ptr(status)
  340. if(status == Clear_StatusType) FricPressDropVars%CasingPressure_ChokeMalF = 0
  341. if(status == Executed_StatusType) FricPressDropVars%CasingPressure_ChokeMalF = 1
  342. endsubroutine
  343. ! subroutine SubscribeWeightIndicator(v)
  344. ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeWeightIndicator
  345. ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeWeightIndicator' :: SubscribeWeightIndicator
  346. ! implicit none
  347. ! procedure (ActionInteger) :: v
  348. ! WeightIndicatorPtr => v
  349. ! end subroutine
  350. ! subroutine SubscribeRotaryRpm(v)
  351. ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeRotaryRpm
  352. ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeRotaryRpm' :: SubscribeRotaryRpm
  353. ! implicit none
  354. ! procedure (ActionInteger) :: v
  355. ! RotaryRpmPtr => v
  356. ! end subroutine
  357. ! subroutine SubscribeRotaryTorque(v)
  358. ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeRotaryTorque
  359. ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeRotaryTorque' :: SubscribeRotaryTorque
  360. ! implicit none
  361. ! procedure (ActionInteger) :: v
  362. ! RotaryTorquePtr => v
  363. ! end subroutine
  364. ! subroutine SubscribeStandPipePressure(v)
  365. ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeStandPipePressure
  366. ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeStandPipePressure' :: SubscribeStandPipePressure
  367. ! implicit none
  368. ! procedure (ActionInteger) :: v
  369. ! StandPipePressurePtr => v
  370. ! end subroutine
  371. ! subroutine SubscribeCasingPressure(v)
  372. ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeCasingPressure
  373. ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeCasingPressure' :: SubscribeCasingPressure
  374. ! implicit none
  375. ! procedure (ActionInteger) :: v
  376. ! CasingPressurePtr => v
  377. ! end subroutine
  378. ! subroutine SubscribePump1Strokes(v)
  379. ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribePump1Strokes
  380. ! !DEC$ ATTRIBUTES ALIAS: 'SubscribePump1Strokes' :: SubscribePump1Strokes
  381. ! implicit none
  382. ! procedure (ActionInteger) :: v
  383. ! Pump1StrokesPtr => v
  384. ! end subroutine
  385. ! subroutine SubscribePump2Strokes(v)
  386. ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribePump2Strokes
  387. ! !DEC$ ATTRIBUTES ALIAS: 'SubscribePump2Strokes' :: SubscribePump2Strokes
  388. ! implicit none
  389. ! procedure (ActionInteger) :: v
  390. ! Pump2StrokesPtr => v
  391. ! end subroutine
  392. ! subroutine SubscribeReturnLineTemperature(v)
  393. ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeReturnLineTemperature
  394. ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeReturnLineTemperature' :: SubscribeReturnLineTemperature
  395. ! implicit none
  396. ! procedure (ActionInteger) :: v
  397. ! ReturnLineTemperaturePtr => v
  398. ! end subroutine
  399. ! subroutine SubscribeTripTank(v)
  400. ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeTripTank
  401. ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeTripTank' :: SubscribeTripTank
  402. ! implicit none
  403. ! procedure (ActionInteger) :: v
  404. ! TripTankPtr => v
  405. ! end subroutine
  406. ! subroutine SubscribePitGainLoss(v)
  407. ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribePitGainLoss
  408. ! !DEC$ ATTRIBUTES ALIAS: 'SubscribePitGainLoss' :: SubscribePitGainLoss
  409. ! implicit none
  410. ! procedure (ActionInteger) :: v
  411. ! PitGainLossPtr => v
  412. ! end subroutine
  413. ! subroutine SubscribeMudTankVolume(v)
  414. ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeMudTankVolume
  415. ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeMudTankVolume' :: SubscribeMudTankVolume
  416. ! implicit none
  417. ! procedure (ActionInteger) :: v
  418. ! MudTankVolumePtr => v
  419. ! end subroutine
  420. ! subroutine SubscribeReturnMudFlow(v)
  421. ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeReturnMudFlow
  422. ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeReturnMudFlow' :: SubscribeReturnMudFlow
  423. ! implicit none
  424. ! procedure (ActionInteger) :: v
  425. ! ReturnMudFlowPtr => v
  426. ! end subroutine
  427. ! subroutine SubscribeTorqueLimit(v)
  428. ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeTorqueLimit
  429. ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeTorqueLimit' :: SubscribeTorqueLimit
  430. ! implicit none
  431. ! procedure (ActionInteger) :: v
  432. ! TorqueLimitPtr => v
  433. ! end subroutine
  434. ! subroutine SubscribePowerLimit(v)
  435. ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribePowerLimit
  436. ! !DEC$ ATTRIBUTES ALIAS: 'SubscribePowerLimit' :: SubscribePowerLimit
  437. ! implicit none
  438. ! procedure (ActionInteger) :: v
  439. ! PowerLimitPtr => v
  440. ! end subroutine
  441. ! subroutine SubscribeAccumulatorPressure(v)
  442. ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeAccumulatorPressure
  443. ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeAccumulatorPressure' :: SubscribeAccumulatorPressure
  444. ! implicit none
  445. ! procedure (ActionInteger) :: v
  446. ! AccumulatorPressurePtr => v
  447. ! end subroutine
  448. ! subroutine SubscribeManifoldPressure(v)
  449. ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeManifoldPressure
  450. ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeManifoldPressure' :: SubscribeManifoldPressure
  451. ! implicit none
  452. ! procedure (ActionInteger) :: v
  453. ! ManifoldPressurePtr => v
  454. ! end subroutine
  455. ! subroutine SubscribeAnnularPressure(v)
  456. ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeAnnularPressure
  457. ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeAnnularPressure' :: SubscribeAnnularPressure
  458. ! implicit none
  459. ! procedure (ActionInteger) :: v
  460. ! AnnularPressurePtr => v
  461. ! end subroutine
  462. ! subroutine SubscribeRigAirPressure(v)
  463. ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeRigAirPressure
  464. ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeRigAirPressure' :: SubscribeRigAirPressure
  465. ! implicit none
  466. ! procedure (ActionInteger) :: v
  467. ! RigAirPressurePtr => v
  468. ! end subroutine
  469. ! subroutine SubscribeStandPipe1(v)
  470. ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeStandPipe1
  471. ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeStandPipe1' :: SubscribeStandPipe1
  472. ! implicit none
  473. ! procedure (ActionInteger) :: v
  474. ! StandPipe1Ptr => v
  475. ! end subroutine
  476. ! subroutine SubscribeStandPipe2(v)
  477. ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeStandPipe2
  478. ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeStandPipe2' :: SubscribeStandPipe2
  479. ! implicit none
  480. ! procedure (ActionInteger) :: v
  481. ! StandPipe2Ptr => v
  482. ! end subroutine
  483. ! subroutine SubscribeDrillPipePressure(v)
  484. ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeDrillPipePressure
  485. ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeDrillPipePressure' :: SubscribeDrillPipePressure
  486. ! implicit none
  487. ! procedure (ActionInteger) :: v
  488. ! DrillPipePressurePtr => v
  489. ! end subroutine
  490. ! subroutine SubscribeChokePosition(v)
  491. ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeChokePosition
  492. ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeChokePosition' :: SubscribeChokePosition
  493. ! implicit none
  494. ! procedure (ActionInteger) :: v
  495. ! ChokePositionPtr => v
  496. ! end subroutine
  497. ! subroutine SubscribeCasingPressure2(v)
  498. ! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeCasingPressure2
  499. ! !DEC$ ATTRIBUTES ALIAS: 'SubscribeCasingPressure2' :: SubscribeCasingPressure2
  500. ! implicit none
  501. ! procedure (ActionInteger) :: v
  502. ! CasingPressure2Ptr => v
  503. ! end subroutine
  504. end module CGaugesProblemsVariables