|
- module CMudTreatmentProblems
- use SimulationVariables
- implicit none
- public
- contains
- subroutine MudTreatmentProblemsFromJson(parent)
- type(json_value),pointer :: parent
- type(json_core) :: json
- type(json_value),pointer :: p
-
- call json%get(parent,'MudTreatmentProblems',p)
- call ProblemFromJson(p,"Degasser",data%problems%MudTreatmentProblems%Degasser)
- call ProblemFromJson(p,"ShaleShaker",data%problems%MudTreatmentProblems%ShaleShaker)
- call ProblemFromJson(p,"Desander",data%problems%MudTreatmentProblems%Desander)
- call ProblemFromJson(p,"Desilter",data%problems%MudTreatmentProblems%Desilter)
- end subroutine
-
- subroutine MudTreatmentProblemsToJson(parent)
-
- type(json_value),pointer :: parent
- type(json_core) :: json
- type(json_value),pointer :: p
-
- ! 1. create new node
- call json%create_object(p,'MudTreatmentProblems')
-
- ! 2. add member of data type to new node
- call ProblemToJson(p,"Degasser",data%problems%MudTreatmentProblems%Degasser)
- call ProblemToJson(p,"ShaleShaker",data%problems%MudTreatmentProblems%ShaleShaker)
- call ProblemToJson(p,"Desander",data%problems%MudTreatmentProblems%Desander)
- call ProblemToJson(p,"Desilter",data%problems%MudTreatmentProblems%Desilter)
- ! 3. add new node to parent
- call json%add(parent,p)
- end subroutine
-
- subroutine ProcessMudTreatmentProblemsDueTime(time)
- implicit none
- integer :: time
-
- if(data%problems%MudTreatmentProblems%Degasser%ProblemType == Time_ProblemType) call ProcessDueTime(data%problems%MudTreatmentProblems%Degasser, ChangeDegasser, time)
- if(data%problems%MudTreatmentProblems%ShaleShaker%ProblemType == Time_ProblemType) call ProcessDueTime(data%problems%MudTreatmentProblems%ShaleShaker, ChangeShaleShaker, time)
- if(data%problems%MudTreatmentProblems%Desander%ProblemType == Time_ProblemType) call ProcessDueTime(data%problems%MudTreatmentProblems%Desander, ChangeDesander, time)
- if(data%problems%MudTreatmentProblems%Desilter%ProblemType == Time_ProblemType) call ProcessDueTime(data%problems%MudTreatmentProblems%Desilter, ChangeDesilter, time)
-
- end subroutine
-
-
- subroutine ProcessMudTreatmentProblemsDuePumpStrokes(strokes)
- implicit none
- integer :: strokes
-
- if(data%problems%MudTreatmentProblems%Degasser%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(data%problems%MudTreatmentProblems%Degasser, ChangeDegasser, strokes)
- if(data%problems%MudTreatmentProblems%ShaleShaker%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(data%problems%MudTreatmentProblems%ShaleShaker, ChangeShaleShaker, strokes)
- if(data%problems%MudTreatmentProblems%Desander%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(data%problems%MudTreatmentProblems%Desander, ChangeDesander, strokes)
- if(data%problems%MudTreatmentProblems%Desilter%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(data%problems%MudTreatmentProblems%Desilter, ChangeDesilter, strokes)
-
- end subroutine
-
-
- subroutine ProcessMudTreatmentProblemsDueVolumePumped(volume)
- implicit none
- real(8) :: volume
-
- if(data%problems%MudTreatmentProblems%Degasser%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(data%problems%MudTreatmentProblems%Degasser, ChangeDegasser, volume)
- if(data%problems%MudTreatmentProblems%ShaleShaker%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(data%problems%MudTreatmentProblems%ShaleShaker, ChangeShaleShaker, volume)
- if(data%problems%MudTreatmentProblems%Desander%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(data%problems%MudTreatmentProblems%Desander, ChangeDesander, volume)
- if(data%problems%MudTreatmentProblems%Desilter%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(data%problems%MudTreatmentProblems%Desilter, ChangeDesilter, volume)
-
- end subroutine
-
- subroutine ProcessMudTreatmentProblemsDueDistanceDrilled(distance)
- implicit none
- real(8) :: distance
-
- if(data%problems%MudTreatmentProblems%Degasser%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(data%problems%MudTreatmentProblems%Degasser, ChangeDegasser, distance)
- if(data%problems%MudTreatmentProblems%ShaleShaker%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(data%problems%MudTreatmentProblems%ShaleShaker, ChangeShaleShaker, distance)
- if(data%problems%MudTreatmentProblems%Desander%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(data%problems%MudTreatmentProblems%Desander, ChangeDesander, distance)
- if(data%problems%MudTreatmentProblems%Desilter%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(data%problems%MudTreatmentProblems%Desilter, ChangeDesilter, distance)
-
- end subroutine
-
-
-
-
-
-
-
- subroutine ChangeDegasser(status)
- implicit none
- integer, intent (in) :: status
- !if(associated(DegasserPtr)) call DegasserPtr(status)
- !if(status == Clear_StatusType) print*,'On_Degasser_Clear'
- !if(status == Executed_StatusType) print*,'On_Degasser_Execute'
- endsubroutine
-
- subroutine ChangeShaleShaker(status)
- implicit none
- integer, intent (in) :: status
- !if(associated(ShaleShakerPtr)) call ShaleShakerPtr(status)
- !if(status == Clear_StatusType) print*,'On_ShaleShaker_Clear'
- !if(status == Executed_StatusType) print*,'On_ShaleShaker_Execute'
- endsubroutine
-
- subroutine ChangeDesander(status)
- implicit none
- integer, intent (in) :: status
- !if(associated(DesanderPtr)) call DesanderPtr(status)
- !if(status == Clear_StatusType) print*,'On_Desander_Clear'
- !if(status == Executed_StatusType) print*,'On_Desander_Execute'
- endsubroutine
-
- subroutine ChangeDesilter(status)
- implicit none
- integer, intent (in) :: status
- !if(associated(DesilterPtr)) call DesilterPtr(status)
- !if(status == Clear_StatusType) print*,'On_Desilter_Clear'
- !if(status == Executed_StatusType) print*,'On_Desilter_Execute'
- endsubroutine
-
- end module CMudTreatmentProblems
|