Simulation Core
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

64 lines
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