Simulation Core
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

1 рік тому
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568
  1. module CWarnings
  2. ! use CWarnings
  3. use SimulationVariables
  4. implicit none
  5. public
  6. contains
  7. subroutine Activate_PumpWithKellyDisconnected()
  8. implicit none
  9. if(data%Warnings%PumpWithKellyDisconnected) return
  10. data%Warnings%PumpWithKellyDisconnected = .true.
  11. call RunPumpWithKellyDisconnected()
  12. end subroutine
  13. subroutine Activate_PumpWithTopdriveDisconnected()
  14. implicit none
  15. if(data%Warnings%PumpWithTopdriveDisconnected) return
  16. data%Warnings%PumpWithTopdriveDisconnected = .true.
  17. call RunPumpWithTopdriveDisconnected()
  18. end subroutine
  19. subroutine Activate_Pump1PopOffValveBlown()
  20. implicit none
  21. if(data%Warnings%Pump1PopOffValveBlown) return
  22. data%Warnings%Pump1PopOffValveBlown = .true.
  23. call RunPump1PopOffValveBlown()
  24. end subroutine
  25. subroutine Activate_Pump1Failure()
  26. implicit none
  27. if(data%Warnings%Pump1Failure) return
  28. data%Warnings%Pump1Failure = .true.
  29. call RunPump1Failure()
  30. end subroutine
  31. subroutine Activate_Pump2PopOffValveBlown()
  32. implicit none
  33. if(data%Warnings%Pump2PopOffValveBlown) return
  34. data%Warnings%Pump2PopOffValveBlown = .true.
  35. call RunPump2PopOffValveBlown()
  36. end subroutine
  37. subroutine Activate_Pump2Failure()
  38. implicit none
  39. if(data%Warnings%Pump2Failure) return
  40. data%Warnings%Pump2Failure = .true.
  41. call RunPump2Failure()
  42. end subroutine
  43. subroutine Activate_Pump3PopOffValveBlown()
  44. implicit none
  45. if(data%Warnings%Pump3PopOffValveBlown) return
  46. data%Warnings%Pump3PopOffValveBlown = .true.
  47. call RunPump3PopOffValveBlown()
  48. end subroutine
  49. subroutine Activate_Pump3Failure()
  50. implicit none
  51. if(data%Warnings%Pump3Failure) return
  52. data%Warnings%Pump3Failure = .true.
  53. call RunPump3Failure()
  54. end subroutine
  55. subroutine Activate_DrawworksGearsAbuse()
  56. implicit none
  57. if(data%Warnings%DrawworksGearsAbuse) return
  58. data%Warnings%DrawworksGearsAbuse = .true.
  59. call RunDrawworksGearsAbuse()
  60. end subroutine
  61. subroutine Activate_RotaryGearsAbuse()
  62. implicit none
  63. if(data%Warnings%RotaryGearsAbuse) return
  64. data%Warnings%RotaryGearsAbuse = .true.
  65. call RunRotaryGearsAbuse()
  66. end subroutine
  67. subroutine Activate_HoistLineBreak()
  68. implicit none
  69. if(data%Warnings%HoistLineBreak) return
  70. data%Warnings%HoistLineBreak = .true.
  71. call RunHoistLineBreak()
  72. end subroutine
  73. subroutine Activate_PartedDrillString()
  74. implicit none
  75. if(data%Warnings%PartedDrillString) return
  76. data%Warnings%PartedDrillString = .true.
  77. call RunPartedDrillString()
  78. end subroutine
  79. subroutine Activate_ActiveTankOverflow()
  80. implicit none
  81. if(data%Warnings%ActiveTankOverflow) return
  82. data%Warnings%ActiveTankOverflow = .true.
  83. call RunActiveTankOverflow()
  84. end subroutine
  85. subroutine Activate_ActiveTankUnderVolume()
  86. implicit none
  87. if(data%Warnings%ActiveTankUnderVolume) return
  88. data%Warnings%ActiveTankUnderVolume = .true.
  89. call RunActiveTankUnderVolume()
  90. end subroutine
  91. subroutine Activate_TripTankOverflow()
  92. implicit none
  93. if(data%Warnings%TripTankOverflow) return
  94. data%Warnings%TripTankOverflow = .true.
  95. call RunTripTankOverflow()
  96. end subroutine
  97. subroutine Activate_DrillPipeTwistOff()
  98. implicit none
  99. if(data%Warnings%DrillPipeTwistOff) return
  100. data%Warnings%DrillPipeTwistOff = .true.
  101. call RunDrillPipeTwistOff()
  102. end subroutine
  103. subroutine Activate_DrillPipeParted()
  104. implicit none
  105. if(data%Warnings%DrillPipeParted) return
  106. data%Warnings%DrillPipeParted = .true.
  107. call RunDrillPipeParted()
  108. end subroutine
  109. subroutine Activate_TripWithSlipsSet()
  110. implicit none
  111. if(data%Warnings%TripWithSlipsSet) return
  112. data%Warnings%TripWithSlipsSet = .true.
  113. call RunTripWithSlipsSet()
  114. end subroutine
  115. subroutine Activate_Blowout()
  116. implicit none
  117. if(data%Warnings%Blowout) return
  118. data%Warnings%Blowout = .true.
  119. call RunBlowout()
  120. end subroutine
  121. subroutine Activate_UndergroundBlowout()
  122. implicit none
  123. if(data%Warnings%UndergroundBlowout) return
  124. data%Warnings%UndergroundBlowout = .true.
  125. call RunUndergroundBlowout()
  126. end subroutine
  127. subroutine Activate_MaximumWellDepthExceeded()
  128. implicit none
  129. if(data%Warnings%MaximumWellDepthExceeded) return
  130. data%Warnings%MaximumWellDepthExceeded = .true.
  131. call RunMaximumWellDepthExceeded()
  132. end subroutine
  133. subroutine Activate_CrownCollision()
  134. implicit none
  135. if(data%Warnings%CrownCollision) return
  136. data%Warnings%CrownCollision = .true.
  137. call RunCrownCollision()
  138. end subroutine
  139. subroutine Activate_FloorCollision()
  140. implicit none
  141. if(data%Warnings%FloorCollision) return
  142. data%Warnings%FloorCollision = .true.
  143. call RunFloorCollision()
  144. end subroutine
  145. subroutine Activate_TopdriveRotaryTableConfilict()
  146. implicit none
  147. if(data%Warnings%TopdriveRotaryTableConfilict) return
  148. data%Warnings%TopdriveRotaryTableConfilict = .true.
  149. call RunTopdriveRotaryTableConfilict()
  150. end subroutine
  151. subroutine Deactivate_PumpWithKellyDisconnected()
  152. implicit none
  153. if(.not.data%Warnings%PumpWithKellyDisconnected) return
  154. data%Warnings%PumpWithKellyDisconnected = .false.
  155. call RunPumpWithKellyDisconnected()
  156. end subroutine
  157. subroutine Deactivate_PumpWithTopdriveDisconnected()
  158. implicit none
  159. if(.not.data%Warnings%PumpWithTopdriveDisconnected) return
  160. data%Warnings%PumpWithTopdriveDisconnected = .false.
  161. call RunPumpWithTopdriveDisconnected()
  162. end subroutine
  163. subroutine Deactivate_Pump1PopOffValveBlown()
  164. use CManifolds
  165. implicit none
  166. if(.not.data%Warnings%Pump1PopOffValveBlown) return
  167. data%Warnings%Pump1PopOffValveBlown = .false.
  168. call ChangeValve(65, .false.)
  169. call RunPump1PopOffValveBlown()
  170. end subroutine
  171. subroutine Deactivate_Pump1Failure()
  172. use CManifolds
  173. implicit none
  174. if(.not.data%Warnings%Pump1Failure) return
  175. data%Warnings%Pump1Failure = .false.
  176. call RunPump1Failure()
  177. end subroutine
  178. subroutine Deactivate_Pump2PopOffValveBlown()
  179. use CManifolds
  180. implicit none
  181. if(.not.data%Warnings%Pump2PopOffValveBlown) return
  182. data%Warnings%Pump2PopOffValveBlown = .false.
  183. call ChangeValve(66, .false.)
  184. call RunPump2PopOffValveBlown()
  185. end subroutine
  186. subroutine Deactivate_Pump2Failure()
  187. use CManifolds
  188. implicit none
  189. if(.not.data%Warnings%Pump2Failure) return
  190. data%Warnings%Pump2Failure = .false.
  191. call RunPump2Failure()
  192. end subroutine
  193. subroutine Deactivate_Pump3PopOffValveBlown()
  194. use CManifolds
  195. implicit none
  196. if(.not.data%Warnings%Pump3PopOffValveBlown) return
  197. data%Warnings%Pump3PopOffValveBlown = .false.
  198. call RunPump3PopOffValveBlown()
  199. end subroutine
  200. subroutine Deactivate_Pump3Failure()
  201. use CManifolds
  202. implicit none
  203. if(.not.data%Warnings%Pump3Failure) return
  204. data%Warnings%Pump3Failure = .false.
  205. call RunPump3Failure()
  206. end subroutine
  207. subroutine Deactivate_DrawworksGearsAbuse()
  208. implicit none
  209. if(.not.data%Warnings%DrawworksGearsAbuse) return
  210. data%Warnings%DrawworksGearsAbuse = .false.
  211. call RunDrawworksGearsAbuse()
  212. end subroutine
  213. subroutine Deactivate_RotaryGearsAbuse()
  214. implicit none
  215. if(.not.data%Warnings%RotaryGearsAbuse) return
  216. data%Warnings%RotaryGearsAbuse = .false.
  217. call RunRotaryGearsAbuse()
  218. end subroutine
  219. subroutine Deactivate_HoistLineBreak()
  220. implicit none
  221. if(.not.data%Warnings%HoistLineBreak) return
  222. data%Warnings%HoistLineBreak = .false.
  223. call RunHoistLineBreak()
  224. end subroutine
  225. subroutine Deactivate_PartedDrillString()
  226. implicit none
  227. if(.not.data%Warnings%PartedDrillString) return
  228. data%Warnings%PartedDrillString = .false.
  229. call RunPartedDrillString()
  230. end subroutine
  231. subroutine Deactivate_ActiveTankOverflow()
  232. implicit none
  233. if(.not.data%Warnings%ActiveTankOverflow) return
  234. data%Warnings%ActiveTankOverflow = .false.
  235. call RunActiveTankOverflow()
  236. end subroutine
  237. subroutine Deactivate_ActiveTankUnderVolume()
  238. implicit none
  239. if(.not.data%Warnings%ActiveTankUnderVolume) return
  240. data%Warnings%ActiveTankUnderVolume = .false.
  241. call RunActiveTankUnderVolume()
  242. end subroutine
  243. subroutine Deactivate_TripTankOverflow()
  244. implicit none
  245. if(.not.data%Warnings%TripTankOverflow) return
  246. data%Warnings%TripTankOverflow = .false.
  247. call RunTripTankOverflow()
  248. end subroutine
  249. subroutine Deactivate_DrillPipeTwistOff()
  250. implicit none
  251. if(.not.data%Warnings%DrillPipeTwistOff) return
  252. data%Warnings%DrillPipeTwistOff = .false.
  253. call RunDrillPipeTwistOff()
  254. end subroutine
  255. subroutine Deactivate_DrillPipeParted()
  256. implicit none
  257. if(.not.data%Warnings%DrillPipeParted) return
  258. data%Warnings%DrillPipeParted = .false.
  259. call RunDrillPipeParted()
  260. end subroutine
  261. subroutine Deactivate_TripWithSlipsSet()
  262. implicit none
  263. if(.not.data%Warnings%TripWithSlipsSet) return
  264. data%Warnings%TripWithSlipsSet = .false.
  265. call RunTripWithSlipsSet()
  266. end subroutine
  267. subroutine Deactivate_Blowout()
  268. implicit none
  269. if(.not.data%Warnings%Blowout) return
  270. data%Warnings%Blowout = .false.
  271. call RunBlowout()
  272. end subroutine
  273. subroutine Deactivate_UndergroundBlowout()
  274. implicit none
  275. if(.not.data%Warnings%UndergroundBlowout) return
  276. data%Warnings%UndergroundBlowout = .false.
  277. call RunUndergroundBlowout()
  278. end subroutine
  279. subroutine Deactivate_MaximumWellDepthExceeded()
  280. implicit none
  281. if(.not.data%Warnings%MaximumWellDepthExceeded) return
  282. data%Warnings%MaximumWellDepthExceeded = .false.
  283. call RunMaximumWellDepthExceeded()
  284. end subroutine
  285. subroutine Deactivate_CrownCollision()
  286. implicit none
  287. if(.not.data%Warnings%CrownCollision) return
  288. data%Warnings%CrownCollision = .false.
  289. call RunCrownCollision()
  290. end subroutine
  291. subroutine Deactivate_FloorCollision()
  292. implicit none
  293. if(.not.data%Warnings%FloorCollision) return
  294. data%Warnings%FloorCollision = .false.
  295. call RunFloorCollision()
  296. end subroutine
  297. subroutine Deactivate_TopdriveRotaryTableConfilict()
  298. implicit none
  299. if(.not.data%Warnings%TopdriveRotaryTableConfilict) return
  300. data%Warnings%TopdriveRotaryTableConfilict = .false.
  301. call RunTopdriveRotaryTableConfilict()
  302. end subroutine
  303. subroutine RunPumpWithKellyDisconnected()
  304. implicit none
  305. ! if(associated(PumpWithKellyDisconnectedPtr)) then
  306. ! call PumpWithKellyDisconnectedPtr(data%Warnings%PumpWithKellyDisconnected)
  307. ! end if
  308. end subroutine
  309. subroutine RunPumpWithTopdriveDisconnected()
  310. implicit none
  311. ! if(associated(PumpWithTopdriveDisconnectedPtr)) then
  312. ! call PumpWithTopdriveDisconnectedPtr(data%Warnings%PumpWithTopdriveDisconnected)
  313. ! end if
  314. end subroutine
  315. subroutine RunPump1PopOffValveBlown()
  316. implicit none
  317. ! if(associated(Pump1PopOffValveBlownPtr)) then
  318. ! call Pump1PopOffValveBlownPtr(data%Warnings%Pump1PopOffValveBlown)
  319. ! end if
  320. end subroutine
  321. subroutine RunPump1Failure()
  322. ! implicit none
  323. ! if(associated(Pump1FailurePtr)) then
  324. ! call Pump1FailurePtr(data%Warnings%Pump1Failure)
  325. ! end if
  326. end subroutine
  327. subroutine RunPump2PopOffValveBlown()
  328. ! implicit none
  329. ! if(associated(Pump2PopOffValveBlownPtr)) then
  330. ! call Pump2PopOffValveBlownPtr(data%Warnings%Pump2PopOffValveBlown)
  331. ! end if
  332. end subroutine
  333. subroutine RunPump2Failure()
  334. implicit none
  335. ! if(associated(Pump2FailurePtr)) then
  336. ! call Pump2FailurePtr(data%Warnings%Pump2Failure)
  337. ! end if
  338. end subroutine
  339. subroutine RunPump3PopOffValveBlown()
  340. implicit none
  341. ! if(associated(Pump3PopOffValveBlownPtr)) then
  342. ! call Pump3PopOffValveBlownPtr(data%Warnings%Pump3PopOffValveBlown)
  343. ! end if
  344. end subroutine
  345. subroutine RunPump3Failure()
  346. implicit none
  347. ! if(associated(Pump3FailurePtr)) then
  348. ! call Pump3FailurePtr(data%Warnings%Pump3Failure)
  349. ! end if
  350. end subroutine
  351. subroutine RunDrawworksGearsAbuse()
  352. implicit none
  353. ! if(associated(DrawworksGearsAbusePtr)) then
  354. ! call DrawworksGearsAbusePtr(data%Warnings%DrawworksGearsAbuse)
  355. ! end if
  356. end subroutine
  357. subroutine RunRotaryGearsAbuse()
  358. implicit none
  359. ! if(associated(RotaryGearsAbusePtr)) then
  360. ! call RotaryGearsAbusePtr(data%Warnings%RotaryGearsAbuse)
  361. ! end if
  362. end subroutine
  363. subroutine RunHoistLineBreak()
  364. implicit none
  365. ! if(associated(HoistLineBreakPtr)) then
  366. ! call HoistLineBreakPtr(data%Warnings%HoistLineBreak)
  367. ! end if
  368. end subroutine
  369. subroutine RunPartedDrillString()
  370. implicit none
  371. ! if(associated(PartedDrillStringPtr)) then
  372. ! call PartedDrillStringPtr(data%Warnings%PartedDrillString)
  373. ! end if
  374. end subroutine
  375. subroutine RunActiveTankOverflow()
  376. implicit none
  377. ! if(associated(ActiveTankOverflowPtr)) then
  378. ! call ActiveTankOverflowPtr(data%Warnings%ActiveTankOverflow)
  379. ! end if
  380. end subroutine
  381. subroutine RunActiveTankUnderVolume()
  382. implicit none
  383. ! if(associated(ActiveTankUnderVolumePtr)) then
  384. ! call ActiveTankUnderVolumePtr(data%Warnings%ActiveTankUnderVolume)
  385. ! end if
  386. end subroutine
  387. subroutine RunTripTankOverflow()
  388. implicit none
  389. ! if(associated(TripTankOverflowPtr)) then
  390. ! call TripTankOverflowPtr(data%Warnings%TripTankOverflow)
  391. ! end if
  392. end subroutine
  393. subroutine RunDrillPipeTwistOff()
  394. implicit none
  395. ! if(associated(DrillPipeTwistOffPtr)) then
  396. ! call DrillPipeTwistOffPtr(data%Warnings%DrillPipeTwistOff)
  397. ! end if
  398. end subroutine
  399. subroutine RunDrillPipeParted()
  400. implicit none
  401. ! if(associated(DrillPipePartedPtr)) then
  402. ! call DrillPipePartedPtr(data%Warnings%DrillPipeParted)
  403. ! end if
  404. end subroutine
  405. subroutine RunTripWithSlipsSet()
  406. implicit none
  407. ! if(associated(TripWithSlipsSetPtr)) then
  408. ! call TripWithSlipsSetPtr(data%Warnings%TripWithSlipsSet)
  409. ! end if
  410. end subroutine
  411. subroutine RunBlowout()
  412. implicit none
  413. ! if(associated(BlowoutPtr)) then
  414. ! call BlowoutPtr(data%Warnings%Blowout)
  415. ! end if
  416. end subroutine
  417. subroutine RunUndergroundBlowout()
  418. implicit none
  419. ! if(associated(UndergroundBlowoutPtr)) then
  420. ! call UndergroundBlowoutPtr(data%Warnings%UndergroundBlowout)
  421. ! end if
  422. end subroutine
  423. subroutine RunMaximumWellDepthExceeded()
  424. implicit none
  425. ! if(associated(MaximumWellDepthExceededPtr)) then
  426. ! call MaximumWellDepthExceededPtr(data%Warnings%MaximumWellDepthExceeded)
  427. ! end if
  428. end subroutine
  429. subroutine RunCrownCollision()
  430. implicit none
  431. ! if(associated(CrownCollisionPtr)) then
  432. ! call CrownCollisionPtr(data%Warnings%CrownCollision)
  433. ! end if
  434. end subroutine
  435. subroutine RunFloorCollision()
  436. implicit none
  437. ! if(associated(FloorCollisionPtr)) then
  438. ! call FloorCollisionPtr(data%Warnings%FloorCollision)
  439. ! end if
  440. end subroutine
  441. subroutine RunTopdriveRotaryTableConfilict()
  442. implicit none
  443. ! if(associated(TopdriveRotaryTableConfilictPtr)) then
  444. ! call TopdriveRotaryTableConfilictPtr(data%Warnings%TopdriveRotaryTableConfilict)
  445. ! end if
  446. end subroutine
  447. end module CWarnings