Simulation Core
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
 
 
 
 
 
 

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