Simulation Core
Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
 
 
 
 
 
 

65 righe
2.4 KiB

  1. module CLostProblems
  2. use SimulationVariables
  3. implicit none
  4. public
  5. contains
  6. subroutine LostProblemsToJson(parent)
  7. type(json_value),pointer :: parent
  8. type(json_core) :: json
  9. type(json_value),pointer :: p
  10. ! 1. create new node
  11. call json%create_object(p,'Configuration')
  12. ! 2. add member of data type to new node
  13. call ProblemToJson(p,"LostCirculation",data%problems%LostProblems%LostCirculation)
  14. call json%add(p,"FlowRate",data%problems%LostProblems%FlowRate)
  15. ! 3. add new node to parent
  16. call json%add(parent,p)
  17. end subroutine
  18. subroutine ProcessLostProblemsDueTime(time)
  19. implicit none
  20. integer :: time
  21. if(data%problems%LostProblems%LostCirculation%ProblemType == Time_ProblemType) call ProcessDueTime(data%problems%LostProblems%LostCirculation, ChangeLostCirculation, time)
  22. end subroutine
  23. subroutine ProcessLostProblemsDuePumpStrokes(strokes)
  24. implicit none
  25. integer :: strokes
  26. if(data%problems%LostProblems%LostCirculation%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(data%problems%LostProblems%LostCirculation, ChangeLostCirculation, strokes)
  27. end subroutine
  28. subroutine ProcessLostProblemsDueVolumePumped(volume)
  29. implicit none
  30. real(8) :: volume
  31. if(data%problems%LostProblems%LostCirculation%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(data%problems%LostProblems%LostCirculation, ChangeLostCirculation, volume)
  32. end subroutine
  33. subroutine ProcessLostProblemsDueDistanceDrilled(distance)
  34. implicit none
  35. real(8) :: distance
  36. if(data%problems%LostProblems%LostCirculation%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(data%problems%LostProblems%LostCirculation, ChangeLostCirculation, distance)
  37. end subroutine
  38. subroutine ChangeLostCirculation(status)
  39. implicit none
  40. integer, intent (in) :: status
  41. ! if(associated(LostCirculationPtr)) call LostCirculationPtr(status)
  42. !if(status == Clear_StatusType) print*,'On_LostCirculation_Clear'
  43. !if(status == Executed_StatusType) print*,'On_LostCirculation_Execute'
  44. endsubroutine
  45. end module CLostProblems