Simulation Core
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

381 lines
14 KiB

  1. module CPumps
  2. use CPumpsVariables
  3. use CManifolds
  4. use CLog4
  5. implicit none
  6. public
  7. contains
  8. subroutine SetMudPump1LinerDiameter(v)
  9. !DEC$ ATTRIBUTES DLLEXPORT :: SetMudPump1LinerDiameter
  10. !DEC$ ATTRIBUTES ALIAS: 'SetMudPump1LinerDiameter' :: SetMudPump1LinerDiameter
  11. implicit none
  12. real*8, intent(in) :: v
  13. PumpsSpecification%MudPump1LinerDiameter = v
  14. call CalcPump1OutputBblStroke()
  15. #ifdef deb
  16. call Log_4( 'MudPump1LinerDiameter=', PumpsSpecification%MudPump1LinerDiameter)
  17. #endif
  18. end subroutine
  19. subroutine SetMudPump1Stroke(v)
  20. !DEC$ ATTRIBUTES DLLEXPORT :: SetMudPump1Stroke
  21. !DEC$ ATTRIBUTES ALIAS: 'SetMudPump1Stroke' :: SetMudPump1Stroke
  22. implicit none
  23. real*8, intent(in) :: v
  24. PumpsSpecification%MudPump1Stroke = v
  25. !call CalcMudPump1LinerDiameter()
  26. call CalcPump1OutputBblStroke()
  27. #ifdef deb
  28. call Log_4( 'MudPump1Stroke=', v)
  29. #endif
  30. end subroutine
  31. subroutine SetMudPump1MechanicalEfficiency(v)
  32. !DEC$ ATTRIBUTES DLLEXPORT :: SetMudPump1MechanicalEfficiency
  33. !DEC$ ATTRIBUTES ALIAS: 'SetMudPump1MechanicalEfficiency' :: SetMudPump1MechanicalEfficiency
  34. implicit none
  35. real*8, intent(in) :: v
  36. PumpsSpecification%MudPump1MechanicalEfficiency = v
  37. end subroutine
  38. subroutine SetMudPump1VolumetricEfficiency(v)
  39. !DEC$ ATTRIBUTES DLLEXPORT :: SetMudPump1VolumetricEfficiency
  40. !DEC$ ATTRIBUTES ALIAS: 'SetMudPump1VolumetricEfficiency' :: SetMudPump1VolumetricEfficiency
  41. implicit none
  42. real*8, intent(in) :: v
  43. PumpsSpecification%MudPump1VolumetricEfficiency = v
  44. !call CalcMudPump1LinerDiameter()
  45. call CalcPump1OutputBblStroke()
  46. #ifdef deb
  47. call Log_4( 'MudPump1VolumetricEfficiency=', PumpsSpecification%MudPump1VolumetricEfficiency)
  48. #endif
  49. end subroutine
  50. subroutine SetMudPump1Output(v)
  51. !DEC$ ATTRIBUTES DLLEXPORT :: SetMudPump1Output
  52. !DEC$ ATTRIBUTES ALIAS: 'SetMudPump1Output' :: SetMudPump1Output
  53. implicit none
  54. real*8, intent(in) :: v
  55. PumpsSpecification%MudPump1Output = v
  56. #ifdef deb
  57. print*, 'MudPump1Output=', PumpsSpecification%MudPump1Output
  58. #endif
  59. end subroutine
  60. subroutine SetMudPump1OutputBblStroke(v)
  61. !DEC$ ATTRIBUTES DLLEXPORT :: SetMudPump1OutputBblStroke
  62. !DEC$ ATTRIBUTES ALIAS: 'SetMudPump1OutputBblStroke' :: SetMudPump1OutputBblStroke
  63. implicit none
  64. real*8, intent(in) :: v
  65. PumpsSpecification%MudPump1OutputBblStroke = v
  66. call CalcMudPump1LinerDiameter()
  67. #ifdef deb
  68. print*, 'MudPump1OutputBblStroke=', PumpsSpecification%MudPump1OutputBblStroke
  69. #endif
  70. end subroutine
  71. subroutine SetMudPump1Maximum(v)
  72. !DEC$ ATTRIBUTES DLLEXPORT :: SetMudPump1Maximum
  73. !DEC$ ATTRIBUTES ALIAS: 'SetMudPump1Maximum' :: SetMudPump1Maximum
  74. implicit none
  75. real*8, intent(in) :: v
  76. PumpsSpecification%MudPump1Maximum = v
  77. end subroutine
  78. subroutine SetMudPump1ReliefValvePressure(v)
  79. !DEC$ ATTRIBUTES DLLEXPORT :: SetMudPump1ReliefValvePressure
  80. !DEC$ ATTRIBUTES ALIAS: 'SetMudPump1ReliefValvePressure' :: SetMudPump1ReliefValvePressure
  81. implicit none
  82. real*8, intent(in) :: v
  83. PumpsSpecification%MudPump1ReliefValvePressure = v
  84. end subroutine
  85. subroutine SetMudPump2LinerDiameter(v)
  86. !DEC$ ATTRIBUTES DLLEXPORT :: SetMudPump2LinerDiameter
  87. !DEC$ ATTRIBUTES ALIAS: 'SetMudPump2LinerDiameter' :: SetMudPump2LinerDiameter
  88. implicit none
  89. real*8, intent(in) :: v
  90. PumpsSpecification%MudPump2LinerDiameter = v
  91. call CalcPump2OutputBblStroke()
  92. #ifdef deb
  93. call Log_4( 'MudPump2LinerDiameter=', PumpsSpecification%MudPump2LinerDiameter)
  94. #endif
  95. end subroutine
  96. subroutine SetMudPump2Stroke(v)
  97. !DEC$ ATTRIBUTES DLLEXPORT :: SetMudPump2Stroke
  98. !DEC$ ATTRIBUTES ALIAS: 'SetMudPump2Stroke' :: SetMudPump2Stroke
  99. implicit none
  100. real*8, intent(in) :: v
  101. PumpsSpecification%MudPump2Stroke = v
  102. !call CalcMudPump2LinerDiameter()
  103. call CalcPump2OutputBblStroke()
  104. #ifdef deb
  105. call Log_4( 'MudPump2Stroke=', PumpsSpecification%MudPump2Stroke)
  106. #endif
  107. end subroutine
  108. subroutine SetMudPump2MechanicalEfficiency(v)
  109. !DEC$ ATTRIBUTES DLLEXPORT :: SetMudPump2MechanicalEfficiency
  110. !DEC$ ATTRIBUTES ALIAS: 'SetMudPump2MechanicalEfficiency' :: SetMudPump2MechanicalEfficiency
  111. implicit none
  112. real*8, intent(in) :: v
  113. PumpsSpecification%MudPump2MechanicalEfficiency = v
  114. end subroutine
  115. subroutine SetMudPump2VolumetricEfficiency(v)
  116. !DEC$ ATTRIBUTES DLLEXPORT :: SetMudPump2VolumetricEfficiency
  117. !DEC$ ATTRIBUTES ALIAS: 'SetMudPump2VolumetricEfficiency' :: SetMudPump2VolumetricEfficiency
  118. implicit none
  119. real*8, intent(in) :: v
  120. PumpsSpecification%MudPump2VolumetricEfficiency = v
  121. !call CalcMudPump2LinerDiameter()
  122. call CalcPump2OutputBblStroke()
  123. #ifdef deb
  124. call Log_4( 'MudPump2VolumetricEfficiency=', PumpsSpecification%MudPump2VolumetricEfficiency)
  125. #endif
  126. end subroutine
  127. subroutine SetMudPump2Output(v)
  128. !DEC$ ATTRIBUTES DLLEXPORT :: SetMudPump2Output
  129. !DEC$ ATTRIBUTES ALIAS: 'SetMudPump2Output' :: SetMudPump2Output
  130. implicit none
  131. real*8, intent(in) :: v
  132. PumpsSpecification%MudPump2Output = v
  133. #ifdef deb
  134. print*, 'MudPump2Output=', PumpsSpecification%MudPump2Output
  135. #endif
  136. end subroutine
  137. subroutine SetMudPump2OutputBblStroke(v)
  138. !DEC$ ATTRIBUTES DLLEXPORT :: SetMudPump2OutputBblStroke
  139. !DEC$ ATTRIBUTES ALIAS: 'SetMudPump2OutputBblStroke' :: SetMudPump2OutputBblStroke
  140. implicit none
  141. real*8, intent(in) :: v
  142. PumpsSpecification%MudPump2OutputBblStroke = v
  143. call CalcMudPump2LinerDiameter()
  144. #ifdef deb
  145. print*, 'MudPump2OutputBblStroke=', PumpsSpecification%MudPump2OutputBblStroke
  146. #endif
  147. end subroutine
  148. subroutine SetMudPump2Maximum(v)
  149. !DEC$ ATTRIBUTES DLLEXPORT :: SetMudPump2Maximum
  150. !DEC$ ATTRIBUTES ALIAS: 'SetMudPump2Maximum' :: SetMudPump2Maximum
  151. implicit none
  152. real*8, intent(in) :: v
  153. PumpsSpecification%MudPump2Maximum = v
  154. end subroutine
  155. subroutine SetMudPump2ReliefValvePressure(v)
  156. !DEC$ ATTRIBUTES DLLEXPORT :: SetMudPump2ReliefValvePressure
  157. !DEC$ ATTRIBUTES ALIAS: 'SetMudPump2ReliefValvePressure' :: SetMudPump2ReliefValvePressure
  158. implicit none
  159. real*8, intent(in) :: v
  160. PumpsSpecification%MudPump2ReliefValvePressure = v
  161. end subroutine
  162. subroutine SetCementPumpLinerDiameter(v)
  163. !DEC$ ATTRIBUTES DLLEXPORT :: SetCementPumpLinerDiameter
  164. !DEC$ ATTRIBUTES ALIAS: 'SetCementPumpLinerDiameter' :: SetCementPumpLinerDiameter
  165. implicit none
  166. real*8, intent(in) :: v
  167. PumpsSpecification%CementPumpLinerDiameter = v
  168. call CalcPump3OutputBblStroke()
  169. #ifdef deb
  170. call Log_4( 'CementPumpLinerDiameter=', PumpsSpecification%CementPumpLinerDiameter)
  171. #endif
  172. end subroutine
  173. subroutine SetCementPumpStroke(v)
  174. !DEC$ ATTRIBUTES DLLEXPORT :: SetCementPumpStroke
  175. !DEC$ ATTRIBUTES ALIAS: 'SetCementPumpStroke' :: SetCementPumpStroke
  176. implicit none
  177. real*8, intent(in) :: v
  178. PumpsSpecification%CementPumpStroke = v
  179. !call CalcMudPump3LinerDiameter()
  180. call CalcPump3OutputBblStroke()
  181. #ifdef deb
  182. call Log_4( 'CementPumpStroke=', PumpsSpecification%CementPumpStroke)
  183. #endif
  184. end subroutine
  185. subroutine SetCementPumpMechanicalEfficiency(v)
  186. !DEC$ ATTRIBUTES DLLEXPORT :: SetCementPumpMechanicalEfficiency
  187. !DEC$ ATTRIBUTES ALIAS: 'SetCementPumpMechanicalEfficiency' :: SetCementPumpMechanicalEfficiency
  188. implicit none
  189. real*8, intent(in) :: v
  190. PumpsSpecification%CementPumpMechanicalEfficiency = v
  191. end subroutine
  192. subroutine SetCementPumpVolumetricEfficiency(v)
  193. !DEC$ ATTRIBUTES DLLEXPORT :: SetCementPumpVolumetricEfficiency
  194. !DEC$ ATTRIBUTES ALIAS: 'SetCementPumpVolumetricEfficiency' :: SetCementPumpVolumetricEfficiency
  195. implicit none
  196. real*8, intent(in) :: v
  197. PumpsSpecification%CementPumpVolumetricEfficiency = v
  198. !call CalcMudPump3LinerDiameter()
  199. call CalcPump3OutputBblStroke()
  200. #ifdef deb
  201. call Log_4( 'CementPumpVolumetricEfficiency=', PumpsSpecification%CementPumpVolumetricEfficiency)
  202. #endif
  203. end subroutine
  204. subroutine SetCementPumpOutput(v)
  205. !DEC$ ATTRIBUTES DLLEXPORT :: SetCementPumpOutput
  206. !DEC$ ATTRIBUTES ALIAS: 'SetCementPumpOutput' :: SetCementPumpOutput
  207. implicit none
  208. real*8, intent(in) :: v
  209. PumpsSpecification%CementPumpOutput = v
  210. #ifdef deb
  211. print*, 'CementPumpOutput=', PumpsSpecification%CementPumpOutput
  212. #endif
  213. end subroutine
  214. subroutine SetCementPumpOutputBblStroke(v)
  215. !DEC$ ATTRIBUTES DLLEXPORT :: SetCementPumpOutputBblStroke
  216. !DEC$ ATTRIBUTES ALIAS: 'SetCementPumpOutputBblStroke' :: SetCementPumpOutputBblStroke
  217. implicit none
  218. real*8, intent(in) :: v
  219. PumpsSpecification%CementPumpOutputBblStroke = v
  220. call CalcMudPump3LinerDiameter()
  221. #ifdef deb
  222. print*, 'CementPumpOutputBblStroke=', PumpsSpecification%CementPumpOutputBblStroke
  223. #endif
  224. end subroutine
  225. subroutine SetCementPumpMaximum(v)
  226. !DEC$ ATTRIBUTES DLLEXPORT :: SetCementPumpMaximum
  227. !DEC$ ATTRIBUTES ALIAS: 'SetCementPumpMaximum' :: SetCementPumpMaximum
  228. implicit none
  229. real*8, intent(in) :: v
  230. PumpsSpecification%CementPumpMaximum = v
  231. end subroutine
  232. subroutine SetCementPumpReliefValvePressure(v)
  233. !DEC$ ATTRIBUTES DLLEXPORT :: SetCementPumpReliefValvePressure
  234. !DEC$ ATTRIBUTES ALIAS: 'SetCementPumpReliefValvePressure' :: SetCementPumpReliefValvePressure
  235. implicit none
  236. real*8, intent(in) :: v
  237. PumpsSpecification%CementPumpReliefValvePressure = v
  238. end subroutine
  239. subroutine SetMudPump1ReliefValveIsSet(v)
  240. !DEC$ ATTRIBUTES DLLEXPORT :: SetMudPump1ReliefValveIsSet
  241. !DEC$ ATTRIBUTES ALIAS: 'SetMudPump1ReliefValveIsSet' :: SetMudPump1ReliefValveIsSet
  242. implicit none
  243. logical, intent(in) :: v
  244. if (PumpsSpecification%MudPump1ReliefValveIsSet == v) return
  245. PumpsSpecification%MudPump1ReliefValveIsSet = v
  246. #ifdef deb
  247. print*, 'MudPump1ReliefValveIsSet=', PumpsSpecification%MudPump1ReliefValveIsSet
  248. #endif
  249. end subroutine
  250. subroutine SetMudPump2ReliefValveIsSet(v)
  251. !DEC$ ATTRIBUTES DLLEXPORT :: SetMudPump2ReliefValveIsSet
  252. !DEC$ ATTRIBUTES ALIAS: 'SetMudPump2ReliefValveIsSet' :: SetMudPump2ReliefValveIsSet
  253. implicit none
  254. logical, intent(in) :: v
  255. if (PumpsSpecification%MudPump2ReliefValveIsSet == v) return
  256. PumpsSpecification%MudPump2ReliefValveIsSet = v
  257. #ifdef deb
  258. print*, 'MudPump2ReliefValveIsSet=', PumpsSpecification%MudPump2ReliefValveIsSet
  259. #endif
  260. end subroutine
  261. subroutine SetCementPumpReliefValveIsSet(v)
  262. !DEC$ ATTRIBUTES DLLEXPORT :: SetCementPumpReliefValveIsSet
  263. !DEC$ ATTRIBUTES ALIAS: 'SetCementPumpReliefValveIsSet' :: SetCementPumpReliefValveIsSet
  264. implicit none
  265. logical, intent(in) :: v
  266. if (PumpsSpecification%CementPumpReliefValveIsSet == v) return
  267. PumpsSpecification%CementPumpReliefValveIsSet = v
  268. #ifdef deb
  269. print*, 'CementPumpReliefValveIsSet=', PumpsSpecification%CementPumpReliefValveIsSet
  270. #endif
  271. end subroutine
  272. subroutine SetManualPumpPower(v)
  273. !DEC$ ATTRIBUTES DLLEXPORT :: SetManualPumpPower
  274. !DEC$ ATTRIBUTES ALIAS: 'SetManualPumpPower' :: SetManualPumpPower
  275. implicit none
  276. logical, intent(in) :: v
  277. PumpsSpecification%ManualPumpPower = v
  278. call ChangeValve(23, v)
  279. #ifdef deb
  280. print*, 'ManualPumpPower=', PumpsSpecification%ManualPumpPower
  281. #endif
  282. end subroutine
  283. subroutine SetValve1(v)
  284. !DEC$ ATTRIBUTES DLLEXPORT :: SetValve1
  285. !DEC$ ATTRIBUTES ALIAS: 'SetValve1' :: SetValve1
  286. implicit none
  287. logical, intent(in) :: v
  288. PumpsSpecification%Valve1 = v
  289. call ChangeValve(22, v)
  290. #ifdef deb
  291. print*, 'Valve1=', PumpsSpecification%Valve1
  292. #endif
  293. end subroutine
  294. subroutine SetValve2(v)
  295. !DEC$ ATTRIBUTES DLLEXPORT :: SetValve2
  296. !DEC$ ATTRIBUTES ALIAS: 'SetValve2' :: SetValve2
  297. implicit none
  298. logical, intent(in) :: v
  299. PumpsSpecification%Valve2 = v
  300. call ChangeValve(19, v)
  301. #ifdef deb
  302. print*, 'Valve2=', PumpsSpecification%Valve2
  303. #endif
  304. end subroutine
  305. subroutine SetValve3(v)
  306. !DEC$ ATTRIBUTES DLLEXPORT :: SetValve3
  307. !DEC$ ATTRIBUTES ALIAS: 'SetValve3' :: SetValve3
  308. implicit none
  309. logical, intent(in) :: v
  310. PumpsSpecification%Valve3 = v
  311. call ChangeValve(21, v)
  312. #ifdef deb
  313. print*, 'Valve3=', PumpsSpecification%Valve3
  314. #endif
  315. end subroutine
  316. subroutine SetValve4(v)
  317. !DEC$ ATTRIBUTES DLLEXPORT :: SetValve4
  318. !DEC$ ATTRIBUTES ALIAS: 'SetValve4' :: SetValve4
  319. implicit none
  320. logical, intent(in) :: v
  321. PumpsSpecification%Valve4 = v
  322. call ChangeValve(20, v)
  323. #ifdef deb
  324. print*, 'Valve4=', PumpsSpecification%Valve4
  325. #endif
  326. end subroutine
  327. subroutine SetValve5(v)
  328. !DEC$ ATTRIBUTES DLLEXPORT :: SetValve5
  329. !DEC$ ATTRIBUTES ALIAS: 'SetValve5' :: SetValve5
  330. implicit none
  331. logical, intent(in) :: v
  332. PumpsSpecification%Valve5 = v
  333. call ChangeValve(24, v)
  334. #ifdef deb
  335. print*, 'Valve5=', PumpsSpecification%Valve5
  336. #endif
  337. end subroutine
  338. end module CPumps