subroutine Fluid_Flow_Solver Use GeoElements_FluidModule use UTUBEVARSModule use KickVARIABLESModule use PressureDisplayVARIABLESModule USE FricPressDropVarsModule USE MudSystemVARIABLES use SimulationVariables !@@@ 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' data%State%MudSystem%FluidFlowCounter = data%State%MudSystem%FluidFlowCounter + 1 call CirculationCodeSelect CALL WellPressureDataTransfer CALL FormationInformationCalculator DO KickIteration = 1 , 40 !WRITE (*,*) ' Kick Iteration', KickIteration CALL PressureAnnAndOHDistribution IF (KickVARIABLES%NoGasPocket > 0) THEN !KickCorrectionVector(:) = 1. CALL GasKickCalculator END IF IF (KickVARIABLES%NoGasPocket == 0 .OR. NOT(KickVARIABLES%WellHeadOpen)) EXIT IF(MAXVAL(ABS(KickVARIABLES%KickVandPFunction(:))) < KickConvergenceTolerance) EXIT !IF(MAXVAL(ABS(KickCorrectionVector(:))) < KickConvergenceTolerance) EXIT END DO CALL PressureHorizAndStringDistribution IF (KickIteration == 41) THEN WRITE (*,*) ' KickCorrectionVector ' , KickVARIABLES%KickCorrectionVector WRITE (*,*) ' Kick Jacobian = ', KickVARIABLES%KickJacobian END IF end subroutine