# 1 "/mnt/c/Projects/VSIM/SimulationCore2/TorqueDrag/TD_DrillingSubs/TD_BOPDiamCalculation.f90" subroutine TD_BOPDiamCalculation Use TD_DrillStemComponents use SimulationVariables !@ use SimulationVariables !@ use SimulationVariables !@ Use TD_StringConnectionData Use CBopStackVariables use SimulationVariables use DownHoleModule 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) !data%State%TD_String%ToolJointRange = 0.4005d0*3.28 ! [ft] !==================================================== ! Read BOP Data !==================================================== data%State%TD_BOP%BOPHeight(5) = data%Configuration%BopStack%AboveAnnularHeight data%State%TD_BOP%BOPHeight(1) = data%Configuration%BopStack%AnnularPreventerHeight data%State%TD_BOP%BOPHeight(2) = data%Configuration%BopStack%UpperRamHeight data%State%TD_BOP%BOPHeight(3) = data%Configuration%BopStack%BlindRamHeight data%State%TD_BOP%BOPHeight(6) = data%Configuration%BopStack%KillHeight data%State%TD_BOP%BOPHeight(4) = data%Configuration%BopStack%LowerRamHeight data%State%TD_BOP%BOPRamDiam(1) = data%State%ShearRAM%IDAnnularfinal data%State%TD_BOP%BOPRamDiam(2) = data%State%ShearRAM%IDPipeRam1final data%State%TD_BOP%BOPRamDiam(3) = data%State%ShearRAM%IDshearBopfinal data%State%TD_BOP%BOPRamDiam(4) = data%State%ShearRAM%IDPipeRam2final !==================================================== ! Element Counts in BOPStack Domain !==================================================== !if (data%State%TD_String%DrillStemComponentsNumbs>5) then TD_Numbs = data%State%TD_String%DrillStemComponentsNumbs-7 ! 7 Elements from the Top of DrillStem !else ! TD_Numbs = 1 !end if !==================================================== ! Determination of Elements Diameter in BOPStack Domain !==================================================== data%State%TD_BOP%BOPDiam = 0.d0 TD_OldFillingValue = 0.d0 Do i = data%State%TD_String%DrillStemComponentsNumbs,TD_Numbs,-1 TD_LimitUp = data%State%TD_DrillStems(i)%TopDepth+data%State%TD_DrillStems(i)%ToolJointRange TD_LimitDown = data%State%TD_DrillStems(i)%DownDepth-data%State%TD_DrillStems(i)%ToolJointRange TD_ElToolJoints(1,1) = data%State%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) = data%State%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),(data%State%TD_BOP%BOPHeight(1)+data%State%TD_BOP%BOPThickness))-max(TD_ElToolJoints(m,1),(data%State%TD_BOP%BOPHeight(1)-data%State%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/(data%State%TD_BOP%BOPThickness*2.d0)) ! 0=TD_LimitUp .and. (data%State%TD_BOP%BOPHeight(j)+data%State%TD_BOP%BOPThickness)