Simulation Core
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.
 
 
 
 
 
 

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