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.

CHoisting.f90 2.5 KiB

1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. module CHoisting
  2. use CHoistingVariables
  3. implicit none
  4. public
  5. contains
  6. subroutine SetDriveType(v)
  7. !DEC$ ATTRIBUTES DLLEXPORT :: SetDriveType
  8. !DEC$ ATTRIBUTES ALIAS: 'SetDriveType' :: SetDriveType
  9. use CManifolds
  10. use NotificationVariables, only: Set_IrSafetyValveLed
  11. implicit none
  12. integer, intent(in) :: v
  13. Hoisting%DriveType = v
  14. #ifdef deb
  15. print*, 'DriveType=', Hoisting%DriveType
  16. #endif
  17. if(v == TopDrive_DriveType) then ! top drive mode
  18. call RemoveKellyCock()
  19. call InstallTopDriveIBop()
  20. call RemoveSafetyValve_TripMode()
  21. call RemoveSafetyValve_KellyMode()
  22. call Set_IrSafetyValveLed(.false.)
  23. endif
  24. if(v == Kelly_DriveType) then ! kelly mode
  25. call RemoveTopDriveIBop()
  26. call InstallKellyCock()
  27. endif
  28. end subroutine
  29. subroutine SetTravelingBlockWeight(v)
  30. !DEC$ ATTRIBUTES DLLEXPORT :: SetTravelingBlockWeight
  31. !DEC$ ATTRIBUTES ALIAS: 'SetTravelingBlockWeight' :: SetTravelingBlockWeight
  32. implicit none
  33. real*8, intent(in) :: v
  34. Hoisting%TravelingBlockWeight = v
  35. end subroutine
  36. subroutine SetTopDriveWeight(v)
  37. !DEC$ ATTRIBUTES DLLEXPORT :: SetTopDriveWeight
  38. !DEC$ ATTRIBUTES ALIAS: 'SetTopDriveWeight' :: SetTopDriveWeight
  39. implicit none
  40. real*8, intent(in) :: v
  41. Hoisting%TopDriveWeight = v
  42. end subroutine
  43. subroutine SetKellyWeight(v)
  44. !DEC$ ATTRIBUTES DLLEXPORT :: SetKellyWeight
  45. !DEC$ ATTRIBUTES ALIAS: 'SetKellyWeight' :: SetKellyWeight
  46. implicit none
  47. real*8, intent(in) :: v
  48. Hoisting%KellyWeight = v
  49. end subroutine
  50. subroutine SetNumberOfLine(v)
  51. !DEC$ ATTRIBUTES DLLEXPORT :: SetNumberOfLine
  52. !DEC$ ATTRIBUTES ALIAS: 'SetNumberOfLine' :: SetNumberOfLine
  53. implicit none
  54. integer, intent(in) :: v
  55. Hoisting%NumberOfLine = v
  56. #ifdef deb
  57. print*, 'NumberOfLine=', Hoisting%NumberOfLine
  58. #endif
  59. end subroutine
  60. subroutine SetDrillingLineBreakingLoad(v)
  61. !DEC$ ATTRIBUTES DLLEXPORT :: SetDrillingLineBreakingLoad
  62. !DEC$ ATTRIBUTES ALIAS: 'SetDrillingLineBreakingLoad' :: SetDrillingLineBreakingLoad
  63. implicit none
  64. real*8, intent(in) :: v
  65. Hoisting%DrillingLineBreakingLoad = v
  66. end subroutine
  67. end module CHoisting