Simulation Core
No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.
 
 
 
 
 
 

91 líneas
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