Simulation Core
25개 이상의 토픽을 선택하실 수 없습니다. 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 ConfigurationVariables
  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