Simulation Core
Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 
 
 
 

64 linhas
4.3 KiB

  1. module CDrillStemProblems
  2. use SimulationVariables
  3. implicit none
  4. public
  5. contains
  6. subroutine ProcessDrillStemProblemsDueTime(time)
  7. implicit none
  8. integer :: time
  9. if(data%problems%DrillStemProblems%StringDragIncrease%ProblemType == Time_ProblemType) call ProcessDueTime(data%problems%DrillStemProblems%StringDragIncrease, ChangeStringDragIncrease, time)
  10. if(data%problems%DrillStemProblems%StringTorqueIncrease%ProblemType == Time_ProblemType) call ProcessDueTime(data%problems%DrillStemProblems%StringTorqueIncrease, ChangeStringTorqueIncrease, time)
  11. if(data%problems%DrillStemProblems%StringTorqueFluctuation%ProblemType == Time_ProblemType) call ProcessDueTime(data%problems%DrillStemProblems%StringTorqueFluctuation, ChangeStringTorqueFluctuation, time)
  12. end subroutine
  13. subroutine ProcessDrillStemProblemsDuePumpStrokes(strokes)
  14. implicit none
  15. integer :: strokes
  16. if(data%problems%DrillStemProblems%StringDragIncrease%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(data%problems%DrillStemProblems%StringDragIncrease, ChangeStringDragIncrease, strokes)
  17. if(data%problems%DrillStemProblems%StringTorqueIncrease%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(data%problems%DrillStemProblems%StringTorqueIncrease, ChangeStringTorqueIncrease, strokes)
  18. if(data%problems%DrillStemProblems%StringTorqueFluctuation%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(data%problems%DrillStemProblems%StringTorqueFluctuation, ChangeStringTorqueFluctuation, strokes)
  19. end subroutine
  20. subroutine ProcessDrillStemProblemsDueVolumePumped(volume)
  21. implicit none
  22. real(8) :: volume
  23. if(data%problems%DrillStemProblems%StringDragIncrease%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(data%problems%DrillStemProblems%StringDragIncrease, ChangeStringDragIncrease, volume)
  24. if(data%problems%DrillStemProblems%StringTorqueIncrease%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(data%problems%DrillStemProblems%StringTorqueIncrease, ChangeStringTorqueIncrease, volume)
  25. if(data%problems%DrillStemProblems%StringTorqueFluctuation%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(data%problems%DrillStemProblems%StringTorqueFluctuation, ChangeStringTorqueFluctuation, volume)
  26. end subroutine
  27. subroutine ProcessDrillStemProblemsDueDistanceDrilled(distance)
  28. implicit none
  29. real(8) :: distance
  30. if(data%problems%DrillStemProblems%StringDragIncrease%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(data%problems%DrillStemProblems%StringDragIncrease, ChangeStringDragIncrease, distance)
  31. if(data%problems%DrillStemProblems%StringTorqueIncrease%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(data%problems%DrillStemProblems%StringTorqueIncrease, ChangeStringTorqueIncrease, distance)
  32. if(data%problems%DrillStemProblems%StringTorqueFluctuation%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(data%problems%DrillStemProblems%StringTorqueFluctuation, ChangeStringTorqueFluctuation, distance)
  33. end subroutine
  34. subroutine ChangeStringDragIncrease(status)
  35. implicit none
  36. integer, intent (in) :: status
  37. ! if(associated(StringDragIncreasePtr)) call StringDragIncreasePtr(status)
  38. !if(status == Clear_StatusType) print*,'On_StringDragIncrease_Clear'
  39. !if(status == Executed_StatusType) print*,'On_StringDragIncrease_Execute'
  40. endsubroutine
  41. subroutine ChangeStringTorqueIncrease(status)
  42. implicit none
  43. integer, intent (in) :: status
  44. ! if(associated(StringTorqueIncreasePtr)) call StringTorqueIncreasePtr(status)
  45. !if(status == Clear_StatusType) print*,'On_StringTorqueIncrease_Clear'
  46. !if(status == Executed_StatusType) print*,'On_StringTorqueIncrease_Execute'
  47. endsubroutine
  48. subroutine ChangeStringTorqueFluctuation(status)
  49. implicit none
  50. integer, intent (in) :: status
  51. ! if(associated(StringTorqueFluctuationPtr)) call StringTorqueFluctuationPtr(status)
  52. !if(status == Clear_StatusType) print*,'On_StringTorqueFluctuation_Clear'
  53. !if(status == Executed_StatusType) print*,'On_StringTorqueFluctuation_Execute'
  54. endsubroutine
  55. end module CDrillStemProblems