|
- subroutine Fluid_Flow_Solver
-
- Use GeoElements_FluidModule
- Use UTUBEVARS
- USE KickVariables
- USE PressureDisplayVARIABLES
- USE FricPressDropVars
- USE MudSystemVARIABLES
- USE Fluid_Flow_Startup_Vars
- USE CError
-
- implicit none
- INTEGER :: FlowDuration
- Integer :: qwer
- integer,dimension(8) :: FlowStartTime,FlowEndTime
-
- !WRITE (*,*) ' fluid flow pointer 1'
- CALL TD_MainCalculations
-
- Call MeshGeneration_FluidModule
-
- !WRITE (*,*) ' fluid flow pointer 2'
-
- MudSystemDotFluidFlowCounter = MudSystemDotFluidFlowCounter + 1
-
- call CirculationCodeSelect
-
-
- CALL WellPressureDataTransfer
-
- CALL FormationInformationCalculator
-
- DO KickIteration = 1 , 40
-
- !WRITE (*,*) ' Kick Iteration', KickIteration
-
- CALL PressureAnnAndOHDistribution
-
- IF (NoGasPocket > 0) THEN
- !KickCorrectionVector(:) = 1.
- CALL GasKickCalculator
- END IF
-
- IF (NoGasPocket == 0 .OR. NOT(WellHeadOpen)) EXIT
- IF(MAXVAL(ABS(KickVandPFunction(:))) < KickConvergenceTolerance) EXIT
- !IF(MAXVAL(ABS(KickCorrectionVector(:))) < KickConvergenceTolerance) EXIT
-
-
- END DO
-
- CALL PressureHorizAndStringDistribution
-
- IF (KickIteration == 41) THEN
- WRITE (*,*) ' KickCorrectionVector ' , KickCorrectionVector
- WRITE (*,*) ' Kick Jacobian = ', KickJacobian
- END IF
-
- end subroutine
|