Simulation Core
Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
 
 
 
 
 
 

289 righe
22 KiB

  1. # 1 "/mnt/c/Projects/VSIM/SimulationCore2/CSharp/Problems/CChokeProblems.f90"
  2. module CChokeProblems
  3. use SimulationVariables
  4. implicit none
  5. public
  6. contains
  7. subroutine ChokeProblemsFromJson(parent)
  8. type(json_value),pointer :: parent
  9. type(json_core) :: json
  10. type(json_value),pointer :: p,pval
  11. call json%get(parent,'ChokeProblems',p)
  12. call ProblemFromJson(p,"HydraulicChoke1Plugged",data%problems%ChokeProblems%HydraulicChoke1Plugged)
  13. call ProblemFromJson(p,"HydraulicChoke1Fail",data%problems%ChokeProblems%HydraulicChoke1Fail)
  14. call ProblemFromJson(p,"HydraulicChoke1Washout",data%problems%ChokeProblems%HydraulicChoke1Washout)
  15. call ProblemFromJson(p,"HydraulicChoke2Plugged",data%problems%ChokeProblems%HydraulicChoke2Plugged)
  16. call ProblemFromJson(p,"HydraulicChoke2Fail",data%problems%ChokeProblems%HydraulicChoke2Fail)
  17. call ProblemFromJson(p,"HydraulicChoke2Washout",data%problems%ChokeProblems%HydraulicChoke2Washout)
  18. call ProblemFromJson(p,"ManualChoke1Plugged",data%problems%ChokeProblems%ManualChoke1Plugged)
  19. call ProblemFromJson(p,"ManualChoke1Fail",data%problems%ChokeProblems%ManualChoke1Fail)
  20. call ProblemFromJson(p,"ManualChoke1Washout",data%problems%ChokeProblems%ManualChoke1Washout)
  21. call ProblemFromJson(p,"ManualChoke2Plugged",data%problems%ChokeProblems%ManualChoke2Plugged)
  22. call ProblemFromJson(p,"ManualChoke2Fail",data%problems%ChokeProblems%ManualChoke2Fail)
  23. call ProblemFromJson(p,"ManualChoke2Washout",data%problems%ChokeProblems%ManualChoke2Washout)
  24. call ProblemFromJson(p,"ChokePanelAirFail",data%problems%ChokeProblems%ChokePanelAirFail)
  25. call json%get(p,'ManualChoke1PluggedPercent',pval)
  26. call json%get(pval,data%problems%ChokeProblems%ManualChoke1PluggedPercent)
  27. call json%get(p,'HydraulicChoke2PluggedPercent',pval)
  28. call json%get(pval,data%problems%ChokeProblems%HydraulicChoke2PluggedPercent)
  29. call json%get(p,'HydraulicChoke1PluggedPercent',pval)
  30. call json%get(pval,data%problems%ChokeProblems%HydraulicChoke1PluggedPercent)
  31. call json%get(p,'ManualChoke2PluggedPercent',pval)
  32. call json%get(pval,data%problems%ChokeProblems%ManualChoke2PluggedPercent)
  33. end subroutine
  34. subroutine ChokeProblemsToJson(parent)
  35. type(json_value),pointer :: parent
  36. type(json_core) :: json
  37. type(json_value),pointer :: p
  38. ! 1. create new node
  39. call json%create_object(p,'ChokeProblems')
  40. ! 2. add member of data type to new node
  41. call ProblemToJson(p,"HydraulicChoke1Plugged",data%problems%ChokeProblems%HydraulicChoke1Plugged)
  42. call ProblemToJson(p,"HydraulicChoke1Fail",data%problems%ChokeProblems%HydraulicChoke1Fail)
  43. call ProblemToJson(p,"HydraulicChoke1Washout",data%problems%ChokeProblems%HydraulicChoke1Washout)
  44. call ProblemToJson(p,"HydraulicChoke2Plugged",data%problems%ChokeProblems%HydraulicChoke2Plugged)
  45. call ProblemToJson(p,"HydraulicChoke2Fail",data%problems%ChokeProblems%HydraulicChoke2Fail)
  46. call ProblemToJson(p,"HydraulicChoke2Washout",data%problems%ChokeProblems%HydraulicChoke2Washout)
  47. call ProblemToJson(p,"ManualChoke1Plugged",data%problems%ChokeProblems%ManualChoke1Plugged)
  48. call ProblemToJson(p,"ManualChoke1Fail",data%problems%ChokeProblems%ManualChoke1Fail)
  49. call ProblemToJson(p,"ManualChoke1Washout",data%problems%ChokeProblems%ManualChoke1Washout)
  50. call ProblemToJson(p,"ManualChoke2Plugged",data%problems%ChokeProblems%ManualChoke2Plugged)
  51. call ProblemToJson(p,"ManualChoke2Fail",data%problems%ChokeProblems%ManualChoke2Fail)
  52. call ProblemToJson(p,"ManualChoke2Washout",data%problems%ChokeProblems%ManualChoke2Washout)
  53. call ProblemToJson(p,"ChokePanelAirFail",data%problems%ChokeProblems%ChokePanelAirFail)
  54. call json%add(p,"ManualChoke1PluggedPercent",data%problems%ChokeProblems%ManualChoke1PluggedPercent)
  55. call json%add(p,"HydraulicChoke2PluggedPercent",data%problems%ChokeProblems%HydraulicChoke2PluggedPercent)
  56. call json%add(p,"HydraulicChoke1PluggedPercent",data%problems%ChokeProblems%HydraulicChoke1PluggedPercent)
  57. call json%add(p,"ManualChoke2PluggedPercent",data%problems%ChokeProblems%ManualChoke2PluggedPercent)
  58. ! 3. add new node to parent
  59. call json%add(parent,p)
  60. end subroutine
  61. subroutine ProcessChokeProblemsDueTime(time)
  62. implicit none
  63. integer :: time
  64. if(data%problems%ChokeProblems%HydraulicChoke1Plugged%ProblemType == Time_ProblemType) call ProcessDueTime(data%problems%ChokeProblems%HydraulicChoke1Plugged, ChangeHydraulicChoke1Plugged, time)
  65. if(data%problems%ChokeProblems%HydraulicChoke1Fail%ProblemType == Time_ProblemType) call ProcessDueTime(data%problems%ChokeProblems%HydraulicChoke1Fail, ChangeHydraulicChoke1Fail, time)
  66. if(data%problems%ChokeProblems%HydraulicChoke1Washout%ProblemType == Time_ProblemType) call ProcessDueTime(data%problems%ChokeProblems%HydraulicChoke1Washout, ChangeHydraulicChoke1Washout, time)
  67. if(data%problems%ChokeProblems%HydraulicChoke2Plugged%ProblemType == Time_ProblemType) call ProcessDueTime(data%problems%ChokeProblems%HydraulicChoke2Plugged, ChangeHydraulicChoke2Plugged, time)
  68. if(data%problems%ChokeProblems%HydraulicChoke2Fail%ProblemType == Time_ProblemType) call ProcessDueTime(data%problems%ChokeProblems%HydraulicChoke2Fail, ChangeHydraulicChoke2Fail, time)
  69. if(data%problems%ChokeProblems%HydraulicChoke2Washout%ProblemType == Time_ProblemType) call ProcessDueTime(data%problems%ChokeProblems%HydraulicChoke2Washout, ChangeHydraulicChoke2Washout, time)
  70. if(data%problems%ChokeProblems%ManualChoke1Plugged%ProblemType == Time_ProblemType) call ProcessDueTime(data%problems%ChokeProblems%ManualChoke1Plugged, ChangeManualChoke1Plugged, time)
  71. if(data%problems%ChokeProblems%ManualChoke1Fail%ProblemType == Time_ProblemType) call ProcessDueTime(data%problems%ChokeProblems%ManualChoke1Fail, ChangeManualChoke1Fail, time)
  72. if(data%problems%ChokeProblems%ManualChoke1Washout%ProblemType == Time_ProblemType) call ProcessDueTime(data%problems%ChokeProblems%ManualChoke1Washout, ChangeManualChoke1Washout, time)
  73. if(data%problems%ChokeProblems%ManualChoke2Plugged%ProblemType == Time_ProblemType) call ProcessDueTime(data%problems%ChokeProblems%ManualChoke2Plugged, ChangeManualChoke2Plugged, time)
  74. if(data%problems%ChokeProblems%ManualChoke2Fail%ProblemType == Time_ProblemType) call ProcessDueTime(data%problems%ChokeProblems%ManualChoke2Fail, ChangeManualChoke2Fail, time)
  75. if(data%problems%ChokeProblems%ManualChoke2Washout%ProblemType == Time_ProblemType) call ProcessDueTime(data%problems%ChokeProblems%ManualChoke2Washout, ChangeManualChoke2Washout, time)
  76. if(data%problems%ChokeProblems%ChokePanelAirFail%ProblemType == Time_ProblemType) call ProcessDueTime(data%problems%ChokeProblems%ChokePanelAirFail, ChangeChokePanelAirFail, time)
  77. end subroutine
  78. subroutine ProcessChokeProblemsDuePumpStrokes(strokes)
  79. implicit none
  80. integer :: strokes
  81. if(data%problems%ChokeProblems%HydraulicChoke1Plugged%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(data%problems%ChokeProblems%HydraulicChoke1Plugged, ChangeHydraulicChoke1Plugged, strokes)
  82. if(data%problems%ChokeProblems%HydraulicChoke1Fail%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(data%problems%ChokeProblems%HydraulicChoke1Fail, ChangeHydraulicChoke1Fail, strokes)
  83. if(data%problems%ChokeProblems%HydraulicChoke1Washout%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(data%problems%ChokeProblems%HydraulicChoke1Washout, ChangeHydraulicChoke1Washout, strokes)
  84. if(data%problems%ChokeProblems%HydraulicChoke2Plugged%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(data%problems%ChokeProblems%HydraulicChoke2Plugged, ChangeHydraulicChoke2Plugged, strokes)
  85. if(data%problems%ChokeProblems%HydraulicChoke2Fail%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(data%problems%ChokeProblems%HydraulicChoke2Fail, ChangeHydraulicChoke2Fail, strokes)
  86. if(data%problems%ChokeProblems%HydraulicChoke2Washout%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(data%problems%ChokeProblems%HydraulicChoke2Washout, ChangeHydraulicChoke2Washout, strokes)
  87. if(data%problems%ChokeProblems%ManualChoke1Plugged%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(data%problems%ChokeProblems%ManualChoke1Plugged, ChangeManualChoke1Plugged, strokes)
  88. if(data%problems%ChokeProblems%ManualChoke1Fail%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(data%problems%ChokeProblems%ManualChoke1Fail, ChangeManualChoke1Fail, strokes)
  89. if(data%problems%ChokeProblems%ManualChoke1Washout%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(data%problems%ChokeProblems%ManualChoke1Washout, ChangeManualChoke1Washout, strokes)
  90. if(data%problems%ChokeProblems%ManualChoke2Plugged%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(data%problems%ChokeProblems%ManualChoke2Plugged, ChangeManualChoke2Plugged, strokes)
  91. if(data%problems%ChokeProblems%ManualChoke2Fail%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(data%problems%ChokeProblems%ManualChoke2Fail, ChangeManualChoke2Fail, strokes)
  92. if(data%problems%ChokeProblems%ManualChoke2Washout%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(data%problems%ChokeProblems%ManualChoke2Washout, ChangeManualChoke2Washout, strokes)
  93. if(data%problems%ChokeProblems%ChokePanelAirFail%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(data%problems%ChokeProblems%ChokePanelAirFail, ChangeChokePanelAirFail, strokes)
  94. end subroutine
  95. subroutine ProcessChokeProblemsDueVolumePumped(volume)
  96. implicit none
  97. real(8) :: volume
  98. if(data%problems%ChokeProblems%HydraulicChoke1Plugged%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(data%problems%ChokeProblems%HydraulicChoke1Plugged, ChangeHydraulicChoke1Plugged, volume)
  99. if(data%problems%ChokeProblems%HydraulicChoke1Fail%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(data%problems%ChokeProblems%HydraulicChoke1Fail, ChangeHydraulicChoke1Fail, volume)
  100. if(data%problems%ChokeProblems%HydraulicChoke1Washout%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(data%problems%ChokeProblems%HydraulicChoke1Washout, ChangeHydraulicChoke1Washout, volume)
  101. if(data%problems%ChokeProblems%HydraulicChoke2Plugged%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(data%problems%ChokeProblems%HydraulicChoke2Plugged, ChangeHydraulicChoke2Plugged, volume)
  102. if(data%problems%ChokeProblems%HydraulicChoke2Fail%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(data%problems%ChokeProblems%HydraulicChoke2Fail, ChangeHydraulicChoke2Fail, volume)
  103. if(data%problems%ChokeProblems%HydraulicChoke2Washout%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(data%problems%ChokeProblems%HydraulicChoke2Washout, ChangeHydraulicChoke2Washout, volume)
  104. if(data%problems%ChokeProblems%ManualChoke1Plugged%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(data%problems%ChokeProblems%ManualChoke1Plugged, ChangeManualChoke1Plugged, volume)
  105. if(data%problems%ChokeProblems%ManualChoke1Fail%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(data%problems%ChokeProblems%ManualChoke1Fail, ChangeManualChoke1Fail, volume)
  106. if(data%problems%ChokeProblems%ManualChoke1Washout%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(data%problems%ChokeProblems%ManualChoke1Washout, ChangeManualChoke1Washout, volume)
  107. if(data%problems%ChokeProblems%ManualChoke2Plugged%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(data%problems%ChokeProblems%ManualChoke2Plugged, ChangeManualChoke2Plugged, volume)
  108. if(data%problems%ChokeProblems%ManualChoke2Fail%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(data%problems%ChokeProblems%ManualChoke2Fail, ChangeManualChoke2Fail, volume)
  109. if(data%problems%ChokeProblems%ManualChoke2Washout%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(data%problems%ChokeProblems%ManualChoke2Washout, ChangeManualChoke2Washout, volume)
  110. if(data%problems%ChokeProblems%ChokePanelAirFail%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(data%problems%ChokeProblems%ChokePanelAirFail, ChangeChokePanelAirFail, volume)
  111. end subroutine
  112. subroutine ProcessChokeProblemsDueDistanceDrilled(distance)
  113. implicit none
  114. real(8) :: distance
  115. if(data%problems%ChokeProblems%HydraulicChoke1Plugged%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(data%problems%ChokeProblems%HydraulicChoke1Plugged, ChangeHydraulicChoke1Plugged, distance)
  116. if(data%problems%ChokeProblems%HydraulicChoke1Fail%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(data%problems%ChokeProblems%HydraulicChoke1Fail, ChangeHydraulicChoke1Fail, distance)
  117. if(data%problems%ChokeProblems%HydraulicChoke1Washout%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(data%problems%ChokeProblems%HydraulicChoke1Washout, ChangeHydraulicChoke1Washout, distance)
  118. if(data%problems%ChokeProblems%HydraulicChoke2Plugged%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(data%problems%ChokeProblems%HydraulicChoke2Plugged, ChangeHydraulicChoke2Plugged, distance)
  119. if(data%problems%ChokeProblems%HydraulicChoke2Fail%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(data%problems%ChokeProblems%HydraulicChoke2Fail, ChangeHydraulicChoke2Fail, distance)
  120. if(data%problems%ChokeProblems%HydraulicChoke2Washout%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(data%problems%ChokeProblems%HydraulicChoke2Washout, ChangeHydraulicChoke2Washout, distance)
  121. if(data%problems%ChokeProblems%ManualChoke1Plugged%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(data%problems%ChokeProblems%ManualChoke1Plugged, ChangeManualChoke1Plugged, distance)
  122. if(data%problems%ChokeProblems%ManualChoke1Fail%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(data%problems%ChokeProblems%ManualChoke1Fail, ChangeManualChoke1Fail, distance)
  123. if(data%problems%ChokeProblems%ManualChoke1Washout%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(data%problems%ChokeProblems%ManualChoke1Washout, ChangeManualChoke1Washout, distance)
  124. if(data%problems%ChokeProblems%ManualChoke2Plugged%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(data%problems%ChokeProblems%ManualChoke2Plugged, ChangeManualChoke2Plugged, distance)
  125. if(data%problems%ChokeProblems%ManualChoke2Fail%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(data%problems%ChokeProblems%ManualChoke2Fail, ChangeManualChoke2Fail, distance)
  126. if(data%problems%ChokeProblems%ManualChoke2Washout%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(data%problems%ChokeProblems%ManualChoke2Washout, ChangeManualChoke2Washout, distance)
  127. if(data%problems%ChokeProblems%ChokePanelAirFail%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(data%problems%ChokeProblems%ChokePanelAirFail, ChangeChokePanelAirFail, distance)
  128. end subroutine
  129. subroutine ChangeHydraulicChoke1Plugged(status)
  130. USE CHOKEVARIABLES
  131. use SimulationVariables !@
  132. implicit none
  133. integer, intent (in) :: status
  134. ! if(associated(HydraulicChoke1PluggedPtr)) call HydraulicChoke1PluggedPtr(status)
  135. if(status == Clear_StatusType) data%State%CHOOKE(1)%PlugMalf = 0
  136. if(status == Executed_StatusType) data%State%CHOOKE(1)%PlugMalf = 1
  137. endsubroutine
  138. subroutine ChangeHydraulicChoke1Fail(status)
  139. USE CHOKEVARIABLES
  140. use SimulationVariables !@
  141. implicit none
  142. integer, intent (in) :: status
  143. ! if(associated(HydraulicChoke1FailPtr)) call HydraulicChoke1FailPtr(status)
  144. if(status == Clear_StatusType) data%State%CHOOKE(1)%FailMalf = 0
  145. if(status == Executed_StatusType) data%State%CHOOKE(1)%FailMalf = 1
  146. endsubroutine
  147. subroutine ChangeHydraulicChoke1Washout(status)
  148. USE CHOKEVARIABLES
  149. use SimulationVariables !@
  150. use CChokeManifoldVariables
  151. use SimulationVariables
  152. implicit none
  153. integer, intent (in) :: status
  154. ! if(associated(HydraulicChoke1WashoutPtr)) call HydraulicChoke1WashoutPtr(status)
  155. if(status == Clear_StatusType) data%State%CHOOKE(1)%WashoutMalf = 0
  156. if(status == Executed_StatusType) data%State%CHOOKE(1)%WashoutMalf = 1
  157. if(status == Clear_StatusType) data%Equipments%ChokeManifold%HyChock1OnProblem = .false.
  158. if(status == Executed_StatusType) data%Equipments%ChokeManifold%HyChock1OnProblem = .true.
  159. endsubroutine
  160. subroutine ChangeHydraulicChoke2Plugged(status)
  161. USE CHOKEVARIABLES
  162. use SimulationVariables !@
  163. implicit none
  164. integer, intent (in) :: status
  165. ! if(associated(HydraulicChoke2PluggedPtr)) call HydraulicChoke2PluggedPtr(status)
  166. if(status == Clear_StatusType) data%State%CHOOKE(2)%PlugMalf = 0
  167. if(status == Executed_StatusType) data%State%CHOOKE(2)%PlugMalf = 1
  168. endsubroutine
  169. subroutine ChangeHydraulicChoke2Fail(status)
  170. USE CHOKEVARIABLES
  171. use SimulationVariables !@
  172. implicit none
  173. integer, intent (in) :: status
  174. ! if(associated(HydraulicChoke2FailPtr)) call HydraulicChoke2FailPtr(status)
  175. if(status == Clear_StatusType) data%State%CHOOKE(2)%FailMalf = 0
  176. if(status == Executed_StatusType) data%State%CHOOKE(2)%FailMalf = 1
  177. endsubroutine
  178. subroutine ChangeHydraulicChoke2Washout(status)
  179. USE CHOKEVARIABLES
  180. use SimulationVariables !@
  181. use CChokeManifoldVariables
  182. use SimulationVariables
  183. implicit none
  184. integer, intent (in) :: status
  185. ! if(associated(HydraulicChoke2WashoutPtr)) call HydraulicChoke2WashoutPtr(status)
  186. if(status == Clear_StatusType) data%State%CHOOKE(2)%WashoutMalf = 0
  187. if(status == Executed_StatusType) data%State%CHOOKE(2)%WashoutMalf = 1
  188. if(status == Clear_StatusType) data%Equipments%ChokeManifold%HyChock2OnProblem = .false.
  189. if(status == Executed_StatusType) data%Equipments%ChokeManifold%HyChock2OnProblem = .true.
  190. endsubroutine
  191. subroutine ChangeManualChoke1Plugged(status)
  192. USE FricPressDropVarsModule
  193. implicit none
  194. integer, intent (in) :: status
  195. ! if(associated(ManualChoke1PluggedPtr)) call ManualChoke1PluggedPtr(status)
  196. if(status == Clear_StatusType) data%State%FricPressDrop%ManChoke1Plug = 0
  197. if(status == Executed_StatusType) data%State%FricPressDrop%ManChoke1Plug = 1
  198. endsubroutine
  199. subroutine ChangeManualChoke1Fail(status)
  200. implicit none
  201. integer, intent (in) :: status
  202. ! if(associated(ManualChoke1FailPtr)) call ManualChoke1FailPtr(status)
  203. !if(status == Clear_StatusType) print*,'On_ManualChoke1Fail_Clear'
  204. !if(status == Executed_StatusType) print*,'On_ManualChoke1Fail_Execute'
  205. endsubroutine
  206. subroutine ChangeManualChoke1Washout(status)
  207. USE FricPressDropVarsModule
  208. use CChokeManifoldVariables
  209. use SimulationVariables
  210. implicit none
  211. integer, intent (in) :: status
  212. ! if(associated(ManualChoke1WashoutPtr)) call ManualChoke1WashoutPtr(status)
  213. if(status == Clear_StatusType) data%State%FricPressDrop%ManChoke1Washout = 0
  214. if(status == Executed_StatusType) data%State%FricPressDrop%ManChoke1Washout = 1
  215. if(status == Clear_StatusType) data%Equipments%ChokeManifold%LeftManChokeOnProblem = .false.
  216. if(status == Executed_StatusType) data%Equipments%ChokeManifold%LeftManChokeOnProblem = .true.
  217. endsubroutine
  218. subroutine ChangeManualChoke2Plugged(status)
  219. USE FricPressDropVarsModule
  220. implicit none
  221. integer, intent (in) :: status
  222. ! if(associated(ManualChoke2PluggedPtr)) call ManualChoke2PluggedPtr(status)
  223. if(status == Clear_StatusType) data%State%FricPressDrop%ManChoke2Plug = 0
  224. if(status == Executed_StatusType) data%State%FricPressDrop%ManChoke2Plug = 1
  225. endsubroutine
  226. subroutine ChangeManualChoke2Fail(status)
  227. implicit none
  228. integer, intent (in) :: status
  229. ! if(associated(ManualChoke2FailPtr)) call ManualChoke2FailPtr(status)
  230. !if(status == Clear_StatusType) print*,'On_ManualChoke2Fail_Clear'
  231. !if(status == Executed_StatusType) print*,'On_ManualChoke2Fail_Execute'
  232. endsubroutine
  233. subroutine ChangeManualChoke2Washout(status)
  234. USE FricPressDropVarsModule
  235. use CChokeManifoldVariables
  236. use SimulationVariables
  237. implicit none
  238. integer, intent (in) :: status
  239. ! if(associated(ManualChoke2WashoutPtr)) call ManualChoke2WashoutPtr(status)
  240. if(status == Clear_StatusType) data%State%FricPressDrop%ManChoke2Washout = 0
  241. if(status == Executed_StatusType) data%State%FricPressDrop%ManChoke2Washout = 1
  242. if(status == Clear_StatusType) data%Equipments%ChokeManifold%RightManChokeOnProblem = .false.
  243. if(status == Executed_StatusType) data%Equipments%ChokeManifold%RightManChokeOnProblem = .true.
  244. endsubroutine
  245. subroutine ChangeChokePanelAirFail(status)
  246. USE CHOKEVARIABLES
  247. use SimulationVariables !@
  248. implicit none
  249. integer, intent (in) :: status
  250. ! if(associated(ChokePanelAirFailPtr)) call ChokePanelAirFailPtr(status)
  251. if(status == Clear_StatusType) data%State%AirDrivenPump%ChokeAirFail = 0
  252. if(status == Executed_StatusType) data%State%AirDrivenPump%ChokeAirFail = 1
  253. endsubroutine
  254. end module CChokeProblems