|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- # 1 "/home/admin/SimulationCore2/TorqueDrag/TD_MainCalculations.f90"
- subroutine TD_MainCalculations
-
- Use CCasingLinerChokeVariables
- Use CStringConfigurationVariables
- ! Use CSimulationVariables
- Use TD_DrillStemComponents
- use SimulationVariables !@
- use SimulationVariables !@
- use SimulationVariables !@
- Use TD_StringConnectionData
- USE FricPressDropVarsModule
- USE MudSystemVARIABLES
- use SimulationVariables !@@@
-
-
- implicit none
-
- Integer :: i
- !Integer :: TD_SolDuration
- !integer,dimension(8) :: TD_StartTime , TD_EndTime
-
-
-
- data%State%TD_General%TimeStep = 0.1d0 ! Unit: [s]
- !Call TD_StartUp
- !Call TD_WellReadData
- !Call TD_WellElementsReadData
- !Call TD_DrillStemReadData
- !Call TD_PipePropertiesReadData
- !!Call TD_WellGeoConfiguration
- !!Call TD_WellElementsConfiguration
- !!Call TD_StringConnectionModes
- !!Call TD_DrillStemConfiguration
-
-
-
-
- !loop1: do
-
-
-
- Call TD_WellGeoConfiguration
- Call TD_WellElementsConfiguration
- Call TD_StringConnectionModes
- Call TD_DrillStemConfiguration
- Call TD_ForceReadData
-
-
- !===> Mud properties Read_Data from Fluid Module
- !!TD_StringNoHorizontalMudElements = TDNoHorizontalMudElements
- !!data%State%TD_String%NoStringMudElements = TDNoStringMudElements
- !!data%State%TD_String%NoCasingMudElements = TDNoCasingMudElements
- !!
- !!if (allocated(TDDensity_MudElementArray) .and. (TD_StringNoHorizontalMudElements+data%State%TD_String%NoStringMudElements+data%State%TD_String%NoCasingMudElements)/=0) then
- !! if (Allocated(data%State%TD_String%FluidMudDensity)) Deallocate(data%State%TD_String%FluidMudDensity)
- !! Allocate(data%State%TD_String%FluidMudDensity(TD_StringNoHorizontalMudElements+data%State%TD_String%NoStringMudElements+data%State%TD_String%NoCasingMudElements))
- !! data%State%TD_String%FluidMudDensity(:) = TDDensity_MudElementArray(:)
- !!end if
- !!
- !!if (allocated(TDXend_MudElementArray)) then
- !! if (Allocated(data%State%TD_String%FluidMudEndX)) Deallocate(data%State%TD_String%FluidMudEndX)
- !! Allocate(data%State%TD_String%FluidMudEndX(TD_StringNoHorizontalMudElements+data%State%TD_String%NoStringMudElements+data%State%TD_String%NoCasingMudElements))
- !! data%State%TD_String%FluidMudEndX(:) = TDXend_MudElementArray(:)
- !!end if
- !!
- !!if (allocated(TDXstart_MudElementArray)) then
- !! if (Allocated(data%State%TD_String%FluidMudStartX)) Deallocate(data%State%TD_String%FluidMudStartX)
- !! Allocate(data%State%TD_String%FluidMudStartX(TD_StringNoHorizontalMudElements+data%State%TD_String%NoStringMudElements+data%State%TD_String%NoCasingMudElements))
- !! data%State%TD_String%FluidMudStartX(:) = TDXstart_MudElementArray(:)
- !!end if
-
- if (data%State%TD_DrillStem(1)%ComponentType==0) then
- Do i = 2 , data%State%TD_String%DrillStemComponentsNumbs
- Call TD_MudPropertiesReadData(i)
- Call TD_BouyancyFactor(i)
- Call TD_CombinedMotionData(i)
- End Do
- data%State%TD_DrillStems(1)%MudDensityIn = data%State%TD_DrillStems(2)%MudDensityIn !(1): bit mud properties
- data%State%TD_DrillStems(1)%MudDensityOut = data%State%TD_DrillStems(2)%MudDensityOut
- data%State%TD_DrillStems(1)%MudWeight = data%State%TD_DrillStems(2)%MudWeight
- data%State%TD_DrillStems(1)%MudPlasticVis = 5.d0+(5.d0*(data%State%TD_DrillStems(1)%MudWeight-8.3d0))
- data%State%TD_DrillStems(1)%MudViscosity = 0.2d0 !data%State%TD_DrillStems(i)%MudPlasticVis
- data%State%TD_DrillStems(1)%MudYieldPoint = 10.d0+(data%State%TD_DrillStems(1)%MudWeight-8.3d0)
- Call TD_BouyancyFactor(1)
- Call TD_CombinedMotionData(1)
- else
- Do i = 1 , data%State%TD_String%DrillStemComponentsNumbs
- Call TD_MudPropertiesReadData(i)
- Call TD_BouyancyFactor(i)
- Call TD_CombinedMotionData(i)
- End Do
- end if
- !================================================
-
-
-
- Call TD_BOPDiamCalculation
-
-
- Call TD_StaticHookLoadCalculation
- Call TD_WeightOnBitCalculation
- if (abs(data%State%TD_String%DrillStemAxialVelocity)>3.2808d0) then !1[m/s]=3.2808[ft/s]
- Call TD_ViscousDragForce
- else
- data%State%TD_DrillStems%Drag = 0.d0
- data%State%TD_String%DrillStemForceType = 5
- end if
- Call TD_ForceCalculation
- Call TD_HookLoadCalculation
-
-
-
-
-
- data%State%TD_StConn%HookHeightOld = data%State%TD_StConn%HookHeight
-
-
-
-
-
- end subroutine TD_MainCalculations
|