Simulation Core
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.
 
 
 
 
 
 

91 řádky
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