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.
 
 
 
 
 
 

59 lines
1.6 KiB

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