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.

CPumps.f90 14 KiB

1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381
  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