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.

CChokeControlPanel.f90 7.3 KiB

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. module CChokeControlPanel
  2. use CChokeControlPanelVariables
  3. use SimulationVariables
  4. implicit none
  5. public
  6. contains
  7. subroutine CChokeToJson(parent)
  8. type(json_value),pointer :: parent
  9. type(json_core) :: json
  10. type(json_value),pointer :: p
  11. ! 1. create new node
  12. call json%create_object(p,'CChoke')
  13. call json%add(p,"ChokePanelPumpSelectorSwitch",data%Equipments%ContolPanel%CChoke%ChokePanelPumpSelectorSwitch)
  14. call json%add(p,"ChokePanelStrokeResetSwitch",data%Equipments%ContolPanel%CChoke%ChokePanelStrokeResetSwitch)
  15. call json%add(p,"ChokeSelectorSwitch",data%Equipments%ContolPanel%CChoke%ChokeSelectorSwitch)
  16. call json%add(p,"ChokeRateControlKnob",data%Equipments%ContolPanel%CChoke%ChokeRateControlKnob)
  17. call json%add(p,"ChokeControlLever",data%Equipments%ContolPanel%CChoke%ChokeControlLever)
  18. call json%add(p,"ChokePanelRigAirSwitch",data%Equipments%ContolPanel%CChoke%ChokePanelRigAirSwitch)
  19. call json%add(p,"EnableAutoChoke",data%Equipments%ContolPanel%CChoke%EnableAutoChoke)
  20. call json%add(p,"StandPipePressure",data%Equipments%ContolPanel%CChoke%StandPipePressure)
  21. call json%add(p,"CasingPressure",data%Equipments%ContolPanel%CChoke%CasingPressure)
  22. call json%add(p,"ChokePosition",data%Equipments%ContolPanel%CChoke%ChokePosition)
  23. call json%add(p,"ChokePanelSPMCounter",data%Equipments%ContolPanel%CChoke%ChokePanelSPMCounter)
  24. call json%add(p,"ChokePanelTotalStrokeCounter",data%Equipments%ContolPanel%CChoke%ChokePanelTotalStrokeCounter)
  25. call json%add(p,"Choke1LED",data%Equipments%ContolPanel%CChoke%Choke1LED)
  26. call json%add(p,"Choke2LED",data%Equipments%ContolPanel%CChoke%Choke2LED)
  27. call json%add(parent,p)
  28. end subroutine
  29. ! Input routines
  30. subroutine SetChokePanelPumpSelectorSwitch(v)
  31. !DEC$ ATTRIBUTES DLLEXPORT :: SetChokePanelPumpSelectorSwitch
  32. !DEC$ ATTRIBUTES ALIAS: 'SetChokePanelPumpSelectorSwitch' :: SetChokePanelPumpSelectorSwitch
  33. implicit none
  34. integer, intent(in) :: v
  35. data%EquipmentControl%ChokeControlPanel%ChokePanelPumpSelectorSwitch = v
  36. #ifdef deb
  37. print*, 'ChokePanelPumpSelectorSwitch=', data%EquipmentControl%ChokeControlPanel%ChokePanelPumpSelectorSwitch
  38. #endif
  39. end subroutine
  40. subroutine SetChokePanelStrokeResetSwitch(v)
  41. !DEC$ ATTRIBUTES DLLEXPORT :: SetChokePanelStrokeResetSwitch
  42. !DEC$ ATTRIBUTES ALIAS: 'SetChokePanelStrokeResetSwitch' :: SetChokePanelStrokeResetSwitch
  43. implicit none
  44. logical, intent(in) :: v
  45. data%EquipmentControl%ChokeControlPanel%ChokePanelStrokeResetSwitch = v
  46. #ifdef deb
  47. print*, 'ChokePanelStrokeResetSwitch=', data%EquipmentControl%ChokeControlPanel%ChokePanelStrokeResetSwitch
  48. #endif
  49. end subroutine
  50. subroutine SetChokeSelectorSwitch(v)
  51. !DEC$ ATTRIBUTES DLLEXPORT :: SetChokeSelectorSwitch
  52. !DEC$ ATTRIBUTES ALIAS: 'SetChokeSelectorSwitch' :: SetChokeSelectorSwitch
  53. implicit none
  54. logical, intent(in) :: v
  55. data%EquipmentControl%ChokeControlPanel%ChokeSelectorSwitch = v
  56. #ifdef deb
  57. print*, 'ChokeSelectorSwitch=', data%EquipmentControl%ChokeControlPanel%ChokeSelectorSwitch
  58. #endif
  59. end subroutine
  60. subroutine SetChokeRateControlKnob(v)
  61. !DEC$ ATTRIBUTES DLLEXPORT :: SetChokeRateControlKnob
  62. !DEC$ ATTRIBUTES ALIAS: 'SetChokeRateControlKnob' :: SetChokeRateControlKnob
  63. implicit none
  64. real*8, intent(in) :: v
  65. !character(8) :: date
  66. !character(10) :: time
  67. !character(5) :: zone
  68. !integer,dimension(8) :: values
  69. data%EquipmentControl%ChokeControlPanel%ChokeRateControlKnob = v
  70. #ifdef deb
  71. !call date_and_time(date,time,zone,values)
  72. !!print '(a,2x,a,2x,a)', date, time, zone
  73. !print '(8i5)', values
  74. print*, 'ChokeRateControlKnob=', data%EquipmentControl%ChokeControlPanel%ChokeRateControlKnob
  75. #endif
  76. end subroutine
  77. subroutine SetChokeControlLever(v)
  78. !DEC$ ATTRIBUTES DLLEXPORT :: SetChokeControlLever
  79. !DEC$ ATTRIBUTES ALIAS: 'SetChokeControlLever' :: SetChokeControlLever
  80. implicit none
  81. real*8, intent(in) :: v
  82. data%EquipmentControl%ChokeControlPanel%ChokeControlLever = v
  83. #ifdef deb
  84. print*, 'ChokeControlLever=', data%EquipmentControl%ChokeControlPanel%ChokeControlLever
  85. #endif
  86. end subroutine
  87. subroutine SetChokePanelRigAirSwitch(v)
  88. !DEC$ ATTRIBUTES DLLEXPORT :: SetChokePanelRigAirSwitch
  89. !DEC$ ATTRIBUTES ALIAS: 'SetChokePanelRigAirSwitch' :: SetChokePanelRigAirSwitch
  90. implicit none
  91. logical, intent(in) :: v
  92. data%EquipmentControl%ChokeControlPanel%ChokePanelRigAirSwitch = v
  93. #ifdef deb
  94. print*, 'ChokePanelRigAirSwitch=', data%EquipmentControl%ChokeControlPanel%ChokePanelRigAirSwitch
  95. #endif
  96. end subroutine
  97. subroutine SetEnableAutoChoke(v)
  98. !DEC$ ATTRIBUTES DLLEXPORT :: SetEnableAutoChoke
  99. !DEC$ ATTRIBUTES ALIAS: 'SetEnableAutoChoke' :: SetEnableAutoChoke
  100. implicit none
  101. logical, intent(in) :: v
  102. data%EquipmentControl%ChokeControlPanel%EnableAutoChoke = v
  103. #ifdef deb
  104. print*, 'EnableAutoChoke=', data%EquipmentControl%ChokeControlPanel%EnableAutoChoke
  105. #endif
  106. end subroutine
  107. ! Output routines
  108. real(8) function GetStandPipePressure()
  109. !DEC$ ATTRIBUTES DLLEXPORT :: GetStandPipePressure
  110. !DEC$ ATTRIBUTES ALIAS: 'GetStandPipePressure' :: GetStandPipePressure
  111. implicit none
  112. GetStandPipePressure = data%EquipmentControl%ChokeControlPanel%StandPipePressure
  113. end function
  114. real(8) function GetCasingPressure()
  115. !DEC$ ATTRIBUTES DLLEXPORT :: GetCasingPressure
  116. !DEC$ ATTRIBUTES ALIAS: 'GetCasingPressure' :: GetCasingPressure
  117. implicit none
  118. GetCasingPressure = data%EquipmentControl%ChokeControlPanel%CasingPressure
  119. end function
  120. real(8) function GetChokePosition()
  121. !DEC$ ATTRIBUTES DLLEXPORT :: GetChokePosition
  122. !DEC$ ATTRIBUTES ALIAS: 'GetChokePosition' :: GetChokePosition
  123. implicit none
  124. GetChokePosition = data%EquipmentControl%ChokeControlPanel%ChokePosition
  125. end function
  126. real(8) function GetChokePanelSPMCounter()
  127. !DEC$ ATTRIBUTES DLLEXPORT :: GetChokePanelSPMCounter
  128. !DEC$ ATTRIBUTES ALIAS: 'GetChokePanelSPMCounter' :: GetChokePanelSPMCounter
  129. implicit none
  130. !GetChokePanelSPMCounter = 0
  131. GetChokePanelSPMCounter = data%EquipmentControl%ChokeControlPanel%ChokePanelSPMCounter
  132. end function
  133. real(8) function GetChokePanelTotalStrokeCounter()
  134. !DEC$ ATTRIBUTES DLLEXPORT :: GetChokePanelTotalStrokeCounter
  135. !DEC$ ATTRIBUTES ALIAS: 'GetChokePanelTotalStrokeCounter' :: GetChokePanelTotalStrokeCounter
  136. implicit none
  137. !GetChokePanelTotalStrokeCounter = 0
  138. GetChokePanelTotalStrokeCounter = data%EquipmentControl%ChokeControlPanel%ChokePanelTotalStrokeCounter
  139. end function
  140. integer function GetChoke1LED()
  141. !DEC$ ATTRIBUTES DLLEXPORT :: GetChoke1LED
  142. !DEC$ ATTRIBUTES ALIAS: 'GetChoke1LED' :: GetChoke1LED
  143. implicit none
  144. GetChoke1LED = data%EquipmentControl%ChokeControlPanel%Choke1LED
  145. end function
  146. integer function GetChoke2LED()
  147. !DEC$ ATTRIBUTES DLLEXPORT :: GetChoke2LED
  148. !DEC$ ATTRIBUTES ALIAS: 'GetChoke2LED' :: GetChoke2LED
  149. implicit none
  150. GetChoke2LED = data%EquipmentControl%ChokeControlPanel%Choke2LED
  151. end function
  152. end module CChokeControlPanel