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.
 
 
 
 
 
 

61 regels
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