|
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- module CBitProblems
- use SimulationVariables
- use json_module
- implicit none
- public
- contains
-
- subroutine BitProblemsFromJson(parent)
- type(json_value),pointer :: parent
- type(json_core) :: json
- type(json_value),pointer :: p,pval
-
- call json%get(parent,'BitProblems',p)
- call ProblemFromJson(p,"JetWashout",data%problems%BitProblems%JetWashout)
- call ProblemFromJson(p,"PlugJets",data%problems%BitProblems%PlugJets)
- call json%get(p,"JetWashoutCount",pval)
- call json%get(pval,data%problems%BitProblems%JetWashoutCount)
- call json%get(p,"PlugJetsCount",pval)
- call json%get(pval,data%problems%BitProblems%PlugJetsCount)
- end subroutine
-
- subroutine BitProblemsToJson(parent)
-
- type(json_value),pointer :: parent
- type(json_core) :: json
- type(json_value),pointer :: p
-
- ! 1. create new node
- call json%create_object(p,'BitProblems')
-
- ! 2. add member of data type to new node
- call ProblemToJson(p,"JetWashout",data%problems%BitProblems%JetWashout)
- call ProblemToJson(p,"PlugJets",data%problems%BitProblems%PlugJets)
- call json%add(p, "JetWashoutCount",data%problems%BitProblems%JetWashoutCount)
- call json%add(p, "PlugJetsCount",data%problems%BitProblems%PlugJetsCount)
- ! 3. add new node to parent
- call json%add(parent,p)
- end subroutine
-
-
- subroutine ProcessBitProblemsDueTime(time)
- implicit none
- integer :: time
- if(data%problems%BitProblems%PlugJets%ProblemType == Time_ProblemType) call ProcessDueTime(data%problems%BitProblems%PlugJets, ChangePlugJets, time)
- if(data%problems%BitProblems%JetWashout%ProblemType == Time_ProblemType) call ProcessDueTime(data%problems%BitProblems%JetWashout, ChangeJetWashout, time)
- end subroutine
-
- subroutine ProcessBitProblemsDuePumpStrokes(strokes)
- implicit none
- integer :: strokes
-
- if(data%problems%BitProblems%PlugJets%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(data%problems%BitProblems%PlugJets, ChangePlugJets, strokes)
- if(data%problems%BitProblems%JetWashout%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(data%problems%BitProblems%JetWashout, ChangeJetWashout, strokes)
-
- end subroutine
-
- subroutine ProcessBitProblemsDueVolumePumped(volume)
- implicit none
- real(8) :: volume
-
- if(data%problems%BitProblems%PlugJets%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(data%problems%BitProblems%PlugJets, ChangePlugJets, volume)
- if(data%problems%BitProblems%JetWashout%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(data%problems%BitProblems%JetWashout, ChangeJetWashout, volume)
-
- end subroutine
-
- subroutine ProcessBitProblemsDueDistanceDrilled(distance)
- implicit none
- real(8) :: distance
-
- if(data%problems%BitProblems%PlugJets%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(data%problems%BitProblems%PlugJets, ChangePlugJets, distance)
- if(data%problems%BitProblems%JetWashout%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(data%problems%BitProblems%JetWashout, ChangeJetWashout, distance)
-
- end subroutine
-
- subroutine ChangePlugJets(status)
- USE FricPressDropVarsModule
- implicit none
- integer, intent (in) :: status
- ! if(associated(data%problems%BitProblems%PlugJetsPtr)) call data%problems%BitProblems%PlugJetsPtr(status)
- if(status == Clear_StatusType) data%State%FricPressDrop%BitJetsPlugged = 0
- if(status == Executed_StatusType) data%State%FricPressDrop%BitJetsPlugged = 1
- endsubroutine
-
- subroutine ChangeJetWashout(status)
- USE FricPressDropVarsModule
- implicit none
- integer, intent (in) :: status
- ! if(associated(data%problems%BitProblems%JetWashoutPtr)) call data%problems%BitProblems%JetWashoutPtr(status)
- if(status == Clear_StatusType) data%State%FricPressDrop%BitJetsWashedOut = 0
- if(status == Executed_StatusType) data%State%FricPressDrop%BitJetsWashedOut = 1
- endsubroutine
-
-
- end module CBitProblems
|