Simulation Core
25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

91 lines
5.0 KiB

  1. module CMudTreatmentProblems
  2. use SimulationVariables
  3. implicit none
  4. public
  5. contains
  6. subroutine ProcessMudTreatmentProblemsDueTime(time)
  7. implicit none
  8. integer :: time
  9. if(data%problems%MudTreatmentProblems%Degasser%ProblemType == Time_ProblemType) call ProcessDueTime(data%problems%MudTreatmentProblems%Degasser, ChangeDegasser, time)
  10. if(data%problems%MudTreatmentProblems%ShaleShaker%ProblemType == Time_ProblemType) call ProcessDueTime(data%problems%MudTreatmentProblems%ShaleShaker, ChangeShaleShaker, time)
  11. if(data%problems%MudTreatmentProblems%Desander%ProblemType == Time_ProblemType) call ProcessDueTime(data%problems%MudTreatmentProblems%Desander, ChangeDesander, time)
  12. if(data%problems%MudTreatmentProblems%Desilter%ProblemType == Time_ProblemType) call ProcessDueTime(data%problems%MudTreatmentProblems%Desilter, ChangeDesilter, time)
  13. end subroutine
  14. subroutine ProcessMudTreatmentProblemsDuePumpStrokes(strokes)
  15. implicit none
  16. integer :: strokes
  17. if(data%problems%MudTreatmentProblems%Degasser%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(data%problems%MudTreatmentProblems%Degasser, ChangeDegasser, strokes)
  18. if(data%problems%MudTreatmentProblems%ShaleShaker%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(data%problems%MudTreatmentProblems%ShaleShaker, ChangeShaleShaker, strokes)
  19. if(data%problems%MudTreatmentProblems%Desander%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(data%problems%MudTreatmentProblems%Desander, ChangeDesander, strokes)
  20. if(data%problems%MudTreatmentProblems%Desilter%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(data%problems%MudTreatmentProblems%Desilter, ChangeDesilter, strokes)
  21. end subroutine
  22. subroutine ProcessMudTreatmentProblemsDueVolumePumped(volume)
  23. implicit none
  24. real(8) :: volume
  25. if(data%problems%MudTreatmentProblems%Degasser%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(data%problems%MudTreatmentProblems%Degasser, ChangeDegasser, volume)
  26. if(data%problems%MudTreatmentProblems%ShaleShaker%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(data%problems%MudTreatmentProblems%ShaleShaker, ChangeShaleShaker, volume)
  27. if(data%problems%MudTreatmentProblems%Desander%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(data%problems%MudTreatmentProblems%Desander, ChangeDesander, volume)
  28. if(data%problems%MudTreatmentProblems%Desilter%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(data%problems%MudTreatmentProblems%Desilter, ChangeDesilter, volume)
  29. end subroutine
  30. subroutine ProcessMudTreatmentProblemsDueDistanceDrilled(distance)
  31. implicit none
  32. real(8) :: distance
  33. if(data%problems%MudTreatmentProblems%Degasser%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(data%problems%MudTreatmentProblems%Degasser, ChangeDegasser, distance)
  34. if(data%problems%MudTreatmentProblems%ShaleShaker%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(data%problems%MudTreatmentProblems%ShaleShaker, ChangeShaleShaker, distance)
  35. if(data%problems%MudTreatmentProblems%Desander%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(data%problems%MudTreatmentProblems%Desander, ChangeDesander, distance)
  36. if(data%problems%MudTreatmentProblems%Desilter%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(data%problems%MudTreatmentProblems%Desilter, ChangeDesilter, distance)
  37. end subroutine
  38. subroutine ChangeDegasser(status)
  39. implicit none
  40. integer, intent (in) :: status
  41. !if(associated(DegasserPtr)) call DegasserPtr(status)
  42. !if(status == Clear_StatusType) print*,'On_Degasser_Clear'
  43. !if(status == Executed_StatusType) print*,'On_Degasser_Execute'
  44. endsubroutine
  45. subroutine ChangeShaleShaker(status)
  46. implicit none
  47. integer, intent (in) :: status
  48. !if(associated(ShaleShakerPtr)) call ShaleShakerPtr(status)
  49. !if(status == Clear_StatusType) print*,'On_ShaleShaker_Clear'
  50. !if(status == Executed_StatusType) print*,'On_ShaleShaker_Execute'
  51. endsubroutine
  52. subroutine ChangeDesander(status)
  53. implicit none
  54. integer, intent (in) :: status
  55. !if(associated(DesanderPtr)) call DesanderPtr(status)
  56. !if(status == Clear_StatusType) print*,'On_Desander_Clear'
  57. !if(status == Executed_StatusType) print*,'On_Desander_Execute'
  58. endsubroutine
  59. subroutine ChangeDesilter(status)
  60. implicit none
  61. integer, intent (in) :: status
  62. !if(associated(DesilterPtr)) call DesilterPtr(status)
  63. !if(status == Clear_StatusType) print*,'On_Desilter_Clear'
  64. !if(status == Executed_StatusType) print*,'On_Desilter_Execute'
  65. endsubroutine
  66. end module CMudTreatmentProblems