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.

TD_StartUp.f90 5.1 KiB

1 year ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. subroutine TD_StartUp
  2. Use CCasingLinerChokeVariables
  3. Use CStringConfigurationVariables
  4. Use CSimulationVariables
  5. Use COperationConditionEnumVariables
  6. Use CHoistingVariables
  7. Use CPathGenerationVariables
  8. Use TD_DrillStemComponents
  9. Use TD_WellElements
  10. Use TD_WellGeometry
  11. Use TD_GeneralData
  12. Use TD_StringConnectionData
  13. Use Drawworks_VARIABLES!, only: Drawworks
  14. Use sROP_Variables
  15. Use sROP_Other_Variables
  16. implicit none
  17. !!====================================================
  18. !! Allocate Modules
  19. !!====================================================
  20. ! !=====> Set WellGeo Dimension
  21. ! TD_WellIntervalsCount = PathGenerationCount + 1 ! +1 is belong to ROP hole
  22. ! Allocate (TD_WellGeo(TD_WellIntervalsCount))
  23. !
  24. ! !=====> Set WellGeo Dimension
  25. !=====> Set ROP StartUp
  26. Bit_Wearing = 0.d0
  27. Rate_of_Penetration = 0.d0
  28. Bearing_Wear = 0.d0
  29. FormationNumber = 0
  30. Old_ROPDepth = PathGenerations(PathGenerationCount)%MeasuredDepth
  31. Old_ROPValue = 0.d0
  32. Set_ROPGauge = 0.d0
  33. !=====> Set BOP StartUp
  34. TD_BOPCondition = 0
  35. TD_BOPThickness = (0.13477d0/2.d0)*3.28d0 ![m]*3.28=[ft] , Total Thickness (RAM)= 134.77mm
  36. TD_AnnularFillingFinal = 0.d0
  37. DW_TDHookHeight = 75.d0 ![ft]
  38. Drawworks%Hook_Height_ini = 75.d0 ![ft]
  39. Drawworks%Hook_Height_final = 75.d0 ![ft]
  40. !=====> String Connection Mode
  41. if ( Get_OperationCondition()==OPERATION_TRIP ) then
  42. TD_OldOperationCondition = 1
  43. else
  44. TD_OldOperationCondition = 0
  45. end if
  46. TD_KellyDriveTypeMode = 0 !Kelly Mode
  47. TD_FluidStringConnectionMode = 0
  48. TD_ConnectionHeight = 3.48d0 ![ft]
  49. TD_RigidConnectionHeight = 3.48d0 ![ft]
  50. TD_GRigidConnectionHeight = 3.48d0 ![ft]
  51. TD_TopJointHeight = 3.48d0 ![ft]
  52. !TD_TouchConnectionHeight =
  53. TD_StringVelocity = 0.0d0
  54. TD_HookHeightOld = 75.d0 ![ft]
  55. TD_HookHeight = 75.d0 ![ft]
  56. TD_HookVelocity = 0.0d0
  57. !=====> Element Specification
  58. TD_HookHeight = DW_TDHookHeight ! unit: [ft]
  59. TD_ElevatorConst = 17.985 ! [ft] Elevator Length(14.84) ????????????????? adad ha daghigh shavand
  60. TD_ElevatorECG = 2.217 ! [ft]
  61. TD_KellyConst = 63.280d0 ! [ft] Kelly Length(61.74) + Safety Valve Length(1.54)
  62. TD_KellyElementConst = 41.840d0 ! [ft] Kelly Element Length(40.3) + Safety Valve Length(1.54)
  63. TD_TDSLength = 24.08d0 !??????????????????? ! [ft]
  64. TD_TDSToolJointLength = 0.77d0 !??????????????????? ! [ft]
  65. TD_TDSElevatorLength = 26.837d0 !?????? ! TDS with Elevator Length [ft]
  66. TD_TDSElevatorToolLength= 0.859d0 !??????????????????? ! [ft]
  67. TD_TDSElevatorECG = 2.454 ! [ft]
  68. TD_NumOfCables = NumberOfLine
  69. TD_WeightTB = TravelingBlockWeight ! [lb]
  70. TD_WeightTD = TopDriveWeight ! [lb]
  71. TD_KellyWeight = KellyWeight ! [lb]
  72. TD_SafetyValveLength = 1.54d0 ! [ft]
  73. TD_IBOPLength = 1.54d0 ! [ft]
  74. TD_KellyElementID = 3.0d0/12.d0 ! [ft]
  75. TD_KellyElementOD = 5.90d0/12.d0 ! [ft]
  76. TD_DrawworksLoadInput = TravelingBlockWeight/NumberOfLine
  77. TD_IBOPNewAdd = 0
  78. TD_IBOPOldAdd = 0 !Remove
  79. TD_SafetyValveNewAdd = 0
  80. TD_SafetyValveOldAdd = 1 !Install
  81. TD_KellyNewAdd = 0
  82. TD_KellyOldAdd = 0
  83. TD_IBOPNewRemove = 0
  84. TD_IBOPOldRemove = 1 !Remove
  85. TD_SafetyValveNewRemove = 0
  86. TD_SafetyValveOldRemove = 0 !Install
  87. TD_KellyNewRemove = 0
  88. TD_KellyOldRemove = 1
  89. TD_KellyOldStatus1 = 0
  90. TD_KellyNewStatus1 = 0
  91. TD_KellyOldStatus2 = 1 ! Kelly Connected Nothing
  92. TD_KellyNewStatus2 = 1 ! Kelly Connected Nothing
  93. TD_KellyOldStatus3 = 0
  94. TD_KellyNewStatus3 = 0
  95. TD_KellyOldStatus4 = 0
  96. TD_KellyNewStatus4 = 0
  97. TD_KellyOldStatus5 = 0
  98. TD_KellyNewStatus5 = 0
  99. TD_KellyOldStatus6 = 0
  100. TD_KellyNewStatus6 = 0
  101. TD_KellyOldStatus7 = 0
  102. TD_KellyNewStatus7 = 0
  103. TD_KellyOldStatus8 = 0
  104. TD_KellyNewStatus8 = 0
  105. TD_KellyOldStatus18 = 0
  106. TD_KellyNewStatus18 = 0
  107. TD_KellyOldStatus19 = 0
  108. TD_KellyNewStatus19 = 0
  109. TD_KellyOldStatus9 = 0
  110. TD_KellyNewStatus9 = 0
  111. TD_KellyOldStatus10 = 0
  112. TD_KellyNewStatus10 = 0
  113. TD_KellyOldStatus11 = 0
  114. TD_KellyNewStatus11 = 0
  115. TD_KellyOldStatus12 = 0
  116. TD_KellyNewStatus12 = 0
  117. TD_KellyOldStatus13 = 1
  118. TD_KellyNewStatus13 = 1
  119. TD_KellyOldStatus14 = 0
  120. TD_KellyNewStatus14 = 0
  121. TD_KellyOldStatus15 = 0
  122. TD_KellyNewStatus15 = 0
  123. TD_KellyOldStatus16 = 0
  124. TD_KellyNewStatus16 = 0
  125. TD_KellyOldStatus17 = 0
  126. TD_KellyNewStatus17 = 0
  127. !=====> Problems
  128. TD_WeightIndicatorMalf = 0
  129. end subroutine