subroutine TD_BOPDiamCalculation Use TD_DrillStemComponents Use TD_WellElements Use TD_WellGeometry Use TD_GeneralData Use TD_StringConnectionData Use CBopStackVariables Use VARIABLES Integer :: i , j , n , m , TD_Numbs Real(8) :: TD_LimitUp , TD_LimitDown , TD_OldFillingValue , TD_AnnTjDiff , TD_AnnularFilling Real(8) :: TD_ElToolJoints(2,2) !TD_String%ToolJointRange = 0.4005d0*3.28 ! [ft] !==================================================== ! Read BOP Data !==================================================== TD_BOP%BOPHeight(5) = BopStackSpecification%AboveAnnularHeight TD_BOP%BOPHeight(1) = BopStackSpecification%AnnularPreventerHeight TD_BOP%BOPHeight(2) = BopStackSpecification%UpperRamHeight TD_BOP%BOPHeight(3) = BopStackSpecification%BlindRamHeight TD_BOP%BOPHeight(6) = BopStackSpecification%KillHeight TD_BOP%BOPHeight(4) = BopStackSpecification%LowerRamHeight TD_BOP%BOPRamDiam(1) = ShearRam%IDAnnularfinal TD_BOP%BOPRamDiam(2) = ShearRam%IDPipeRam1final TD_BOP%BOPRamDiam(3) = ShearRam%IDshearBopfinal TD_BOP%BOPRamDiam(4) = ShearRam%IDPipeRam2final !==================================================== ! Element Counts in BOPStack Domain !==================================================== !if (TD_String%DrillStemComponentsNumbs>5) then TD_Numbs = TD_String%DrillStemComponentsNumbs-7 ! 7 Elements from the Top of DrillStem !else ! TD_Numbs = 1 !end if !==================================================== ! Determination of Elements Diameter in BOPStack Domain !==================================================== TD_BOP%BOPDiam = 0.d0 TD_OldFillingValue = 0.d0 Do i = TD_String%DrillStemComponentsNumbs,TD_Numbs,-1 TD_LimitUp = TD_DrillStems(i)%TopDepth+TD_DrillStems(i)%ToolJointRange TD_LimitDown = TD_DrillStems(i)%DownDepth-TD_DrillStems(i)%ToolJointRange TD_ElToolJoints(1,1) = TD_DrillStems(i)%TopDepth ! TD_ElToolJoints(i,j) , i=top & down tooljoints of element , j=top & down tooljoints Depth TD_ElToolJoints(1,2) = TD_LimitUp TD_ElToolJoints(2,1) = TD_LimitDown TD_ElToolJoints(2,2) = TD_DrillStems(i)%DownDepth !===> che meghdar az fazaye annular ba tooljoint por mishavad (for BOP Module) Do m = 1,2 TD_AnnTjDiff = min(TD_ElToolJoints(m,2),(TD_BOP%BOPHeight(1)+TD_BOP%BOPThickness))-max(TD_ElToolJoints(m,1),(TD_BOP%BOPHeight(1)-TD_BOP%BOPThickness)) if (TD_AnnTjDiff<0.) then ! tooljoint is not in the annular range TD_AnnTjDiff = 0.d0 end if TD_AnnularFilling = TD_OldFillingValue+(TD_AnnTjDiff/(TD_BOP%BOPThickness*2.d0)) ! 0=TD_LimitUp .and. (TD_BOP%BOPHeight(j)+TD_BOP%BOPThickness)