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.
 
 
 
 
 
 

73 líneas
2.1 KiB

  1. module CLostProblemsVariables
  2. use CProblemDifinition
  3. implicit none
  4. public
  5. ! Input vars
  6. type(CProblem) :: LostCirculation
  7. real(8) :: FlowRate
  8. procedure (ActionInteger), pointer :: LostCirculationPtr
  9. contains
  10. subroutine ProcessLostProblemsDueTime(time)
  11. implicit none
  12. integer :: time
  13. if(LostCirculation%ProblemType == Time_ProblemType) call ProcessDueTime(LostCirculation, ChangeLostCirculation, time)
  14. end subroutine
  15. subroutine ProcessLostProblemsDuePumpStrokes(strokes)
  16. implicit none
  17. integer :: strokes
  18. if(LostCirculation%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(LostCirculation, ChangeLostCirculation, strokes)
  19. end subroutine
  20. subroutine ProcessLostProblemsDueVolumePumped(volume)
  21. implicit none
  22. real(8) :: volume
  23. if(LostCirculation%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(LostCirculation, ChangeLostCirculation, volume)
  24. end subroutine
  25. subroutine ProcessLostProblemsDueDistanceDrilled(distance)
  26. implicit none
  27. real(8) :: distance
  28. if(LostCirculation%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(LostCirculation, ChangeLostCirculation, distance)
  29. end subroutine
  30. subroutine ChangeLostCirculation(status)
  31. implicit none
  32. integer, intent (in) :: status
  33. if(associated(LostCirculationPtr)) call LostCirculationPtr(status)
  34. !if(status == Clear_StatusType) print*,'On_LostCirculation_Clear'
  35. !if(status == Executed_StatusType) print*,'On_LostCirculation_Execute'
  36. endsubroutine
  37. subroutine SubscribeLostCirculation(v)
  38. !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeLostCirculation
  39. !DEC$ ATTRIBUTES ALIAS: 'SubscribeLostCirculation' :: SubscribeLostCirculation
  40. implicit none
  41. procedure (ActionInteger) :: v
  42. LostCirculationPtr => v
  43. end subroutine
  44. end module CLostProblemsVariables