Simulation Core
No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.
 
 
 
 
 
 

59 líneas
1.7 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 (KickVARIABLES%NoGasPocket > 0) THEN
  27. !KickCorrectionVector(:) = 1.
  28. CALL GasKickCalculator
  29. END IF
  30. IF (KickVARIABLES%NoGasPocket == 0 .OR. NOT(KickVARIABLES%WellHeadOpen)) EXIT
  31. IF(MAXVAL(ABS(KickVARIABLES%KickVandPFunction(:))) < KickConvergenceTolerance) EXIT
  32. !IF(MAXVAL(ABS(KickCorrectionVector(:))) < KickConvergenceTolerance) EXIT
  33. END DO
  34. CALL PressureHorizAndStringDistribution
  35. IF (KickIteration == 41) THEN
  36. WRITE (*,*) ' KickCorrectionVector ' , KickVARIABLES%KickCorrectionVector
  37. WRITE (*,*) ' Kick Jacobian = ', KickVARIABLES%KickJacobian
  38. END IF
  39. end subroutine