Simulation Core
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.
 
 
 
 
 
 

61 rader
2.9 KiB

  1. module CBitProblems
  2. use SimulationVariables
  3. implicit none
  4. public
  5. contains
  6. subroutine ProcessBitProblemsDueTime(time)
  7. implicit none
  8. integer :: time
  9. if(data%problems%BitProblems%PlugJets%ProblemType == Time_ProblemType) call ProcessDueTime(data%problems%BitProblems%PlugJets, ChangePlugJets, time)
  10. if(data%problems%BitProblems%JetWashout%ProblemType == Time_ProblemType) call ProcessDueTime(data%problems%BitProblems%JetWashout, ChangeJetWashout, time)
  11. end subroutine
  12. subroutine ProcessBitProblemsDuePumpStrokes(strokes)
  13. implicit none
  14. integer :: strokes
  15. if(data%problems%BitProblems%PlugJets%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(data%problems%BitProblems%PlugJets, ChangePlugJets, strokes)
  16. if(data%problems%BitProblems%JetWashout%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(data%problems%BitProblems%JetWashout, ChangeJetWashout, strokes)
  17. end subroutine
  18. subroutine ProcessBitProblemsDueVolumePumped(volume)
  19. implicit none
  20. real(8) :: volume
  21. if(data%problems%BitProblems%PlugJets%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(data%problems%BitProblems%PlugJets, ChangePlugJets, volume)
  22. if(data%problems%BitProblems%JetWashout%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(data%problems%BitProblems%JetWashout, ChangeJetWashout, volume)
  23. end subroutine
  24. subroutine ProcessBitProblemsDueDistanceDrilled(distance)
  25. implicit none
  26. real(8) :: distance
  27. if(data%problems%BitProblems%PlugJets%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(data%problems%BitProblems%PlugJets, ChangePlugJets, distance)
  28. if(data%problems%BitProblems%JetWashout%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(data%problems%BitProblems%JetWashout, ChangeJetWashout, distance)
  29. end subroutine
  30. subroutine ChangePlugJets(status)
  31. USE FricPressDropVarsModule
  32. implicit none
  33. integer, intent (in) :: status
  34. ! if(associated(data%problems%BitProblems%PlugJetsPtr)) call data%problems%BitProblems%PlugJetsPtr(status)
  35. if(status == Clear_StatusType) data%State%FricPressDrop%BitJetsPlugged = 0
  36. if(status == Executed_StatusType) data%State%FricPressDrop%BitJetsPlugged = 1
  37. endsubroutine
  38. subroutine ChangeJetWashout(status)
  39. USE FricPressDropVarsModule
  40. implicit none
  41. integer, intent (in) :: status
  42. ! if(associated(data%problems%BitProblems%JetWashoutPtr)) call data%problems%BitProblems%JetWashoutPtr(status)
  43. if(status == Clear_StatusType) data%State%FricPressDrop%BitJetsWashedOut = 0
  44. if(status == Executed_StatusType) data%State%FricPressDrop%BitJetsWashedOut = 1
  45. endsubroutine
  46. end module CBitProblems