Simulation Core
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Fluid_Flow_Solver.f90 1.5 KiB

1 year ago
1 year ago
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. subroutine Fluid_Flow_Solver
  2. Use GeoElements_FluidModule
  3. Use UTUBEVARS
  4. USE KickVariables
  5. USE PressureDisplayVARIABLES
  6. USE FricPressDropVars
  7. USE MudSystemVARIABLES
  8. USE Fluid_Flow_Startup_Vars
  9. USE CError
  10. implicit none
  11. INTEGER :: FlowDuration
  12. Integer :: qwer
  13. integer,dimension(8) :: FlowStartTime,FlowEndTime
  14. !WRITE (*,*) ' fluid flow pointer 1'
  15. CALL TD_MainCalculations
  16. Call MeshGeneration_FluidModule
  17. !WRITE (*,*) ' fluid flow pointer 2'
  18. MudSystemDotFluidFlowCounter = MudSystemDotFluidFlowCounter + 1
  19. call CirculationCodeSelect
  20. CALL WellPressureDataTransfer
  21. CALL FormationInformationCalculator
  22. DO KickIteration = 1 , 40
  23. !WRITE (*,*) ' Kick Iteration', KickIteration
  24. CALL PressureAnnAndOHDistribution
  25. IF (NoGasPocket > 0) THEN
  26. !KickCorrectionVector(:) = 1.
  27. CALL GasKickCalculator
  28. END IF
  29. IF (NoGasPocket == 0 .OR. NOT(WellHeadOpen)) EXIT
  30. IF(MAXVAL(ABS(KickVandPFunction(:))) < KickConvergenceTolerance) EXIT
  31. !IF(MAXVAL(ABS(KickCorrectionVector(:))) < KickConvergenceTolerance) EXIT
  32. END DO
  33. CALL PressureHorizAndStringDistribution
  34. IF (KickIteration == 41) THEN
  35. WRITE (*,*) ' KickCorrectionVector ' , KickCorrectionVector
  36. WRITE (*,*) ' Kick Jacobian = ', KickJacobian
  37. END IF
  38. end subroutine