Quellcode durchsuchen

Some DS added and Some step function currected

najafi
mahmood19227 vor 1 Jahr
Ursprung
Commit
fe75a73141
100 geänderte Dateien mit 4608 neuen und 6163 gelöschten Zeilen
  1. +1
    -1
      CSharp/BasicInputs/RigSpecifications/CHoisting.f90
  2. +4
    -4
      CSharp/Equipments/ControlPanels/CHookVariables.f90
  3. +2
    -2
      CSharp/Equipments/ControlPanels/CTopDrivePanel.f90
  4. +1
    -1
      CSharp/Equipments/DrillWatch/CDrillWatch.f90
  5. +24
    -21
      CSharp/Equipments/MudPathFinding/CManifolds.f90
  6. +1
    -1
      CSharp/Equipments/Tanks/CTanks.f90
  7. +241
    -236
      CSharp/OperationScenarios/Common/COperationScenariosMain.f90
  8. +1
    -1
      CSharp/OperationScenarios/Common/COperationScenariosSettings.f90
  9. +84
    -53
      CSharp/OperationScenarios/Common/COperationScenariosVariables.f90
  10. +0
    -67
      CSharp/OperationScenarios/Notifications/CCloseKellyCockLedNotificationVariables.f90
  11. +3
    -3
      CSharp/OperationScenarios/Notifications/CCloseSafetyValveLedNotification.f90
  12. +0
    -67
      CSharp/OperationScenarios/Notifications/CCloseSafetyValveLedNotificationVariables.f90
  13. +0
    -61
      CSharp/OperationScenarios/Notifications/CFillMouseHoleLedNotificationVariables.f90
  14. +0
    -63
      CSharp/OperationScenarios/Notifications/CIrIBopLedNotificationVariables.f90
  15. +3
    -3
      CSharp/OperationScenarios/Notifications/CIrSafetyValveLedNotification.f90
  16. +0
    -90
      CSharp/OperationScenarios/Notifications/CIrSafetyValveLedNotificationVariables.f90
  17. +0
    -58
      CSharp/OperationScenarios/Notifications/CLatchLedNotificationVariables.f90
  18. +0
    -63
      CSharp/OperationScenarios/Notifications/COpenKellyCockLedNotificationVariables.f90
  19. +3
    -3
      CSharp/OperationScenarios/Notifications/COpenSafetyValveLedNotification.f90
  20. +0
    -65
      CSharp/OperationScenarios/Notifications/COpenSafetyValveLedNotificationVariables.f90
  21. +0
    -65
      CSharp/OperationScenarios/Notifications/CSlipsNotificationVariables.f90
  22. +0
    -55
      CSharp/OperationScenarios/Notifications/CSwingLedNotificationVariables.f90
  23. +0
    -60
      CSharp/OperationScenarios/Notifications/CTdsIbopLedNotificationVariables.f90
  24. +0
    -57
      CSharp/OperationScenarios/Notifications/CTdsPowerLedNotificationVariables.f90
  25. +0
    -50
      CSharp/OperationScenarios/Notifications/CTdsTorqueWrenchLedNotificationVariables.f90
  26. +6
    -6
      CSharp/OperationScenarios/Notifications/CTongNotification.f90
  27. +0
    -69
      CSharp/OperationScenarios/Notifications/CTongNotificationVariables.f90
  28. +7
    -7
      CSharp/OperationScenarios/Notifications/CUnlatchLedNotification.f90
  29. +0
    -62
      CSharp/OperationScenarios/Notifications/CUnlatchLedNotificationVariables.f90
  30. +434
    -0
      CSharp/OperationScenarios/Notifications/NotificationVariables.f90
  31. +0
    -2
      CSharp/OperationScenarios/Permissions/CFillupHeadPermission.f90
  32. +0
    -50
      CSharp/OperationScenarios/Permissions/CFillupHeadPermissionVariables.f90
  33. +0
    -53
      CSharp/OperationScenarios/Permissions/CInstallFillupHeadPermissionVariables.f90
  34. +0
    -51
      CSharp/OperationScenarios/Permissions/CInstallMudBucketPermissionVariables.f90
  35. +0
    -49
      CSharp/OperationScenarios/Permissions/CIrIbopPermissionVariables.f90
  36. +0
    -51
      CSharp/OperationScenarios/Permissions/CIrSafetyValvePermissionVariables.f90
  37. +0
    -51
      CSharp/OperationScenarios/Permissions/CRemoveFillupHeadPermissionVariables.f90
  38. +0
    -51
      CSharp/OperationScenarios/Permissions/CRemoveMudBucketPermissionVariables.f90
  39. +0
    -49
      CSharp/OperationScenarios/Permissions/CSwingDrillPermissionVariables.f90
  40. +0
    -48
      CSharp/OperationScenarios/Permissions/CSwingOffPermissionVariables.f90
  41. +0
    -50
      CSharp/OperationScenarios/Permissions/CSwingTiltPermissionVariables.f90
  42. +212
    -0
      CSharp/OperationScenarios/Permissions/PermissionsVariables.f90
  43. +0
    -37
      CSharp/OperationScenarios/SoftwareInputs/CHookHeight.f90
  44. +0
    -58
      CSharp/OperationScenarios/SoftwareInputs/CIbopHeight.f90
  45. +0
    -60
      CSharp/OperationScenarios/SoftwareInputs/CNearFloorConnection.f90
  46. +0
    -59
      CSharp/OperationScenarios/SoftwareInputs/CSafetyValveHeight.f90
  47. +0
    -54
      CSharp/OperationScenarios/SoftwareInputs/CSlackOff.f90
  48. +0
    -38
      CSharp/OperationScenarios/SoftwareInputs/CStandRack.f90
  49. +0
    -57
      CSharp/OperationScenarios/SoftwareInputs/CStringPressure.f90
  50. +0
    -55
      CSharp/OperationScenarios/SoftwareInputs/CTdsStemJointHeight.f90
  51. +0
    -60
      CSharp/OperationScenarios/SoftwareInputs/CZeroStringSpeed.f90
  52. +195
    -0
      CSharp/OperationScenarios/SoftwareInputsVariables.f90
  53. +0
    -33
      CSharp/OperationScenarios/SoftwareOutputs/CStringUpdate.f90
  54. +3
    -17
      CSharp/OperationScenarios/SoftwareOutputs/CStringUpdateVariables.f90
  55. +0
    -0
     
  56. +0
    -831
      CSharp/OperationScenarios/Test/TestOperationScenarios.f90
  57. +0
    -96
      CSharp/OperationScenarios/Test/TestOperationScenariosVariables.f90
  58. +363
    -389
      CSharp/OperationScenarios/Unity/CUnityInputs.f90
  59. +55
    -89
      CSharp/OperationScenarios/Unity/CUnityOutputs.f90
  60. +1
    -1
      CSharp/OperationScenarios/UnitySignals/CTongEnum.f90
  61. +478
    -0
      CSharp/OperationScenarios/UnitySignals/UnitySignalsVariables.f90
  62. +14
    -14
      CSharp/Problems/CBitProblems.f90
  63. +36
    -32
      CSharp/Problems/CBitProblemsVariables.f90
  64. +64
    -64
      CSharp/Problems/CBopProblems.f90
  65. +233
    -231
      CSharp/Problems/CBopProblemsVariables.f90
  66. +60
    -60
      CSharp/Problems/CChokeProblems.f90
  67. +189
    -187
      CSharp/Problems/CChokeProblemsVariables.f90
  68. +16
    -16
      CSharp/Problems/CDrillStemProblems.f90
  69. +48
    -46
      CSharp/Problems/CDrillStemProblemsVariables.f90
  70. +92
    -92
      CSharp/Problems/CGaugesProblems.f90
  71. +328
    -327
      CSharp/Problems/CGaugesProblemsVariables.f90
  72. +12
    -12
      CSharp/Problems/CHoistingProblems.f90
  73. +45
    -43
      CSharp/Problems/CHoistingProblemsVariables.f90
  74. +14
    -14
      CSharp/Problems/CKickProblems.f90
  75. +22
    -20
      CSharp/Problems/CKickProblemsVariables.f90
  76. +6
    -6
      CSharp/Problems/CLostProblems.f90
  77. +19
    -18
      CSharp/Problems/CLostProblemsVariables.f90
  78. +4
    -4
      CSharp/Problems/CMudTreatmentProblems.f90
  79. +59
    -57
      CSharp/Problems/CMudTreatmentProblemsVariables.f90
  80. +11
    -11
      CSharp/Problems/COtherProblems.f90
  81. +157
    -155
      CSharp/Problems/COtherProblemsVariables.f90
  82. +68
    -68
      CSharp/Problems/CProblemDifinition.f90
  83. +73
    -73
      CSharp/Problems/CPumpProblems.f90
  84. +47
    -97
      CSharp/Problems/CPumpProblemsVariables.f90
  85. +25
    -25
      CSharp/Problems/CRotaryProblems.f90
  86. +31
    -29
      CSharp/Problems/CRotaryProblemsVariables.f90
  87. +1
    -1
      CSharp/Simulation/CSimulation.f90
  88. +23
    -23
      CSharp/Simulation/CSimulationVariables.f90
  89. +438
    -436
      CSharp/Simulation/CSounds.f90
  90. +75
    -75
      CSounds.f90
  91. +30
    -1
      Data Structures.txt
  92. +6
    -6
      Equipments/BopStack/ANNULAR.f90
  93. +52
    -41
      Equipments/BopStack/AnnularMain.f90
  94. +60
    -40
      Equipments/BopStack/BlindRamsMain.f90
  95. +0
    -1
      Equipments/BopStack/BopStackMain.f90
  96. +14
    -15
      Equipments/BopStack/CHOKE_LINE.f90
  97. +54
    -41
      Equipments/BopStack/ChokeLineMain.f90
  98. +6
    -6
      Equipments/BopStack/KILL_LINE.f90
  99. +52
    -41
      Equipments/BopStack/KillLineMain.f90
  100. +2
    -2
      Equipments/BopStack/LOSS_INPUTS.f90

+ 1
- 1
CSharp/BasicInputs/RigSpecifications/CHoisting.f90 Datei anzeigen

@@ -7,7 +7,7 @@ module CHoisting
!DEC$ ATTRIBUTES DLLEXPORT :: SetDriveType
!DEC$ ATTRIBUTES ALIAS: 'SetDriveType' :: SetDriveType
use CManifolds
use CIrSafetyValveLedNotificationVariables, only: Set_IrSafetyValveLed
use NotificationVariables, only: Set_IrSafetyValveLed
implicit none
integer, intent(in) :: v
Hoisting%DriveType = v


+ 4
- 4
CSharp/Equipments/ControlPanels/CHookVariables.f90 Datei anzeigen

@@ -1,6 +1,6 @@
module CHookVariables
use CRealEventHandlerCollection
use CHookActions
! use CHookActions
implicit none
Type :: HookType
real :: HookHeight_S = 0.0
@@ -21,9 +21,9 @@ module CHookVariables
#endif
Hook%HookHeight = v
if(associated(HookHeightPtr)) then
call HookHeightPtr(Hook%HookHeight)
end if
! if(associated(HookHeightPtr)) then
! call HookHeightPtr(Hook%HookHeight)
! end if
#ifdef deb
print*, 'HookHeight=', Hook%HookHeight


+ 2
- 2
CSharp/Equipments/ControlPanels/CTopDrivePanel.f90 Datei anzeigen

@@ -64,7 +64,7 @@ module CTopDrivePanel
subroutine SetTopDriveTorqueLimitKnob(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SetTopDriveTorqueLimitKnob
!DEC$ ATTRIBUTES ALIAS: 'SetTopDriveTorqueLimitKnob' :: SetTopDriveTorqueLimitKnob
use CSimulationVariables, only: IsPortable
! use CSimulationVariables, only: IsPortable
use CDrillingConsoleVariables!, only: DrillingConsole%RTSwitch, DrillingConsole%RTTorqueLimitKnob
use CWarningsVariables, only: Activate_TopdriveRotaryTableConfilict
use CScaleRange
@@ -100,7 +100,7 @@ module CTopDrivePanel
subroutine SetRpmKnob(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SetRpmKnob
!DEC$ ATTRIBUTES ALIAS: 'SetRpmKnob' :: SetRpmKnob
use CSimulationVariables, only: IsPortable
! use CSimulationVariables, only: IsPortable
use CDrillingConsoleVariables!, only: DrillingConsole%RTSwitch, DrillingConsole%RTThrottle
use CWarningsVariables, only: Activate_TopdriveRotaryTableConfilict
use CScaleRange


+ 1
- 1
CSharp/Equipments/DrillWatch/CDrillWatch.f90 Datei anzeigen

@@ -1,6 +1,6 @@
module CDrillWatch
use CDrillWatchVariables
!use CSimulationVariables
!! use CSimulationVariables
implicit none
public
contains


+ 24
- 21
CSharp/Equipments/MudPathFinding/CManifolds.f90 Datei anzeigen

@@ -38,7 +38,7 @@ module CManifolds
contains
subroutine PathFinding_Setup()
use CSimulationVariables
! use CSimulationVariables
implicit none
Manifold%IsTraverse = .false.
call Setup()
@@ -46,7 +46,7 @@ module CManifolds
!call OnSimulationStop%Add(PathFinding_Init)
!call OnPathFindingStep%Add(PathFinding_Step)
!call OnPathFindingOutput%Add(PathFinding_Output)
call OnPathFindingMain%Add(PathFindingMainBody)
! call OnPathFindingMain%Add(PathFindingMainBody)
end subroutine
subroutine PathFinding_Init
@@ -56,25 +56,28 @@ module CManifolds
end subroutine PathFinding_Init
subroutine PathFinding_Step
implicit none
end subroutine PathFinding_Step
subroutine PathFinding_Output
implicit none
end subroutine PathFinding_Output
subroutine PathFindingMainBody
use CSimulationVariables
implicit none
loop : do
if(IsStopped) call Quit()
call sleepqq(50)
if (Manifold%IsPathsDirty) then
Manifold%IsPathsDirty = .false.
call Traverse()
endif
end do loop
end subroutine PathFindingMainBody
if (Manifold%IsPathsDirty) then
Manifold%IsPathsDirty = .false.
call Traverse()
endif
end subroutine PathFinding_Step
! subroutine PathFinding_Output
! implicit none
! end subroutine PathFinding_Output
! subroutine PathFindingMainBody
! ! use CSimulationVariables
! implicit none
! loop : do
! if(IsStopped) call Quit()
! call sleepqq(50)
! if (Manifold%IsPathsDirty) then
! Manifold%IsPathsDirty = .false.
! call Traverse()
! endif
! end do loop
! end subroutine PathFindingMainBody
subroutine Traverse()
use CLog5


+ 1
- 1
CSharp/Equipments/Tanks/CTanks.f90 Datei anzeigen

@@ -1,7 +1,7 @@

module CTanks
use CTanksVariables
use CSimulationVariables
! use CSimulationVariables
use CManifolds
implicit none
public


+ 241
- 236
CSharp/OperationScenarios/Common/COperationScenariosMain.f90 Datei anzeigen

@@ -6,7 +6,7 @@ module COperationScenariosMain
contains
! subroutine OperationScenarios_Setup()
! use CSimulationVariables
! ! use CSimulationVariables
! implicit none
! call OnSimulationInitialization%Add(OperationScenarios_Init)
! call OnSimulationStop%Add(OperationScenarios_Init)
@@ -22,7 +22,7 @@ module COperationScenariosMain
! end subroutine OperationScenarios_Init
subroutine OperationScenarios_Step
use CSimulationVariables
! use CSimulationVariables
use CKellyConnectionEnum
use CElevatorConnectionEnum
use CCloseKellyCockLedNotification
@@ -43,14 +43,15 @@ module COperationScenariosMain
use CIrSafetyValvePermission
use CRemoveFillupHeadPermission
use CRemoveMudBucketPermission
use CHookHeight
use CIbopHeight
use CNearFloorConnection
use CSafetyValveHeight
use CSlackOff
use CStandRack
use CStringPressure
use CZeroStringSpeed
use SoftwareInputsVariables
! use CHookHeight
! use CIbopHeight
! use CNearFloorConnection
! use CSafetyValveHeight
! use CSlackOff
! use CStandRack
! use CStringPressure
! use CZeroStringSpeed
use CUnityInputs, only: &
Get_ElevatorConnectionPossible, &
Get_JointConnectionPossible, &
@@ -68,14 +69,14 @@ module COperationScenariosMain
use CSlipsEnum
use CSwingEnum
use CTongEnum
use CStringUpdate
! use CStringUpdate
use CFlowPipeDisconnectEnum
use CFlowKellyDisconnectEnum
use CFillupHeadPermission
use CSwingDrillPermission
use CSwingOffPermission
use CSwingTiltPermission
use CTdsStemJointHeight
! use CTdsStemJointHeight
use CTdsConnectionModesEnum
use CTdsElevatorModesEnum
use CTdsSpineEnum
@@ -124,7 +125,7 @@ module COperationScenariosMain
call Evaluate_Swing()
call Evaluate_Tong()
call Evaluate_StringUpdate()
! call Evaluate_StringUpdate()
call Evaluate_FlowKellyDisconnect()
call Evaluate_FlowPipeDisconnect()
@@ -171,252 +172,253 @@ module COperationScenariosMain
implicit none
end subroutine OperationScenarios_Output
subroutine OperationScenariosMainBody
use CSimulationVariables
! subroutine OperationScenariosMainBody
! ! use CSimulationVariables
! use CKellyConnectionEnum
! use CElevatorConnectionEnum
! use CCloseKellyCockLedNotification
! use CCloseSafetyValveLedNotification
! use CFillMouseHoleLedNotification
! use CIrIBopLedNotification
! use CIrSafetyValveLedNotification
! use CLatchLedNotification
! use COpenKellyCockLedNotification
! use COpenSafetyValveLedNotification
! use CSlipsNotification
! use CSwingLedNotification
! use CTongNotification
! use CUnlatchLedNotification
! use CInstallFillupHeadPermission
! use CInstallMudBucketPermission
! use CIrIbopPermission
! use CIrSafetyValvePermission
! use CRemoveFillupHeadPermission
! use CRemoveMudBucketPermission
! ! use CHookHeight
! ! use CIbopHeight
! ! use CNearFloorConnection
! ! use CSafetyValveHeight
! ! use CSlackOff
! ! use CStandRack
! ! use CStringPressure
! ! use CZeroStringSpeed
! use CUnityInputs, only: &
! Get_ElevatorConnectionPossible, &
! Get_JointConnectionPossible, &
! Get_ElevatorPickup, &
! Get_NearFloorPosition, &
! Get_SingleSetInMouseHole
! use CBucketEnum
! use CElevatorEnum
! use CHeadEnum
! use CIbopEnum
! use CKellyEnum
! use CMouseHoleEnum
! use COperationConditionEnum
! use CSafetyValveEnum
! use CSlipsEnum
! use CSwingEnum
! use CTongEnum
! ! use CStringUpdate
! use CFlowPipeDisconnectEnum
! use CFlowKellyDisconnectEnum
! use CFillupHeadPermission
! use CSwingDrillPermission
! use CSwingOffPermission
! use CSwingTiltPermission
! ! use CTdsStemJointHeight
! use CTdsConnectionModesEnum
! use CTdsElevatorModesEnum
! use CTdsSpineEnum
! use CTdsSwingEnum
! use CTdsTongEnum
! use CTdsBackupClamp
! use CTdsIbopLedNotification
! use CTdsPowerLedNotification
! use CTdsTorqueWrenchLedNotification
use CKellyConnectionEnum
use CElevatorConnectionEnum
use CCloseKellyCockLedNotification
use CCloseSafetyValveLedNotification
use CFillMouseHoleLedNotification
use CIrIBopLedNotification
use CIrSafetyValveLedNotification
use CLatchLedNotification
use COpenKellyCockLedNotification
use COpenSafetyValveLedNotification
use CSlipsNotification
use CSwingLedNotification
use CTongNotification
use CUnlatchLedNotification
use CInstallFillupHeadPermission
use CInstallMudBucketPermission
use CIrIbopPermission
use CIrSafetyValvePermission
use CRemoveFillupHeadPermission
use CRemoveMudBucketPermission
use CHookHeight
use CIbopHeight
use CNearFloorConnection
use CSafetyValveHeight
use CSlackOff
use CStandRack
use CStringPressure
use CZeroStringSpeed
use CUnityInputs, only: &
Get_ElevatorConnectionPossible, &
Get_JointConnectionPossible, &
Get_ElevatorPickup, &
Get_NearFloorPosition, &
Get_SingleSetInMouseHole
use CBucketEnum
use CElevatorEnum
use CHeadEnum
use CIbopEnum
use CKellyEnum
use CMouseHoleEnum
use COperationConditionEnum
use CSafetyValveEnum
use CSlipsEnum
use CSwingEnum
use CTongEnum
use CStringUpdate
use CFlowPipeDisconnectEnum
use CFlowKellyDisconnectEnum
use CFillupHeadPermission
use CSwingDrillPermission
use CSwingOffPermission
use CSwingTiltPermission
use CTdsStemJointHeight
use CTdsConnectionModesEnum
use CTdsElevatorModesEnum
use CTdsSpineEnum
use CTdsSwingEnum
use CTdsTongEnum
use CTdsBackupClamp
use CTdsIbopLedNotification
use CTdsPowerLedNotification
use CTdsTorqueWrenchLedNotification
implicit none
loop1: do
call Evaluate_KellyConnection()
call Evaluate_ElevatorConnection()
call Evaluate_CloseKellyCockLed()
call Evaluate_CloseSafetyValveLed()
call Evaluate_FillMouseHoleLed()
call Evaluate_IrIBopLed()
call Evaluate_IrSafetyValveLed()
call Evaluate_LatchLed()
call Evaluate_OpenKellyCockLed()
call Evaluate_OpenSafetyValveLed()
call Evaluate_SlipsNotification()
call Evaluate_SwingLed()
call Evaluate_TongNotification()
call Evaluate_UnlatchLed()
call Evaluate_InstallFillupHeadPermission()
call Evaluate_InstallMudBucketPermission()
call Evaluate_IrIbopPermission()
call Evaluate_IrSafetyValvePermission()
call Evaluate_RemoveFillupHeadPermission()
call Evaluate_RemoveMudBucketPermission()
call Evaluate_MudBucket()
call Evaluate_Elevator()
call Evaluate_FillupHead()
call Evaluate_Ibop()
call Evaluate_Kelly()
call Evaluate_MouseHole()
call Evaluate_MouseHole()
call Evaluate_OperationCondition()
call Evaluate_SafetyValve()
call Evaluate_Slips()
call Evaluate_Swing()
call Evaluate_Tong()
call Evaluate_StringUpdate()
call Evaluate_FlowKellyDisconnect()
call Evaluate_FlowPipeDisconnect()
!if(Get_FillMouseHoleLed()) then
! call Set_MouseHole(MOUSE_HOLE_FILL)
!else
! if((Get_KellyConnection() == KELLY_CONNECTION_SINGLE .or.&
! Get_ElevatorConnection() == ELEVATOR_CONNECTION_SINGLE) .and.&
! Get_HookHeight() >= 95.0 ) then
! call Set_MouseHole(MOUSE_HOLE_NEUTRAL)
! else
! call Set_MouseHole(MOUSE_HOLE_EMPTY)
! endif
!endif
!topdrive
call Evaluate_TdsElevatorModes()
call Evaluate_TdsConnectionModes()
call Evaluate_SwingTiltPermission()
call Evaluate_SwingOffPermission()
call Evaluate_SwingDrillPermission()
call Evaluate_FillupHeadPermission()
call Evaluate_TdsTong()
call Evaluate_TdsBackupClamp()
call Evaluate_TdsSwing()
call Evaluate_TdsSpine()
call Evaluate_PowerLed()
call Evaluate_IbopLed()
! implicit none
! loop1: do
! call Evaluate_KellyConnection()
! call Evaluate_ElevatorConnection()
! call Evaluate_CloseKellyCockLed()
! call Evaluate_CloseSafetyValveLed()
! call Evaluate_FillMouseHoleLed()
! call Evaluate_IrIBopLed()
! call Evaluate_IrSafetyValveLed()
! call Evaluate_LatchLed()
! call Evaluate_OpenKellyCockLed()
! call Evaluate_OpenSafetyValveLed()
! call Evaluate_SlipsNotification()
! call Evaluate_SwingLed()
! call Evaluate_TongNotification()
! call Evaluate_UnlatchLed()
! call Evaluate_InstallFillupHeadPermission()
! call Evaluate_InstallMudBucketPermission()
! call Evaluate_IrIbopPermission()
! call Evaluate_IrSafetyValvePermission()
! call Evaluate_RemoveFillupHeadPermission()
! call Evaluate_RemoveMudBucketPermission()
! call Evaluate_MudBucket()
! call Evaluate_Elevator()
! call Evaluate_FillupHead()
! call Evaluate_Ibop()
! call Evaluate_Kelly()
! call Evaluate_MouseHole()
! call Evaluate_MouseHole()
! call Evaluate_OperationCondition()
! call Evaluate_SafetyValve()
! call Evaluate_Slips()
! call Evaluate_Swing()
! call Evaluate_Tong()
! ! call Evaluate_StringUpdate()
! call Evaluate_FlowKellyDisconnect()
! call Evaluate_FlowPipeDisconnect()
! !if(Get_FillMouseHoleLed()) then
! ! call Set_MouseHole(MOUSE_HOLE_FILL)
! !else
! ! if((Get_KellyConnection() == KELLY_CONNECTION_SINGLE .or.&
! ! Get_ElevatorConnection() == ELEVATOR_CONNECTION_SINGLE) .and.&
! ! Get_HookHeight() >= 95.0 ) then
! ! call Set_MouseHole(MOUSE_HOLE_NEUTRAL)
! ! else
! ! call Set_MouseHole(MOUSE_HOLE_EMPTY)
! ! endif
! !endif
! !topdrive
! call Evaluate_TdsElevatorModes()
! call Evaluate_TdsConnectionModes()
! call Evaluate_SwingTiltPermission()
! call Evaluate_SwingOffPermission()
! call Evaluate_SwingDrillPermission()
! call Evaluate_FillupHeadPermission()
! call Evaluate_TdsTong()
! call Evaluate_TdsBackupClamp()
! call Evaluate_TdsSwing()
! call Evaluate_TdsSpine()
! call Evaluate_PowerLed()
! call Evaluate_IbopLed()
call Evaluate_TorqueWrenchLed()
! call Evaluate_TorqueWrenchLed()
!if (IsStopped==.true.) exit loop1
if(IsStopped) call Quit()
call sleepqq(100)
enddo loop1
end subroutine OperationScenariosMainBody
! !if (IsStopped==.true.) exit loop1
! if(IsStopped) call Quit()
! call sleepqq(100)
! enddo loop1
! end subroutine OperationScenariosMainBody
subroutine SubscribeUpdateUnity(a)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeUpdateUnity
!DEC$ ATTRIBUTES ALIAS: 'SubscribeUpdateUnity' :: SubscribeUpdateUnity
implicit none
procedure (ActionVoid) :: a
UpdateUnityPtr => a
end subroutine
! subroutine SubscribeUpdateUnity(a)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeUpdateUnity
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeUpdateUnity' :: SubscribeUpdateUnity
! implicit none
! procedure (ActionVoid) :: a
! UpdateUnityPtr => a
! end subroutine
subroutine UpdateUnity()
implicit none
if(associated(UpdateUnityPtr)) call UpdateUnityPtr()
end subroutine
subroutine PreProcessingSnapshot
!DEC$ ATTRIBUTES DLLEXPORT :: PreProcessingSnapshot
!DEC$ ATTRIBUTES ALIAS: 'PreProcessingSnapshot' :: PreProcessingSnapshot
use CSwingEnumVariables
use CSlipsEnumVariables
use CHookVariables
use CTongEnumVariables
use CHoistingVariables
use CKellyConnectionEnumVariables
use COperationScenariosVariables
! use CElevatorConnectionEnumVariables
use COperationConditionEnumVariables
use CMouseHoleEnumVariables
implicit none
! subroutine PreProcessingSnapshot
! !DEC$ ATTRIBUTES DLLEXPORT :: PreProcessingSnapshot
! !DEC$ ATTRIBUTES ALIAS: 'PreProcessingSnapshot' :: PreProcessingSnapshot
! use CSwingEnumVariables
! use CSlipsEnumVariables
! use CHookVariables
! use CTongEnumVariables
! use CHoistingVariables
! use CKellyConnectionEnumVariables
! use COperationScenariosVariables
! ! use CElevatorConnectionEnumVariables
! use COperationConditionEnumVariables
! use CMouseHoleEnumVariables
! implicit none
if(Hoisting%DriveType == Kelly_DriveType) then ! kelly mode
! if(Hoisting%DriveType == Kelly_DriveType) then ! kelly mode
if(Get_OperationCondition() == OPERATION_DRILL) then
! if(Get_OperationCondition() == OPERATION_DRILL) then
if(Get_KellyConnection() == KELLY_CONNECTION_NOTHING) then
call Kelly_ConnectionNothing()
! if(Get_KellyConnection() == KELLY_CONNECTION_NOTHING) then
! call Kelly_ConnectionNothing()
elseif (Get_KellyConnection() == KELLY_CONNECTION_STRING) then
call Kelly_ConnectionString()
! elseif (Get_KellyConnection() == KELLY_CONNECTION_STRING) then
! call Kelly_ConnectionString()
elseif (Get_KellyConnection() == KELLY_CONNECTION_SINGLE) then
call Kelly_ConnectionSingle()
! elseif (Get_KellyConnection() == KELLY_CONNECTION_SINGLE) then
! call Kelly_ConnectionSingle()
endif
! endif
elseif (Get_OperationCondition() == OPERATION_TRIP) then
! elseif (Get_OperationCondition() == OPERATION_TRIP) then
if(Get_ElevatorConnection() == ELEVATOR_CONNECTION_NOTHING) then
call Elevator_ConnectionNothing()
! if(Get_ElevatorConnection() == ELEVATOR_CONNECTION_NOTHING) then
! call Elevator_ConnectionNothing()
elseif (Get_ElevatorConnection() == ELEVATOR_CONNECTION_STRING) then
call Elevator_ConnectionString()
! elseif (Get_ElevatorConnection() == ELEVATOR_CONNECTION_STRING) then
! call Elevator_ConnectionString()
elseif (Get_ElevatorConnection() == ELEVATOR_CONNECTION_STAND) then
call Elevator_ConnectionStand()
! elseif (Get_ElevatorConnection() == ELEVATOR_CONNECTION_STAND) then
! call Elevator_ConnectionStand()
elseif (Get_ElevatorConnection() == ELEVATOR_CONNECTION_SINGLE) then
call Elevator_ConnectionSingle()
! elseif (Get_ElevatorConnection() == ELEVATOR_CONNECTION_SINGLE) then
! call Elevator_ConnectionSingle()
endif
! endif
endif
! endif
else ! Topdrive mode
!
endif
! else ! Topdrive mode
! !
! endif
! final adjustments
call Update_MouseHole_From_Snapshot()
! ! final adjustments
! call Update_MouseHole_From_Snapshot()
end subroutine PreProcessingSnapshot
! end subroutine PreProcessingSnapshot
subroutine Kelly_ConnectionNothing
use CSwingEnumVariables
use CSlipsEnumVariables
! use CSwingEnumVariables
! use CSlipsEnumVariables
use UnitySignalVariables
use CHookVariables
implicit none
@@ -433,14 +435,14 @@ module COperationScenariosMain
!TODO: possibly goto a position to activate swing
! goto preferred swing position
if(Swing_S == SWING_MOUSE_HOLE_END) then
if(UnitySignals%Swing_S == SWING_MOUSE_HOLE_END) then
call Set_Swing(SWING_MOUSE_HOLE_BEGIN)
call UpdateUnity()
loop2: do
if(Get_Swing() == SWING_MOUSE_HOLE_END) exit loop2
call sleepqq(100)
enddo loop2
elseif (Swing_S == SWING_RAT_HOLE_END) then
elseif (UnitySignals%Swing_S == SWING_RAT_HOLE_END) then
call Set_Swing(SWING_RAT_HOLE_BEGIN)
call UpdateUnity()
loop3: do
@@ -468,10 +470,11 @@ module COperationScenariosMain
subroutine Kelly_ConnectionString
use CSwingEnumVariables
use CSlipsEnumVariables
! use CSwingEnumVariables
! use CSlipsEnumVariables
use UnitySignalVariables
use CHookVariables
use CTongEnumVariables
! use CTongEnumVariables
implicit none
call Set_HookHeight(75.0)
@@ -512,7 +515,7 @@ module COperationScenariosMain
! put slips to saved position
if(Slips_S == SLIPS_SET_END) then
if(UnitySignals%Slips_S == SLIPS_SET_END) then
call Set_Slips(SLIPS_SET_BEGIN)
call UpdateUnity()
@@ -530,9 +533,10 @@ module COperationScenariosMain
subroutine Kelly_ConnectionSingle
use CSwingEnumVariables
use CSlipsEnumVariables
use CTongEnumVariables
! use CSwingEnumVariables
! use CSlipsEnumVariables
! use CTongEnumVariables
use UnitySignalVariables
use CHookVariables
implicit none
@@ -577,7 +581,7 @@ module COperationScenariosMain
if (Swing_S == SWING_WELL_END) then ! already in mouse hole
if (UnitySignals%Swing_S == SWING_WELL_END) then ! already in mouse hole
! goto swing location
call Set_HookHeight_S(98.0)
@@ -607,10 +611,11 @@ module COperationScenariosMain
subroutine Elevator_ConnectionNothing
use CSwingEnumVariables
use CSlipsEnumVariables
! use CSwingEnumVariables
! use CSlipsEnumVariables
use UnitySignalVariables
use CHookVariables
use CKellyEnumVariables
! use CKellyEnumVariables
implicit none
call Set_HookHeight(75.0)
@@ -651,21 +656,21 @@ module COperationScenariosMain
! goto preferred swing position
if(Swing_S == SWING_MOUSE_HOLE_END) then
if(UnitySignals%Swing_S == SWING_MOUSE_HOLE_END) then
call Set_Swing(SWING_MOUSE_HOLE_BEGIN)
call UpdateUnity()
loop4: do
if(Get_Swing() == SWING_MOUSE_HOLE_END) exit loop4
call sleepqq(100)
enddo loop4
elseif (Swing_S == SWING_RAT_HOLE_END) then
elseif (UnitySignals%Swing_S == SWING_RAT_HOLE_END) then
call Set_Swing(SWING_RAT_HOLE_BEGIN)
call UpdateUnity()
loop5: do
if(Get_Swing() == SWING_RAT_HOLE_END) exit loop5
call sleepqq(100)
enddo loop5
elseif (Swing_S == SWING_WELL_END) then
elseif (UnitySignals%Swing_S == SWING_WELL_END) then
call Set_Swing(SWING_WELL_BEGIN)
call UpdateUnity()
loop6: do


+ 1
- 1
CSharp/OperationScenarios/Common/COperationScenariosSettings.f90 Datei anzeigen

@@ -4,7 +4,7 @@ module COperationScenariosSettings
contains
!subroutine Initialization()
! use CSimulationVariables
! ! use CSimulationVariables
! use CUnityOutputs, only: SetupUnityOutputs => Setup
!
! use CBucketEnum


+ 84
- 53
CSharp/OperationScenarios/Common/COperationScenariosVariables.f90 Datei anzeigen

@@ -3,36 +3,39 @@ module COperationScenariosVariables
use CKellyConnectionEnumVariables
use CElevatorConnectionEnumVariables
use CCloseKellyCockLedNotificationVariables
use CCloseSafetyValveLedNotificationVariables
use CFillMouseHoleLedNotificationVariables
use CIrIBopLedNotificationVariables
use CIrSafetyValveLedNotificationVariables
use CLatchLedNotificationVariables
use COpenKellyCockLedNotificationVariables
use COpenSafetyValveLedNotificationVariables
use CSlipsNotificationVariables
use CSwingLedNotificationVariables
use CTongNotificationVariables
use CUnlatchLedNotificationVariables
use CInstallFillupHeadPermissionVariables
use CInstallMudBucketPermissionVariables
use CIrIbopPermissionVariables
use CIrSafetyValvePermissionVariables
use CRemoveFillupHeadPermissionVariables
use CRemoveMudBucketPermissionVariables
use NotificationVariables
! use CCloseKellyCockLedNotificationVariables
! use CCloseSafetyValveLedNotificationVariables
! use CFillMouseHoleLedNotificationVariables
! use CIrIBopLedNotificationVariables
! use CIrSafetyValveLedNotificationVariables
! use CLatchLedNotificationVariables
! use COpenKellyCockLedNotificationVariables
! use COpenSafetyValveLedNotificationVariables
! use CSlipsNotificationVariables
! use CSwingLedNotificationVariables
! use CTongNotificationVariables
! use CUnlatchLedNotificationVariables

use PermissionsVariables
! use CInstallFillupHeadPermissionVariables
! use CInstallMudBucketPermissionVariables
! use CIrIbopPermissionVariables
! use CIrSafetyValvePermissionVariables
! use CRemoveFillupHeadPermissionVariables
! use CRemoveMudBucketPermissionVariables
use CHookHeight
use CIbopHeight
use CNearFloorConnection
use CSafetyValveHeight
use CSlackOff
use CStandRack
use CStringPressure
use CZeroStringSpeed
use SoftwareInputsVariables
!use CHookHeight
!use CIbopHeight
!use CNearFloorConnection
!use CSafetyValveHeight
!use CSlackOff
!use CStandRack
!use CStringPressure
!use CZeroStringSpeed
use CStringUpdateVariables
! use CStringUpdateVariables
use CUnityInputs
!, only: Get_OutOfMouseHole,&
@@ -49,38 +52,40 @@ module COperationScenariosVariables
! Get_SingleSetInMouseHole,&
! Get_SwingCenter
use CUnityOutputs, only: GetRotaryRpm
use CBucketEnumVariables
use CElevatorEnumVariables
use CHeadEnumVariables
use CIbopEnumVariables
use CKellyEnumVariables
use CMouseHoleEnumVariables
use COperationConditionEnumVariables
use CSafetyValveEnumVariables
use CSlipsEnumVariables
use CSwingEnumVariables
use CTongEnumVariables
use UnitySignalVariables
! use CBucketEnumVariables
! use CElevatorEnumVariables
! use CHeadEnumVariables
! use CIbopEnumVariables
! use CKellyEnumVariables
! use CMouseHoleEnumVariables
! use COperationConditionEnumVariables
! use CSafetyValveEnumVariables
! use CSlipsEnumVariables
! use CSwingEnumVariables
! use CTongEnumVariables
use CFillupHeadPermissionVariables
use CSwingDrillPermissionVariables
use CSwingOffPermissionVariables
use CSwingTiltPermissionVariables
use CTdsStemJointHeight
use PermissionsVariables
! use CFillupHeadPermissionVariables
! use CSwingDrillPermissionVariables
! use CSwingOffPermissionVariables
! use CSwingTiltPermissionVariables
! use CTdsStemJointHeight
use CTdsConnectionModesEnumVariables
use CTdsElevatorModesEnumVariables
use CTdsSpineEnumVariables
use CTdsSwingEnumVariables
use CTdsTongEnumVariables
use CTdsBackupClampVariables
! use CTdsSpineEnumVariables
! use CTdsSwingEnumVariables
! use CTdsTongEnumVariables
! use CTdsBackupClampVariables
use CHoistingVariables
use CTopDrivePanelVariables
use CTdsPowerLedNotificationVariables
use CTdsIbopLedNotificationVariables
! use CTdsPowerLedNotificationVariables
! use CTdsIbopLedNotificationVariables
use NotificationVariables
use CTdsTorqueWrenchLedNotificationVariables
! use CTdsTorqueWrenchLedNotificationVariables
implicit none
public
@@ -99,14 +104,40 @@ module COperationScenariosVariables
integer :: ElevatorConnection = 0
type(VoidEventHandlerCollection) :: OnElevatorConnectionChange

!moved from enum/CKellyConnectionEnum
!moved from SoftwareOutputs/CStringUpdateVariables
integer :: StringUpdate = 0
type(IntegerEventHandlerCollection) :: OnStringUpdateChange
end type OperationScenarioType
type(OperationScenarioType)::OperationScenario

enum, bind(c)
enumerator STRING_UPDATE_NEUTRAL
enumerator STRING_UPDATE_ADD_SINGLE
enumerator STRING_UPDATE_ADD_STAND
enumerator STRING_UPDATE_REMOVE_SINGLE
enumerator STRING_UPDATE_REMOVE_STAND
end enum


contains
subroutine Set_StringUpdate(v)
implicit none
integer , intent(in) :: v
#ifdef ExcludeExtraChanges
if(OperationScenario%StringUpdate == v) return
#endif
OperationScenario%StringUpdate = v
call OperationScenario%OnStringUpdateChange%RunAll(v)
end subroutine
integer function Get_StringUpdate()
implicit none
Get_StringUpdate = OperationScenario%StringUpdate
end function

real(8) function TJH()
use TD_DrillStemComponents
implicit none


+ 0
- 67
CSharp/OperationScenarios/Notifications/CCloseKellyCockLedNotificationVariables.f90 Datei anzeigen

@@ -1,67 +0,0 @@
module CCloseKellyCockLedNotificationVariables
use CVoidEventHandlerCollection
implicit none
logical :: CloseKellyCockLed = .false.
public
type(VoidEventHandlerCollection) :: OnCloseKellyCockLedChange
private :: CloseKellyCockLed
contains
subroutine Set_CloseKellyCockLed(v)
use CDrillingConsoleVariables!, only: CloseKellyCockLedHw => CloseKellyCockLed
use CManifolds, only: CloseKellyCock
implicit none
logical , intent(in) :: v
#ifdef ExcludeExtraChanges
if(CloseKellyCockLed == v) return
#endif
CloseKellyCockLed = v
if(CloseKellyCockLed) then
call CloseKellyCock()
endif
!if(CloseKellyCockLed) then
! CloseKellyCockLedHw = 1
!else
! CloseKellyCockLedHw = 0
!endif
call OnCloseKellyCockLedChange%RunAll()
end subroutine
logical function Get_CloseKellyCockLed()
implicit none
Get_CloseKellyCockLed = CloseKellyCockLed
end function
subroutine Set_CloseKellyCockLed_WN(v)
!DEC$ ATTRIBUTES DLLEXPORT :: Set_CloseKellyCockLed_WN
!DEC$ ATTRIBUTES ALIAS: 'Set_CloseKellyCockLed_WN' :: Set_CloseKellyCockLed_WN
implicit none
logical , intent(in) :: v
call Set_CloseKellyCockLed(v)
end subroutine
logical function Get_CloseKellyCockLed_WN()
!DEC$ ATTRIBUTES DLLEXPORT :: Get_CloseKellyCockLed_WN
!DEC$ ATTRIBUTES ALIAS: 'Get_CloseKellyCockLed_WN' :: Get_CloseKellyCockLed_WN
implicit none
Get_CloseKellyCockLed_WN = CloseKellyCockLed
end function
end module CCloseKellyCockLedNotificationVariables

+ 3
- 3
CSharp/OperationScenarios/Notifications/CCloseSafetyValveLedNotification.f90 Datei anzeigen

@@ -41,11 +41,11 @@ module CCloseSafetyValveLedNotification
implicit none
integer , intent(in) :: v
#ifdef ExcludeExtraChanges
if(operation_CloseSafetyValveLed == v) return
if(Notifications%operation_CloseSafetyValveLed == v) return
#endif
operation_CloseSafetyValveLed = v
Notifications%operation_CloseSafetyValveLed = v
#ifdef deb
print*, 'operation_CloseSafetyValveLed=', operation_CloseSafetyValveLed
print*, 'operation_CloseSafetyValveLed=', Notifications%operation_CloseSafetyValveLed
#endif
end subroutine


+ 0
- 67
CSharp/OperationScenarios/Notifications/CCloseSafetyValveLedNotificationVariables.f90 Datei anzeigen

@@ -1,67 +0,0 @@
module CCloseSafetyValveLedNotificationVariables
use CVoidEventHandlerCollection
implicit none
logical :: CloseSafetyValveLed = .false.
integer :: operation_CloseSafetyValveLed = 0
public
type(VoidEventHandlerCollection) :: OnCloseSafetyValveLedChange
private :: CloseSafetyValveLed
contains
subroutine Set_CloseSafetyValveLed(v)
! use CDrillingConsoleVariables, only: CloseSafetyValveLedHw => CloseSafetyValveLed
use CManifolds, only: CloseSafetyValve_TopDrive, CloseSafetyValve_KellyMode, CloseSafetyValve_TripMode
use CHoistingVariables!, only: Hoisting%DriveType, TopDrive_DriveType, Kelly_DriveType
implicit none
logical , intent(in) :: v
#ifdef ExcludeExtraChanges
if(CloseSafetyValveLed == v) return
#endif
CloseSafetyValveLed = v
if(CloseSafetyValveLed) then
!!call CloseSafetyValve()
if(Hoisting%DriveType == TopDrive_DriveType) call CloseSafetyValve_TopDrive()
if(Hoisting%DriveType == Kelly_DriveType .and. operation_CloseSafetyValveLed == 0) call CloseSafetyValve_KellyMode()
if(Hoisting%DriveType == Kelly_DriveType .and. operation_CloseSafetyValveLed == 1) call CloseSafetyValve_TripMode()
endif
!if(CloseSafetyValveLed) then
! CloseSafetyValveLedHw = 1
!else
! CloseSafetyValveLedHw = 0
!endif
call OnCloseSafetyValveLedChange%RunAll()
end subroutine
logical function Get_CloseSafetyValveLed()
implicit none
Get_CloseSafetyValveLed = CloseSafetyValveLed
end function
subroutine Set_CloseSafetyValveLed_WN(v)
!DEC$ ATTRIBUTES DLLEXPORT :: Set_CloseSafetyValveLed_WN
!DEC$ ATTRIBUTES ALIAS: 'Set_CloseSafetyValveLed_WN' :: Set_CloseSafetyValveLed_WN
implicit none
logical , intent(in) :: v
call Set_CloseSafetyValveLed(v)
end subroutine
logical function Get_CloseSafetyValveLed_WN()
!DEC$ ATTRIBUTES DLLEXPORT :: Get_CloseSafetyValveLed_WN
!DEC$ ATTRIBUTES ALIAS: 'Get_CloseSafetyValveLed_WN' :: Get_CloseSafetyValveLed_WN
implicit none
Get_CloseSafetyValveLed_WN = CloseSafetyValveLed
end function
end module CCloseSafetyValveLedNotificationVariables

+ 0
- 61
CSharp/OperationScenarios/Notifications/CFillMouseHoleLedNotificationVariables.f90 Datei anzeigen

@@ -1,61 +0,0 @@
module CFillMouseHoleLedNotificationVariables
use CVoidEventHandlerCollection
implicit none
logical :: FillMouseHoleLed = .false.
public
type(VoidEventHandlerCollection) :: OnFillMouseHoleLedChange
private :: FillMouseHoleLed
contains
subroutine Set_FillMouseHoleLed(v)
use CDrillingConsoleVariables!, only: FillMouseHoleLedHw => FillMouseHoleLed
use CMouseHoleEnumVariables
implicit none
logical , intent(in) :: v
#ifdef ExcludeExtraChanges
if(FillMouseHoleLed == v) return
#endif
FillMouseHoleLed = v
if(FillMouseHoleLed) then
DrillingConsole%FillMouseHoleLed = 1
!call Set_MouseHole(MOUSE_HOLE_FILL)
else
DrillingConsole%FillMouseHoleLed = 0
!call Set_MouseHole(MOUSE_HOLE_EMPTY)
endif
call OnFillMouseHoleLedChange%RunAll()
end subroutine
logical function Get_FillMouseHoleLed()
implicit none
Get_FillMouseHoleLed = FillMouseHoleLed
end function
subroutine Set_FillMouseHoleLed_WN(v)
!DEC$ ATTRIBUTES DLLEXPORT :: Set_FillMouseHoleLed_WN
!DEC$ ATTRIBUTES ALIAS: 'Set_FillMouseHoleLed_WN' :: Set_FillMouseHoleLed_WN
implicit none
logical , intent(in) :: v
call Set_FillMouseHoleLed(v)
end subroutine
logical function Get_FillMouseHoleLed_WN()
!DEC$ ATTRIBUTES DLLEXPORT :: Get_FillMouseHoleLed_WN
!DEC$ ATTRIBUTES ALIAS: 'Get_FillMouseHoleLed_WN' :: Get_FillMouseHoleLed_WN
implicit none
Get_FillMouseHoleLed_WN = FillMouseHoleLed
end function
end module CFillMouseHoleLedNotificationVariables

+ 0
- 63
CSharp/OperationScenarios/Notifications/CIrIBopLedNotificationVariables.f90 Datei anzeigen

@@ -1,63 +0,0 @@
module CIrIBopLedNotificationVariables
use CVoidEventHandlerCollection
implicit none
logical :: IrIBopLed = .false.
public
type(VoidEventHandlerCollection) :: OnIrIBopLedChange
private :: IrIBopLed
contains
subroutine Set_IrIBopLed(v)
use CDrillingConsoleVariables!, only: IRIBopLedHw => IRIBopLed
use CManifolds, only: InstallIBop, RemoveIBop
use CIbopEnumVariables, only: Set_Ibop_Install, Set_Ibop_Remove
implicit none
logical , intent(in) :: v
#ifdef ExcludeExtraChanges
if(IrIBopLed == v) return
#endif
IrIBopLed = v
if(IrIBopLed) then
DrillingConsole%IRIBopLed = 1
call InstallIBop()
call Set_Ibop_Install()
else
DrillingConsole%IRIBopLed = 0
call RemoveIBop()
call Set_Ibop_Remove()
endif
call OnIrIBopLedChange%RunAll()
end subroutine
logical function Get_IrIBopLed()
implicit none
Get_IrIBopLed = IrIBopLed
end function
subroutine Set_IrIBopLed_WN(v)
!DEC$ ATTRIBUTES DLLEXPORT :: Set_IrIBopLed_WN
!DEC$ ATTRIBUTES ALIAS: 'Set_IrIBopLed_WN' :: Set_IrIBopLed_WN
implicit none
logical , intent(in) :: v
call Set_IrIBopLed(v)
end subroutine
logical function Get_IrIBopLed_WN()
!DEC$ ATTRIBUTES DLLEXPORT :: Get_IrIBopLed_WN
!DEC$ ATTRIBUTES ALIAS: 'Get_IrIBopLed_WN' :: Get_IrIBopLed_WN
implicit none
Get_IrIBopLed_WN = IrIBopLed
end function
end module CIrIBopLedNotificationVariables

+ 3
- 3
CSharp/OperationScenarios/Notifications/CIrSafetyValveLedNotification.f90 Datei anzeigen

@@ -73,11 +73,11 @@ module CIrSafetyValveLedNotification
implicit none
integer , intent(in) :: v
#ifdef ExcludeExtraChanges
if(operation_IrSafetyValveLed == v) return
if(Notifications%operation_IrSafetyValveLed == v) return
#endif
operation_IrSafetyValveLed = v
Notifications%operation_IrSafetyValveLed = v
#ifdef deb
print*, 'operation_IrSafetyValveLed=', operation_IrSafetyValveLed
print*, 'operation_IrSafetyValveLed=', Notifications%operation_IrSafetyValveLed
#endif
end subroutine


+ 0
- 90
CSharp/OperationScenarios/Notifications/CIrSafetyValveLedNotificationVariables.f90 Datei anzeigen

@@ -1,90 +0,0 @@
module CIrSafetyValveLedNotificationVariables
use CVoidEventHandlerCollection
implicit none
logical :: IrSafetyValveLed = .false.
integer :: operation_IrSafetyValveLed = 0
public
type(VoidEventHandlerCollection) :: OnIrSafetyValveLedChange
private :: IrSafetyValveLed
contains
subroutine Set_IrSafetyValveLed(v)
use CDrillingConsoleVariables!, only: DrillingConsole%CloseKellyCockLed => IRSafetyValveLed
use CManifolds, only: &
InstallSafetyValve_TopDrive, &
InstallSafetyValve_KellyMode, &
InstallSafetyValve_TripMode, &
RemoveSafetyValve_TopDrive, &
RemoveSafetyValve_KellyMode, &
RemoveSafetyValve_TripMode
use CSafetyValveEnumVariables, only: Set_SafetyValve_Install, Set_SafetyValve_Remove
use CHoistingVariables!, only: Hoisting%DriveType, TopDrive_DriveType, Kelly_DriveType
implicit none
logical , intent(in) :: v
#ifdef ExcludeExtraChanges
if(IrSafetyValveLed == v) return
#endif
IrSafetyValveLed = v
if(IrSafetyValveLed) then
DrillingConsole%IRSafetyValveLed = 1
if(Hoisting%DriveType == TopDrive_DriveType) call InstallSafetyValve_TopDrive()
if(Hoisting%DriveType == Kelly_DriveType .and. operation_IrSafetyValveLed == 0) call InstallSafetyValve_KellyMode()
if(Hoisting%DriveType == Kelly_DriveType .and. operation_IrSafetyValveLed == 1) call InstallSafetyValve_TripMode()
call Set_SafetyValve_Install()
else
DrillingConsole%IRSafetyValveLed = 0
if(Hoisting%DriveType == TopDrive_DriveType) call RemoveSafetyValve_TopDrive()
if(Hoisting%DriveType == Kelly_DriveType .and. operation_IrSafetyValveLed == 0) call RemoveSafetyValve_KellyMode()
if(Hoisting%DriveType == Kelly_DriveType .and. operation_IrSafetyValveLed == 1) call RemoveSafetyValve_TripMode()
call Set_SafetyValve_Remove()
endif
call OnIrSafetyValveLedChange%RunAll()
end subroutine
logical function Get_IrSafetyValveLed()
implicit none
Get_IrSafetyValveLed = IrSafetyValveLed
end function
subroutine Set_IrSafetyValveLed_WN(v)
!DEC$ ATTRIBUTES DLLEXPORT :: Set_IrSafetyValveLed_WN
!DEC$ ATTRIBUTES ALIAS: 'Set_IrSafetyValveLed_WN' :: Set_IrSafetyValveLed_WN
implicit none
logical , intent(in) :: v
call Set_IrSafetyValveLed(v)
end subroutine
logical function Get_IrSafetyValveLed_WN()
!DEC$ ATTRIBUTES DLLEXPORT :: Get_IrSafetyValveLed_WN
!DEC$ ATTRIBUTES ALIAS: 'Get_IrSafetyValveLed_WN' :: Get_IrSafetyValveLed_WN
implicit none
Get_IrSafetyValveLed_WN = IrSafetyValveLed
end function
subroutine Set_IrSafetyValveLed_off()
implicit none
call Set_IrSafetyValveLed(.false.)
end subroutine
subroutine Set_IrSafetyValveLed_on()
implicit none
call Set_IrSafetyValveLed(.true.)
end subroutine
end module CIrSafetyValveLedNotificationVariables

+ 0
- 58
CSharp/OperationScenarios/Notifications/CLatchLedNotificationVariables.f90 Datei anzeigen

@@ -1,58 +0,0 @@
module CLatchLedNotificationVariables
use CVoidEventHandlerCollection
implicit none
logical :: LatchLed = .false.
public
type(VoidEventHandlerCollection) :: OnLatchLedChange
private :: LatchLed
contains
subroutine Set_LatchLed(v)
use CDrillingConsoleVariables!, only: DrillingConsole%LatchPipeLED
!use CUnlatchLedNotification
implicit none
logical , intent(in) :: v
#ifdef ExcludeExtraChanges
if(LatchLed == v) return
#endif
LatchLed = v
if(LatchLed) then
DrillingConsole%LatchPipeLED = 1
!call Set_UnlatchLed(.false.)
else
DrillingConsole%LatchPipeLED = 0
endif
call OnLatchLedChange%RunAll()
end subroutine
logical function Get_LatchLed()
implicit none
Get_LatchLed = LatchLed
end function
subroutine Set_LatchLed_WN(v)
!DEC$ ATTRIBUTES DLLEXPORT :: Set_LatchLed_WN
!DEC$ ATTRIBUTES ALIAS: 'Set_LatchLed_WN' :: Set_LatchLed_WN
implicit none
logical , intent(in) :: v
call Set_LatchLed(v)
end subroutine
logical function Get_LatchLed_WN()
!DEC$ ATTRIBUTES DLLEXPORT :: Get_LatchLed_WN
!DEC$ ATTRIBUTES ALIAS: 'Get_LatchLed_WN' :: Get_LatchLed_WN
implicit none
Get_LatchLed_WN = LatchLed
end function
end module CLatchLedNotificationVariables

+ 0
- 63
CSharp/OperationScenarios/Notifications/COpenKellyCockLedNotificationVariables.f90 Datei anzeigen

@@ -1,63 +0,0 @@
module COpenKellyCockLedNotificationVariables
use CVoidEventHandlerCollection
implicit none
logical :: OpenKellyCockLed = .false.
public
type(VoidEventHandlerCollection) :: OnOpenKellyCockLedChange
private :: OpenKellyCockLed
contains
subroutine Set_OpenKellyCockLed(v)
! use CDrillingConsoleVariables!, only: OpenKellyCockLedHw => OpenKellyCockLed
use CManifolds, only: OpenKellyCock
implicit none
logical , intent(in) :: v
#ifdef ExcludeExtraChanges
if(OpenKellyCockLed == v) return
#endif
OpenKellyCockLed = v
if(OpenKellyCockLed) then
call OpenKellyCock()
endif
! HAS BEEN IMPLEMENTED IN CMANIFOLD
!if(OpenKellyCockLed) then
! OpenKellyCockLedHw = 1
!else
! OpenKellyCockLedHw = 0
!endif
call OnOpenKellyCockLedChange%RunAll()
end subroutine
logical function Get_OpenKellyCockLed()
implicit none
Get_OpenKellyCockLed = OpenKellyCockLed
end function
subroutine Set_OpenKellyCockLed_WN(v)
!DEC$ ATTRIBUTES DLLEXPORT :: Set_OpenKellyCockLed_WN
!DEC$ ATTRIBUTES ALIAS: 'Set_OpenKellyCockLed_WN' :: Set_OpenKellyCockLed_WN
implicit none
logical , intent(in) :: v
call Set_OpenKellyCockLed(v)
end subroutine
logical function Get_OpenKellyCockLed_WN()
!DEC$ ATTRIBUTES DLLEXPORT :: Get_OpenKellyCockLed_WN
!DEC$ ATTRIBUTES ALIAS: 'Get_OpenKellyCockLed_WN' :: Get_OpenKellyCockLed_WN
implicit none
Get_OpenKellyCockLed_WN = OpenKellyCockLed
end function
end module COpenKellyCockLedNotificationVariables

+ 3
- 3
CSharp/OperationScenarios/Notifications/COpenSafetyValveLedNotification.f90 Datei anzeigen

@@ -43,11 +43,11 @@ module COpenSafetyValveLedNotification
implicit none
integer , intent(in) :: v
#ifdef ExcludeExtraChanges
if(operation_OpenSafetyValveLed == v) return
if(notifications%operation_OpenSafetyValveLed == v) return
#endif
operation_OpenSafetyValveLed = v
notifications%operation_OpenSafetyValveLed = v
#ifdef deb
print*, 'operation_OpenSafetyValveLed=', operation_OpenSafetyValveLed
print*, 'notifications%operation_OpenSafetyValveLed=', notifications%operation_OpenSafetyValveLed
#endif
end subroutine


+ 0
- 65
CSharp/OperationScenarios/Notifications/COpenSafetyValveLedNotificationVariables.f90 Datei anzeigen

@@ -1,65 +0,0 @@
module COpenSafetyValveLedNotificationVariables
use CVoidEventHandlerCollection
implicit none
logical :: OpenSafetyValveLed = .false.
integer :: operation_OpenSafetyValveLed = 0
public
type(VoidEventHandlerCollection) :: OnOpenSafetyValveLedChange
private :: OpenSafetyValveLed
contains
subroutine Set_OpenSafetyValveLed(v)
use CDrillingConsoleVariables!, only: OpenSafetyValveLedHw => OpenSafetyValveLed
use CManifolds, only: OpenSafetyValve_TopDrive, OpenSafetyValve_KellyMode, OpenSafetyValve_TripMode
use CHoistingVariables!, only: Hoisting%DriveType, TopDrive_DriveType, Kelly_DriveType
implicit none
logical , intent(in) :: v
#ifdef ExcludeExtraChanges
if(OpenSafetyValveLed == v) return
#endif
OpenSafetyValveLed = v
if(OpenSafetyValveLed) then
!!call OpenSafetyValve()
if(Hoisting%DriveType == TopDrive_DriveType) call OpenSafetyValve_TopDrive()
if(Hoisting%DriveType == Kelly_DriveType .and. operation_OpenSafetyValveLed == 0) call OpenSafetyValve_KellyMode()
if(Hoisting%DriveType == Kelly_DriveType .and. operation_OpenSafetyValveLed == 1) call OpenSafetyValve_TripMode()
endif
!if(OpenSafetyValveLed) then
! OpenSafetyValveLedHw = 1
!else
! OpenSafetyValveLedHw = 0
!endif
call OnOpenSafetyValveLedChange%RunAll()
end subroutine
logical function Get_OpenSafetyValveLed()
implicit none
Get_OpenSafetyValveLed = OpenSafetyValveLed
end function
subroutine Set_OpenSafetyValveLed_WN(v)
!DEC$ ATTRIBUTES DLLEXPORT :: Set_OpenSafetyValveLed_WN
!DEC$ ATTRIBUTES ALIAS: 'Set_OpenSafetyValveLed_WN' :: Set_OpenSafetyValveLed_WN
implicit none
logical , intent(in) :: v
call Set_OpenSafetyValveLed(v)
end subroutine
logical function Get_OpenSafetyValveLed_WN()
!DEC$ ATTRIBUTES DLLEXPORT :: Get_OpenSafetyValveLed_WN
!DEC$ ATTRIBUTES ALIAS: 'Get_OpenSafetyValveLed_WN' :: Get_OpenSafetyValveLed_WN
implicit none
Get_OpenSafetyValveLed_WN = OpenSafetyValveLed
end function
end module COpenSafetyValveLedNotificationVariables

+ 0
- 65
CSharp/OperationScenarios/Notifications/CSlipsNotificationVariables.f90 Datei anzeigen

@@ -1,65 +0,0 @@
module CSlipsNotificationVariables
use CVoidEventHandlerCollection
use CIActionReference
implicit none
logical :: SlipsNotification = .false.
procedure (ActionBool), pointer :: SlipsNotificationPtr
public
type(VoidEventHandlerCollection) :: OnSlipsNotificationChange
private :: SlipsNotification
contains
subroutine Set_SlipsNotification(v)
implicit none
logical , intent(in) :: v
#ifdef ExcludeExtraChanges
if(SlipsNotification == v) return
#endif
SlipsNotification = v
if(associated(SlipsNotificationPtr)) call SlipsNotificationPtr(SlipsNotification)
#ifdef deb
print*, 'SlipsNotification=', SlipsNotification
#endif
call OnSlipsNotificationChange%RunAll()
end subroutine
logical function Get_SlipsNotification()
implicit none
Get_SlipsNotification = SlipsNotification
end function
subroutine Set_SlipsNotification_WN(v)
!DEC$ ATTRIBUTES DLLEXPORT :: Set_SlipsNotification_WN
!DEC$ ATTRIBUTES ALIAS: 'Set_SlipsNotification_WN' :: Set_SlipsNotification_WN
implicit none
logical , intent(in) :: v
call Set_SlipsNotification(v)
end subroutine
logical function Get_SlipsNotification_WN()
!DEC$ ATTRIBUTES DLLEXPORT :: Get_SlipsNotification_WN
!DEC$ ATTRIBUTES ALIAS: 'Get_SlipsNotification_WN' :: Get_SlipsNotification_WN
implicit none
Get_SlipsNotification_WN = SlipsNotification
end function
subroutine SubscribeSlipsNotification(a)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeSlipsNotification
!DEC$ ATTRIBUTES ALIAS: 'SubscribeSlipsNotification' :: SubscribeSlipsNotification
implicit none
procedure (ActionBool) :: a
SlipsNotificationPtr => a
end subroutine
end module CSlipsNotificationVariables

+ 0
- 55
CSharp/OperationScenarios/Notifications/CSwingLedNotificationVariables.f90 Datei anzeigen

@@ -1,55 +0,0 @@
module CSwingLedNotificationVariables
use CVoidEventHandlerCollection
implicit none
logical :: SwingLed = .false.
public
type(VoidEventHandlerCollection) :: OnSwingLedChange
private :: SwingLed
contains
subroutine Set_SwingLed(v)
use CDrillingConsoleVariables!, only: SwingLedHw => SwingLed
implicit none
logical , intent(in) :: v
#ifdef ExcludeExtraChanges
if(SwingLed == v) return
#endif
SwingLed = v
if(SwingLed) then
DrillingConsole%SwingLed = 1
else
DrillingConsole%SwingLed = 0
endif
call OnSwingLedChange%RunAll()
end subroutine
logical function Get_SwingLed()
implicit none
Get_SwingLed = SwingLed
end function
subroutine Set_SwingLed_WN(v)
!DEC$ ATTRIBUTES DLLEXPORT :: Set_SwingLed_WN
!DEC$ ATTRIBUTES ALIAS: 'Set_SwingLed_WN' :: Set_SwingLed_WN
implicit none
logical , intent(in) :: v
call Set_SwingLed(v)
end subroutine
logical function Get_SwingLed_WN()
!DEC$ ATTRIBUTES DLLEXPORT :: Get_SwingLed_WN
!DEC$ ATTRIBUTES ALIAS: 'Get_SwingLed_WN' :: Get_SwingLed_WN
implicit none
Get_SwingLed_WN = SwingLed
end function
end module CSwingLedNotificationVariables

+ 0
- 60
CSharp/OperationScenarios/Notifications/CTdsIbopLedNotificationVariables.f90 Datei anzeigen

@@ -1,60 +0,0 @@
module CTdsIbopLedNotificationVariables
use CVoidEventHandlerCollection
implicit none
logical :: IbopLed = .false.
public
type(VoidEventHandlerCollection) :: OnIbopLedChange
private :: IbopLed
contains
subroutine Set_IbopLed(v)
use CTopDrivePanelVariables!, only: TopDrivePanel%TopDriveIbopLed
use CManifolds, Only: OpenTopDriveIBop, CloseTopDriveIBop
!use CLatchLedNotification
implicit none
logical , intent(in) :: v
#ifdef ExcludeExtraChanges
if(IbopLed == v) return
#endif
IbopLed = v
if(IbopLed) then
TopDrivePanel%TopDriveIbopLed = 1
call CloseTopDriveIBop()
else
TopDrivePanel%TopDriveIbopLed = 0
call OpenTopDriveIBop()
endif
call OnIbopLedChange%RunAll()
end subroutine
logical function Get_IbopLed()
implicit none
Get_IbopLed = IbopLed
end function
subroutine Set_IbopLed_WN(v)
!DEC$ ATTRIBUTES DLLEXPORT :: Set_IbopLed_WN
!DEC$ ATTRIBUTES ALIAS: 'Set_IbopLed_WN' :: Set_IbopLed_WN
implicit none
logical , intent(in) :: v
call Set_IbopLed(v)
end subroutine
logical function Get_IbopLed_WN()
!DEC$ ATTRIBUTES DLLEXPORT :: Get_IbopLed_WN
!DEC$ ATTRIBUTES ALIAS: 'Get_IbopLed_WN' :: Get_IbopLed_WN
implicit none
Get_IbopLed_WN = IbopLed
end function
end module CTdsIbopLedNotificationVariables

+ 0
- 57
CSharp/OperationScenarios/Notifications/CTdsPowerLedNotificationVariables.f90 Datei anzeigen

@@ -1,57 +0,0 @@
module CTdsPowerLedNotificationVariables
use CVoidEventHandlerCollection
implicit none
logical :: PowerLed = .false.
public
type(VoidEventHandlerCollection) :: OnPowerLedChange
private :: PowerLed
contains
subroutine Set_PowerLed(v)
use CTopDrivePanelVariables!, only: TopDrivePanel%TopDriveTdsPowerLed
!use CLatchLedNotification
implicit none
logical , intent(in) :: v
#ifdef ExcludeExtraChanges
if(PowerLed == v) return
#endif
PowerLed = v
if(PowerLed) then
TopDrivePanel%TopDriveTdsPowerLed = 1
!call Set_LatchLed(.false.)
else
TopDrivePanel%TopDriveTdsPowerLed = 0
endif
call OnPowerLedChange%RunAll()
end subroutine
logical function Get_PowerLed()
implicit none
Get_PowerLed = PowerLed
end function
subroutine Set_PowerLed_WN(v)
!DEC$ ATTRIBUTES DLLEXPORT :: Set_PowerLed_WN
!DEC$ ATTRIBUTES ALIAS: 'Set_PowerLed_WN' :: Set_PowerLed_WN
implicit none
logical , intent(in) :: v
call Set_PowerLed(v)
end subroutine
logical function Get_PowerLed_WN()
!DEC$ ATTRIBUTES DLLEXPORT :: Get_PowerLed_WN
!DEC$ ATTRIBUTES ALIAS: 'Get_PowerLed_WN' :: Get_PowerLed_WN
implicit none
Get_PowerLed_WN = PowerLed
end function
end module CTdsPowerLedNotificationVariables

+ 0
- 50
CSharp/OperationScenarios/Notifications/CTdsTorqueWrenchLedNotificationVariables.f90 Datei anzeigen

@@ -1,50 +0,0 @@
module CTdsTorqueWrenchLedNotificationVariables
use CVoidEventHandlerCollection
implicit none
integer :: TorqueWrenchLed = 0
public
type(VoidEventHandlerCollection) :: OnTorqueWrenchLedChange
private :: TorqueWrenchLed
contains
subroutine Set_TorqueWrenchLed(v)
use CTopDrivePanelVariables!, only: TopDrivePanel%TopDriveTorqueWrenchLed
implicit none
integer , intent(in) :: v
#ifdef ExcludeExtraChanges
if(TorqueWrenchLed == v) return
#endif
TorqueWrenchLed = v
TopDrivePanel%TopDriveTorqueWrenchLed = v
call OnTorqueWrenchLedChange%RunAll()
end subroutine
logical function Get_TorqueWrenchLed()
implicit none
Get_TorqueWrenchLed = TorqueWrenchLed
end function
subroutine Set_TorqueWrenchLed_WN(v)
!DEC$ ATTRIBUTES DLLEXPORT :: Set_TorqueWrenchLed_WN
!DEC$ ATTRIBUTES ALIAS: 'Set_TorqueWrenchLed_WN' :: Set_TorqueWrenchLed_WN
implicit none
integer , intent(in) :: v
call Set_TorqueWrenchLed(v)
end subroutine
logical function Get_TorqueWrenchLed_WN()
!DEC$ ATTRIBUTES DLLEXPORT :: Get_TorqueWrenchLed_WN
!DEC$ ATTRIBUTES ALIAS: 'Get_TorqueWrenchLed_WN' :: Get_TorqueWrenchLed_WN
implicit none
Get_TorqueWrenchLed_WN = TorqueWrenchLed
end function
end module CTdsTorqueWrenchLedNotificationVariables

+ 6
- 6
CSharp/OperationScenarios/Notifications/CTongNotification.f90 Datei anzeigen

@@ -271,14 +271,14 @@ module CTongNotification
subroutine Subscribe_TongNotification()
implicit none
call OnOperationConditionChange%Add(Evaluate_TongNotification)
call OnHookHeightChange%Add(Evaluate_TongNotification)
call OnJointConnectionPossibleChange%Add(Evaluate_TongNotification)
call OnSingleSetInMouseHoleChange%Add(Evaluate_TongNotification)
call UnitySignals%OnOperationConditionChange%Add(Evaluate_TongNotification)
call SoftwareInputs%OnHookHeightChange%Add(Evaluate_TongNotification)
call UnityInputs%OnJointConnectionPossibleChange%Add(Evaluate_TongNotification)
call UnityInputs%OnSingleSetInMouseHoleChange%Add(Evaluate_TongNotification)
call OperationScenario%OnElevatorConnectionChange%Add(Evaluate_TongNotification)
call KellyConnectionEnum%OnKellyConnectionChange%Add(Evaluate_TongNotification)
call OnSwingChange%Add(Evaluate_TongNotification)
call OnSlipsChange%Add(Evaluate_TongNotification)
call UnitySignals%OnSwingChange%Add(Evaluate_TongNotification)
call UnitySignals%OnSlipsChange%Add(Evaluate_TongNotification)
end subroutine


+ 0
- 69
CSharp/OperationScenarios/Notifications/CTongNotificationVariables.f90 Datei anzeigen

@@ -1,69 +0,0 @@
module CTongNotificationVariables
use CVoidEventHandlerCollection
use CIActionReference
implicit none
logical :: TongNotification = .false.
procedure (ActionBool), pointer :: TongNotificationPtr
public
type(VoidEventHandlerCollection) :: OnTongNotificationChange
private :: TongNotification
contains
subroutine Set_TongNotification(v)
implicit none
logical , intent(in) :: v
#ifdef ExcludeExtraChanges
if(TongNotification == v) return
#endif
TongNotification = v
if(associated(TongNotificationPtr)) call TongNotificationPtr(TongNotification)
#ifdef deb
print*, 'TongNotification=', TongNotification
#endif
call OnTongNotificationChange%RunAll()
end subroutine
logical function Get_TongNotification()
implicit none
Get_TongNotification = TongNotification
end function
subroutine Set_TongNotification_WN(v)
!DEC$ ATTRIBUTES DLLEXPORT :: Set_TongNotification_WN
!DEC$ ATTRIBUTES ALIAS: 'Set_TongNotification_WN' :: Set_TongNotification_WN
implicit none
logical , intent(in) :: v
call Set_TongNotification(v)
end subroutine
logical function Get_TongNotification_WN()
!DEC$ ATTRIBUTES DLLEXPORT :: Get_TongNotification_WN
!DEC$ ATTRIBUTES ALIAS: 'Get_TongNotification_WN' :: Get_TongNotification_WN
implicit none
Get_TongNotification_WN = TongNotification
end function
subroutine SubscribeTongNotification(a)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeTongNotification
!DEC$ ATTRIBUTES ALIAS: 'SubscribeTongNotification' :: SubscribeTongNotification
implicit none
procedure (ActionBool) :: a
TongNotificationPtr => a
end subroutine
end module CTongNotificationVariables

+ 7
- 7
CSharp/OperationScenarios/Notifications/CUnlatchLedNotification.f90 Datei anzeigen

@@ -208,14 +208,14 @@ module CUnlatchLedNotification
subroutine Subscribe_UnlatchLed()
implicit none
call OnOperationConditionChange%Add(Evaluate_UnlatchLed)
call OnHookHeightChange%Add(Evaluate_UnlatchLed)
call OnStandRackChanged%Add(Evaluate_UnlatchLed)
call UnitySignals%OnOperationConditionChange%Add(Evaluate_UnlatchLed)
call SoftwareInputs%OnHookHeightChange%Add(Evaluate_UnlatchLed)
call SoftwareInputs%OnStandRackChanged%Add(Evaluate_UnlatchLed)
call OperationScenario%OnElevatorConnectionChange%Add(Evaluate_UnlatchLed)
call OnSwingChange%Add(Evaluate_UnlatchLed)
call OnSlipsChange%Add(Evaluate_UnlatchLed)
call OnLatchLedChange%Add(Evaluate_UnlatchLed)
call OnFillMouseHoleLedChange%Add(Evaluate_UnlatchLed)
call UnitySignals%OnSwingChange%Add(Evaluate_UnlatchLed)
call UnitySignals%OnSlipsChange%Add(Evaluate_UnlatchLed)
call Notifications%OnLatchLedChange%Add(Evaluate_UnlatchLed)
call Notifications%OnFillMouseHoleLedChange%Add(Evaluate_UnlatchLed)
end subroutine
end module CUnlatchLedNotification

+ 0
- 62
CSharp/OperationScenarios/Notifications/CUnlatchLedNotificationVariables.f90 Datei anzeigen

@@ -1,62 +0,0 @@
module CUnlatchLedNotificationVariables
use CVoidEventHandlerCollection
implicit none
logical :: UnlatchLed = .false.
public
type(VoidEventHandlerCollection) :: OnUnlatchLedChange
private :: UnlatchLed
contains
subroutine Set_UnlatchLed(v)
use CDrillingConsoleVariables!, only: DrillingConsole%UnlatchPipeLED
!use CLatchLedNotification
implicit none
logical , intent(in) :: v
#ifdef ExcludeExtraChanges
if(UnlatchLed == v) return
#endif
UnlatchLed = v
if(UnlatchLed) then
DrillingConsole%UnlatchPipeLED = 1
!call Set_LatchLed(.false.)
else
DrillingConsole%UnlatchPipeLED = 0
endif
call OnUnlatchLedChange%RunAll()
end subroutine
logical function Get_UnlatchLed()
implicit none
Get_UnlatchLed = UnlatchLed
end function
subroutine Set_UnlatchLed_WN(v)
!DEC$ ATTRIBUTES DLLEXPORT :: Set_UnlatchLed_WN
!DEC$ ATTRIBUTES ALIAS: 'Set_UnlatchLed_WN' :: Set_UnlatchLed_WN
implicit none
logical , intent(in) :: v
call Set_UnlatchLed(v)
end subroutine
logical function Get_UnlatchLed_WN()
!DEC$ ATTRIBUTES DLLEXPORT :: Get_UnlatchLed_WN
!DEC$ ATTRIBUTES ALIAS: 'Get_UnlatchLed_WN' :: Get_UnlatchLed_WN
implicit none
Get_UnlatchLed_WN = UnlatchLed
end function
end module CUnlatchLedNotificationVariables

+ 434
- 0
CSharp/OperationScenarios/Notifications/NotificationVariables.f90 Datei anzeigen

@@ -0,0 +1,434 @@
module NotificationVariables
use CVoidEventHandlerCollection
implicit none
type::NotificationType
logical :: CloseKellyCockLed = .false.
type(VoidEventHandlerCollection) :: OnCloseKellyCockLedChange

logical :: CloseSafetyValveLed = .false.
integer :: operation_CloseSafetyValveLed = 0
type(VoidEventHandlerCollection) :: OnCloseSafetyValveLedChange
logical :: FillMouseHoleLed = .false.
type(VoidEventHandlerCollection) :: OnFillMouseHoleLedChange

logical :: IrIBopLed = .false.
type(VoidEventHandlerCollection) :: OnIrIBopLedChange

logical :: IrSafetyValveLed = .false.
integer :: operation_IrSafetyValveLed = 0
type(VoidEventHandlerCollection) :: OnIrSafetyValveLedChange
logical :: LatchLed = .false.
type(VoidEventHandlerCollection) :: OnLatchLedChange
logical :: OpenKellyCockLed = .false.
type(VoidEventHandlerCollection) :: OnOpenKellyCockLedChange

logical :: OpenSafetyValveLed = .false.

integer :: operation_OpenSafetyValveLed = 0
type(VoidEventHandlerCollection) :: OnOpenSafetyValveLedChange
logical :: SlipsNotification = .false.
! procedure (ActionBool), pointer :: SlipsNotificationPtr
type(VoidEventHandlerCollection) :: OnSlipsNotificationChange

logical :: SwingLed = .false.
type(VoidEventHandlerCollection) :: OnSwingLedChange
logical :: IbopLed = .false.
type(VoidEventHandlerCollection) :: OnIbopLedChange
logical :: PowerLed = .false.
type(VoidEventHandlerCollection) :: OnPowerLedChange
integer :: TorqueWrenchLed = 0
type(VoidEventHandlerCollection) :: OnTorqueWrenchLedChange
logical :: TongNotification = .false.
! procedure (ActionBool), pointer :: TongNotificationPtr
type(VoidEventHandlerCollection) :: OnTongNotificationChange
logical :: UnlatchLed = .false.
type(VoidEventHandlerCollection) :: OnUnlatchLedChange
end type NotificationType
type(NotificationType)::notifications

contains
subroutine Set_UnlatchLed(v)
use CDrillingConsoleVariables!, only: DrillingConsole%UnlatchPipeLED
!use CLatchLedNotification
implicit none
logical , intent(in) :: v
#ifdef ExcludeExtraChanges
if(notifications%UnlatchLed == v) return
#endif
notifications%UnlatchLed = v
if(notifications%UnlatchLed) then
DrillingConsole%UnlatchPipeLED = 1
!call Set_LatchLed(.false.)
else
DrillingConsole%UnlatchPipeLED = 0
endif
call notifications%OnUnlatchLedChange%RunAll()
end subroutine
logical function Get_UnlatchLed()
implicit none
Get_UnlatchLed = notifications%UnlatchLed
end function

subroutine Set_TongNotification(v)
implicit none
logical , intent(in) :: v
#ifdef ExcludeExtraChanges
if(notifications%TongNotification == v) return
#endif
notifications%TongNotification = v
! if(associated(notifications%TongNotificationPtr)) call notifications%TongNotificationPtr(notifications%TongNotification)
#ifdef deb
print*, 'notifications%TongNotification=', notifications%TongNotification
#endif
call notifications%OnTongNotificationChange%RunAll()
end subroutine
logical function Get_TongNotification()
implicit none
Get_TongNotification = notifications%TongNotification
end function

subroutine Set_TorqueWrenchLed(v)
use CTopDrivePanelVariables!, only: TopDrivePanel%TopDriveTorqueWrenchLed
implicit none
integer , intent(in) :: v
#ifdef ExcludeExtraChanges
if(notifications%TorqueWrenchLed == v) return
#endif
notifications%TorqueWrenchLed = v
TopDrivePanel%TopDriveTorqueWrenchLed = v
call notifications%OnTorqueWrenchLedChange%RunAll()
end subroutine
logical function Get_TorqueWrenchLed()
implicit none
Get_TorqueWrenchLed = notifications%TorqueWrenchLed
end function

subroutine Set_PowerLed(v)
use CTopDrivePanelVariables!, only: TopDrivePanel%TopDriveTdsPowerLed
!use CLatchLedNotification
implicit none
logical , intent(in) :: v
#ifdef ExcludeExtraChanges
if(notifications%PowerLed == v) return
#endif
notifications%PowerLed = v
if(notifications%PowerLed) then
TopDrivePanel%TopDriveTdsPowerLed = 1
!call Set_LatchLed(.false.)
else
TopDrivePanel%TopDriveTdsPowerLed = 0
endif
call notifications%OnPowerLedChange%RunAll()
end subroutine
logical function Get_PowerLed()
implicit none
Get_PowerLed = notifications%PowerLed
end function

subroutine Set_IbopLed(v)
use CTopDrivePanelVariables!, only: TopDrivePanel%TopDriveIbopLed
use CManifolds, Only: OpenTopDriveIBop, CloseTopDriveIBop
!use CLatchLedNotification
implicit none
logical , intent(in) :: v
#ifdef ExcludeExtraChanges
if(notifications%IbopLed == v) return
#endif
notifications%IbopLed = v
if(notifications%IbopLed) then
TopDrivePanel%TopDriveIbopLed = 1
call CloseTopDriveIBop()
else
TopDrivePanel%TopDriveIbopLed = 0
call OpenTopDriveIBop()
endif
call notifications%OnIbopLedChange%RunAll()
end subroutine
logical function Get_IbopLed()
implicit none
Get_IbopLed = notifications%IbopLed
end function

subroutine Set_SwingLed(v)
use CDrillingConsoleVariables!, only: SwingLedHw => SwingLed
implicit none
logical , intent(in) :: v
#ifdef ExcludeExtraChanges
if(notifications%SwingLed == v) return
#endif
notifications%SwingLed = v
if(notifications%SwingLed) then
DrillingConsole%SwingLed = 1
else
DrillingConsole%SwingLed = 0
endif
call notifications%OnSwingLedChange%RunAll()
end subroutine
logical function Get_SwingLed()
implicit none
Get_SwingLed = notifications%SwingLed
end function
subroutine Set_SlipsNotification(v)
implicit none
logical , intent(in) :: v
#ifdef ExcludeExtraChanges
if(notifications%SlipsNotification == v) return
#endif
notifications%SlipsNotification = v
! if(associated(notifications%SlipsNotificationPtr)) call notifications%SlipsNotificationPtr(notifications%SlipsNotification)
#ifdef deb
print*, 'notifications%SlipsNotification=', notifications%SlipsNotification
#endif
call notifications%OnSlipsNotificationChange%RunAll()
end subroutine
logical function Get_SlipsNotification()
implicit none
Get_SlipsNotification = notifications%SlipsNotification
end function

subroutine Set_OpenSafetyValveLed(v)
use CDrillingConsoleVariables!, only: OpenSafetyValveLedHw => OpenSafetyValveLed
use CManifolds, only: OpenSafetyValve_TopDrive, OpenSafetyValve_KellyMode, OpenSafetyValve_TripMode
use CHoistingVariables!, only: Hoisting%DriveType, TopDrive_DriveType, Kelly_DriveType
implicit none
logical , intent(in) :: v
#ifdef ExcludeExtraChanges
if(notifications%OpenSafetyValveLed == v) return
#endif
notifications%OpenSafetyValveLed = v
if(notifications%OpenSafetyValveLed) then
!!call OpenSafetyValve()
if(Hoisting%DriveType == TopDrive_DriveType) call OpenSafetyValve_TopDrive()
if(Hoisting%DriveType == Kelly_DriveType .and. notifications%operation_OpenSafetyValveLed == 0) call OpenSafetyValve_KellyMode()
if(Hoisting%DriveType == Kelly_DriveType .and. notifications%operation_OpenSafetyValveLed == 1) call OpenSafetyValve_TripMode()
endif
call notifications%OnOpenSafetyValveLedChange%RunAll()
end subroutine
logical function Get_OpenSafetyValveLed()
implicit none
Get_OpenSafetyValveLed = notifications%OpenSafetyValveLed
end function

subroutine Set_OpenKellyCockLed(v)
! use CDrillingConsoleVariables!, only: OpenKellyCockLedHw => OpenKellyCockLed
use CManifolds, only: OpenKellyCock
implicit none
logical , intent(in) :: v
#ifdef ExcludeExtraChanges
if(notifications%OpenKellyCockLed == v) return
#endif
notifications%OpenKellyCockLed = v
if(notifications%OpenKellyCockLed) then
call OpenKellyCock()
endif
! HAS BEEN IMPLEMENTED IN CMANIFOLD
!if(OpenKellyCockLed) then
! OpenKellyCockLedHw = 1
!else
! OpenKellyCockLedHw = 0
!endif
call notifications%OnOpenKellyCockLedChange%RunAll()
end subroutine
logical function Get_OpenKellyCockLed()
implicit none
Get_OpenKellyCockLed = notifications%OpenKellyCockLed
end function

subroutine Set_LatchLed(v)
use CDrillingConsoleVariables!, only: DrillingConsole%LatchPipeLED
!use CUnlatchLedNotification
implicit none
logical , intent(in) :: v
#ifdef ExcludeExtraChanges
if(notifications%LatchLed == v) return
#endif
notifications%LatchLed = v
if(notifications%LatchLed) then
DrillingConsole%LatchPipeLED = 1
!call Set_UnlatchLed(.false.)
else
DrillingConsole%LatchPipeLED = 0
endif
call notifications%OnLatchLedChange%RunAll()
end subroutine
logical function Get_LatchLed()
implicit none
Get_LatchLed = notifications%LatchLed
end function

subroutine Set_IrSafetyValveLed(v)
use CDrillingConsoleVariables!, only: DrillingConsole%CloseKellyCockLed => IRSafetyValveLed
use CManifolds, only: &
InstallSafetyValve_TopDrive, &
InstallSafetyValve_KellyMode, &
InstallSafetyValve_TripMode, &
RemoveSafetyValve_TopDrive, &
RemoveSafetyValve_KellyMode, &
RemoveSafetyValve_TripMode
use UnitySignalVariables, only: Set_SafetyValve_Install, Set_SafetyValve_Remove
use CHoistingVariables!, only: Hoisting%DriveType, TopDrive_DriveType, Kelly_DriveType
implicit none
logical , intent(in) :: v
#ifdef ExcludeExtraChanges
if(notifications%IrSafetyValveLed == v) return
#endif
notifications%IrSafetyValveLed = v
if(notifications%IrSafetyValveLed) then
DrillingConsole%IRSafetyValveLed = 1
if(Hoisting%DriveType == TopDrive_DriveType) call InstallSafetyValve_TopDrive()
if(Hoisting%DriveType == Kelly_DriveType .and. notifications%operation_IrSafetyValveLed == 0) call InstallSafetyValve_KellyMode()
if(Hoisting%DriveType == Kelly_DriveType .and. notifications%operation_IrSafetyValveLed == 1) call InstallSafetyValve_TripMode()
call Set_SafetyValve_Install()
else
DrillingConsole%IRSafetyValveLed = 0
if(Hoisting%DriveType == TopDrive_DriveType) call RemoveSafetyValve_TopDrive()
if(Hoisting%DriveType == Kelly_DriveType .and. notifications%operation_IrSafetyValveLed == 0) call RemoveSafetyValve_KellyMode()
if(Hoisting%DriveType == Kelly_DriveType .and. notifications%operation_IrSafetyValveLed == 1) call RemoveSafetyValve_TripMode()
call Set_SafetyValve_Remove()
endif
call notifications%OnIrSafetyValveLedChange%RunAll()
end subroutine
logical function Get_IrSafetyValveLed()
implicit none
Get_IrSafetyValveLed = notifications%IrSafetyValveLed
end function
subroutine Set_IrIBopLed(v)
use CDrillingConsoleVariables!, only: IRIBopLedHw => IRIBopLed
use CManifolds, only: InstallIBop, RemoveIBop
use UnitySignalVariables, only: Set_Ibop_Install, Set_Ibop_Remove
implicit none
logical , intent(in) :: v
#ifdef ExcludeExtraChanges
if(notifications%IrIBopLed == v) return
#endif
notifications%IrIBopLed = v
if(notifications%IrIBopLed) then
DrillingConsole%IRIBopLed = 1
call InstallIBop()
call Set_Ibop_Install()
else
DrillingConsole%IRIBopLed = 0
call RemoveIBop()
call Set_Ibop_Remove()
endif
call notifications%OnIrIBopLedChange%RunAll()
end subroutine
logical function Get_IrIBopLed()
implicit none
Get_IrIBopLed = notifications%IrIBopLed
end function

subroutine Set_FillMouseHoleLed(v)
use CDrillingConsoleVariables!, only: FillMouseHoleLedHw => FillMouseHoleLed
! use CMouseHoleEnumVariables
use UnitySignalVariables
implicit none
logical , intent(in) :: v
#ifdef ExcludeExtraChanges
if(notifications%FillMouseHoleLed == v) return
#endif
notifications%FillMouseHoleLed = v
if(notifications%FillMouseHoleLed) then
DrillingConsole%FillMouseHoleLed = 1
!call Set_MouseHole(MOUSE_HOLE_FILL)
else
DrillingConsole%FillMouseHoleLed = 0
!call Set_MouseHole(MOUSE_HOLE_EMPTY)
endif
call notifications%OnFillMouseHoleLedChange%RunAll()
end subroutine
logical function Get_FillMouseHoleLed()
implicit none
Get_FillMouseHoleLed = notifications%FillMouseHoleLed
end function

subroutine Set_CloseKellyCockLed(v)
use CDrillingConsoleVariables!, only: CloseKellyCockLedHw => CloseKellyCockLed
use CManifolds, only: CloseKellyCock
implicit none
logical , intent(in) :: v
#ifdef ExcludeExtraChanges
if(notifications%CloseKellyCockLed == v) return
#endif
notifications%CloseKellyCockLed = v
if(notifications%CloseKellyCockLed) then
call CloseKellyCock()
endif
call notifications%OnCloseKellyCockLedChange%RunAll()
end subroutine
logical function Get_CloseKellyCockLed()
implicit none
Get_CloseKellyCockLed = notifications%CloseKellyCockLed
end function

subroutine Set_CloseSafetyValveLed(v)
! use CDrillingConsoleVariables, only: CloseSafetyValveLedHw => CloseSafetyValveLed
use CManifolds, only: CloseSafetyValve_TopDrive, CloseSafetyValve_KellyMode, CloseSafetyValve_TripMode
use CHoistingVariables!, only: Hoisting%DriveType, TopDrive_DriveType, Kelly_DriveType
implicit none
logical , intent(in) :: v
#ifdef ExcludeExtraChanges
if(notifications%CloseSafetyValveLed == v) return
#endif
notifications%CloseSafetyValveLed = v
if(notifications%CloseSafetyValveLed) then
!!call CloseSafetyValve()
if(Hoisting%DriveType == TopDrive_DriveType) call CloseSafetyValve_TopDrive()
if(Hoisting%DriveType == Kelly_DriveType .and. notifications%operation_CloseSafetyValveLed == 0) call CloseSafetyValve_KellyMode()
if(Hoisting%DriveType == Kelly_DriveType .and. notifications%operation_CloseSafetyValveLed == 1) call CloseSafetyValve_TripMode()
endif
call notifications%OnCloseSafetyValveLedChange%RunAll()
end subroutine
logical function Get_CloseSafetyValveLed()
implicit none
Get_CloseSafetyValveLed = notifications%CloseSafetyValveLed
end function

end module NotificationVariables

+ 0
- 2
CSharp/OperationScenarios/Permissions/CFillupHeadPermission.f90 Datei anzeigen

@@ -7,8 +7,6 @@ module CFillupHeadPermission
subroutine Evaluate_FillupHeadPermission()
implicit none
if (Hoisting%DriveType == TopDrive_DriveType) then
#ifdef OST
print*, 'Evaluate_FillupHeadPermission=TopDrive'


+ 0
- 50
CSharp/OperationScenarios/Permissions/CFillupHeadPermissionVariables.f90 Datei anzeigen

@@ -1,50 +0,0 @@
module CFillupHeadPermissionVariables
use CVoidEventHandlerCollection
implicit none
logical :: FillupHeadPermission = .false.
public
type(VoidEventHandlerCollection) :: OnFillupHeadPermissionChange
private :: FillupHeadPermission
contains
subroutine Set_FillupHeadPermission(v)
implicit none
logical , intent(in) :: v
#ifdef ExcludeExtraChanges
if(FillupHeadPermission == v) return
#endif
FillupHeadPermission = v
#ifdef deb
print*, 'FillupHeadPermission=', FillupHeadPermission
#endif
call OnFillupHeadPermissionChange%RunAll()
end subroutine
logical function Get_FillupHeadPermission()
implicit none
Get_FillupHeadPermission = FillupHeadPermission
end function
subroutine Set_FillupHeadPermission_WN(v)
!DEC$ ATTRIBUTES DLLEXPORT :: Set_FillupHeadPermission_WN
!DEC$ ATTRIBUTES ALIAS: 'Set_FillupHeadPermission_WN' :: Set_FillupHeadPermission_WN
implicit none
logical , intent(in) :: v
call Set_FillupHeadPermission(v)
end subroutine
logical function Get_FillupHeadPermission_WN()
!DEC$ ATTRIBUTES DLLEXPORT :: Get_FillupHeadPermission_WN
!DEC$ ATTRIBUTES ALIAS: 'Get_FillupHeadPermission_WN' :: Get_FillupHeadPermission_WN
implicit none
Get_FillupHeadPermission_WN = FillupHeadPermission
end function
end module CFillupHeadPermissionVariables

+ 0
- 53
CSharp/OperationScenarios/Permissions/CInstallFillupHeadPermissionVariables.f90 Datei anzeigen

@@ -1,53 +0,0 @@
module CInstallFillupHeadPermissionVariables
use CVoidEventHandlerCollection
implicit none
logical :: InstallFillupHeadPermission = .false.
public
type(VoidEventHandlerCollection) :: OnInstallFillupHeadPermissionChange
private :: InstallFillupHeadPermission
contains
subroutine Set_InstallFillupHeadPermission(v)
implicit none
logical , intent(in) :: v
#ifdef ExcludeExtraChanges
if(InstallFillupHeadPermission == v) return
#endif
InstallFillupHeadPermission = v
#ifdef deb
print*, 'InstallFillupHeadPermission=', InstallFillupHeadPermission
#endif
call OnInstallFillupHeadPermissionChange%RunAll()
end subroutine
logical function Get_InstallFillupHeadPermission()
implicit none
Get_InstallFillupHeadPermission = InstallFillupHeadPermission
end function
subroutine Set_InstallFillupHeadPermission_WN(v)
!DEC$ ATTRIBUTES DLLEXPORT :: Set_InstallFillupHeadPermission_WN
!DEC$ ATTRIBUTES ALIAS: 'Set_InstallFillupHeadPermission_WN' :: Set_InstallFillupHeadPermission_WN
implicit none
logical , intent(in) :: v
call Set_InstallFillupHeadPermission(v)
end subroutine
logical function Get_InstallFillupHeadPermission_WN()
!DEC$ ATTRIBUTES DLLEXPORT :: Get_InstallFillupHeadPermission_WN
!DEC$ ATTRIBUTES ALIAS: 'Get_InstallFillupHeadPermission_WN' :: Get_InstallFillupHeadPermission_WN
implicit none
Get_InstallFillupHeadPermission_WN = InstallFillupHeadPermission
end function
end module CInstallFillupHeadPermissionVariables

+ 0
- 51
CSharp/OperationScenarios/Permissions/CInstallMudBucketPermissionVariables.f90 Datei anzeigen

@@ -1,51 +0,0 @@
module CInstallMudBucketPermissionVariables
use CVoidEventHandlerCollection
implicit none
logical :: InstallMudBucketPermission = .false.
public
type(VoidEventHandlerCollection) :: OnInstallMudBucketPermissionChange
private :: InstallMudBucketPermission
contains
subroutine Set_InstallMudBucketPermission(v)
implicit none
logical , intent(in) :: v
#ifdef ExcludeExtraChanges
if(InstallMudBucketPermission == v) return
#endif
InstallMudBucketPermission = v
#ifdef deb
print*, 'InstallMudBucketPermission=', InstallMudBucketPermission
#endif
call OnInstallMudBucketPermissionChange%RunAll()
end subroutine
logical function Get_InstallMudBucketPermission()
implicit none
Get_InstallMudBucketPermission = InstallMudBucketPermission
end function
subroutine Set_InstallMudBucketPermission_WN(v)
!DEC$ ATTRIBUTES DLLEXPORT :: Set_InstallMudBucketPermission_WN
!DEC$ ATTRIBUTES ALIAS: 'Set_InstallMudBucketPermission_WN' :: Set_InstallMudBucketPermission_WN
implicit none
logical , intent(in) :: v
call Set_InstallMudBucketPermission(v)
end subroutine
logical function Get_InstallMudBucketPermission_WN()
!DEC$ ATTRIBUTES DLLEXPORT :: Get_InstallMudBucketPermission_WN
!DEC$ ATTRIBUTES ALIAS: 'Get_InstallMudBucketPermission_WN' :: Get_InstallMudBucketPermission_WN
implicit none
Get_InstallMudBucketPermission_WN = InstallMudBucketPermission
end function
end module CInstallMudBucketPermissionVariables

+ 0
- 49
CSharp/OperationScenarios/Permissions/CIrIbopPermissionVariables.f90 Datei anzeigen

@@ -1,49 +0,0 @@
module CIrIbopPermissionVariables
use CVoidEventHandlerCollection
implicit none
logical :: IrIbopPermission = .false.
public
type(VoidEventHandlerCollection) :: OnIrIbopPermissionChange
private :: IrIbopPermission
contains
subroutine Set_IrIbopPermission(v)
implicit none
logical , intent(in) :: v
#ifdef ExcludeExtraChanges
if(IrIbopPermission == v) return
#endif
IrIbopPermission = v
#ifdef deb
print*, 'IrIbopPermission=', IrIbopPermission
#endif
call OnIrIbopPermissionChange%RunAll()
end subroutine
logical function Get_IrIbopPermission()
implicit none
Get_IrIbopPermission = IrIbopPermission
end function
subroutine Set_IrIbopPermission_WN(v)
!DEC$ ATTRIBUTES DLLEXPORT :: Set_IrIbopPermission_WN
!DEC$ ATTRIBUTES ALIAS: 'Set_IrIbopPermission_WN' :: Set_IrIbopPermission_WN
implicit none
logical , intent(in) :: v
call Set_IrIbopPermission(v)
end subroutine
logical function Get_IrIbopPermission_WN()
!DEC$ ATTRIBUTES DLLEXPORT :: Get_IrIbopPermission_WN
!DEC$ ATTRIBUTES ALIAS: 'Get_IrIbopPermission_WN' :: Get_IrIbopPermission_WN
implicit none
Get_IrIbopPermission_WN = IrIbopPermission
end function
end module CIrIbopPermissionVariables

+ 0
- 51
CSharp/OperationScenarios/Permissions/CIrSafetyValvePermissionVariables.f90 Datei anzeigen

@@ -1,51 +0,0 @@
module CIrSafetyValvePermissionVariables
use CVoidEventHandlerCollection
implicit none
logical :: IrSafetyValvePermission = .false.
public
type(VoidEventHandlerCollection) :: OnIrSafetyValvePermissionChange
private :: IrSafetyValvePermission
contains
subroutine Set_IrSafetyValvePermission(v)
implicit none
logical , intent(in) :: v
#ifdef ExcludeExtraChanges
if(IrSafetyValvePermission == v) return
#endif
IrSafetyValvePermission = v
#ifdef deb
print*, 'IrSafetyValvePermission=', IrSafetyValvePermission
#endif
call OnIrSafetyValvePermissionChange%RunAll()
end subroutine
logical function Get_IrSafetyValvePermission()
implicit none
Get_IrSafetyValvePermission = IrSafetyValvePermission
end function
subroutine Set_IrSafetyValvePermission_WN(v)
!DEC$ ATTRIBUTES DLLEXPORT :: Set_IrSafetyValvePermission_WN
!DEC$ ATTRIBUTES ALIAS: 'Set_IrSafetyValvePermission_WN' :: Set_IrSafetyValvePermission_WN
implicit none
logical , intent(in) :: v
call Set_IrSafetyValvePermission(v)
end subroutine
logical function Get_IrSafetyValvePermission_WN()
!DEC$ ATTRIBUTES DLLEXPORT :: Get_IrSafetyValvePermission_WN
!DEC$ ATTRIBUTES ALIAS: 'Get_IrSafetyValvePermission_WN' :: Get_IrSafetyValvePermission_WN
implicit none
Get_IrSafetyValvePermission_WN = IrSafetyValvePermission
end function
end module CIrSafetyValvePermissionVariables

+ 0
- 51
CSharp/OperationScenarios/Permissions/CRemoveFillupHeadPermissionVariables.f90 Datei anzeigen

@@ -1,51 +0,0 @@
module CRemoveFillupHeadPermissionVariables
use CVoidEventHandlerCollection
implicit none
logical :: RemoveFillupHeadPermission = .false.
public
type(VoidEventHandlerCollection) :: OnRemoveFillupHeadPermissionChange
private :: RemoveFillupHeadPermission
contains
subroutine Set_RemoveFillupHeadPermission(v)
implicit none
logical , intent(in) :: v
#ifdef ExcludeExtraChanges
if(RemoveFillupHeadPermission == v) return
#endif
RemoveFillupHeadPermission = v
#ifdef deb
print*, 'RemoveFillupHeadPermission=', RemoveFillupHeadPermission
#endif
call OnRemoveFillupHeadPermissionChange%RunAll()
end subroutine
logical function Get_RemoveFillupHeadPermission()
implicit none
Get_RemoveFillupHeadPermission = RemoveFillupHeadPermission
end function
subroutine Set_RemoveFillupHeadPermission_WN(v)
!DEC$ ATTRIBUTES DLLEXPORT :: Set_RemoveFillupHeadPermission_WN
!DEC$ ATTRIBUTES ALIAS: 'Set_RemoveFillupHeadPermission_WN' :: Set_RemoveFillupHeadPermission_WN
implicit none
logical , intent(in) :: v
call Set_RemoveFillupHeadPermission(v)
end subroutine
logical function Get_RemoveFillupHeadPermission_WN()
!DEC$ ATTRIBUTES DLLEXPORT :: Get_RemoveFillupHeadPermission_WN
!DEC$ ATTRIBUTES ALIAS: 'Get_RemoveFillupHeadPermission_WN' :: Get_RemoveFillupHeadPermission_WN
implicit none
Get_RemoveFillupHeadPermission_WN = RemoveFillupHeadPermission
end function
end module CRemoveFillupHeadPermissionVariables

+ 0
- 51
CSharp/OperationScenarios/Permissions/CRemoveMudBucketPermissionVariables.f90 Datei anzeigen

@@ -1,51 +0,0 @@
module CRemoveMudBucketPermissionVariables
use CVoidEventHandlerCollection
implicit none
logical :: RemoveMudBucketPermission = .false.
public
type(VoidEventHandlerCollection) :: OnRemoveMudBucketPermissionChange
private :: RemoveMudBucketPermission
contains
subroutine Set_RemoveMudBucketPermission(v)
implicit none
logical , intent(in) :: v
#ifdef ExcludeExtraChanges
if(RemoveMudBucketPermission == v) return
#endif
RemoveMudBucketPermission = v
#ifdef deb
print*, 'RemoveMudBucketPermission=', RemoveMudBucketPermission
#endif
call OnRemoveMudBucketPermissionChange%RunAll()
end subroutine
logical function Get_RemoveMudBucketPermission()
implicit none
Get_RemoveMudBucketPermission = RemoveMudBucketPermission
end function
subroutine Set_RemoveMudBucketPermission_WN(v)
!DEC$ ATTRIBUTES DLLEXPORT :: Set_RemoveMudBucketPermission_WN
!DEC$ ATTRIBUTES ALIAS: 'Set_RemoveMudBucketPermission_WN' :: Set_RemoveMudBucketPermission_WN
implicit none
logical , intent(in) :: v
call Set_RemoveMudBucketPermission(v)
end subroutine
logical function Get_RemoveMudBucketPermission_WN()
!DEC$ ATTRIBUTES DLLEXPORT :: Get_RemoveMudBucketPermission_WN
!DEC$ ATTRIBUTES ALIAS: 'Get_RemoveMudBucketPermission_WN' :: Get_RemoveMudBucketPermission_WN
implicit none
Get_RemoveMudBucketPermission_WN = RemoveMudBucketPermission
end function
end module CRemoveMudBucketPermissionVariables

+ 0
- 49
CSharp/OperationScenarios/Permissions/CSwingDrillPermissionVariables.f90 Datei anzeigen

@@ -1,49 +0,0 @@
module CSwingDrillPermissionVariables
use CVoidEventHandlerCollection
implicit none
logical :: SwingDrillPermission = .false.
public
type(VoidEventHandlerCollection) :: OnSwingDrillPermissionChange
private :: SwingDrillPermission
contains
subroutine Set_SwingDrillPermission(v)
implicit none
logical , intent(in) :: v
#ifdef ExcludeExtraChanges
if(SwingDrillPermission == v) return
#endif
SwingDrillPermission = v
#ifdef deb
print*, 'SwingDrillPermission=', SwingDrillPermission
#endif
call OnSwingDrillPermissionChange%RunAll()
end subroutine
logical function Get_SwingDrillPermission()
implicit none
Get_SwingDrillPermission = SwingDrillPermission
end function
subroutine Set_SwingDrillPermission_WN(v)
!DEC$ ATTRIBUTES DLLEXPORT :: Set_SwingDrillPermission_WN
!DEC$ ATTRIBUTES ALIAS: 'Set_SwingDrillPermission_WN' :: Set_SwingDrillPermission_WN
implicit none
logical , intent(in) :: v
call Set_SwingDrillPermission(v)
end subroutine
logical function Get_SwingDrillPermission_WN()
!DEC$ ATTRIBUTES DLLEXPORT :: Get_SwingDrillPermission_WN
!DEC$ ATTRIBUTES ALIAS: 'Get_SwingDrillPermission_WN' :: Get_SwingDrillPermission_WN
implicit none
Get_SwingDrillPermission_WN = SwingDrillPermission
end function
end module CSwingDrillPermissionVariables

+ 0
- 48
CSharp/OperationScenarios/Permissions/CSwingOffPermissionVariables.f90 Datei anzeigen

@@ -1,48 +0,0 @@
module CSwingOffPermissionVariables
use CVoidEventHandlerCollection
implicit none
logical :: SwingOffPermission = .false.
public
type(VoidEventHandlerCollection) :: OnSwingOffPermissionChange
private :: SwingOffPermission
contains
subroutine Set_SwingOffPermission(v)
implicit none
logical , intent(in) :: v
#ifdef ExcludeExtraChanges
if(SwingOffPermission == v) return
#endif
SwingOffPermission = v
#ifdef deb
print*, 'SwingOffPermission=', SwingOffPermission
#endif
call OnSwingOffPermissionChange%RunAll()
end subroutine
logical function Get_SwingOffPermission()
implicit none
Get_SwingOffPermission = SwingOffPermission
end function
subroutine Set_SwingOffPermission_WN(v)
!DEC$ ATTRIBUTES DLLEXPORT :: Set_SwingOffPermission_WN
!DEC$ ATTRIBUTES ALIAS: 'Set_SwingOffPermission_WN' :: Set_SwingOffPermission_WN
implicit none
logical , intent(in) :: v
call Set_SwingOffPermission(v)
end subroutine
logical function Get_SwingOffPermission_WN()
!DEC$ ATTRIBUTES DLLEXPORT :: Get_SwingOffPermission_WN
!DEC$ ATTRIBUTES ALIAS: 'Get_SwingOffPermission_WN' :: Get_SwingOffPermission_WN
implicit none
Get_SwingOffPermission_WN = SwingOffPermission
end function
end module CSwingOffPermissionVariables

+ 0
- 50
CSharp/OperationScenarios/Permissions/CSwingTiltPermissionVariables.f90 Datei anzeigen

@@ -1,50 +0,0 @@
module CSwingTiltPermissionVariables
use CVoidEventHandlerCollection
implicit none
logical :: SwingTiltPermission = .false.
public
type(VoidEventHandlerCollection) :: OnSwingTiltPermissionChange
private :: SwingTiltPermission
contains
subroutine Set_SwingTiltPermission(v)
implicit none
logical , intent(in) :: v
#ifdef ExcludeExtraChanges
if(SwingTiltPermission == v) return
#endif
SwingTiltPermission = v
#ifdef deb
print*, 'SwingTiltPermission=', SwingTiltPermission
#endif
call OnSwingTiltPermissionChange%RunAll()
end subroutine
logical function Get_SwingTiltPermission()
implicit none
Get_SwingTiltPermission = SwingTiltPermission
end function
subroutine Set_SwingTiltPermission_WN(v)
!DEC$ ATTRIBUTES DLLEXPORT :: Set_SwingTiltPermission_WN
!DEC$ ATTRIBUTES ALIAS: 'Set_SwingTiltPermission_WN' :: Set_SwingTiltPermission_WN
implicit none
logical , intent(in) :: v
call Set_SwingTiltPermission(v)
end subroutine
logical function Get_SwingTiltPermission_WN()
!DEC$ ATTRIBUTES DLLEXPORT :: Get_SwingTiltPermission_WN
!DEC$ ATTRIBUTES ALIAS: 'Get_SwingTiltPermission_WN' :: Get_SwingTiltPermission_WN
implicit none
Get_SwingTiltPermission_WN = SwingTiltPermission
end function
end module CSwingTiltPermissionVariables

+ 212
- 0
CSharp/OperationScenarios/Permissions/PermissionsVariables.f90 Datei anzeigen

@@ -0,0 +1,212 @@
module PermissionsVariables
use CVoidEventHandlerCollection
type::PermissionsType
logical :: FillupHeadPermission = .false.
type(VoidEventHandlerCollection) :: OnFillupHeadPermissionChange
logical :: InstallFillupHeadPermission = .false.
type(VoidEventHandlerCollection) :: OnInstallFillupHeadPermissionChange
logical :: InstallMudBucketPermission = .false.
type(VoidEventHandlerCollection) :: OnInstallMudBucketPermissionChange
logical :: IrIbopPermission = .false.
type(VoidEventHandlerCollection) :: OnIrIbopPermissionChange
logical :: IrSafetyValvePermission = .false.
type(VoidEventHandlerCollection) :: OnIrSafetyValvePermissionChange
logical :: RemoveFillupHeadPermission = .false.
type(VoidEventHandlerCollection) :: OnRemoveFillupHeadPermissionChange
logical :: RemoveMudBucketPermission = .false.
type(VoidEventHandlerCollection) :: OnRemoveMudBucketPermissionChange
logical :: SwingDrillPermission = .false.
type(VoidEventHandlerCollection) :: OnSwingDrillPermissionChange
logical :: SwingOffPermission = .false.
type(VoidEventHandlerCollection) :: OnSwingOffPermissionChange
logical :: SwingTiltPermission = .false.
type(VoidEventHandlerCollection) :: OnSwingTiltPermissionChange
end type PermissionsType

type(PermissionsType):: permissions

contains

subroutine Set_SwingTiltPermission(v)
implicit none
logical , intent(in) :: v
#ifdef ExcludeExtraChanges
if(permissions%SwingTiltPermission == v) return
#endif
permissions%SwingTiltPermission = v
#ifdef deb
print*, 'permissions%SwingTiltPermission=', permissions%SwingTiltPermission
#endif
call permissions%OnSwingTiltPermissionChange%RunAll()
end subroutine

logical function Get_SwingTiltPermission()
implicit none
Get_SwingTiltPermission = permissions%SwingTiltPermission
end function

subroutine Set_SwingOffPermission(v)
implicit none
logical , intent(in) :: v
#ifdef ExcludeExtraChanges
if(permissions%SwingOffPermission == v) return
#endif
permissions%SwingOffPermission = v
#ifdef deb
print*, 'permissions%SwingOffPermission=', permissions%SwingOffPermission
#endif
call permissions%OnSwingOffPermissionChange%RunAll()
end subroutine

logical function Get_SwingOffPermission()
implicit none
Get_SwingOffPermission = permissions%SwingOffPermission
end function

subroutine Set_SwingDrillPermission(v)
implicit none
logical , intent(in) :: v
#ifdef ExcludeExtraChanges
if(permissions%SwingDrillPermission == v) return
#endif
permissions%SwingDrillPermission = v
#ifdef deb
print*, 'permissions%SwingDrillPermission=', permissions%SwingDrillPermission
#endif
call permissions%OnSwingDrillPermissionChange%RunAll()
end subroutine

logical function Get_SwingDrillPermission()
implicit none
Get_SwingDrillPermission = permissions%SwingDrillPermission
end function

subroutine Set_RemoveMudBucketPermission(v)
implicit none
logical , intent(in) :: v
#ifdef ExcludeExtraChanges
if(permissions%RemoveMudBucketPermission == v) return
#endif
permissions%RemoveMudBucketPermission = v
#ifdef deb
print*, 'permissions%RemoveMudBucketPermission=', permissions%RemoveMudBucketPermission
#endif
call permissions%OnRemoveMudBucketPermissionChange%RunAll()
end subroutine

logical function Get_RemoveMudBucketPermission()
implicit none
Get_RemoveMudBucketPermission = permissions%RemoveMudBucketPermission
end function


subroutine Set_RemoveFillupHeadPermission(v)
implicit none
logical , intent(in) :: v
#ifdef ExcludeExtraChanges
if(permissions%RemoveFillupHeadPermission == v) return
#endif
permissions%RemoveFillupHeadPermission = v
#ifdef deb
print*, 'permissions%RemoveFillupHeadPermission=', permissions%RemoveFillupHeadPermission
#endif
call permissions%OnRemoveFillupHeadPermissionChange%RunAll()
end subroutine

logical function Get_RemoveFillupHeadPermission()
implicit none
Get_RemoveFillupHeadPermission = permissions%RemoveFillupHeadPermission
end function

subroutine Set_IrSafetyValvePermission(v)
implicit none
logical , intent(in) :: v
#ifdef ExcludeExtraChanges
if(permissions%IrSafetyValvePermission == v) return
#endif
permissions%IrSafetyValvePermission = v
#ifdef deb
print*, 'permissions%IrSafetyValvePermission=', permissions%IrSafetyValvePermission
#endif
call permissions%OnIrSafetyValvePermissionChange%RunAll()
end subroutine

logical function Get_IrSafetyValvePermission()
implicit none
Get_IrSafetyValvePermission = permissions%IrSafetyValvePermission
end function

subroutine Set_IrIbopPermission(v)
implicit none
logical , intent(in) :: v
#ifdef ExcludeExtraChanges
if(permissions%IrIbopPermission == v) return
#endif
permissions%IrIbopPermission = v
#ifdef deb
print*, 'permissions%IrIbopPermission=', permissions%IrIbopPermission
#endif
call permissions%OnIrIbopPermissionChange%RunAll()
end subroutine

logical function Get_IrIbopPermission()
implicit none
Get_IrIbopPermission = permissions%IrIbopPermission
end function


subroutine Set_InstallMudBucketPermission(v)
implicit none
logical , intent(in) :: v
#ifdef ExcludeExtraChanges
if(permissions%InstallMudBucketPermission == v) return
#endif
permissions%InstallMudBucketPermission = v
#ifdef deb
print*, 'permissions%InstallMudBucketPermission=', permissions%InstallMudBucketPermission
#endif
call permissions%OnInstallMudBucketPermissionChange%RunAll()
end subroutine

logical function Get_InstallMudBucketPermission()
implicit none
Get_InstallMudBucketPermission = permissions%InstallMudBucketPermission
end function

subroutine Set_InstallFillupHeadPermission(v)
implicit none
logical , intent(in) :: v
#ifdef ExcludeExtraChanges
if(permissions%InstallFillupHeadPermission == v) return
#endif
permissions%InstallFillupHeadPermission = v
#ifdef deb
print*, 'InstallFillupHeadPermission=', permissions%InstallFillupHeadPermission
#endif
call permissions%OnInstallFillupHeadPermissionChange%RunAll()
end subroutine

logical function Get_InstallFillupHeadPermission()
implicit none
Get_InstallFillupHeadPermission = permissions%InstallFillupHeadPermission
end function

subroutine Set_FillupHeadPermission(v)
implicit none
logical , intent(in) :: v
#ifdef ExcludeExtraChanges
if(permissions%FillupHeadPermission == v) return
#endif
permissions%FillupHeadPermission = v
#ifdef deb
print*, 'FillupHeadPermission=', permissions%FillupHeadPermission
#endif
call permissions%OnFillupHeadPermissionChange%RunAll()
end subroutine

logical function Get_FillupHeadPermission()
implicit none
Get_FillupHeadPermission = permissions%FillupHeadPermission
end function

end module

+ 0
- 37
CSharp/OperationScenarios/SoftwareInputs/CHookHeight.f90 Datei anzeigen

@@ -1,37 +0,0 @@
module CHookHeight
use CVoidEventHandlerCollection
implicit none
real :: HookHeight = 0
public
type(VoidEventHandlerCollection) :: OnHookHeightChange
private :: HookHeight
contains
subroutine Set_HookHeight(v)
implicit none
real , intent(in) :: v
#ifdef ExcludeExtraChanges
if(HookHeight == v) return
#endif
HookHeight = v
#ifdef deb
print*, 'HookHeight=', HookHeight
#endif
call OnHookHeightChange%RunAll()
end subroutine
real function Get_HookHeight()
implicit none
Get_HookHeight = HookHeight
end function
subroutine Subscribe_HookHeight()
use CHookVariables!, only: OnHookHeight => OnHookHeightChange
implicit none
call Hook%OnHookHeightChange%Add(Set_HookHeight)
end subroutine
end module CHookHeight

+ 0
- 58
CSharp/OperationScenarios/SoftwareInputs/CIbopHeight.f90 Datei anzeigen

@@ -1,58 +0,0 @@
module CIbopHeight
use CVoidEventHandlerCollection
implicit none
real :: IbopHeight = 0
public
type(VoidEventHandlerCollection) :: OnIbopHeightChange
private :: IbopHeight
contains
subroutine Set_IbopHeight(v)
implicit none
real , intent(in) :: v
#ifdef ExcludeExtraChanges
if(IbopHeight == v) return
#endif
IbopHeight = v
#ifdef deb
print*, 'IbopHeight=', IbopHeight
#endif
call OnIbopHeightChange%RunAll()
end subroutine
real function Get_IbopHeight()
implicit none
Get_IbopHeight = IbopHeight
!Get_IbopHeight = 23.0
end function
subroutine Set_IbopHeight_WN(v)
!DEC$ ATTRIBUTES DLLEXPORT :: Set_IbopHeight_WN
!DEC$ ATTRIBUTES ALIAS: 'Set_IbopHeight_WN' :: Set_IbopHeight_WN
implicit none
real , intent(in) :: v
call Set_IbopHeight(v)
end subroutine
real function Get_IbopHeight_WN()
!DEC$ ATTRIBUTES DLLEXPORT :: Get_IbopHeight_WN
!DEC$ ATTRIBUTES ALIAS: 'Get_IbopHeight_WN' :: Get_IbopHeight_WN
implicit none
Get_IbopHeight_WN = IbopHeight
!Get_IbopHeight_WN = 23.0
end function
subroutine Subscribe_IbopHeight()
implicit none
end subroutine
end module CIbopHeight

+ 0
- 60
CSharp/OperationScenarios/SoftwareInputs/CNearFloorConnection.f90 Datei anzeigen

@@ -1,60 +0,0 @@
module CNearFloorConnection
use CVoidEventHandlerCollection
implicit none
real :: NearFloorConnection = 0
public
type(VoidEventHandlerCollection) :: OnNearFloorConnectionChange
private :: NearFloorConnection
contains
subroutine Set_NearFloorConnection(v)
implicit none
real , intent(in) :: v
#ifdef ExcludeExtraChanges
if(NearFloorConnection == v) return
#endif
NearFloorConnection = v
#ifdef deb
print*, 'NearFloorConnection=', NearFloorConnection
#endif
call OnNearFloorConnectionChange%RunAll()
end subroutine
real function Get_NearFloorConnection()
implicit none
Get_NearFloorConnection = NearFloorConnection
!Get_NearFloorConnection = 4
end function
subroutine Set_NearFloorConnection_WN(v)
!DEC$ ATTRIBUTES DLLEXPORT :: Set_NearFloorConnection_WN
!DEC$ ATTRIBUTES ALIAS: 'Set_NearFloorConnection_WN' :: Set_NearFloorConnection_WN
implicit none
real , intent(in) :: v
call Set_NearFloorConnection(v)
end subroutine
real function Get_NearFloorConnection_WN()
!DEC$ ATTRIBUTES DLLEXPORT :: Get_NearFloorConnection_WN
!DEC$ ATTRIBUTES ALIAS: 'Get_NearFloorConnection_WN' :: Get_NearFloorConnection_WN
implicit none
Get_NearFloorConnection_WN = NearFloorConnection
!Get_NearFloorConnection_WN = 4
end function
subroutine Subscribe_NearFloorConnection()
implicit none
end subroutine
end module CNearFloorConnection

+ 0
- 59
CSharp/OperationScenarios/SoftwareInputs/CSafetyValveHeight.f90 Datei anzeigen

@@ -1,59 +0,0 @@
module CSafetyValveHeight
use CVoidEventHandlerCollection
implicit none
real :: SafetyValveHeight = 0
public
type(VoidEventHandlerCollection) :: OnSafetyValveHeightChange
private :: SafetyValveHeight
contains
subroutine Set_SafetyValveHeight(v)
implicit none
real , intent(in) :: v
#ifdef ExcludeExtraChanges
if(SafetyValveHeight == v) return
#endif
SafetyValveHeight = v
#ifdef deb
print*, 'SafetyValveHeight=', SafetyValveHeight
#endif
call OnSafetyValveHeightChange%RunAll()
end subroutine
real function Get_SafetyValveHeight()
implicit none
Get_SafetyValveHeight = SafetyValveHeight
!Get_SafetyValveHeight = 23
end function
subroutine Set_SafetyValveHeight_WN(v)
!DEC$ ATTRIBUTES DLLEXPORT :: Set_SafetyValveHeight_WN
!DEC$ ATTRIBUTES ALIAS: 'Set_SafetyValveHeight_WN' :: Set_SafetyValveHeight_WN
implicit none
real , intent(in) :: v
call Set_SafetyValveHeight(v)
end subroutine
real function Get_SafetyValveHeight_WN()
!DEC$ ATTRIBUTES DLLEXPORT :: Get_SafetyValveHeight_WN
!DEC$ ATTRIBUTES ALIAS: 'Get_SafetyValveHeight_WN' :: Get_SafetyValveHeight_WN
implicit none
Get_SafetyValveHeight_WN = SafetyValveHeight
!Get_SafetyValveHeight_WN = 23
end function
subroutine Subscribe_SafetyValveHeight()
implicit none
end subroutine
end module CSafetyValveHeight

+ 0
- 54
CSharp/OperationScenarios/SoftwareInputs/CSlackOff.f90 Datei anzeigen

@@ -1,54 +0,0 @@
module CSlackOff
use CVoidEventHandlerCollection
implicit none
logical :: SlackOff = .false.
public
type(VoidEventHandlerCollection) :: OnSlackOffChange
private :: SlackOff
contains
subroutine Set_SlackOff(v)
implicit none
logical , intent(in) :: v
#ifdef ExcludeExtraChanges
if(SlackOff == v) return
#endif
SlackOff = v
#ifdef deb
print*, 'SlackOff=', SlackOff
#endif
call OnSlackOffChange%RunAll()
end subroutine
logical function Get_SlackOff()
implicit none
Get_SlackOff = SlackOff
end function
subroutine Set_SlackOff_WN(v)
!DEC$ ATTRIBUTES DLLEXPORT :: Set_SlackOff_WN
!DEC$ ATTRIBUTES ALIAS: 'Set_SlackOff_WN' :: Set_SlackOff_WN
implicit none
logical , intent(in) :: v
call Set_SlackOff(v)
end subroutine
logical function Get_SlackOff_WN()
!DEC$ ATTRIBUTES DLLEXPORT :: Get_SlackOff_WN
!DEC$ ATTRIBUTES ALIAS: 'Get_SlackOff_WN' :: Get_SlackOff_WN
implicit none
Get_SlackOff_WN = SlackOff
end function
subroutine Subscribe_SlackOff()
implicit none
end subroutine
end module CSlackOff

+ 0
- 38
CSharp/OperationScenarios/SoftwareInputs/CStandRack.f90 Datei anzeigen

@@ -1,38 +0,0 @@
module CStandRack
use CVoidEventHandlerCollection
implicit none
integer :: StandRack = 0
public
type(VoidEventHandlerCollection) :: OnStandRackChanged
private :: StandRack
contains
subroutine Set_StandRack(v)
implicit none
integer , intent(in) :: v
#ifdef ExcludeExtraChanges
if(StandRack == v) return
#endif
StandRack = v
#ifdef deb
print*, 'StandRack=', StandRack
#endif
call OnStandRackChanged%RunAll()
end subroutine
integer function Get_StandRack()
implicit none
Get_StandRack = StandRack
end function
subroutine Subscribe_StandRack()
use CCommonVariables
implicit none
call Common%OnStandRackChange%AssignTo(Set_StandRack)
end subroutine
end module CStandRack

+ 0
- 57
CSharp/OperationScenarios/SoftwareInputs/CStringPressure.f90 Datei anzeigen

@@ -1,57 +0,0 @@
module CStringPressure
use CVoidEventHandlerCollection
implicit none
real :: StringPressure = 0
public
type(VoidEventHandlerCollection) :: OnStringPressureChange
private :: StringPressure
contains
subroutine Set_StringPressure(v)
implicit none
real , intent(in) :: v
#ifdef ExcludeExtraChanges
if(StringPressure == v) return
#endif
StringPressure = v
#ifdef deb
print*, 'StringPressure=', StringPressure
#endif
call OnStringPressureChange%RunAll()
end subroutine
real function Get_StringPressure()
implicit none
Get_StringPressure = StringPressure
end function
subroutine Set_StringPressure_WN(v)
!DEC$ ATTRIBUTES DLLEXPORT :: Set_StringPressure_WN
!DEC$ ATTRIBUTES ALIAS: 'Set_StringPressure_WN' :: Set_StringPressure_WN
implicit none
real , intent(in) :: v
call Set_StringPressure(v)
end subroutine
real function Get_StringPressure_WN()
!DEC$ ATTRIBUTES DLLEXPORT :: Get_StringPressure_WN
!DEC$ ATTRIBUTES ALIAS: 'Get_StringPressure_WN' :: Get_StringPressure_WN
implicit none
Get_StringPressure_WN = StringPressure
end function
subroutine Subscribe_StringPressure()
implicit none
end subroutine
end module CStringPressure

+ 0
- 55
CSharp/OperationScenarios/SoftwareInputs/CTdsStemJointHeight.f90 Datei anzeigen

@@ -1,55 +0,0 @@
module CTdsStemJointHeight
use CVoidEventHandlerCollection
implicit none
real :: TdsStemJointHeight = 0
public
type(VoidEventHandlerCollection) :: OnTdsStemJointHeightChange
private :: TdsStemJointHeight
contains
subroutine Set_TdsStemJointHeight(v)
implicit none
real , intent(in) :: v
#ifdef ExcludeExtraChanges
if(TdsStemJointHeight == v) return
#endif
TdsStemJointHeight = v
#ifdef deb
print*, 'TdsStemJointHeight=', TdsStemJointHeight
#endif
call OnTdsStemJointHeightChange%RunAll()
end subroutine
real function Get_TdsStemJointHeight()
implicit none
Get_TdsStemJointHeight = TdsStemJointHeight
end function
subroutine Set_TdsStemJointHeight_WN(v)
!DEC$ ATTRIBUTES DLLEXPORT :: Set_TdsStemJointHeight_WN
!DEC$ ATTRIBUTES ALIAS: 'Set_TdsStemJointHeight_WN' :: Set_TdsStemJointHeight_WN
implicit none
real , intent(in) :: v
call Set_TdsStemJointHeight(v)
end subroutine
real function Get_TdsStemJointHeight_WN()
!DEC$ ATTRIBUTES DLLEXPORT :: Get_TdsStemJointHeight_WN
!DEC$ ATTRIBUTES ALIAS: 'Get_TdsStemJointHeight_WN' :: Get_TdsStemJointHeight_WN
implicit none
Get_TdsStemJointHeight_WN = TdsStemJointHeight
end function
subroutine Subscribe_TdsStemJointHeight()
implicit none
end subroutine
end module CTdsStemJointHeight

+ 0
- 60
CSharp/OperationScenarios/SoftwareInputs/CZeroStringSpeed.f90 Datei anzeigen

@@ -1,60 +0,0 @@
module CZeroStringSpeed
use CVoidEventHandlerCollection
implicit none
logical :: ZeroStringSpeed = .false.
public
type(VoidEventHandlerCollection) :: OnZeroStringSpeedChange
private :: ZeroStringSpeed
contains
subroutine Set_ZeroStringSpeed(v)
implicit none
logical , intent(in) :: v
#ifdef ExcludeExtraChanges
if(ZeroStringSpeed == v) return
#endif
ZeroStringSpeed = v
#ifdef deb
print*, 'ZeroStringSpeed=', ZeroStringSpeed
#endif
call OnZeroStringSpeedChange%RunAll()
end subroutine
logical function Get_ZeroStringSpeed()
implicit none
Get_ZeroStringSpeed = ZeroStringSpeed
!Get_ZeroStringSpeed = .true.
end function
subroutine Set_ZeroStringSpeed_WN(v)
!DEC$ ATTRIBUTES DLLEXPORT :: Set_ZeroStringSpeed_WN
!DEC$ ATTRIBUTES ALIAS: 'Set_ZeroStringSpeed_WN' :: Set_ZeroStringSpeed_WN
implicit none
logical , intent(in) :: v
call Set_ZeroStringSpeed(v)
end subroutine
logical function Get_ZeroStringSpeed_WN()
!DEC$ ATTRIBUTES DLLEXPORT :: Get_ZeroStringSpeed_WN
!DEC$ ATTRIBUTES ALIAS: 'Get_ZeroStringSpeed_WN' :: Get_ZeroStringSpeed_WN
implicit none
Get_ZeroStringSpeed_WN = ZeroStringSpeed
!Get_ZeroStringSpeed_WN = .true.
end function
subroutine Subscribe_ZeroStringSpeed()
implicit none
end subroutine
end module CZeroStringSpeed

+ 195
- 0
CSharp/OperationScenarios/SoftwareInputsVariables.f90 Datei anzeigen

@@ -0,0 +1,195 @@
module SoftwareInputsVariables
use CVoidEventHandlerCollection
type:: SoftwareInputsType
real :: HookHeight = 0
type(VoidEventHandlerCollection) :: OnHookHeightChange
real :: IbopHeight = 0
type(VoidEventHandlerCollection) :: OnIbopHeightChange
real :: NearFloorConnection = 0
type(VoidEventHandlerCollection) :: OnNearFloorConnectionChange
real :: SafetyValveHeight = 0
type(VoidEventHandlerCollection) :: OnSafetyValveHeightChange
logical :: SlackOff = .false.
type(VoidEventHandlerCollection) :: OnSlackOffChange
integer :: StandRack = 0
type(VoidEventHandlerCollection) :: OnStandRackChanged
real :: StringPressure = 0
type(VoidEventHandlerCollection) :: OnStringPressureChange
real :: TdsStemJointHeight = 0
type(VoidEventHandlerCollection) :: OnTdsStemJointHeightChange
logical :: ZeroStringSpeed = .false.
type(VoidEventHandlerCollection) :: OnZeroStringSpeedChange
end type SoftwareInputsType
type(SoftwareInputsType):: softwareInputs

contains

subroutine Set_ZeroStringSpeed(v)
implicit none
logical , intent(in) :: v
#ifdef ExcludeExtraChanges
if(softwareInputs%ZeroStringSpeed == v) return
#endif
softwareInputs%ZeroStringSpeed = v
#ifdef deb
print*, 'ZeroStringSpeed=', softwareInputs%ZeroStringSpeed
#endif
call softwareInputs%OnZeroStringSpeedChange%RunAll()
end subroutine
logical function Get_ZeroStringSpeed()
implicit none
Get_ZeroStringSpeed = softwareInputs%ZeroStringSpeed
!Get_ZeroStringSpeed = .true.
end function
subroutine Set_TdsStemJointHeight(v)
implicit none
real , intent(in) :: v
#ifdef ExcludeExtraChanges
if(softwareInputs%TdsStemJointHeight == v) return
#endif
softwareInputs%TdsStemJointHeight = v
#ifdef deb
print*, 'TdsStemJointHeight=', softwareInputs%TdsStemJointHeight
#endif
call softwareInputs%OnTdsStemJointHeightChange%RunAll()
end subroutine
real function Get_TdsStemJointHeight()
implicit none
Get_TdsStemJointHeight = softwareInputs%TdsStemJointHeight
end function
subroutine Set_StringPressure(v)
implicit none
real , intent(in) :: v
#ifdef ExcludeExtraChanges
if(softwareInputs%StringPressure == v) return
#endif
softwareInputs%StringPressure = v
#ifdef deb
print*, 'StringPressure=', softwareInputs%StringPressure
#endif
call softwareInputs%OnStringPressureChange%RunAll()
end subroutine
real function Get_StringPressure()
implicit none
Get_StringPressure = softwareInputs%StringPressure
end function

subroutine Set_StandRack(v)
implicit none
integer , intent(in) :: v
#ifdef ExcludeExtraChanges
if(softwareInputs%StandRack == v) return
#endif
softwareInputs%StandRack = v
#ifdef deb
print*, 'StandRack=', softwareInputs%StandRack
#endif
call softwareInputs%OnStandRackChanged%RunAll()
end subroutine
integer function Get_StandRack()
implicit none
Get_StandRack = softwareInputs%StandRack
end function
subroutine Set_SlackOff(v)
implicit none
logical , intent(in) :: v
#ifdef ExcludeExtraChanges
if(softwareInputs%SlackOff == v) return
#endif
softwareInputs%SlackOff = v
#ifdef deb
print*, 'SlackOff=', softwareInputs%SlackOff
#endif
call softwareInputs%OnSlackOffChange%RunAll()
end subroutine
logical function Get_SlackOff()
implicit none
Get_SlackOff = softwareInputs%SlackOff
end function
subroutine Set_SafetyValveHeight(v)
implicit none
real , intent(in) :: v
#ifdef ExcludeExtraChanges
if(softwareInputs%SafetyValveHeight == v) return
#endif
softwareInputs%SafetyValveHeight = v
#ifdef deb
print*, 'SafetyValveHeight=', softwareInputs%SafetyValveHeight
#endif
call softwareInputs%OnSafetyValveHeightChange%RunAll()
end subroutine
real function Get_SafetyValveHeight()
implicit none
Get_SafetyValveHeight = softwareInputs%SafetyValveHeight
!Get_SafetyValveHeight = 23
end function
subroutine Set_NearFloorConnection(v)
implicit none
real , intent(in) :: v
#ifdef ExcludeExtraChanges
if(softwareInputs%NearFloorConnection == v) return
#endif
softwareInputs%NearFloorConnection = v
#ifdef deb
print*, 'NearFloorConnection=', softwareInputs%NearFloorConnection
#endif
call softwareInputs%OnNearFloorConnectionChange%RunAll()
end subroutine
real function Get_NearFloorConnection()
implicit none
Get_NearFloorConnection = softwareInputs%NearFloorConnection
!Get_NearFloorConnection = 4
end function

subroutine Set_IbopHeight(v)
implicit none
real , intent(in) :: v
#ifdef ExcludeExtraChanges
if(softwareInputs%IbopHeight == v) return
#endif
softwareInputs%IbopHeight = v
#ifdef deb
print*, 'IbopHeight=', softwareInputs%IbopHeight
#endif
call softwareInputs%OnIbopHeightChange%RunAll()
end subroutine
real function Get_IbopHeight()
implicit none
Get_IbopHeight = softwareInputs%IbopHeight
!Get_IbopHeight = 23.0
end function
subroutine Set_HookHeight(v)
implicit none
real , intent(in) :: v
#ifdef ExcludeExtraChanges
if(softwareInputs%HookHeight == v) return
#endif
softwareInputs%HookHeight = v
#ifdef deb
print*, 'HookHeight=', softwareInputs%HookHeight
#endif
call softwareInputs%OnHookHeightChange%RunAll()
end subroutine
real function Get_HookHeight()
implicit none
Get_HookHeight = softwareInputs%HookHeight
end function

end module

+ 0
- 33
CSharp/OperationScenarios/SoftwareOutputs/CStringUpdate.f90 Datei anzeigen

@@ -1,33 +0,0 @@
module CStringUpdate
use COperationScenariosVariables
implicit none
contains
subroutine Evaluate_StringUpdate()
implicit none
! if (DriveType == TopDrive_DriveType) then
!#ifdef OST
! print*, 'Evaluate_StringUpdate=TopDrive'
!#endif
! endif
!
!
!
!
!
!
!
! if (DriveType == Kelly_DriveType) then
!#ifdef OST
! print*, 'Evaluate_StringUpdate=Kelly'
!#endif
! endif
!
end subroutine
subroutine Subscribe_StringUpdate()
implicit none
end subroutine
end module CStringUpdate

+ 3
- 17
CSharp/OperationScenarios/SoftwareOutputs/CStringUpdateVariables.f90 Datei anzeigen

@@ -22,24 +22,10 @@ module CStringUpdateVariables
subroutine Set_StringUpdate(v)
implicit none
integer , intent(in) :: v
#ifdef ExcludeExtraChanges
if(StringUpdate == v) return
#endif
#ifdef ExcludeExtraChanges
if(StringUpdate == v) return
#endif
StringUpdate = v
#ifdef deb
!if(StringUpdate==STRING_UPDATE_NEUTRAL) then
! print*, 'StringUpdate=STRING_UPDATE_NEUTRAL'
!else if(StringUpdate==STRING_UPDATE_ADD_SINGLE) then
! print*, 'StringUpdate=STRING_UPDATE_ADD_SINGLE'
!else if(StringUpdate==STRING_UPDATE_ADD_STAND) then
! print*, 'StringUpdate=STRING_UPDATE_ADD_STAND'
!else if(StringUpdate==STRING_UPDATE_REMOVE_SINGLE) then
! print*, 'StringUpdate=STRING_UPDATE_REMOVE_SINGLE'
!else if(StringUpdate==STRING_UPDATE_REMOVE_STAND) then
! print*, 'StringUpdate=STRING_UPDATE_REMOVE_STAND'
!endif
!print*, 'StringUpdate=', StringUpdate
#endif
call OnStringUpdateChange%RunAll(v)
end subroutine


+ 0
- 0
Datei anzeigen


+ 0
- 831
CSharp/OperationScenarios/Test/TestOperationScenarios.f90 Datei anzeigen

@@ -1,831 +0,0 @@
module TestOperationScenarios
use CKellyConnectionEnumVariables
use CElevatorConnectionEnumVariables
use CCloseKellyCockLedNotificationVariables
use CCloseSafetyValveLedNotificationVariables
use CFillMouseHoleLedNotificationVariables
use CIrIBopLedNotificationVariables
use CIrSafetyValveLedNotificationVariables
use CLatchLedNotificationVariables
use COpenKellyCockLedNotificationVariables
use COpenSafetyValveLedNotificationVariables
use CSlipsNotificationVariables
use CSwingLedNotificationVariables
use CTongNotificationVariables
use CUnlatchLedNotificationVariables
use CInstallFillupHeadPermissionVariables
use CInstallMudBucketPermissionVariables
use CIrIbopPermissionVariables
use CIrSafetyValvePermissionVariables
use CRemoveFillupHeadPermissionVariables
use CRemoveMudBucketPermissionVariables
use CHookHeight
use CIbopHeight
use CNearFloorConnection
use CSafetyValveHeight
use CSlackOff
use CStandRack
use CStringPressure
use CZeroStringSpeed
use CUnityInputs
!, only: &
! Get_ElevatorConnectionPossible, &
! Get_JointConnectionPossible, &
! Get_NearMonkeyBoardPosition, &
! Get_NearFloorPosition, &
! Get_SingleSetInMouseHole, &
! Get_SwingCenter, &
! Get_NewHookHeight
use CUnityOutputs
use CBucketEnumVariables
use CElevatorEnumVariables
use CHeadEnumVariables
use CIbopEnumVariables
use CKellyEnumVariables
use CMouseHoleEnumVariables
use COperationConditionEnumVariables
use CSafetyValveEnumVariables
use CSlipsEnumVariables
use CSwingEnumVariables
use CTongEnumVariables
use CRigSizeVariables
use CHoistingVariables
use CFlowPipeDisconnectEnumVariables
use CFlowKellyDisconnectEnumVariables
use CStringUpdateVariables
implicit none
public
contains
integer function GetElevatorConnection()
!DEC$ ATTRIBUTES DLLEXPORT :: GetElevatorConnection
!DEC$ ATTRIBUTES ALIAS: 'GetElevatorConnection' :: GetElevatorConnection
implicit none
GetElevatorConnection = Get_ElevatorConnection()
end function

integer function GetKellyConnection()
!DEC$ ATTRIBUTES DLLEXPORT :: GetKellyConnection
!DEC$ ATTRIBUTES ALIAS: 'GetKellyConnection' :: GetKellyConnection
implicit none
GetKellyConnection = Get_KellyConnection()
end function

logical function GetCloseKellyCockLedU()
!DEC$ ATTRIBUTES DLLEXPORT :: GetCloseKellyCockLedU
!DEC$ ATTRIBUTES ALIAS: 'GetCloseKellyCockLedU' :: GetCloseKellyCockLedU
implicit none
GetCloseKellyCockLedU = Get_CloseKellyCockLed()
end function

logical function GetCloseSafetyValveLedU()
!DEC$ ATTRIBUTES DLLEXPORT :: GetCloseSafetyValveLedU
!DEC$ ATTRIBUTES ALIAS: 'GetCloseSafetyValveLedU' :: GetCloseSafetyValveLedU
implicit none
GetCloseSafetyValveLedU = Get_CloseSafetyValveLed()
end function

logical function GetFillMouseHoleLedU()
!DEC$ ATTRIBUTES DLLEXPORT :: GetFillMouseHoleLedU
!DEC$ ATTRIBUTES ALIAS: 'GetFillMouseHoleLedU' :: GetFillMouseHoleLedU
implicit none
GetFillMouseHoleLedU = Get_FillMouseHoleLed()
end function

logical function GetIrIBopLedU()
!DEC$ ATTRIBUTES DLLEXPORT :: GetIrIBopLedU
!DEC$ ATTRIBUTES ALIAS: 'GetIrIBopLedU' :: GetIrIBopLedU
implicit none
GetIrIBopLedU = Get_IrIBopLed()
end function

logical function GetIrSafetyValveLedU()
!DEC$ ATTRIBUTES DLLEXPORT :: GetIrSafetyValveLedU
!DEC$ ATTRIBUTES ALIAS: 'GetIrSafetyValveLedU' :: GetIrSafetyValveLedU
implicit none
GetIrSafetyValveLedU = Get_IrSafetyValveLed()
end function

logical function GetLatchLedU()
!DEC$ ATTRIBUTES DLLEXPORT :: GetLatchLedU
!DEC$ ATTRIBUTES ALIAS: 'GetLatchLedU' :: GetLatchLedU
implicit none
GetLatchLedU = Get_LatchLed()
end function

logical function GetOpenKellyCockLedU()
!DEC$ ATTRIBUTES DLLEXPORT :: GetOpenKellyCockLedU
!DEC$ ATTRIBUTES ALIAS: 'GetOpenKellyCockLedU' :: GetOpenKellyCockLedU
implicit none
GetOpenKellyCockLedU = Get_OpenKellyCockLed()
end function

logical function GetOpenSafetyValveLedU()
!DEC$ ATTRIBUTES DLLEXPORT :: GetOpenSafetyValveLedU
!DEC$ ATTRIBUTES ALIAS: 'GetOpenSafetyValveLedU' :: GetOpenSafetyValveLedU
implicit none
GetOpenSafetyValveLedU = Get_OpenSafetyValveLed()
end function

logical function GetSlipsNotification()
!DEC$ ATTRIBUTES DLLEXPORT :: GetSlipsNotification
!DEC$ ATTRIBUTES ALIAS: 'GetSlipsNotification' :: GetSlipsNotification
implicit none
GetSlipsNotification = Get_SlipsNotification()
end function

logical function GetSwingLedU()
!DEC$ ATTRIBUTES DLLEXPORT :: GetSwingLedU
!DEC$ ATTRIBUTES ALIAS: 'GetSwingLedU' :: GetSwingLedU
implicit none
GetSwingLedU = Get_SwingLed()
end function

logical function GetTongNotification()
!DEC$ ATTRIBUTES DLLEXPORT :: GetTongNotification
!DEC$ ATTRIBUTES ALIAS: 'GetTongNotification' :: GetTongNotification
implicit none
GetTongNotification = Get_TongNotification()
end function

logical function GetUnlatchLed()
!DEC$ ATTRIBUTES DLLEXPORT :: GetUnlatchLed
!DEC$ ATTRIBUTES ALIAS: 'GetUnlatchLed' :: GetUnlatchLed
implicit none
GetUnlatchLed = Get_UnlatchLed()
end function

logical function GetInstallFillupHeadPermission()
!DEC$ ATTRIBUTES DLLEXPORT :: GetInstallFillupHeadPermission
!DEC$ ATTRIBUTES ALIAS: 'GetInstallFillupHeadPermission' :: GetInstallFillupHeadPermission
implicit none
GetInstallFillupHeadPermission = Get_InstallFillupHeadPermission()
end function

logical function GetInstallMudBucketPermission()
!DEC$ ATTRIBUTES DLLEXPORT :: GetInstallMudBucketPermission
!DEC$ ATTRIBUTES ALIAS: 'GetInstallMudBucketPermission' :: GetInstallMudBucketPermission
implicit none
GetInstallMudBucketPermission = Get_InstallMudBucketPermission()
end function

logical function GetIrIbopPermission()
!DEC$ ATTRIBUTES DLLEXPORT :: GetIrIbopPermission
!DEC$ ATTRIBUTES ALIAS: 'GetIrIbopPermission' :: GetIrIbopPermission
implicit none
GetIrIbopPermission = Get_IrIbopPermission()
end function

logical function GetIrSafetyValvePermission()
!DEC$ ATTRIBUTES DLLEXPORT :: GetIrSafetyValvePermission
!DEC$ ATTRIBUTES ALIAS: 'GetIrSafetyValvePermission' :: GetIrSafetyValvePermission
implicit none
GetIrSafetyValvePermission = Get_IrSafetyValvePermission()
end function

logical function GetRemoveFillupHeadPermission()
!DEC$ ATTRIBUTES DLLEXPORT :: GetRemoveFillupHeadPermission
!DEC$ ATTRIBUTES ALIAS: 'GetRemoveFillupHeadPermission' :: GetRemoveFillupHeadPermission
implicit none
GetRemoveFillupHeadPermission = Get_RemoveFillupHeadPermission()
end function

logical function GetRemoveMudBucketPermission()
!DEC$ ATTRIBUTES DLLEXPORT :: GetRemoveMudBucketPermission
!DEC$ ATTRIBUTES ALIAS: 'GetRemoveMudBucketPermission' :: GetRemoveMudBucketPermission
implicit none
GetRemoveMudBucketPermission = Get_RemoveMudBucketPermission()
end function

real function GetHookHeightU()
!DEC$ ATTRIBUTES DLLEXPORT :: GetHookHeightU
!DEC$ ATTRIBUTES ALIAS: 'GetHookHeightU' :: GetHookHeightU
implicit none
GetHookHeightU = Get_HookHeight()
end function

real(8) function GetIbopHeight()
!DEC$ ATTRIBUTES DLLEXPORT :: GetIbopHeight
!DEC$ ATTRIBUTES ALIAS: 'GetIbopHeight' :: GetIbopHeight
implicit none
GetIbopHeight = Get_IbopHeight()
end function

real(8) function GetNearFloorConnection()
!DEC$ ATTRIBUTES DLLEXPORT :: GetNearFloorConnection
!DEC$ ATTRIBUTES ALIAS: 'GetNearFloorConnection' :: GetNearFloorConnection
implicit none
GetNearFloorConnection = Get_NearFloorConnection()
end function

real(8) function GetSafetyValveHeight()
!DEC$ ATTRIBUTES DLLEXPORT :: GetSafetyValveHeight
!DEC$ ATTRIBUTES ALIAS: 'GetSafetyValveHeight' :: GetSafetyValveHeight
implicit none
GetSafetyValveHeight = Get_SafetyValveHeight()
end function

logical function GetSlackOff()
!DEC$ ATTRIBUTES DLLEXPORT :: GetSlackOff
!DEC$ ATTRIBUTES ALIAS: 'GetSlackOff' :: GetSlackOff
implicit none
GetSlackOff = Get_SlackOff()
end function

integer function GetStandRackU()
!DEC$ ATTRIBUTES DLLEXPORT :: GetStandRackU
!DEC$ ATTRIBUTES ALIAS: 'GetStandRackU' :: GetStandRackU
implicit none
GetStandRackU = Get_StandRack()
end function

real(8) function GetRotaryRpmU()
!DEC$ ATTRIBUTES DLLEXPORT :: GetRotaryRpmU
!DEC$ ATTRIBUTES ALIAS: 'GetRotaryRpmU' :: GetRotaryRpmU
implicit none
GetRotaryRpmU = GetRotaryRpm()
end function

real(8) function GetStringPressure()
!DEC$ ATTRIBUTES DLLEXPORT :: GetStringPressure
!DEC$ ATTRIBUTES ALIAS: 'GetStringPressure' :: GetStringPressure
implicit none
GetStringPressure = Get_StringPressure()
end function

logical function GetZeroStringSpeed()
!DEC$ ATTRIBUTES DLLEXPORT :: GetZeroStringSpeed
!DEC$ ATTRIBUTES ALIAS: 'GetZeroStringSpeed' :: GetZeroStringSpeed
implicit none
GetZeroStringSpeed = Get_ZeroStringSpeed()
end function

real(8) function GetFlowRateU()
!DEC$ ATTRIBUTES DLLEXPORT :: GetFlowRateU
!DEC$ ATTRIBUTES ALIAS: 'GetFlowRateU' :: GetFlowRateU
implicit none
GetFlowRateU = GetFlowRate()
end function

real(8) function GetPedalU()
!DEC$ ATTRIBUTES DLLEXPORT :: GetPedalU
!DEC$ ATTRIBUTES ALIAS: 'GetPedalU' :: GetPedalU
implicit none
GetPedalU = GetPedal()
end function

real(8) function GetFloorHeightU()
!DEC$ ATTRIBUTES DLLEXPORT :: GetFloorHeightU
!DEC$ ATTRIBUTES ALIAS: 'GetFloorHeightU' :: GetFloorHeightU
implicit none
GetFloorHeightU = RigSize%RigFloorHeight
end function

real(8) function GetCrownHeightU()
!DEC$ ATTRIBUTES DLLEXPORT :: GetCrownHeightU
!DEC$ ATTRIBUTES ALIAS: 'GetCrownHeightU' :: GetCrownHeightU
implicit none
GetCrownHeightU = RigSize%CrownHeight
end function

real(8) function GetKellyHoseVibrationRateU()
!DEC$ ATTRIBUTES DLLEXPORT :: GetKellyHoseVibrationRateU
!DEC$ ATTRIBUTES ALIAS: 'GetKellyHoseVibrationRateU' :: GetKellyHoseVibrationRateU
implicit none
GetKellyHoseVibrationRateU = GetKellyHoseVibrationRate()
end function

integer function GetDriveTypeU()
!DEC$ ATTRIBUTES DLLEXPORT :: GetDriveTypeU
!DEC$ ATTRIBUTES ALIAS: 'GetDriveTypeU' :: GetDriveTypeU
implicit none
GetDriveTypeU = Hoisting%DriveType
end function

logical function GetElevatorConnectionPossibility()
!DEC$ ATTRIBUTES DLLEXPORT :: GetElevatorConnectionPossibility
!DEC$ ATTRIBUTES ALIAS: 'GetElevatorConnectionPossibility' :: GetElevatorConnectionPossibility
implicit none
GetElevatorConnectionPossibility = Get_ElevatorConnectionPossible()
end function

logical function GetJointConnectionPossibility()
!DEC$ ATTRIBUTES DLLEXPORT :: GetJointConnectionPossibility
!DEC$ ATTRIBUTES ALIAS: 'GetJointConnectionPossibility' :: GetJointConnectionPossibility
implicit none
GetJointConnectionPossibility = Get_JointConnectionPossible()
end function

logical function GetElevatorPickup()
!DEC$ ATTRIBUTES DLLEXPORT :: GetElevatorPickup
!DEC$ ATTRIBUTES ALIAS: 'GetElevatorPickup' :: GetElevatorPickup
implicit none
GetElevatorPickup = Get_ElevatorPickup()
end function

logical function GetNearFloorPosition()
!DEC$ ATTRIBUTES DLLEXPORT :: GetNearFloorPosition
!DEC$ ATTRIBUTES ALIAS: 'GetNearFloorPosition' :: GetNearFloorPosition
implicit none
GetNearFloorPosition = Get_NearFloorPosition()
end function

logical function GetSingleSetInMouseHole()
!DEC$ ATTRIBUTES DLLEXPORT :: GetSingleSetInMouseHole
!DEC$ ATTRIBUTES ALIAS: 'GetSingleSetInMouseHole' :: GetSingleSetInMouseHole
implicit none
GetSingleSetInMouseHole = Get_SingleSetInMouseHole()
end function

logical function GetSwingCenter()
!DEC$ ATTRIBUTES DLLEXPORT :: GetSwingCenter
!DEC$ ATTRIBUTES ALIAS: 'GetSwingCenter' :: GetSwingCenter
implicit none
!GetSwingCenter = Get_SwingCenter()
GetSwingCenter = .false.
end function

integer function GetMudBucket()
!DEC$ ATTRIBUTES DLLEXPORT :: GetMudBucket
!DEC$ ATTRIBUTES ALIAS: 'GetMudBucket' :: GetMudBucket
implicit none
GetMudBucket = Get_MudBucket()
end function

integer function GetElevator()
!DEC$ ATTRIBUTES DLLEXPORT :: GetElevator
!DEC$ ATTRIBUTES ALIAS: 'GetElevator' :: GetElevator
implicit none
GetElevator = Get_Elevator()
end function

integer function GetFlow()
!DEC$ ATTRIBUTES DLLEXPORT :: GetFlow
!DEC$ ATTRIBUTES ALIAS: 'GetFlow' :: GetFlow
implicit none
GetFlow = 0
end function

integer function GetFillupHead()
!DEC$ ATTRIBUTES DLLEXPORT :: GetFillupHead
!DEC$ ATTRIBUTES ALIAS: 'GetFillupHead' :: GetFillupHead
implicit none
GetFillupHead = Get_FillupHead()
end function

integer function GetIbop()
!DEC$ ATTRIBUTES DLLEXPORT :: GetIbop
!DEC$ ATTRIBUTES ALIAS: 'GetIbop' :: GetIbop
implicit none
GetIbop = Get_Ibop()
end function

integer function GetKelly()
!DEC$ ATTRIBUTES DLLEXPORT :: GetKelly
!DEC$ ATTRIBUTES ALIAS: 'GetKelly' :: GetKelly
implicit none
GetKelly = Get_Kelly()
end function

integer function GetMouseHole()
!DEC$ ATTRIBUTES DLLEXPORT :: GetMouseHole
!DEC$ ATTRIBUTES ALIAS: 'GetMouseHole' :: GetMouseHole
implicit none
GetMouseHole = Get_MouseHole()
end function

integer function GetOperationCondition()
!DEC$ ATTRIBUTES DLLEXPORT :: GetOperationCondition
!DEC$ ATTRIBUTES ALIAS: 'GetOperationCondition' :: GetOperationCondition
implicit none
GetOperationCondition = Get_OperationCondition()
end function

integer function GetSafetyValve()
!DEC$ ATTRIBUTES DLLEXPORT :: GetSafetyValve
!DEC$ ATTRIBUTES ALIAS: 'GetSafetyValve' :: GetSafetyValve
implicit none
GetSafetyValve = Get_SafetyValve()
end function

integer function GetSlips()
!DEC$ ATTRIBUTES DLLEXPORT :: GetSlips
!DEC$ ATTRIBUTES ALIAS: 'GetSlips' :: GetSlips
implicit none
GetSlips = Get_Slips()
end function

integer function GetSwing()
!DEC$ ATTRIBUTES DLLEXPORT :: GetSwing
!DEC$ ATTRIBUTES ALIAS: 'GetSwing' :: GetSwing
implicit none
GetSwing = Get_Swing()
end function

integer function GetTong()
!DEC$ ATTRIBUTES DLLEXPORT :: GetTong
!DEC$ ATTRIBUTES ALIAS: 'GetTong' :: GetTong
implicit none
GetTong = Get_Tong()
end function

integer function GetStringUpdateU()
!DEC$ ATTRIBUTES DLLEXPORT :: GetStringUpdateU
!DEC$ ATTRIBUTES ALIAS: 'GetStringUpdateU' :: GetStringUpdateU
implicit none
GetStringUpdateU = Get_StringUpdate()
end function

real(8) function GetNewHookHeightU()
!DEC$ ATTRIBUTES DLLEXPORT :: GetNewHookHeightU
!DEC$ ATTRIBUTES ALIAS: 'GetNewHookHeightU' :: GetNewHookHeightU
implicit none
!GetNewHookHeightU = Get_NewHookHeight()
GetNewHookHeightU = 0d0
end function

real(8) function GetBlowoutFromStringPercentU()
!DEC$ ATTRIBUTES DLLEXPORT :: GetBlowoutFromStringPercentU
!DEC$ ATTRIBUTES ALIAS: 'GetBlowoutFromStringPercentU' :: GetBlowoutFromStringPercentU
implicit none
GetBlowoutFromStringPercentU = GetBlowoutFromStringPercent()
end function
logical function GetMakeupTong()
!DEC$ ATTRIBUTES DLLEXPORT :: GetMakeupTong
!DEC$ ATTRIBUTES ALIAS: 'GetMakeupTong' :: GetMakeupTong
implicit none
!GetMakeupTong = Get_MakeupTong()
GetMakeupTong = .false.
end function

logical function GetBreakupTong()
!DEC$ ATTRIBUTES DLLEXPORT :: GetBreakupTong
!DEC$ ATTRIBUTES ALIAS: 'GetBreakupTong' :: GetBreakupTong
implicit none
!GetBreakupTong = Get_BreakupTong()
GetBreakupTong = .false.
end function

logical function GetSlipsSet()
!DEC$ ATTRIBUTES DLLEXPORT :: GetSlipsSet
!DEC$ ATTRIBUTES ALIAS: 'GetSlipsSet' :: GetSlipsSet
implicit none
!GetSlipsSet = Get_SlipsSetU()
GetSlipsSet = .false.
end function

logical function GetSlipsUnSet()
!DEC$ ATTRIBUTES DLLEXPORT :: GetSlipsUnSet
!DEC$ ATTRIBUTES ALIAS: 'GetSlipsUnSet' :: GetSlipsUnSet
implicit none
!GetSlipsUnSet = Get_SlipsUnSetU()
GetSlipsUnSet = .false.
end function

logical function GetLatch()
!DEC$ ATTRIBUTES DLLEXPORT :: GetLatch
!DEC$ ATTRIBUTES ALIAS: 'GetLatch' :: GetLatch
implicit none
!GetLatch = Get_Latch()
GetLatch = .false.
end function

logical function GetUnlatch()
!DEC$ ATTRIBUTES DLLEXPORT :: GetUnlatch
!DEC$ ATTRIBUTES ALIAS: 'GetUnlatch' :: GetUnlatch
implicit none
!GetUnlatch = Get_Unlatch()
GetUnlatch = .false.
end function

logical function GetOutOfMouseHole()
!DEC$ ATTRIBUTES DLLEXPORT :: GetOutOfMouseHole
!DEC$ ATTRIBUTES ALIAS: 'GetOutOfMouseHole' :: GetOutOfMouseHole
implicit none
!GetOutOfMouseHole = Get_OutOfMouseHole()
GetOutOfMouseHole = .false.
end function
logical function GetIsKellyBushingSetInTable()
!DEC$ ATTRIBUTES DLLEXPORT :: GetIsKellyBushingSetInTable
!DEC$ ATTRIBUTES ALIAS: 'GetIsKellyBushingSetInTable' :: GetIsKellyBushingSetInTable
implicit none
GetIsKellyBushingSetInTable = Get_IsKellyBushingSetInTable()
end function
! TempVars
logical function GetSignal1U()
!DEC$ ATTRIBUTES DLLEXPORT :: GetSignal1U
!DEC$ ATTRIBUTES ALIAS: 'GetSignal1U' :: GetSignal1U
implicit none
!GetSignal1U = GetSignal1()
GetSignal1U = .false.
end function

logical function GetSignal2U()
!DEC$ ATTRIBUTES DLLEXPORT :: GetSignal2U
!DEC$ ATTRIBUTES ALIAS: 'GetSignal2U' :: GetSignal2U
implicit none
!GetSignal2U = GetSignal2()
GetSignal2U = .false.
end function

logical function GetSignal3U()
!DEC$ ATTRIBUTES DLLEXPORT :: GetSignal3U
!DEC$ ATTRIBUTES ALIAS: 'GetSignal3U' :: GetSignal3U
implicit none
!GetSignal3U = GetSignal3()
GetSignal3U = .false.
end function

logical function GetSignal4U()
!DEC$ ATTRIBUTES DLLEXPORT :: GetSignal4U
!DEC$ ATTRIBUTES ALIAS: 'GetSignal4U' :: GetSignal4U
implicit none
!GetSignal4U = GetSignal4()
GetSignal4U = .false.
end function

logical function GetSignal5U()
!DEC$ ATTRIBUTES DLLEXPORT :: GetSignal5U
!DEC$ ATTRIBUTES ALIAS: 'GetSignal5U' :: GetSignal5U
implicit none
!GetSignal5U = GetSignal5()
GetSignal5U = .false.
end function

logical function GetSignal6U()
!DEC$ ATTRIBUTES DLLEXPORT :: GetSignal6U
!DEC$ ATTRIBUTES ALIAS: 'GetSignal6U' :: GetSignal6U
implicit none
!GetSignal6U = GetSignal6()
GetSignal6U = .false.
end function

logical function GetSignal7U()
!DEC$ ATTRIBUTES DLLEXPORT :: GetSignal7U
!DEC$ ATTRIBUTES ALIAS: 'GetSignal7U' :: GetSignal7U
implicit none
!GetSignal7U = GetSignal7()
GetSignal7U = .false.
end function

logical function GetSignal8U()
!DEC$ ATTRIBUTES DLLEXPORT :: GetSignal8U
!DEC$ ATTRIBUTES ALIAS: 'GetSignal8U' :: GetSignal8U
implicit none
!GetSignal8U = GetSignal8()
GetSignal8U = .false.
end function

logical function GetSignal9U()
!DEC$ ATTRIBUTES DLLEXPORT :: GetSignal9U
!DEC$ ATTRIBUTES ALIAS: 'GetSignal9U' :: GetSignal9U
implicit none
!GetSignal9U = GetSignal9()
GetSignal9U = .false.
end function

logical function GetSignal10U()
!DEC$ ATTRIBUTES DLLEXPORT :: GetSignal10U
!DEC$ ATTRIBUTES ALIAS: 'GetSignal10U' :: GetSignal10U
implicit none
!GetSignal10U = GetSignal10()
GetSignal10U = .false.
end function

real(8) function GetTopJiontHeight()
!DEC$ ATTRIBUTES DLLEXPORT :: GetTopJiontHeight
!DEC$ ATTRIBUTES ALIAS: 'GetTopJiontHeight' :: GetTopJiontHeight
use TD_DrillStemComponents
implicit none
GetTopJiontHeight = TD_TopJointHeight
end function
logical function GetBlowoutFromStringT()
!DEC$ ATTRIBUTES DLLEXPORT :: GetBlowoutFromStringT
!DEC$ ATTRIBUTES ALIAS: 'GetBlowoutFromStringT' :: GetBlowoutFromStringT
implicit none
GetBlowoutFromStringT = Get_BlowoutFromString()
end function

logical function GetBlowoutFromAnnularT()
!DEC$ ATTRIBUTES DLLEXPORT :: GetBlowoutFromAnnularT
!DEC$ ATTRIBUTES ALIAS: 'GetBlowoutFromAnnularT' :: GetBlowoutFromAnnularT
implicit none
GetBlowoutFromAnnularT = Get_BlowoutFromAnnular()
end function

logical function GetFlowFromReturnLineT()
!DEC$ ATTRIBUTES DLLEXPORT :: GetFlowFromReturnLineT
!DEC$ ATTRIBUTES ALIAS: 'GetFlowFromReturnLineT' :: GetFlowFromReturnLineT
implicit none
GetFlowFromReturnLineT = Get_FlowFromReturnLine()
end function

real function GetFlowFromKellyT()
!DEC$ ATTRIBUTES DLLEXPORT :: GetFlowFromKellyT
!DEC$ ATTRIBUTES ALIAS: 'GetFlowFromKellyT' :: GetFlowFromKellyT
implicit none
GetFlowFromKellyT = Get_FlowFromKelly()
end function

logical function GetFlowKellyDisconnectT()
!DEC$ ATTRIBUTES DLLEXPORT :: GetFlowKellyDisconnectT
!DEC$ ATTRIBUTES ALIAS: 'GetFlowKellyDisconnectT' :: GetFlowKellyDisconnectT
implicit none
GetFlowKellyDisconnectT = Get_FlowKellyDisconnect()
end function

logical function GetFlowPipeDisconnectT()
!DEC$ ATTRIBUTES DLLEXPORT :: GetFlowPipeDisconnectT
!DEC$ ATTRIBUTES ALIAS: 'GetFlowPipeDisconnectT' :: GetFlowPipeDisconnectT
implicit none
GetFlowPipeDisconnectT = Get_FlowPipeDisconnect()
end function
!integer function GetFlowKellyDisconnectT2()
!!DEC$ ATTRIBUTES DLLEXPORT :: GetFlowKellyDisconnectT2
!!DEC$ ATTRIBUTES ALIAS: 'GetFlowKellyDisconnectT2' :: GetFlowKellyDisconnectT2
! implicit none
! GetFlowKellyDisconnectT2 = Get_FlowKellyDisconnect2()
!end function

!integer function GetFlowPipeDisconnectT2()
!!DEC$ ATTRIBUTES DLLEXPORT :: GetFlowPipeDisconnectT2
!!DEC$ ATTRIBUTES ALIAS: 'GetFlowPipeDisconnectT2' :: GetFlowPipeDisconnectT2
! implicit none
! GetFlowPipeDisconnectT2 = Get_FlowPipeDisconnect2()
!end function
logical function GetSingleOutOfMouseHole()
!DEC$ ATTRIBUTES DLLEXPORT :: GetSingleOutOfMouseHole
!DEC$ ATTRIBUTES ALIAS: 'GetSingleOutOfMouseHole' :: GetSingleOutOfMouseHole
implicit none
GetSingleOutOfMouseHole = .true. !Get_SingleOutOfMouseHole()
end function

integer function GetTdsSwing()
!DEC$ ATTRIBUTES DLLEXPORT :: GetTdsSwing
!DEC$ ATTRIBUTES ALIAS: 'GetTdsSwing' :: GetTdsSwing
use CTdsSwingEnumVariables
implicit none
GetTdsSwing = Get_TdsSwing()
end function
integer function GetTdsSpine()
!DEC$ ATTRIBUTES DLLEXPORT :: GetTdsSpine
!DEC$ ATTRIBUTES ALIAS: 'GetTdsSpine' :: GetTdsSpine
use CTdsSpineEnumVariables
implicit none
GetTdsSpine = Get_TdsSpine()
end function
integer function GetTdsTong()
!DEC$ ATTRIBUTES DLLEXPORT :: GetTdsTong
!DEC$ ATTRIBUTES ALIAS: 'GetTdsTong' :: GetTdsTong
use CTdsTongEnumVariables
implicit none
GetTdsTong = Get_TdsTong()
end function
integer function GetTdsBackupClamp()
!DEC$ ATTRIBUTES DLLEXPORT :: GetTdsBackupClamp
!DEC$ ATTRIBUTES ALIAS: 'GetTdsBackupClamp' :: GetTdsBackupClamp
use CTdsBackupClampVariables
implicit none
GetTdsBackupClamp = Get_TdsBackupClamp()
end function
logical function GetTdsConnectionPossibility()
!DEC$ ATTRIBUTES DLLEXPORT :: GetTdsConnectionPossibility
!DEC$ ATTRIBUTES ALIAS: 'GetTdsConnectionPossibility' :: GetTdsConnectionPossibility
implicit none
GetTdsConnectionPossibility = Get_TdsConnectionPossible()
end function
logical function GetTdsStemIn()
!DEC$ ATTRIBUTES DLLEXPORT :: GetTdsStemIn
!DEC$ ATTRIBUTES ALIAS: 'GetTdsStemIn' :: GetTdsStemIn
implicit none
GetTdsStemIn = Get_TdsStemIn()
end function
logical function GetFillupHeadPermission()
!DEC$ ATTRIBUTES DLLEXPORT :: GetFillupHeadPermission
!DEC$ ATTRIBUTES ALIAS: 'GetFillupHeadPermission' :: GetFillupHeadPermission
use CFillupHeadPermissionVariables
implicit none
GetFillupHeadPermission = Get_FillupHeadPermission()
end function
logical function GetSwingDrillPermission()
!DEC$ ATTRIBUTES DLLEXPORT :: GetSwingDrillPermission
!DEC$ ATTRIBUTES ALIAS: 'GetSwingDrillPermission' :: GetSwingDrillPermission
use CSwingDrillPermissionVariables
implicit none
GetSwingDrillPermission = Get_SwingDrillPermission()
end function
logical function GetSwingOffPermission()
!DEC$ ATTRIBUTES DLLEXPORT :: GetSwingOffPermission
!DEC$ ATTRIBUTES ALIAS: 'GetSwingOffPermission' :: GetSwingOffPermission
use CSwingOffPermissionVariables
implicit none
GetSwingOffPermission = Get_SwingOffPermission()
end function
logical function GetSwingTiltPermission()
!DEC$ ATTRIBUTES DLLEXPORT :: GetSwingTiltPermission
!DEC$ ATTRIBUTES ALIAS: 'GetSwingTiltPermission' :: GetSwingTiltPermission
use CSwingTiltPermissionVariables
implicit none
GetSwingTiltPermission = Get_SwingTiltPermission()
end function
real(8) function GetTdsStemJointHeight()
!DEC$ ATTRIBUTES DLLEXPORT :: GetTdsStemJointHeight
!DEC$ ATTRIBUTES ALIAS: 'GetTdsStemJointHeight' :: GetTdsStemJointHeight
implicit none
GetTdsStemJointHeight = 10.0
end function
integer function GetTdsConnectionModes()
!DEC$ ATTRIBUTES DLLEXPORT :: GetTdsConnectionModes
!DEC$ ATTRIBUTES ALIAS: 'GetTdsConnectionModes' :: GetTdsConnectionModes
use CTdsConnectionModesEnumVariables
implicit none
GetTdsConnectionModes = Get_TdsConnectionModes()
end function
integer function GetTdsElevatorModes()
!DEC$ ATTRIBUTES DLLEXPORT :: GetTdsElevatorModes
!DEC$ ATTRIBUTES ALIAS: 'GetTdsElevatorModes' :: GetTdsElevatorModes
use CTdsElevatorModesEnumVariables
implicit none
GetTdsElevatorModes = Get_TdsElevatorModes()
end function
end module TestOperationScenarios

+ 0
- 96
CSharp/OperationScenarios/Test/TestOperationScenariosVariables.f90 Datei anzeigen

@@ -1,96 +0,0 @@
module TestOperationScenariosVariables
implicit none
public
! Input vars

! Output vars
integer :: ElevatorConnection
integer :: KellyConnection
logical :: CloseKellyCockLed
logical :: CloseSafetyValveLed
logical :: FillMouseHoleLed
logical :: IrIBopLed
logical :: IrSafetyValveLed
logical :: LatchLed
logical :: OpenKellyCockLed
logical :: OpenSafetyValveLed
logical :: SlipsNotification
logical :: SwingLed
logical :: TongNotification
logical :: UnlatchLed
logical :: InstallFillupHeadPermission
logical :: InstallMudBucketPermission
logical :: IrIbopPermission
logical :: IrSafetyValvePermission
logical :: RemoveFillupHeadPermission
logical :: RemoveMudBucketPermission
real(8) :: HookHeightU
real(8) :: IbopHeight
real(8) :: NearFloorConnection
real(8) :: SafetyValveHeight
logical :: SlackOff
integer :: StandRackU
real(8) :: RotaryRpmU
real(8) :: StringPressure
logical :: ZeroStringSpeed
real(8) :: FlowRateU
real(8) :: PedalU
real(8) :: FloorHeightU
real(8) :: CrownHeightU
real(8) :: KellyHoseVibrationRateU
integer :: DriveTypeU
logical :: ElevatorConnected
logical :: JointConnectionPossibility
logical :: NearMonkeyBoardPosition
logical :: NearFloorPosition
logical :: SingleSetInMouseHole
logical :: SwingCenter
integer :: MudBucket
integer :: Elevator
integer :: Flow
integer :: FillupHead
integer :: Ibop
integer :: Kelly
integer :: MouseHole
integer :: OperationCondition
integer :: SafetyValve
integer :: Slips
integer :: Swing
integer :: Tong
integer :: StringUpdateU
integer :: NewHookHeightU
integer :: BlowoutFromStringPercentU
logical :: MakeupTong
logical :: BreakupTong
logical :: SlipsSet
logical :: SlipsUnSet
logical :: Latch
logical :: Unlatch
logical :: OutOfMouseHole
logical :: IsKellyBushingSetInTable
logical :: Signal1U
logical :: Signal2U
logical :: Signal3U
logical :: Signal4U
logical :: Signal5U
logical :: Signal6U
logical :: Signal7U
logical :: Signal8U
logical :: Signal9U
logical :: Signal10U
logical :: BlowoutFromStringT
logical :: BlowoutFromAnnularT
logical :: FlowFromReturnLineT
logical :: FlowFromKellyT
logical :: FlowKellyDisconnectT
logical :: FlowPipeDisconnectT
logical :: SingleOutOfMouseHole

contains
end module TestOperationScenariosVariables

+ 363
- 389
CSharp/OperationScenarios/Unity/CUnityInputs.f90 Datei anzeigen

@@ -1,90 +1,64 @@
module CUnityInputs
use CVoidEventHandlerCollection
implicit none
logical :: ElevatorConnectionPossible
logical :: JointConnectionPossible
logical :: IsKellyBushingSetInTable
logical :: ElevatorPickup
logical :: NearFloorPosition
logical :: SingleSetInMouseHole
!logical :: SwingCenter
!logical :: MakeupTong
!logical :: BreakupTong
!logical :: SlipsSet
!logical :: SlipsUnSet
!logical :: Latch
!logical :: Unlatch
!logical :: OutOfMouseHole
!real(8) :: NewHookHeight
logical :: TdsConnectionPossible
logical :: TdsStemIn
private :: ElevatorConnectionPossible
private :: JointConnectionPossible
private :: IsKellyBushingSetInTable
private :: ElevatorPickup
private :: NearFloorPosition
private :: singleSetInMouseHole
!private :: SwingCenter
!private :: MakeupTong
!private :: BreakupTong
!private :: SlipsSet
!private :: SlipsUnSet
!private :: Latch
!private :: Unlatch
!private :: OutOfMouseHole
!private :: NewHookHeight
private :: TdsConnectionPossible
private :: TdsStemIn
type :: UnityInputsType
logical :: ElevatorConnectionPossible
logical :: JointConnectionPossible
logical :: IsKellyBushingSetInTable
logical :: ElevatorPickup
logical :: NearFloorPosition
logical :: SingleSetInMouseHole
logical :: TdsConnectionPossible
logical :: TdsStemIn
! private :: ElevatorConnectionPossible
! private :: JointConnectionPossible
! private :: IsKellyBushingSetInTable
! private :: ElevatorPickup
! private :: NearFloorPosition
! private :: SingleSetInMouseHole
! private :: TdsConnectionPossible
! private :: TdsStemIn
! public
public
type(VoidEventHandlerCollection) :: OnElevatorConnectionPossibleChange
type(VoidEventHandlerCollection) :: OnJointConnectionPossibleChange
type(VoidEventHandlerCollection) :: OnIsKellyBushingSetInTableChange
type(VoidEventHandlerCollection) :: OnElevatorPickupChange
type(VoidEventHandlerCollection) :: OnNearFloorPositionChange
type(VoidEventHandlerCollection) :: OnSingleSetInMouseHoleChange
!type(VoidEventHandlerCollection) :: OnSwingCenterChange
!type(VoidEventHandlerCollection) :: OnNewHookHeightChange
!type(VoidEventHandlerCollection) :: OnMakeupTongChange
!type(VoidEventHandlerCollection) :: OnBreakupTongChange
!type(VoidEventHandlerCollection) :: OnSlipsSetChange
!type(VoidEventHandlerCollection) :: OnSlipsUnSetChange
!type(VoidEventHandlerCollection) :: OnLatchChange
!type(VoidEventHandlerCollection) :: OnUnlatchChange
!type(VoidEventHandlerCollection) :: OnOutOfMouseHoleChange
type(VoidEventHandlerCollection) :: OnTdsConnectionPossibleChange
type(VoidEventHandlerCollection) :: OnTdsStemInChange
type(VoidEventHandlerCollection) :: OnElevatorConnectionPossibleChange
type(VoidEventHandlerCollection) :: OnJointConnectionPossibleChange
type(VoidEventHandlerCollection) :: OnIsKellyBushingSetInTableChange
type(VoidEventHandlerCollection) :: OnElevatorPickupChange
type(VoidEventHandlerCollection) :: OnNearFloorPositionChange
type(VoidEventHandlerCollection) :: OnSingleSetInMouseHoleChange
type(VoidEventHandlerCollection) :: OnTdsConnectionPossibleChange
type(VoidEventHandlerCollection) :: OnTdsStemInChange
end type UnityInputsType

type(UnityInputsType)::UnityInputs
contains
! Input routines
subroutine Set_OutOfMouseHole(v)
!DEC$ ATTRIBUTES DLLEXPORT :: Set_OutOfMouseHole
!DEC$ ATTRIBUTES ALIAS: 'Set_OutOfMouseHole' :: Set_OutOfMouseHole
implicit none
logical, intent(in) :: v
!#ifdef ExcludeExtraChanges
! if(OutOfMouseHole == v) return
!#endif
! OutOfMouseHole = v
! call OnOutOfMouseHoleChange%RunAll()
!#ifdef deb
! print*, 'OutOfMouseHole=', OutOfMouseHole
!#endif
end subroutine
! subroutine Set_OutOfMouseHole(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: Set_OutOfMouseHole
! !DEC$ ATTRIBUTES ALIAS: 'Set_OutOfMouseHole' :: Set_OutOfMouseHole
! implicit none
! logical, intent(in) :: v
! !#ifdef ExcludeExtraChanges
! ! if(OutOfMouseHole == v) return
! !#endif
! ! OutOfMouseHole = v
! ! call OnOutOfMouseHoleChange%RunAll()
! !#ifdef deb
! ! print*, 'OutOfMouseHole=', OutOfMouseHole
! !#endif
! end subroutine
!logical function Get_OutOfMouseHole()
! implicit none
! Get_OutOfMouseHole = OutOfMouseHole
!end function
! !logical function Get_OutOfMouseHole()
! ! implicit none
! ! Get_OutOfMouseHole = OutOfMouseHole
! !end function
@@ -97,25 +71,25 @@ module CUnityInputs
subroutine Set_Unlatch(v)
!DEC$ ATTRIBUTES DLLEXPORT :: Set_Unlatch
!DEC$ ATTRIBUTES ALIAS: 'Set_Unlatch' :: Set_Unlatch
implicit none
logical, intent(in) :: v
!#ifdef ExcludeExtraChanges
! if(Unlatch == v) return
!#endif
! Unlatch = v
! call OnUnlatchChange%RunAll()
!#ifdef deb
! print*, 'Unlatch=', Unlatch
!#endif
end subroutine
! subroutine Set_Unlatch(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: Set_Unlatch
! !DEC$ ATTRIBUTES ALIAS: 'Set_Unlatch' :: Set_Unlatch
! implicit none
! logical, intent(in) :: v
! !#ifdef ExcludeExtraChanges
! ! if(Unlatch == v) return
! !#endif
! ! Unlatch = v
! ! call OnUnlatchChange%RunAll()
! !#ifdef deb
! ! print*, 'Unlatch=', Unlatch
! !#endif
! end subroutine
!logical function Get_Unlatch()
! implicit none
! Get_Unlatch = Unlatch
!end function
! !logical function Get_Unlatch()
! ! implicit none
! ! Get_Unlatch = Unlatch
! !end function
@@ -130,25 +104,25 @@ module CUnityInputs
subroutine Set_Latch(v)
!DEC$ ATTRIBUTES DLLEXPORT :: Set_Latch
!DEC$ ATTRIBUTES ALIAS: 'Set_Latch' :: Set_Latch
implicit none
logical, intent(in) :: v
!#ifdef ExcludeExtraChanges
! if(Latch == v) return
!#endif
! Latch = v
! call OnLatchChange%RunAll()
!#ifdef deb
! print*, 'Latch=', Latch
!#endif
end subroutine
! subroutine Set_Latch(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: Set_Latch
! !DEC$ ATTRIBUTES ALIAS: 'Set_Latch' :: Set_Latch
! implicit none
! logical, intent(in) :: v
! !#ifdef ExcludeExtraChanges
! ! if(Latch == v) return
! !#endif
! ! Latch = v
! ! call OnLatchChange%RunAll()
! !#ifdef deb
! ! print*, 'Latch=', Latch
! !#endif
! end subroutine
!logical function Get_Latch()
! implicit none
! Get_Latch = Latch
!end function
! !logical function Get_Latch()
! ! implicit none
! ! Get_Latch = Latch
! !end function
@@ -165,25 +139,25 @@ module CUnityInputs
subroutine Set_SlipsUnSet(v)
!DEC$ ATTRIBUTES DLLEXPORT :: Set_SlipsUnSet
!DEC$ ATTRIBUTES ALIAS: 'Set_SlipsUnSet' :: Set_SlipsUnSet
implicit none
logical, intent(in) :: v
!#ifdef ExcludeExtraChanges
! if(SlipsUnSet == v) return
!#endif
! SlipsUnSet = v
! call OnSlipsUnSetChange%RunAll()
!#ifdef deb
! print*, 'SlipsUnSet=', SlipsUnSet
!#endif
end subroutine
! subroutine Set_SlipsUnSet(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: Set_SlipsUnSet
! !DEC$ ATTRIBUTES ALIAS: 'Set_SlipsUnSet' :: Set_SlipsUnSet
! implicit none
! logical, intent(in) :: v
! !#ifdef ExcludeExtraChanges
! ! if(SlipsUnSet == v) return
! !#endif
! ! SlipsUnSet = v
! ! call OnSlipsUnSetChange%RunAll()
! !#ifdef deb
! ! print*, 'SlipsUnSet=', SlipsUnSet
! !#endif
! end subroutine
!logical function Get_SlipsUnSet()
! implicit none
! Get_SlipsUnSet = SlipsUnSet
!end function
! !logical function Get_SlipsUnSet()
! ! implicit none
! ! Get_SlipsUnSet = SlipsUnSet
! !end function
@@ -197,25 +171,25 @@ module CUnityInputs
subroutine Set_SlipsSet(v)
!DEC$ ATTRIBUTES DLLEXPORT :: Set_SlipsSet
!DEC$ ATTRIBUTES ALIAS: 'Set_SlipsSet' :: Set_SlipsSet
implicit none
logical, intent(in) :: v
!#ifdef ExcludeExtraChanges
! if(SlipsSet == v) return
!#endif
! SlipsSet = v
! call OnSlipsSetChange%RunAll()
!#ifdef deb
! print*, 'SlipsSet=', SlipsSet
!#endif
end subroutine
! subroutine Set_SlipsSet(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: Set_SlipsSet
! !DEC$ ATTRIBUTES ALIAS: 'Set_SlipsSet' :: Set_SlipsSet
! implicit none
! logical, intent(in) :: v
! !#ifdef ExcludeExtraChanges
! ! if(SlipsSet == v) return
! !#endif
! ! SlipsSet = v
! ! call OnSlipsSetChange%RunAll()
! !#ifdef deb
! ! print*, 'SlipsSet=', SlipsSet
! !#endif
! end subroutine
!logical function Get_SlipsSet()
! implicit none
! Get_SlipsSet = SlipsSet
!end function
! !logical function Get_SlipsSet()
! ! implicit none
! ! Get_SlipsSet = SlipsSet
! !end function
@@ -227,25 +201,25 @@ module CUnityInputs
subroutine Set_BreakupTong(v)
!DEC$ ATTRIBUTES DLLEXPORT :: Set_BreakupTong
!DEC$ ATTRIBUTES ALIAS: 'Set_BreakupTong' :: Set_BreakupTong
implicit none
logical, intent(in) :: v
!#ifdef ExcludeExtraChanges
! if(BreakupTong == v) return
!#endif
! BreakupTong = v
! call OnBreakupTongChange%RunAll()
!#ifdef deb
! print*, 'BreakupTong=', BreakupTong
!#endif
end subroutine
! subroutine Set_BreakupTong(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: Set_BreakupTong
! !DEC$ ATTRIBUTES ALIAS: 'Set_BreakupTong' :: Set_BreakupTong
! implicit none
! logical, intent(in) :: v
! !#ifdef ExcludeExtraChanges
! ! if(BreakupTong == v) return
! !#endif
! ! BreakupTong = v
! ! call OnBreakupTongChange%RunAll()
! !#ifdef deb
! ! print*, 'BreakupTong=', BreakupTong
! !#endif
! end subroutine
!logical function Get_BreakupTong()
! implicit none
! Get_BreakupTong = BreakupTong
!end function
! !logical function Get_BreakupTong()
! ! implicit none
! ! Get_BreakupTong = BreakupTong
! !end function
@@ -255,25 +229,25 @@ module CUnityInputs
subroutine Set_MakeupTong(v)
!DEC$ ATTRIBUTES DLLEXPORT :: Set_MakeupTong
!DEC$ ATTRIBUTES ALIAS: 'Set_MakeupTong' :: Set_MakeupTong
implicit none
logical, intent(in) :: v
!#ifdef ExcludeExtraChanges
! if(MakeupTong == v) return
!#endif
! MakeupTong = v
! call OnMakeupTongChange%RunAll()
!#ifdef deb
! print*, 'MakeupTong=', MakeupTong
!#endif
end subroutine
! subroutine Set_MakeupTong(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: Set_MakeupTong
! !DEC$ ATTRIBUTES ALIAS: 'Set_MakeupTong' :: Set_MakeupTong
! implicit none
! logical, intent(in) :: v
! !#ifdef ExcludeExtraChanges
! ! if(MakeupTong == v) return
! !#endif
! ! MakeupTong = v
! ! call OnMakeupTongChange%RunAll()
! !#ifdef deb
! ! print*, 'MakeupTong=', MakeupTong
! !#endif
! end subroutine
!logical function Get_MakeupTong()
! implicit none
! Get_MakeupTong = MakeupTong
!end function
! !logical function Get_MakeupTong()
! ! implicit none
! ! Get_MakeupTong = MakeupTong
! !end function
@@ -295,25 +269,25 @@ module CUnityInputs
subroutine Set_NewHookHeight(v)
!DEC$ ATTRIBUTES DLLEXPORT :: Set_NewHookHeight
!DEC$ ATTRIBUTES ALIAS: 'Set_NewHookHeight' :: Set_NewHookHeight
implicit none
real(8), intent(in) :: v
!#ifdef ExcludeExtraChanges
! if(NewHookHeight == v) return
!#endif
! NewHookHeight = v
! call OnNewHookHeightChange%RunAll()
!#ifdef deb
! print*, 'NewHookHeight=', NewHookHeight
!#endif
end subroutine
! subroutine Set_NewHookHeight(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: Set_NewHookHeight
! !DEC$ ATTRIBUTES ALIAS: 'Set_NewHookHeight' :: Set_NewHookHeight
! implicit none
! real(8), intent(in) :: v
! !#ifdef ExcludeExtraChanges
! ! if(NewHookHeight == v) return
! !#endif
! ! NewHookHeight = v
! ! call OnNewHookHeightChange%RunAll()
! !#ifdef deb
! ! print*, 'NewHookHeight=', NewHookHeight
! !#endif
! end subroutine
!real(8) function Get_NewHookHeight()
! implicit none
! Get_NewHookHeight = NewHookHeight
!end function
! !real(8) function Get_NewHookHeight()
! ! implicit none
! ! Get_NewHookHeight = NewHookHeight
! !end function
@@ -323,33 +297,33 @@ module CUnityInputs
subroutine Set_ElevatorConnectionPossible(v)
!DEC$ ATTRIBUTES DLLEXPORT :: Set_ElevatorConnectionPossible
!DEC$ ATTRIBUTES ALIAS: 'Set_ElevatorConnectionPossible' :: Set_ElevatorConnectionPossible
implicit none
logical, intent(in) :: v
#ifdef ExcludeExtraChanges
if(ElevatorConnectionPossible == v) return
#endif
ElevatorConnectionPossible = v
call OnElevatorConnectionPossibleChange%RunAll()
#ifdef deb
print*, 'ElevatorConnectionPossible=', ElevatorConnectionPossible
#endif
end subroutine
! subroutine Set_ElevatorConnectionPossible(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: Set_ElevatorConnectionPossible
! !DEC$ ATTRIBUTES ALIAS: 'Set_ElevatorConnectionPossible' :: Set_ElevatorConnectionPossible
! implicit none
! logical, intent(in) :: v
! #ifdef ExcludeExtraChanges
! if(UnityInputs%ElevatorConnectionPossible == v) return
! #endif
! UnityInputs%ElevatorConnectionPossible = v
! call UnityInputs%OnElevatorConnectionPossibleChange%RunAll()
! #ifdef deb
! print*, 'ElevatorConnectionPossible=', UnityInputs%ElevatorConnectionPossible
! #endif
! end subroutine
logical function Get_ElevatorConnectionPossible()
implicit none
Get_ElevatorConnectionPossible = ElevatorConnectionPossible
Get_ElevatorConnectionPossible = UnityInputs%ElevatorConnectionPossible
end function
logical function Get_ElevatorConnectionPossible_WN()
!DEC$ ATTRIBUTES DLLEXPORT :: Get_ElevatorConnectionPossible_WN
!DEC$ ATTRIBUTES ALIAS: 'Get_ElevatorConnectionPossible_WN' :: Get_ElevatorConnectionPossible_WN
implicit none
Get_ElevatorConnectionPossible_WN = ElevatorConnectionPossible
!Get_ElevatorConnectionPossible_WN = .true.
end function
! logical function Get_ElevatorConnectionPossible_WN()
! !DEC$ ATTRIBUTES DLLEXPORT :: Get_ElevatorConnectionPossible_WN
! !DEC$ ATTRIBUTES ALIAS: 'Get_ElevatorConnectionPossible_WN' :: Get_ElevatorConnectionPossible_WN
! implicit none
! Get_ElevatorConnectionPossible_WN = UnityInputs%ElevatorConnectionPossible
! !Get_ElevatorConnectionPossible_WN = .true.
! end function
@@ -358,64 +332,64 @@ module CUnityInputs

subroutine Set_JointConnectionPossible(v)
!DEC$ ATTRIBUTES DLLEXPORT :: Set_JointConnectionPossible
!DEC$ ATTRIBUTES ALIAS: 'Set_JointConnectionPossible' :: Set_JointConnectionPossible
implicit none
logical, intent(in) :: v
#ifdef ExcludeExtraChanges
if(JointConnectionPossible == v) return
#endif
JointConnectionPossible = v
call OnJointConnectionPossibleChange%RunAll()
#ifdef deb
print*, 'JointConnectionPossible=', JointConnectionPossible
#endif
end subroutine
! subroutine Set_JointConnectionPossible(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: Set_JointConnectionPossible
! !DEC$ ATTRIBUTES ALIAS: 'Set_JointConnectionPossible' :: Set_JointConnectionPossible
! implicit none
! logical, intent(in) :: v
! #ifdef ExcludeExtraChanges
! if(UnityInputs%JointConnectionPossible == v) return
! #endif
! UnityInputs%JointConnectionPossible = v
! call UnityInputs%OnJointConnectionPossibleChange%RunAll()
! #ifdef deb
! print*, 'JointConnectionPossible=', UnityInputs%JointConnectionPossible
! #endif
! end subroutine
logical function Get_JointConnectionPossible()
implicit none
Get_JointConnectionPossible = JointConnectionPossible
Get_JointConnectionPossible = UnityInputs%JointConnectionPossible
end function
logical function Get_JointConnectionPossible_WN()
!DEC$ ATTRIBUTES DLLEXPORT :: Get_JointConnectionPossible_WN
!DEC$ ATTRIBUTES ALIAS: 'Get_JointConnectionPossible_WN' :: Get_JointConnectionPossible_WN
implicit none
Get_JointConnectionPossible_WN = JointConnectionPossible
end function
! logical function Get_JointConnectionPossible_WN()
! !DEC$ ATTRIBUTES DLLEXPORT :: Get_JointConnectionPossible_WN
! !DEC$ ATTRIBUTES ALIAS: 'Get_JointConnectionPossible_WN' :: Get_JointConnectionPossible_WN
! implicit none
! Get_JointConnectionPossible_WN = UnityInputs%JointConnectionPossible
! end function
subroutine Set_IsKellyBushingSetInTable(v)
!DEC$ ATTRIBUTES DLLEXPORT :: Set_IsKellyBushingSetInTable
!DEC$ ATTRIBUTES ALIAS: 'Set_IsKellyBushingSetInTable' :: Set_IsKellyBushingSetInTable
implicit none
logical, intent(in) :: v
#ifdef ExcludeExtraChanges
if(IsKellyBushingSetInTable == v) return
#endif
IsKellyBushingSetInTable = v
call OnIsKellyBushingSetInTableChange%RunAll()
#ifdef deb
print*, 'IsKellyBushingSetInTable=', IsKellyBushingSetInTable
#endif
end subroutine
! subroutine Set_IsKellyBushingSetInTable(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: Set_IsKellyBushingSetInTable
! !DEC$ ATTRIBUTES ALIAS: 'Set_IsKellyBushingSetInTable' :: Set_IsKellyBushingSetInTable
! implicit none
! logical, intent(in) :: v
! #ifdef ExcludeExtraChanges
! if(UnityInputs%IsKellyBushingSetInTable == v) return
! #endif
! UnityInputs%IsKellyBushingSetInTable = v
! call UnityInputs%OnIsKellyBushingSetInTableChange%RunAll()
! #ifdef deb
! print*, 'IsKellyBushingSetInTable=', UnityInputs%IsKellyBushingSetInTable
! #endif
! end subroutine
logical function Get_IsKellyBushingSetInTable()
implicit none
Get_IsKellyBushingSetInTable = IsKellyBushingSetInTable
Get_IsKellyBushingSetInTable = UnityInputs%IsKellyBushingSetInTable
end function
logical function Get_IsKellyBushingSetInTable_WN()
!DEC$ ATTRIBUTES DLLEXPORT :: Get_IsKellyBushingSetInTable_WN
!DEC$ ATTRIBUTES ALIAS: 'Get_IsKellyBushingSetInTable_WN' :: Get_IsKellyBushingSetInTable_WN
implicit none
Get_IsKellyBushingSetInTable_WN = IsKellyBushingSetInTable
end function
! logical function Get_IsKellyBushingSetInTable_WN()
! !DEC$ ATTRIBUTES DLLEXPORT :: Get_IsKellyBushingSetInTable_WN
! !DEC$ ATTRIBUTES ALIAS: 'Get_IsKellyBushingSetInTable_WN' :: Get_IsKellyBushingSetInTable_WN
! implicit none
! Get_IsKellyBushingSetInTable_WN = UnityInputs%IsKellyBushingSetInTable
! end function
@@ -423,33 +397,33 @@ module CUnityInputs

subroutine Set_ElevatorPickup(v)
!DEC$ ATTRIBUTES DLLEXPORT :: Set_ElevatorPickup
!DEC$ ATTRIBUTES ALIAS: 'Set_ElevatorPickup' :: Set_ElevatorPickup
implicit none
logical, intent(in) :: v
#ifdef ExcludeExtraChanges
if(ElevatorPickup == v) return
#endif
ElevatorPickup = v
call OnElevatorPickupChange%RunAll()
#ifdef deb
print*, 'ElevatorPickup =', ElevatorPickup
#endif
end subroutine
! subroutine Set_ElevatorPickup(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: Set_ElevatorPickup
! !DEC$ ATTRIBUTES ALIAS: 'Set_ElevatorPickup' :: Set_ElevatorPickup
! implicit none
! logical, intent(in) :: v
! #ifdef ExcludeExtraChanges
! if(UnityInputs%ElevatorPickup == v) return
! #endif
! UnityInputs%ElevatorPickup = v
! call UnityInputs%OnElevatorPickupChange%RunAll()
! #ifdef deb
! print*, 'ElevatorPickup =', UnityInputs%ElevatorPickup
! #endif
! end subroutine
logical function Get_ElevatorPickup()
implicit none
Get_ElevatorPickup = ElevatorPickup
Get_ElevatorPickup = UnityInputs%ElevatorPickup
end function
logical function Get_ElevatorPickup_WN()
!DEC$ ATTRIBUTES DLLEXPORT :: Get_ElevatorPickup_WN
!DEC$ ATTRIBUTES ALIAS: 'Get_ElevatorPickup_WN' :: Get_ElevatorPickup_WN
implicit none
Get_ElevatorPickup_WN = ElevatorPickup
end function
! logical function Get_ElevatorPickup_WN()
! !DEC$ ATTRIBUTES DLLEXPORT :: Get_ElevatorPickup_WN
! !DEC$ ATTRIBUTES ALIAS: 'Get_ElevatorPickup_WN' :: Get_ElevatorPickup_WN
! implicit none
! Get_ElevatorPickup_WN = UnityInputs%ElevatorPickup
! end function
@@ -461,35 +435,35 @@ module CUnityInputs
implicit none
logical, intent(in) :: v
#ifdef ExcludeExtraChanges
if(NearFloorPosition == v) return
if(UnityInputs%NearFloorPosition == v) return
#endif
NearFloorPosition = v
call OnNearFloorPositionChange%RunAll()
UnityInputs%NearFloorPosition = v
call UnityInputs%OnNearFloorPositionChange%RunAll()
#ifdef deb
print*, 'NearFloorPosition =', NearFloorPosition
print*, 'NearFloorPosition =', UnityInputs%NearFloorPosition
#endif
end subroutine
subroutine Set_NearFloorPosition_WN(v)
!DEC$ ATTRIBUTES DLLEXPORT :: Set_NearFloorPosition_WN
!DEC$ ATTRIBUTES ALIAS: 'Set_NearFloorPosition_WN' :: Set_NearFloorPosition_WN
implicit none
logical, intent(in) :: v
call Set_NearFloorPosition(v)
end subroutine
! subroutine Set_NearFloorPosition_WN(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: Set_NearFloorPosition_WN
! !DEC$ ATTRIBUTES ALIAS: 'Set_NearFloorPosition_WN' :: Set_NearFloorPosition_WN
! implicit none
! logical, intent(in) :: v
! call Set_NearFloorPosition(v)
! end subroutine
logical function Get_NearFloorPosition()
implicit none
Get_NearFloorPosition = NearFloorPosition
Get_NearFloorPosition = UnityInputs%NearFloorPosition
end function
logical function Get_NearFloorPosition_WN()
!DEC$ ATTRIBUTES DLLEXPORT :: Get_NearFloorPosition_WN
!DEC$ ATTRIBUTES ALIAS: 'Get_NearFloorPosition_WN' :: Get_NearFloorPosition_WN
implicit none
Get_NearFloorPosition_WN = NearFloorPosition
end function
! logical function Get_NearFloorPosition_WN()
! !DEC$ ATTRIBUTES DLLEXPORT :: Get_NearFloorPosition_WN
! !DEC$ ATTRIBUTES ALIAS: 'Get_NearFloorPosition_WN' :: Get_NearFloorPosition_WN
! implicit none
! Get_NearFloorPosition_WN = UnityInputs%NearFloorPosition
! end function

@@ -499,33 +473,33 @@ module CUnityInputs
subroutine Set_SingleSetInMouseHole(v)
!DEC$ ATTRIBUTES DLLEXPORT :: Set_SingleSetInMouseHole
!DEC$ ATTRIBUTES ALIAS: 'Set_SingleSetInMouseHole' :: Set_SingleSetInMouseHole
implicit none
logical, intent(in) :: v
#ifdef ExcludeExtraChanges
if(SingleSetInMouseHole == v) return
#endif
SingleSetInMouseHole = v
call OnSingleSetInMouseHoleChange%RunAll()
#ifdef deb
print*, 'singleSetInMouseHole=', SingleSetInMouseHole
#endif
end subroutine
! subroutine Set_SingleSetInMouseHole(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: Set_SingleSetInMouseHole
! !DEC$ ATTRIBUTES ALIAS: 'Set_SingleSetInMouseHole' :: Set_SingleSetInMouseHole
! implicit none
! logical, intent(in) :: v
! #ifdef ExcludeExtraChanges
! if(UnityInputs%SingleSetInMouseHole == v) return
! #endif
! UnityInputs%SingleSetInMouseHole = v
! call UnityInputs%OnSingleSetInMouseHoleChange%RunAll()
! #ifdef deb
! print*, 'singleSetInMouseHole=', UnityInputs%SingleSetInMouseHole
! #endif
! end subroutine
logical function Get_SingleSetInMouseHole()
implicit none
Get_SingleSetInMouseHole = SingleSetInMouseHole
Get_SingleSetInMouseHole = UnityInputs%SingleSetInMouseHole
end function
logical function Get_SingleSetInMouseHole_WN()
!DEC$ ATTRIBUTES DLLEXPORT :: Get_SingleSetInMouseHole_WN
!DEC$ ATTRIBUTES ALIAS: 'Get_SingleSetInMouseHole_WN' :: Get_SingleSetInMouseHole_WN
implicit none
Get_SingleSetInMouseHole_WN = SingleSetInMouseHole
end function
! logical function Get_SingleSetInMouseHole_WN()
! !DEC$ ATTRIBUTES DLLEXPORT :: Get_SingleSetInMouseHole_WN
! !DEC$ ATTRIBUTES ALIAS: 'Get_SingleSetInMouseHole_WN' :: Get_SingleSetInMouseHole_WN
! implicit none
! Get_SingleSetInMouseHole_WN = UnityInputs%SingleSetInMouseHole
! end function

@@ -534,22 +508,22 @@ module CUnityInputs
subroutine Set_SwingCenter(v)
!DEC$ ATTRIBUTES DLLEXPORT :: Set_SwingCenter
!DEC$ ATTRIBUTES ALIAS: 'Set_SwingCenter' :: Set_SwingCenter
!USE CSwingEnum
implicit none
logical, intent(in) :: v
!#ifdef ExcludeExtraChanges
! if(SwingCenter == v) return
!#endif
! SwingCenter = v
! call OnSwingCenterChange%RunAll()
! !if(SwingCenter .and. Get_Swing() /= SWING_WELL ) call Set_Swing(SWING_WELL)
!#ifdef deb
! print*, 'SwingCenter=', SwingCenter
!#endif
end subroutine
! subroutine Set_SwingCenter(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: Set_SwingCenter
! !DEC$ ATTRIBUTES ALIAS: 'Set_SwingCenter' :: Set_SwingCenter
! !USE CSwingEnum
! implicit none
! logical, intent(in) :: v
! !#ifdef ExcludeExtraChanges
! ! if(SwingCenter == v) return
! !#endif
! ! SwingCenter = v
! ! call OnSwingCenterChange%RunAll()
! ! !if(SwingCenter .and. Get_Swing() /= SWING_WELL ) call Set_Swing(SWING_WELL)
! !#ifdef deb
! ! print*, 'SwingCenter=', SwingCenter
! !#endif
! end subroutine
!logical function Get_SwingCenter()
! implicit none
@@ -568,63 +542,63 @@ module CUnityInputs
!top drive
subroutine Set_TdsConnectionPossible(v)
!DEC$ ATTRIBUTES DLLEXPORT :: Set_TdsConnectionPossible
!DEC$ ATTRIBUTES ALIAS: 'Set_TdsConnectionPossible' :: Set_TdsConnectionPossible
implicit none
logical, intent(in) :: v
#ifdef ExcludeExtraChanges
if(TdsConnectionPossible == v) return
#endif
TdsConnectionPossible = v
call OnTdsConnectionPossibleChange%RunAll()
#ifdef deb
print*, 'TdsConnectionPossible=', TdsConnectionPossible
#endif
end subroutine
! subroutine Set_TdsConnectionPossible(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: Set_TdsConnectionPossible
! !DEC$ ATTRIBUTES ALIAS: 'Set_TdsConnectionPossible' :: Set_TdsConnectionPossible
! implicit none
! logical, intent(in) :: v
! #ifdef ExcludeExtraChanges
! if(UnityInputs%TdsConnectionPossible == v) return
! #endif
! UnityInputs%TdsConnectionPossible = v
! call UnityInputs%OnTdsConnectionPossibleChange%RunAll()
! #ifdef deb
! print*, 'TdsConnectionPossible=', UnityInputs%TdsConnectionPossible
! #endif
! end subroutine
logical function Get_TdsConnectionPossible()
implicit none
Get_TdsConnectionPossible = TdsConnectionPossible
Get_TdsConnectionPossible = UnityInputs%TdsConnectionPossible
end function
logical function Get_TdsConnectionPossible_WN()
!DEC$ ATTRIBUTES DLLEXPORT :: Get_TdsConnectionPossible_WN
!DEC$ ATTRIBUTES ALIAS: 'Get_TdsConnectionPossible_WN' :: Get_TdsConnectionPossible_WN
implicit none
Get_TdsConnectionPossible_WN = TdsConnectionPossible
!Get_TdsConnectionPossible_WN = .true.
end function
subroutine Set_TdsStemIn(v)
!DEC$ ATTRIBUTES DLLEXPORT :: Set_TdsStemIn
!DEC$ ATTRIBUTES ALIAS: 'Set_TdsStemIn' :: Set_TdsStemIn
implicit none
logical, intent(in) :: v
#ifdef ExcludeExtraChanges
if(TdsStemIn == v) return
#endif
TdsStemIn = v
call OnTdsStemInChange%RunAll()
#ifdef deb
print*, 'TdsStemIn=', TdsStemIn
#endif
end subroutine
! logical function Get_TdsConnectionPossible_WN()
! !DEC$ ATTRIBUTES DLLEXPORT :: Get_TdsConnectionPossible_WN
! !DEC$ ATTRIBUTES ALIAS: 'Get_TdsConnectionPossible_WN' :: Get_TdsConnectionPossible_WN
! implicit none
! Get_TdsConnectionPossible_WN = UnityInputs%TdsConnectionPossible
! !Get_TdsConnectionPossible_WN = .true.
! end function
! subroutine Set_TdsStemIn(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: Set_TdsStemIn
! !DEC$ ATTRIBUTES ALIAS: 'Set_TdsStemIn' :: Set_TdsStemIn
! implicit none
! logical, intent(in) :: v
! #ifdef ExcludeExtraChanges
! if(UnityInputs%TdsStemIn == v) return
! #endif
! UnityInputs%TdsStemIn = v
! call UnityInputs%OnTdsStemInChange%RunAll()
! #ifdef deb
! print*, 'TdsStemIn=', UnityInputs%TdsStemIn
! #endif
! end subroutine
logical function Get_TdsStemIn()
implicit none
Get_TdsStemIn = TdsStemIn
Get_TdsStemIn = UnityInputs%TdsStemIn
end function
logical function Get_TdsStemIn_WN()
!DEC$ ATTRIBUTES DLLEXPORT :: Get_TdsStemIn_WN
!DEC$ ATTRIBUTES ALIAS: 'Get_TdsStemIn_WN' :: Get_TdsStemIn_WN
implicit none
Get_TdsStemIn_WN = TdsStemIn
!Get_TdsStemIn_WN = .true.
end function
! logical function Get_TdsStemIn_WN()
! !DEC$ ATTRIBUTES DLLEXPORT :: Get_TdsStemIn_WN
! !DEC$ ATTRIBUTES ALIAS: 'Get_TdsStemIn_WN' :: Get_TdsStemIn_WN
! implicit none
! Get_TdsStemIn_WN = UnityInputs%TdsStemIn
! !Get_TdsStemIn_WN = .true.
! end function


+ 55
- 89
CSharp/OperationScenarios/Unity/CUnityOutputs.f90 Datei anzeigen

@@ -1,55 +1,21 @@
module CUnityOutputs
implicit none
real(8) :: KellyHoseVibrationRate
real(8) :: BlowoutFromStringPercent
real(8) :: Pedal
real(8) :: FlowRate
real(8) :: RotaryRpm
!logical :: Signal1
!logical :: Signal2
!logical :: Signal3
!logical :: Signal4
!logical :: Signal5
!logical :: Signal6
!logical :: Signal7
!logical :: Signal8
!logical :: Signal9
!logical :: Signal10
logical :: BlowoutFromString
logical :: BlowoutFromAnnular
logical :: FlowFromReturnLine
real :: FlowFromKelly
real :: FlowFromFillupHead
logical :: FlowKellyDisconnect
logical :: FlowPipeDisconnect
private :: KellyHoseVibrationRate
private :: BlowoutFromStringPercent
private :: Pedal
private :: FlowRate
private :: RotaryRpm
!private :: Signal1
!private :: Signal2
!private :: Signal3
!private :: Signal4
!private :: Signal5
!private :: Signal6
!private :: Signal7
!private :: Signal8
!private :: Signal9
!private :: Signal10
private :: BlowoutFromString
private :: BlowoutFromAnnular
private :: FlowFromReturnLine
private :: FlowFromKelly
private :: FlowFromFillupHead
private :: FlowKellyDisconnect
private :: FlowPipeDisconnect
public
type :: UnityOutputsType
real(8) :: KellyHoseVibrationRate
real(8) :: BlowoutFromStringPercent
real(8) :: Pedal
real(8) :: FlowRate
real(8) :: RotaryRpm
logical :: BlowoutFromString
logical :: BlowoutFromAnnular
logical :: FlowFromReturnLine
real :: FlowFromKelly
real :: FlowFromFillupHead
logical :: FlowKellyDisconnect
logical :: FlowPipeDisconnect
end type UnityOutputsType
type(UnityOutputsType):: UnityOutputs

contains

subroutine Setup()
@@ -71,7 +37,7 @@ module CUnityOutputs
subroutine Set_BlowoutFromString(v)
implicit none
logical, intent (in) :: v
BlowoutFromString = v
UnityOutputs%BlowoutFromString = v
#ifdef deb
print*, 'BlowoutFromString=', v
#endif
@@ -79,7 +45,7 @@ module CUnityOutputs
logical function Get_BlowoutFromString()
implicit none
Get_BlowoutFromString = BlowoutFromString
Get_BlowoutFromString = UnityOutputs%BlowoutFromString
end function
subroutine Set_BlowoutFromString_WN(v)
@@ -94,7 +60,7 @@ module CUnityOutputs
!DEC$ ATTRIBUTES DLLEXPORT :: Get_BlowoutFromString_WN
!DEC$ ATTRIBUTES ALIAS: 'Get_BlowoutFromString_WN' :: Get_BlowoutFromString_WN
implicit none
Get_BlowoutFromString_WN = BlowoutFromString
Get_BlowoutFromString_WN = UnityOutputs%BlowoutFromString
!Get_BlowoutFromString = .TRUE.
end function
@@ -103,7 +69,7 @@ module CUnityOutputs
subroutine Set_BlowoutFromAnnular(v)
implicit none
logical, intent (in) :: v
BlowoutFromAnnular = v
UnityOutputs%BlowoutFromAnnular = v
#ifdef deb
print*, 'BlowoutFromAnnular=', v
#endif
@@ -111,7 +77,7 @@ module CUnityOutputs
logical function Get_BlowoutFromAnnular()
implicit none
Get_BlowoutFromAnnular = BlowoutFromAnnular
Get_BlowoutFromAnnular = UnityOutputs%BlowoutFromAnnular
end function
subroutine Set_BlowoutFromAnnular_WN(v)
@@ -126,7 +92,7 @@ module CUnityOutputs
!DEC$ ATTRIBUTES DLLEXPORT :: Get_BlowoutFromAnnular_WN
!DEC$ ATTRIBUTES ALIAS: 'Get_BlowoutFromAnnular_WN' :: Get_BlowoutFromAnnular_WN
implicit none
Get_BlowoutFromAnnular_WN = BlowoutFromAnnular
Get_BlowoutFromAnnular_WN = UnityOutputs%BlowoutFromAnnular
end function
@@ -136,7 +102,7 @@ module CUnityOutputs
subroutine Set_FlowFromReturnLine(v)
implicit none
logical, intent (in) :: v
FlowFromReturnLine = v
UnityOutputs%FlowFromReturnLine = v
#ifdef deb
print*, 'FlowFromReturnLine=', v
#endif
@@ -144,7 +110,7 @@ module CUnityOutputs
logical function Get_FlowFromReturnLine()
implicit none
Get_FlowFromReturnLine = FlowFromReturnLine
Get_FlowFromReturnLine = UnityOutputs%FlowFromReturnLine
end function
@@ -160,7 +126,7 @@ module CUnityOutputs
!DEC$ ATTRIBUTES DLLEXPORT :: Get_FlowFromReturnLine_WN
!DEC$ ATTRIBUTES ALIAS: 'Get_FlowFromReturnLine_WN' :: Get_FlowFromReturnLine_WN
implicit none
Get_FlowFromReturnLine_WN = FlowFromReturnLine
Get_FlowFromReturnLine_WN = UnityOutputs%FlowFromReturnLine
!Get_FlowFromReturnLine_WN = .FALSE.
end function
@@ -169,7 +135,7 @@ module CUnityOutputs
subroutine Set_FlowFromKelly(v)
implicit none
real, intent (in) :: v
FlowFromKelly = v
UnityOutputs%FlowFromKelly = v
#ifdef deb
print*, 'FlowFromKelly=', v
#endif
@@ -177,7 +143,7 @@ module CUnityOutputs
real function Get_FlowFromKelly()
implicit none
Get_FlowFromKelly = FlowFromKelly
Get_FlowFromKelly = UnityOutputs%FlowFromKelly
end function
@@ -194,9 +160,9 @@ module CUnityOutputs
!DEC$ ATTRIBUTES ALIAS: 'Get_FlowFromKelly_WN' :: Get_FlowFromKelly_WN
implicit none
#ifdef deb
print*, 'FlowFromKellyR=', FlowFromKelly
print*, 'FlowFromKellyR=', UnityOutputs%FlowFromKelly
#endif
Get_FlowFromKelly_WN = FlowFromKelly
Get_FlowFromKelly_WN = UnityOutputs%FlowFromKelly
!Get_FlowFromKelly = .FALSE.
end function
@@ -206,7 +172,7 @@ module CUnityOutputs
subroutine Set_FlowFromFillupHead(v)
implicit none
real, intent (in) :: v
FlowFromFillupHead = v
UnityOutputs%FlowFromFillupHead = v
#ifdef deb
print*, 'FlowFromFillupHead=', v
#endif
@@ -214,7 +180,7 @@ module CUnityOutputs
real function Get_FlowFromFillupHead()
implicit none
Get_FlowFromFillupHead = FlowFromFillupHead
Get_FlowFromFillupHead = UnityOutputs%FlowFromFillupHead
end function
@@ -231,9 +197,9 @@ module CUnityOutputs
!DEC$ ATTRIBUTES ALIAS: 'Get_FlowFromFillupHead_WN' :: Get_FlowFromFillupHead_WN
implicit none
#ifdef deb
print*, 'FlowFromFillupHeadR=', FlowFromFillupHead
print*, 'FlowFromFillupHeadR=', UnityOutputs%FlowFromFillupHead
#endif
Get_FlowFromFillupHead_WN = FlowFromFillupHead
Get_FlowFromFillupHead_WN = UnityOutputs%FlowFromFillupHead
!Get_FlowFromFillupHead = .FALSE.
end function
@@ -244,7 +210,7 @@ module CUnityOutputs
subroutine Set_FlowKellyDisconnect(v)
implicit none
logical, intent (in) :: v
FlowKellyDisconnect = v
UnityOutputs%FlowKellyDisconnect = v
#ifdef deb
print*, 'FlowKellyDisconnect=', v
#endif
@@ -252,7 +218,7 @@ module CUnityOutputs
logical function Get_FlowKellyDisconnect()
implicit none
Get_FlowKellyDisconnect = FlowKellyDisconnect
Get_FlowKellyDisconnect = UnityOutputs%FlowKellyDisconnect
end function
@@ -268,7 +234,7 @@ module CUnityOutputs
!DEC$ ATTRIBUTES DLLEXPORT :: Get_FlowKellyDisconnect_WN
!DEC$ ATTRIBUTES ALIAS: 'Get_FlowKellyDisconnect_WN' :: Get_FlowKellyDisconnect_WN
implicit none
Get_FlowKellyDisconnect_WN = FlowKellyDisconnect
Get_FlowKellyDisconnect_WN = UnityOutputs%FlowKellyDisconnect
!Get_FlowKellyDisconnect_WN = .false.
end function
@@ -278,7 +244,7 @@ module CUnityOutputs
subroutine Set_FlowPipeDisconnect(v)
implicit none
logical, intent (in) :: v
FlowPipeDisconnect = v
UnityOutputs%FlowPipeDisconnect = v
#ifdef deb
print*, 'FlowPipeDisconnect=', v
#endif
@@ -286,7 +252,7 @@ module CUnityOutputs
logical function Get_FlowPipeDisconnect()
implicit none
Get_FlowPipeDisconnect = FlowPipeDisconnect
Get_FlowPipeDisconnect = UnityOutputs%FlowPipeDisconnect
end function
@@ -302,7 +268,7 @@ module CUnityOutputs
!DEC$ ATTRIBUTES DLLEXPORT :: Get_FlowPipeDisconnect_WN
!DEC$ ATTRIBUTES ALIAS: 'Get_FlowPipeDisconnect_WN' :: Get_FlowPipeDisconnect_WN
implicit none
Get_FlowPipeDisconnect_WN = FlowPipeDisconnect
Get_FlowPipeDisconnect_WN = UnityOutputs%FlowPipeDisconnect
!Get_FlowPipeDisconnect_WN = .false.
end function
@@ -335,7 +301,7 @@ module CUnityOutputs
subroutine Set_BlowoutFromStringPercent(v)
implicit none
real(8), intent (in) :: v
BlowoutFromStringPercent = v
UnityOutputs%BlowoutFromStringPercent = v
#ifdef deb
print*, 'BlowoutFromStringPercent=', v
#endif
@@ -343,7 +309,7 @@ module CUnityOutputs
real(8) function GetBlowoutFromStringPercent()
implicit none
GetBlowoutFromStringPercent = BlowoutFromStringPercent
GetBlowoutFromStringPercent = UnityOutputs%BlowoutFromStringPercent
end function
@@ -360,7 +326,7 @@ module CUnityOutputs
!DEC$ ATTRIBUTES DLLEXPORT :: GetBlowoutFromStringPercent_WN
!DEC$ ATTRIBUTES ALIAS: 'GetBlowoutFromStringPercent_WN' :: GetBlowoutFromStringPercent_WN
implicit none
GetBlowoutFromStringPercent_WN = BlowoutFromStringPercent
GetBlowoutFromStringPercent_WN = UnityOutputs%BlowoutFromStringPercent
!GetBlowoutFromStringPercent_WN = 0d0
end function
@@ -377,22 +343,22 @@ module CUnityOutputs
real(8), intent (in) :: spm1, spm2
real :: total
total = (spm1 + spm2)/2
KellyHoseVibrationRate = ScaleRange(total, 0.0, 10.0, 0.0, 120.0)
UnityOutputs%KellyHoseVibrationRate = ScaleRange(total, 0.0, 10.0, 0.0, 120.0)
#ifdef deb
print*, 'KellyHoseVibrationRate=', KellyHoseVibrationRate
print*, 'KellyHoseVibrationRate=', UnityOutputs%KellyHoseVibrationRate
#endif
end subroutine
real(8) function GetKellyHoseVibrationRate()
implicit none
GetKellyHoseVibrationRate = KellyHoseVibrationRate
GetKellyHoseVibrationRate = UnityOutputs%KellyHoseVibrationRate
end function
real(8) function GetKellyHoseVibrationRate_WN()
!DEC$ ATTRIBUTES DLLEXPORT :: GetKellyHoseVibrationRate_WN
!DEC$ ATTRIBUTES ALIAS: 'GetKellyHoseVibrationRate_WN' :: GetKellyHoseVibrationRate_WN
implicit none
GetKellyHoseVibrationRate_WN = KellyHoseVibrationRate
GetKellyHoseVibrationRate_WN = UnityOutputs%KellyHoseVibrationRate
end function
@@ -401,7 +367,7 @@ module CUnityOutputs
subroutine Set_Pedal(v)
implicit none
real(8), intent (in) :: v
Pedal = v
UnityOutputs%Pedal = v
#ifdef deb
print*, 'Pedal=', v
#endif
@@ -409,7 +375,7 @@ module CUnityOutputs
real(8) function GetPedal()
implicit none
GetPedal = Pedal
GetPedal = UnityOutputs%Pedal
end function
subroutine Set_Pedal_WN(v)
@@ -424,7 +390,7 @@ module CUnityOutputs
!DEC$ ATTRIBUTES DLLEXPORT :: GetPedal_WN
!DEC$ ATTRIBUTES ALIAS: 'GetPedal_WN' :: GetPedal_WN
implicit none
GetPedal_WN = Pedal
GetPedal_WN = UnityOutputs%Pedal
!GetPedal = 50d0
end function
@@ -435,7 +401,7 @@ module CUnityOutputs
subroutine Set_FlowRate(v)
implicit none
real(8), intent (in) :: v
FlowRate = v
UnityOutputs%FlowRate = v
#ifdef deb
print*, 'FlowRate=', v
#endif
@@ -444,7 +410,7 @@ module CUnityOutputs
real(8) function GetFlowRate()
implicit none
GetFlowRate = FlowRate
GetFlowRate = UnityOutputs%FlowRate
end function
@@ -460,7 +426,7 @@ module CUnityOutputs
!DEC$ ATTRIBUTES DLLEXPORT :: GetFlowRate_WN
!DEC$ ATTRIBUTES ALIAS: 'GetFlowRate_WN' :: GetFlowRate_WN
implicit none
GetFlowRate_WN = FlowRate
GetFlowRate_WN = UnityOutputs%FlowRate
!GetFlowRate_WN = 50d0
end function
@@ -470,7 +436,7 @@ module CUnityOutputs
subroutine Set_RotaryRpm(v)
implicit none
real(8), intent (in) :: v
RotaryRpm = v
UnityOutputs%RotaryRpm = v
#ifdef deb
print*, 'RotaryRpm=', v
#endif
@@ -478,7 +444,7 @@ module CUnityOutputs
real(8) function GetRotaryRpm()
implicit none
GetRotaryRpm = RotaryRpm
GetRotaryRpm = UnityOutputs%RotaryRpm
end function

@@ -494,7 +460,7 @@ module CUnityOutputs
!DEC$ ATTRIBUTES DLLEXPORT :: GetRotaryRpm_WN
!DEC$ ATTRIBUTES ALIAS: 'GetRotaryRpm_WN' :: GetRotaryRpm_WN
implicit none
GetRotaryRpm_WN = RotaryRpm
GetRotaryRpm_WN = UnityOutputs%RotaryRpm
end function


+ 1
- 1
CSharp/OperationScenarios/UnitySignals/CTongEnum.f90 Datei anzeigen

@@ -106,7 +106,7 @@ module CTongEnum
subroutine ButtonPress_Makeup_TongNotification()
use CTongNotificationVariables
use NotificationVariables
implicit none


+ 478
- 0
CSharp/OperationScenarios/UnitySignals/UnitySignalsVariables.f90 Datei anzeigen

@@ -0,0 +1,478 @@
module UnitySignalVariables
use CVoidEventHandlerCollection
use CIntegerEventHandlerCollection

type:: UnitySignalsType
integer :: MudBucket = 0
type(VoidEventHandlerCollection) :: OnMudBucketChange
integer :: Elevator = 0
type(VoidEventHandlerCollection) :: OnElevatorChange
integer :: FillupHead = 0
type(VoidEventHandlerCollection) :: OnFillupHeadChange
integer :: Ibop = 0
type(VoidEventHandlerCollection) :: OnIbopChange
integer :: Kelly = 0
type(VoidEventHandlerCollection) :: OnKellyChange
integer :: MouseHole = 0
type(VoidEventHandlerCollection) :: OnMouseHoleChange
integer :: OperationCondition = 0
type(VoidEventHandlerCollection) :: OnOperationConditionChange
type(IntegerEventHandlerCollection) :: OnOperationConditionChangeInt
integer :: SafetyValve = 0
type(VoidEventHandlerCollection) :: OnSafetyValveChange
integer :: operation = 0
integer :: Slips = 0
integer :: Slips_S = 0
type(VoidEventHandlerCollection) :: OnSlipsChange
integer :: Swing = 0
integer :: Swing_S = 0
type(VoidEventHandlerCollection) :: OnSwingChange
integer :: TdsBackupClamp = 0
type(VoidEventHandlerCollection) :: OnTdsBackupClampChange
integer :: TdsSpine = 0
type(VoidEventHandlerCollection) :: OnTdsSpineChange
integer :: TdsSwing = 0
type(VoidEventHandlerCollection) :: OnTdsSwingChange
integer :: TdsTong = 0
type(VoidEventHandlerCollection) :: OnTdsTongChange
integer :: Tong = 0
integer :: Tong_S = 0
type(VoidEventHandlerCollection) :: OnTongChange
end type UnitySignalsType
type(UnitySignalsType):: unitySignals

enum, bind(c)
enumerator TONG_NEUTRAL
enumerator TONG_BREAKOUT_BEGIN
enumerator TONG_BREAKOUT_END
enumerator TONG_MAKEUP_BEGIN
enumerator TONG_MAKEUP_END

enumerator TDS_SWING_NEUTRAL
enumerator TDS_SWING_OFF_BEGIN
enumerator TDS_SWING_OFF_END
enumerator TDS_SWING_DRILL_BEGIN
enumerator TDS_SWING_DRILL_END
enumerator TDS_SWING_TILT_BEGIN
enumerator TDS_SWING_TILT_END

enumerator TDS_SPINE_NEUTRAL
enumerator TDS_SPINE_CONNECT_BEGIN
enumerator TDS_SPINE_CONNECT_END
enumerator TDS_SPINE_DISCONNECT_BEGIN
enumerator TDS_SPINE_DISCONNECT_END

enumerator BACKUP_CLAMP_OFF_END
enumerator BACKUP_CLAMP_OFF_BEGIN
enumerator BACKUP_CLAMP_FW_BEGIN
enumerator BACKUP_CLAMP_FW_END

enumerator SWING_NEUTRAL
enumerator SWING_MOUSE_HOLE_BEGIN
enumerator SWING_MOUSE_HOLE_END
enumerator SWING_RAT_HOLE_BEGIN
enumerator SWING_RAT_HOLE_END
enumerator SWING_WELL_BEGIN
enumerator SWING_WELL_END
end enum
enum, bind(c)
enumerator TDS_TONG_BREAKOUT_END
enumerator TDS_TONG_BREAKOUT_BEGIN
enumerator TDS_TONG_MAKEUP_BEGIN
enumerator TDS_TONG_MAKEUP_END

enumerator SAFETY_VALVE_NEUTRAL
enumerator SAFETY_VALVE_REMOVE
enumerator SAFETY_VALVE_INSTALL

end enum
enum, bind(c)
enumerator OPERATION_DRILL
enumerator OPERATION_TRIP
end enum
enum, bind(c)
enumerator SLIPS_NEUTRAL
enumerator SLIPS_SET_BEGIN
enumerator SLIPS_SET_END
enumerator SLIPS_UNSET_BEGIN
enumerator SLIPS_UNSET_END

enumerator MOUSE_HOLE_NEUTRAL
enumerator MOUSE_HOLE_FILL
enumerator MOUSE_HOLE_EMPTY

enumerator KELLY_NEUTRAL
enumerator KELLY_INSTALL
enumerator KELLY_REMOVE

!enumerator FILLUP_HEAD_NEUTRAL
enumerator FILLUP_HEAD_REMOVE
enumerator FILLUP_HEAD_INSTALL

enumerator ELEVATOR_NEUTRAL
enumerator ELEVATOR_LATCH_STRING_BEGIN
enumerator ELEVATOR_LATCH_STRING_END
enumerator ELEVATOR_UNLATCH_STRING_BEGIN
enumerator ELEVATOR_UNLATCH_STRING_END
enumerator ELEVATOR_LATCH_STAND_BEGIN
enumerator ELEVATOR_LATCH_STAND_END
enumerator ELEVATOR_UNLATCH_STAND_BEGIN
enumerator ELEVATOR_UNLATCH_STAND_END
enumerator ELEVATOR_LATCH_SINGLE_BEGIN
enumerator ELEVATOR_LATCH_SINGLE_END
enumerator ELEVATOR_UNLATCH_SINGLE_BEGIN
enumerator ELEVATOR_UNLATCH_SINGLE_END

!enumerator MUD_BUCKET_NEUTRAL
enumerator MUD_BUCKET_REMOVE
enumerator MUD_BUCKET_INSTALL

!enumerator IBOP_NEUTRAL
enumerator IBOP_REMOVE
enumerator IBOP_INSTALL
end enum

contains
subroutine Set_Ibop_Install()
implicit none
call Set_Ibop(IBOP_INSTALL)
end subroutine
subroutine Set_Ibop_Remove()
implicit none
call Set_Ibop(IBOP_REMOVE)
end subroutine

subroutine Set_Tong(v)
implicit none
integer , intent(in) :: v
#ifdef ExcludeExtraChanges
if(UnitySignals%Tong == v) return
#endif
UnitySignals%Tong = v
#ifdef deb
print*, 'Tong=', UnitySignals%Tong
#endif
call UnitySignals%OnTongChange%RunAll()
end subroutine
integer function Get_Tong()
implicit none
Get_Tong = UnitySignals%Tong
end function
subroutine Set_TdsTong(v)
implicit none
integer , intent(in) :: v
#ifdef ExcludeExtraChanges
if(UnitySignals%TdsTong == v) return
#endif
UnitySignals%TdsTong = v
#ifdef deb
print*, 'TdsTong=', UnitySignals%TdsTong
#endif
call UnitySignals%OnTdsTongChange%RunAll()
end subroutine
integer function Get_TdsTong()
implicit none
Get_TdsTong = UnitySignals%TdsTong
end function
subroutine Set_TdsSwing(v)
implicit none
integer , intent(in) :: v
#ifdef ExcludeExtraChanges
if(UnitySignals%TdsSwing == v) return
#endif
UnitySignals%TdsSwing = v
#ifdef deb
print*, 'TdsSwing=', UnitySignals%TdsSwing
#endif
call UnitySignals%OnTdsSwingChange%RunAll()
end subroutine
integer function Get_TdsSwing()
implicit none
Get_TdsSwing = UnitySignals%TdsSwing
end function
subroutine Set_TdsSpine(v)
implicit none
integer , intent(in) :: v
#ifdef ExcludeExtraChanges
if(UnitySignals%TdsSpine == v) return
#endif
UnitySignals%TdsSpine = v
#ifdef deb
print*, 'TdsSpine=', UnitySignals%TdsSpine
#endif
call UnitySignals%OnTdsSpineChange%RunAll()
end subroutine
integer function Get_TdsSpine()
implicit none
Get_TdsSpine = UnitySignals%TdsSpine
end function
subroutine Set_TdsBackupClamp(v)
implicit none
integer , intent(in) :: v
#ifdef ExcludeExtraChanges
if(UnitySignals%TdsBackupClamp == v) return
#endif
UnitySignals%TdsBackupClamp = v
#ifdef deb
print*, 'TdsBackupClamp=', UnitySignals%TdsBackupClamp
#endif
call UnitySignals%OnTdsBackupClampChange%RunAll()
end subroutine
integer function Get_TdsBackupClamp()
implicit none
Get_TdsBackupClamp = UnitySignals%TdsBackupClamp
end function

subroutine Set_Swing(v)
implicit none
integer , intent(in) :: v
#ifdef ExcludeExtraChanges
if(UnitySignals%Swing == v) return
#endif
UnitySignals%Swing = v
#ifdef deb
print*, 'Swing=', UnitySignals%Swing
#endif
call UnitySignals%OnSwingChange%RunAll()
end subroutine
integer function Get_Swing()
implicit none
Get_Swing = UnitySignals%Swing
end function
subroutine Set_Slips(v)
implicit none
integer , intent(in) :: v
#ifdef ExcludeExtraChanges
if(UnitySignals%Slips == v) return
#endif
UnitySignals%Slips = v
#ifdef deb
print*, 'Slips=', UnitySignals%Slips
#endif
call UnitySignals%OnSlipsChange%RunAll()
end subroutine
integer function Get_Slips()
implicit none
Get_Slips = UnitySignals%Slips
end function
subroutine Set_Operation(i)
implicit none
integer, intent (in) :: i
UnitySignals%operation = i
end subroutine
subroutine Set_SafetyValve(v)
implicit none
integer , intent(in) :: v
#ifdef ExcludeExtraChanges
if(UnitySignals%SafetyValve == v) return
#endif
UnitySignals%SafetyValve = v
#ifdef deb
if(UnitySignals%SafetyValve == SAFETY_VALVE_NEUTRAL) then
print*, 'SafetyValve=SAFETY_VALVE_NEUTRAL'
else if (UnitySignals%SafetyValve == SAFETY_VALVE_INSTALL) then
print*, 'SafetyValve=SAFETY_VALVE_INSTALL'
else if (UnitySignals%SafetyValve == SAFETY_VALVE_INSTALL) then
print*, 'SafetyValve=SAFETY_VALVE_REMOVE'
endif
#endif
call UnitySignals%OnSafetyValveChange%RunAll()
end subroutine
integer function Get_SafetyValve()
implicit none
Get_SafetyValve = UnitySignals%SafetyValve
end function

subroutine Set_SafetyValve_Install()
implicit none
call Set_SafetyValve(SAFETY_VALVE_INSTALL)
end subroutine
subroutine Set_SafetyValve_Remove()
implicit none
call Set_SafetyValve(SAFETY_VALVE_REMOVE)
end subroutine
subroutine Set_OperationCondition(v)
! use CKellyEnumVariables
implicit none
integer , intent(in) :: v
#ifdef ExcludeExtraChanges
if(UnitySignals%OperationCondition == v) return
#endif
UnitySignals%OperationCondition = v
#ifdef deb
print*, 'OperationCondition=', UnitySignals%OperationCondition
#endif
call UnitySignals%OnOperationConditionChange%RunAll()
call UnitySignals%OnOperationConditionChangeInt%RunAll(UnitySignals%OperationCondition)
end subroutine
integer function Get_OperationCondition()
implicit none
Get_OperationCondition = UnitySignals%OperationCondition
end function

subroutine Set_MouseHole(v)
implicit none
integer , intent(in) :: v
#ifdef ExcludeExtraChanges
if(UnitySignals%MouseHole == v) return
#endif
!call sleep(2)
UnitySignals%MouseHole = v
#ifdef deb
print*, 'MouseHole=', UnitySignals%MouseHole
#endif
call UnitySignals%OnMouseHoleChange%RunAll()
end subroutine
integer function Get_MouseHole()
implicit none
Get_MouseHole = UnitySignals%MouseHole
end function

subroutine Set_Kelly(v)
implicit none
integer , intent(in) :: v
#ifdef ExcludeExtraChanges
if(UnitySignals%Kelly == v) return
#endif
UnitySignals%Kelly = v
#ifdef deb
print*, 'Kelly=', UnitySignals%Kelly
#endif
call UnitySignals%OnKellyChange%RunAll()
end subroutine
integer function Get_Kelly()
implicit none
Get_Kelly = UnitySignals%Kelly
end function
subroutine Set_Ibop(v)
implicit none
integer , intent(in) :: v
#ifdef ExcludeExtraChanges
if(UnitySignals%Ibop == v) return
#endif
UnitySignals%Ibop = v
#ifdef deb
print*, 'Ibop=', UnitySignals%Ibop
#endif
call UnitySignals%OnIbopChange%RunAll()
end subroutine
integer function Get_Ibop()
implicit none
Get_Ibop = UnitySignals%Ibop
end function
subroutine Set_FillupHead(v)
use CManifolds, only: ToggleFillupHead
implicit none
integer , intent(in) :: v
#ifdef ExcludeExtraChanges
if(UnitySignals%FillupHead == v) return
#endif
UnitySignals%FillupHead = v
if (UnitySignals%FillupHead == FILLUP_HEAD_INSTALL) then
call ToggleFillupHead(.true.)
else if (UnitySignals%FillupHead == FILLUP_HEAD_REMOVE) then
call ToggleFillupHead(.false.)
endif
#ifdef deb
print*, 'FillupHead=', UnitySignals%FillupHead
#endif
call UnitySignals%OnFillupHeadChange%RunAll()
end subroutine
integer function Get_FillupHead()
implicit none
Get_FillupHead = UnitySignals%FillupHead
end function
subroutine Set_Elevator(v)
implicit none
integer , intent(in) :: v
#ifdef ExcludeExtraChanges
if(UnitySignals%Elevator == v) return
#endif
UnitySignals%Elevator = v
#ifdef deb
print*, 'Elevator=', UnitySignals%Elevator
#endif
call UnitySignals%OnElevatorChange%RunAll()
end subroutine
integer function Get_Elevator()
implicit none
Get_Elevator = UnitySignals%Elevator
end function

subroutine Set_MudBucket(v)
use CManifolds, only: ToggleMudBox
implicit none
integer , intent(in) :: v
#ifdef ExcludeExtraChanges
if(UnitySignals%MudBucket == v) return
#endif
UnitySignals%MudBucket = v
if (UnitySignals%MudBucket == MUD_BUCKET_INSTALL) then
call ToggleMudBox(.true.)
else if (UnitySignals%MudBucket == MUD_BUCKET_REMOVE) then
call ToggleMudBox(.false.)
endif
#ifdef deb
print*, 'MudBucket=', UnitySignals%MudBucket
#endif
call UnitySignals%OnMudBucketChange%RunAll()
end subroutine
integer function Get_MudBucket()
implicit none
Get_MudBucket = UnitySignals%MudBucket
end function

end module UnitySignalVariables

+ 14
- 14
CSharp/Problems/CBitProblems.f90 Datei anzeigen

@@ -10,7 +10,7 @@ module CBitProblems
!DEC$ ATTRIBUTES ALIAS: 'SetPlugJets' :: SetPlugJets
implicit none
type(CProblem), intent(in) :: v
PlugJets = SetDue(v, ChangePlugJets)
BitProblems%PlugJets = SetDue(v, ChangePlugJets)
#ifdef deb
!print*, 'PlugJets%ProblemType=', PlugJets%ProblemType
!print*, 'PlugJets%StatusType=', PlugJets%StatusType
@@ -18,10 +18,10 @@ module CBitProblems
!print*, 'PlugJets%DueValue=', PlugJets%DueValue
call Log_3("==============================")
call Log_3("PlugJets%ProblemType=", PlugJets%ProblemType)
call Log_3("PlugJets%StatusType=", PlugJets%StatusType)
call Log_3("PlugJets%Value=", PlugJets%Value)
call Log_3("PlugJets%DueValue=", PlugJets%DueValue)
call Log_3("PlugJets%ProblemType=", BitProblems%PlugJets%ProblemType)
call Log_3("PlugJets%StatusType=", BitProblems%PlugJets%StatusType)
call Log_3("PlugJets%Value=", BitProblems%PlugJets%Value)
call Log_3("PlugJets%DueValue=", BitProblems%PlugJets%DueValue)
call Log_3("==============================")
#endif
end subroutine
@@ -31,12 +31,12 @@ module CBitProblems
!DEC$ ATTRIBUTES ALIAS: 'SetJetWashout' :: SetJetWashout
implicit none
type(CProblem), intent(in) :: v
JetWashout = SetDue(v, ChangeJetWashout)
BitProblems%JetWashout = SetDue(v, ChangeJetWashout)
#ifdef deb
print*, 'JetWashout%ProblemType=', JetWashout%ProblemType
print*, 'JetWashout%StatusType=', JetWashout%StatusType
print*, 'JetWashout%Value=', JetWashout%Value
print*, 'JetWashout%DueValue=', JetWashout%DueValue
print*, 'JetWashout%ProblemType=', BitProblems%JetWashout%ProblemType
print*, 'JetWashout%StatusType=', BitProblems%JetWashout%StatusType
print*, 'JetWashout%Value=', BitProblems%JetWashout%Value
print*, 'JetWashout%DueValue=', BitProblems%JetWashout%DueValue
#endif
end subroutine

@@ -45,9 +45,9 @@ module CBitProblems
!DEC$ ATTRIBUTES ALIAS: 'SetPlugJetsCount' :: SetPlugJetsCount
implicit none
integer, intent(in) :: v
PlugJetsCount = v
BitProblems%PlugJetsCount = v
#ifdef deb
print*, 'PlugJetsCount=', PlugJetsCount
print*, 'PlugJetsCount=', BitProblems%PlugJetsCount
#endif
end subroutine

@@ -56,9 +56,9 @@ module CBitProblems
!DEC$ ATTRIBUTES ALIAS: 'SetJetWashoutCount' :: SetJetWashoutCount
implicit none
integer, intent(in) :: v
JetWashoutCount = v
BitProblems%JetWashoutCount = v
#ifdef deb
print*, 'JetWashoutCount=', JetWashoutCount
print*, 'JetWashoutCount=', BitProblems%JetWashoutCount
#endif
end subroutine

+ 36
- 32
CSharp/Problems/CBitProblemsVariables.f90 Datei anzeigen

@@ -5,20 +5,24 @@ module CBitProblemsVariables
public
! Input vars
type(CProblem) :: PlugJets
type(CProblem) :: JetWashout
integer :: PlugJetsCount
integer :: JetWashoutCount
procedure (ActionInteger), pointer :: PlugJetsPtr
procedure (ActionInteger), pointer :: JetWashoutPtr
type:: BitProblemsType
type(CProblem) :: PlugJets
type(CProblem) :: JetWashout
integer :: PlugJetsCount
integer :: JetWashoutCount
! procedure (ActionInteger), pointer :: PlugJetsPtr
! procedure (ActionInteger), pointer :: JetWashoutPtr
end type BitProblemsType
type(BitProblemsType)::BitProblems

contains

subroutine ProcessBitProblemsDueTime(time)
implicit none
integer :: time
if(PlugJets%ProblemType == Time_ProblemType) call ProcessDueTime(PlugJets, ChangePlugJets, time)
if(JetWashout%ProblemType == Time_ProblemType) call ProcessDueTime(JetWashout, ChangeJetWashout, time)
if(BitProblems%PlugJets%ProblemType == Time_ProblemType) call ProcessDueTime(BitProblems%PlugJets, ChangePlugJets, time)
if(BitProblems%JetWashout%ProblemType == Time_ProblemType) call ProcessDueTime(BitProblems%JetWashout, ChangeJetWashout, time)
end subroutine
@@ -26,8 +30,8 @@ module CBitProblemsVariables
implicit none
integer :: strokes
if(PlugJets%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(PlugJets, ChangePlugJets, strokes)
if(JetWashout%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(JetWashout, ChangeJetWashout, strokes)
if(BitProblems%PlugJets%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(BitProblems%PlugJets, ChangePlugJets, strokes)
if(BitProblems%JetWashout%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(BitProblems%JetWashout, ChangeJetWashout, strokes)
end subroutine
@@ -35,8 +39,8 @@ module CBitProblemsVariables
implicit none
real(8) :: volume
if(PlugJets%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(PlugJets, ChangePlugJets, volume)
if(JetWashout%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(JetWashout, ChangeJetWashout, volume)
if(BitProblems%PlugJets%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(BitProblems%PlugJets, ChangePlugJets, volume)
if(BitProblems%JetWashout%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(BitProblems%JetWashout, ChangeJetWashout, volume)
end subroutine
@@ -44,8 +48,8 @@ module CBitProblemsVariables
implicit none
real(8) :: distance
if(PlugJets%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(PlugJets, ChangePlugJets, distance)
if(JetWashout%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(JetWashout, ChangeJetWashout, distance)
if(BitProblems%PlugJets%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(BitProblems%PlugJets, ChangePlugJets, distance)
if(BitProblems%JetWashout%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(BitProblems%JetWashout, ChangeJetWashout, distance)
end subroutine
@@ -53,7 +57,7 @@ module CBitProblemsVariables
USE FricPressDropVars
implicit none
integer, intent (in) :: status
if(associated(PlugJetsPtr)) call PlugJetsPtr(status)
! if(associated(BitProblems%PlugJetsPtr)) call BitProblems%PlugJetsPtr(status)
if(status == Clear_StatusType) BitJetsPlugged = 0
if(status == Executed_StatusType) BitJetsPlugged = 1
endsubroutine
@@ -62,7 +66,7 @@ module CBitProblemsVariables
USE FricPressDropVars
implicit none
integer, intent (in) :: status
if(associated(JetWashoutPtr)) call JetWashoutPtr(status)
! if(associated(BitProblems%JetWashoutPtr)) call BitProblems%JetWashoutPtr(status)
if(status == Clear_StatusType) BitJetsWashedOut = 0
if(status == Executed_StatusType) BitJetsWashedOut = 1
endsubroutine
@@ -76,20 +80,20 @@ module CBitProblemsVariables
subroutine SubscribePlugJets(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribePlugJets
!DEC$ ATTRIBUTES ALIAS: 'SubscribePlugJets' :: SubscribePlugJets
implicit none
procedure (ActionInteger) :: v
PlugJetsPtr => v
end subroutine
! subroutine SubscribePlugJets(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribePlugJets
! !DEC$ ATTRIBUTES ALIAS: 'SubscribePlugJets' :: SubscribePlugJets
! implicit none
! procedure (ActionInteger) :: v
! BitProblems%PlugJetsPtr => v
! end subroutine

subroutine SubscribeJetWashout(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeJetWashout
!DEC$ ATTRIBUTES ALIAS: 'SubscribeJetWashout' :: SubscribeJetWashout
implicit none
procedure (ActionInteger) :: v
JetWashoutPtr => v
end subroutine
! subroutine SubscribeJetWashout(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeJetWashout
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeJetWashout' :: SubscribeJetWashout
! implicit none
! procedure (ActionInteger) :: v
! BitProblems%JetWashoutPtr => v
! end subroutine
end module CBitProblemsVariables

+ 64
- 64
CSharp/Problems/CBopProblems.f90 Datei anzeigen

@@ -11,11 +11,11 @@ module CBopProblems
!DEC$ ATTRIBUTES ALIAS: 'SetAnnularWash' :: SetAnnularWash
implicit none
type(CProblem), intent(in) :: v
AnnularWash = SetDue(v, ChangeAnnularWash)
BopProblems%AnnularWash = SetDue(v, ChangeAnnularWash)
#ifdef deb
print*, 'AnnularWash%ProblemType=', AnnularWash%ProblemType
print*, 'AnnularWash%StatusType=', AnnularWash%StatusType
print*, 'AnnularWash%Value=', AnnularWash%Value
print*, 'AnnularWash%ProblemType=', BopProblems%AnnularWash%ProblemType
print*, 'AnnularWash%StatusType=', BopProblems%AnnularWash%StatusType
print*, 'AnnularWash%Value=', BopProblems%AnnularWash%Value
#endif
end subroutine
@@ -24,11 +24,11 @@ module CBopProblems
!DEC$ ATTRIBUTES ALIAS: 'SetAnnularFail' :: SetAnnularFail
implicit none
type(CProblem), intent(in) :: v
AnnularFail = SetDue(v, ChangeAnnularFail)
BopProblems%AnnularFail = SetDue(v, ChangeAnnularFail)
#ifdef deb
print*, 'AnnularFail%ProblemType=', AnnularFail%ProblemType
print*, 'AnnularFail%StatusType=', AnnularFail%StatusType
print*, 'AnnularFail%Value=', AnnularFail%Value
print*, 'AnnularFail%ProblemType=', BopProblems%AnnularFail%ProblemType
print*, 'AnnularFail%StatusType=', BopProblems%AnnularFail%StatusType
print*, 'AnnularFail%Value=', BopProblems%AnnularFail%Value
#endif
end subroutine

@@ -37,11 +37,11 @@ module CBopProblems
!DEC$ ATTRIBUTES ALIAS: 'SetAnnularLeak' :: SetAnnularLeak
implicit none
type(CProblem), intent(in) :: v
AnnularLeak = SetDue(v, ChangeAnnularLeak)
BopProblems%AnnularLeak = SetDue(v, ChangeAnnularLeak)
#ifdef deb
print*, 'AnnularLeak%ProblemType=', AnnularLeak%ProblemType
print*, 'AnnularLeak%StatusType=', AnnularLeak%StatusType
print*, 'AnnularLeak%Value=', AnnularLeak%Value
print*, 'AnnularLeak%ProblemType=', BopProblems%AnnularLeak%ProblemType
print*, 'AnnularLeak%StatusType=', BopProblems%AnnularLeak%StatusType
print*, 'AnnularLeak%Value=', BopProblems%AnnularLeak%Value
#endif
end subroutine

@@ -50,11 +50,11 @@ module CBopProblems
!DEC$ ATTRIBUTES ALIAS: 'SetUpperRamWash' :: SetUpperRamWash
implicit none
type(CProblem), intent(in) :: v
UpperRamWash = SetDue(v, ChangeUpperRamWash)
BopProblems%UpperRamWash = SetDue(v, ChangeUpperRamWash)
#ifdef deb
print*, 'UpperRamWash%ProblemType=', UpperRamWash%ProblemType
print*, 'UpperRamWash%StatusType=', UpperRamWash%StatusType
print*, 'UpperRamWash%Value=', UpperRamWash%Value
print*, 'UpperRamWash%ProblemType=', BopProblems%UpperRamWash%ProblemType
print*, 'UpperRamWash%StatusType=', BopProblems%UpperRamWash%StatusType
print*, 'UpperRamWash%Value=', BopProblems%UpperRamWash%Value
#endif
end subroutine
@@ -63,11 +63,11 @@ module CBopProblems
!DEC$ ATTRIBUTES ALIAS: 'SetUpperRamFail' :: SetUpperRamFail
implicit none
type(CProblem), intent(in) :: v
UpperRamFail = SetDue(v, ChangeUpperRamFail)
BopProblems%UpperRamFail = SetDue(v, ChangeUpperRamFail)
#ifdef deb
print*, 'UpperRamFail%ProblemType=', UpperRamFail%ProblemType
print*, 'UpperRamFail%StatusType=', UpperRamFail%StatusType
print*, 'UpperRamFail%Value=', UpperRamFail%Value
print*, 'UpperRamFail%ProblemType=', BopProblems%UpperRamFail%ProblemType
print*, 'UpperRamFail%StatusType=', BopProblems%UpperRamFail%StatusType
print*, 'UpperRamFail%Value=', BopProblems%UpperRamFail%Value
#endif
end subroutine

@@ -76,11 +76,11 @@ module CBopProblems
!DEC$ ATTRIBUTES ALIAS: 'SetUpperRamLeak' :: SetUpperRamLeak
implicit none
type(CProblem), intent(in) :: v
UpperRamLeak = SetDue(v, ChangeUpperRamLeak)
BopProblems%UpperRamLeak = SetDue(v, ChangeUpperRamLeak)
#ifdef deb
print*, 'UpperRamLeak%ProblemType=', UpperRamLeak%ProblemType
print*, 'UpperRamLeak%StatusType=', UpperRamLeak%StatusType
print*, 'UpperRamLeak%Value=', UpperRamLeak%Value
print*, 'UpperRamLeak%ProblemType=', BopProblems%UpperRamLeak%ProblemType
print*, 'UpperRamLeak%StatusType=', BopProblems%UpperRamLeak%StatusType
print*, 'UpperRamLeak%Value=', BopProblems%UpperRamLeak%Value
#endif
end subroutine

@@ -89,11 +89,11 @@ module CBopProblems
!DEC$ ATTRIBUTES ALIAS: 'SetMiddleRamWash' :: SetMiddleRamWash
implicit none
type(CProblem), intent(in) :: v
MiddleRamWash = SetDue(v, ChangeMiddleRamWash)
BopProblems%MiddleRamWash = SetDue(v, ChangeMiddleRamWash)
#ifdef deb
print*, 'MiddleRamWash%ProblemType=', MiddleRamWash%ProblemType
print*, 'MiddleRamWash%StatusType=', MiddleRamWash%StatusType
print*, 'MiddleRamWash%Value=', MiddleRamWash%Value
print*, 'MiddleRamWash%ProblemType=', BopProblems%MiddleRamWash%ProblemType
print*, 'MiddleRamWash%StatusType=', BopProblems%MiddleRamWash%StatusType
print*, 'MiddleRamWash%Value=', BopProblems%MiddleRamWash%Value
#endif
end subroutine
@@ -102,11 +102,11 @@ module CBopProblems
!DEC$ ATTRIBUTES ALIAS: 'SetMiddleRamFail' :: SetMiddleRamFail
implicit none
type(CProblem), intent(in) :: v
MiddleRamFail = SetDue(v, ChangeMiddleRamFail)
BopProblems%MiddleRamFail = SetDue(v, ChangeMiddleRamFail)
#ifdef deb
print*, 'MiddleRamFail%ProblemType=', MiddleRamFail%ProblemType
print*, 'MiddleRamFail%StatusType=', MiddleRamFail%StatusType
print*, 'MiddleRamFail%Value=', MiddleRamFail%Value
print*, 'MiddleRamFail%ProblemType=', BopProblems%MiddleRamFail%ProblemType
print*, 'MiddleRamFail%StatusType=', BopProblems%MiddleRamFail%StatusType
print*, 'MiddleRamFail%Value=', BopProblems%MiddleRamFail%Value
#endif
end subroutine

@@ -115,11 +115,11 @@ module CBopProblems
!DEC$ ATTRIBUTES ALIAS: 'SetMiddleRamLeak' :: SetMiddleRamLeak
implicit none
type(CProblem), intent(in) :: v
MiddleRamLeak = SetDue(v, ChangeMiddleRamLeak)
BopProblems%MiddleRamLeak = SetDue(v, ChangeMiddleRamLeak)
#ifdef deb
print*, 'MiddleRamLeak%ProblemType=', MiddleRamLeak%ProblemType
print*, 'MiddleRamLeak%StatusType=', MiddleRamLeak%StatusType
print*, 'MiddleRamLeak%Value=', MiddleRamLeak%Value
print*, 'MiddleRamLeak%ProblemType=', BopProblems%MiddleRamLeak%ProblemType
print*, 'MiddleRamLeak%StatusType=', BopProblems%MiddleRamLeak%StatusType
print*, 'MiddleRamLeak%Value=', BopProblems%MiddleRamLeak%Value
#endif
end subroutine

@@ -128,11 +128,11 @@ module CBopProblems
!DEC$ ATTRIBUTES ALIAS: 'SetLowerRamWash' :: SetLowerRamWash
implicit none
type(CProblem), intent(in) :: v
LowerRamWash = SetDue(v, ChangeLowerRamWash)
BopProblems%LowerRamWash = SetDue(v, ChangeLowerRamWash)
#ifdef deb
print*, 'LowerRamWash%ProblemType=', LowerRamWash%ProblemType
print*, 'LowerRamWash%StatusType=', LowerRamWash%StatusType
print*, 'LowerRamWash%Value=', LowerRamWash%Value
print*, 'LowerRamWash%ProblemType=', BopProblems%LowerRamWash%ProblemType
print*, 'LowerRamWash%StatusType=', BopProblems%LowerRamWash%StatusType
print*, 'LowerRamWash%Value=', BopProblems%LowerRamWash%Value
#endif
end subroutine
@@ -141,11 +141,11 @@ module CBopProblems
!DEC$ ATTRIBUTES ALIAS: 'SetLowerRamFail' :: SetLowerRamFail
implicit none
type(CProblem), intent(in) :: v
LowerRamFail = SetDue(v, ChangeLowerRamFail)
BopProblems%LowerRamFail = SetDue(v, ChangeLowerRamFail)
#ifdef deb
print*, 'LowerRamFail%ProblemType=', LowerRamFail%ProblemType
print*, 'LowerRamFail%StatusType=', LowerRamFail%StatusType
print*, 'LowerRamFail%Value=', LowerRamFail%Value
print*, 'LowerRamFail%ProblemType=', BopProblems%LowerRamFail%ProblemType
print*, 'LowerRamFail%StatusType=', BopProblems%LowerRamFail%StatusType
print*, 'LowerRamFail%Value=', BopProblems%LowerRamFail%Value
#endif
end subroutine

@@ -154,11 +154,11 @@ module CBopProblems
!DEC$ ATTRIBUTES ALIAS: 'SetLowerRamLeak' :: SetLowerRamLeak
implicit none
type(CProblem), intent(in) :: v
LowerRamLeak = SetDue(v, ChangeLowerRamLeak)
BopProblems%LowerRamLeak = SetDue(v, ChangeLowerRamLeak)
#ifdef deb
print*, 'LowerRamLeak%ProblemType=', LowerRamLeak%ProblemType
print*, 'LowerRamLeak%StatusType=', LowerRamLeak%StatusType
print*, 'LowerRamLeak%Value=', LowerRamLeak%Value
print*, 'LowerRamLeak%ProblemType=', BopProblems%LowerRamLeak%ProblemType
print*, 'LowerRamLeak%StatusType=', BopProblems%LowerRamLeak%StatusType
print*, 'LowerRamLeak%Value=', BopProblems%LowerRamLeak%Value
#endif
end subroutine

@@ -167,11 +167,11 @@ module CBopProblems
!DEC$ ATTRIBUTES ALIAS: 'SetAccumulatorPumpFail' :: SetAccumulatorPumpFail
implicit none
type(CProblem), intent(in) :: v
AccumulatorPumpFail = SetDue(v, ChangeAccumulatorPumpFail)
BopProblems%AccumulatorPumpFail = SetDue(v, ChangeAccumulatorPumpFail)
#ifdef deb
print*, 'AccumulatorPumpFail%ProblemType=', AccumulatorPumpFail%ProblemType
print*, 'AccumulatorPumpFail%StatusType=', AccumulatorPumpFail%StatusType
print*, 'AccumulatorPumpFail%Value=', AccumulatorPumpFail%Value
print*, 'AccumulatorPumpFail%ProblemType=', BopProblems%AccumulatorPumpFail%ProblemType
print*, 'AccumulatorPumpFail%StatusType=', BopProblems%AccumulatorPumpFail%StatusType
print*, 'AccumulatorPumpFail%Value=', BopProblems%AccumulatorPumpFail%Value
#endif
end subroutine

@@ -180,11 +180,11 @@ module CBopProblems
!DEC$ ATTRIBUTES ALIAS: 'SetAccumulatorPumpLeak' :: SetAccumulatorPumpLeak
implicit none
type(CProblem), intent(in) :: v
AccumulatorPumpLeak = SetDue(v, ChangeAccumulatorPumpLeak)
BopProblems%AccumulatorPumpLeak = SetDue(v, ChangeAccumulatorPumpLeak)
#ifdef deb
print*, 'AccumulatorPumpLeak%ProblemType=', AccumulatorPumpLeak%ProblemType
print*, 'AccumulatorPumpLeak%StatusType=', AccumulatorPumpLeak%StatusType
print*, 'AccumulatorPumpLeak%Value=', AccumulatorPumpLeak%Value
print*, 'AccumulatorPumpLeak%ProblemType=', BopProblems%AccumulatorPumpLeak%ProblemType
print*, 'AccumulatorPumpLeak%StatusType=', BopProblems%AccumulatorPumpLeak%StatusType
print*, 'AccumulatorPumpLeak%Value=', BopProblems%AccumulatorPumpLeak%Value
#endif
end subroutine

@@ -193,11 +193,11 @@ module CBopProblems
!DEC$ ATTRIBUTES ALIAS: 'SetAccumulatorSystemFail' :: SetAccumulatorSystemFail
implicit none
type(CProblem), intent(in) :: v
AccumulatorSystemFail = SetDue(v, ChangeAccumulatorSystemFail)
BopProblems%AccumulatorSystemFail = SetDue(v, ChangeAccumulatorSystemFail)
#ifdef deb
print*, 'AccumulatorSystemFail%ProblemType=', AccumulatorSystemFail%ProblemType
print*, 'AccumulatorSystemFail%StatusType=', AccumulatorSystemFail%StatusType
print*, 'AccumulatorSystemFail%Value=', AccumulatorSystemFail%Value
print*, 'AccumulatorSystemFail%ProblemType=', BopProblems%AccumulatorSystemFail%ProblemType
print*, 'AccumulatorSystemFail%StatusType=', BopProblems%AccumulatorSystemFail%StatusType
print*, 'AccumulatorSystemFail%Value=', BopProblems%AccumulatorSystemFail%Value
#endif
end subroutine

@@ -206,11 +206,11 @@ module CBopProblems
!DEC$ ATTRIBUTES ALIAS: 'SetAccumulatorSystemLeak' :: SetAccumulatorSystemLeak
implicit none
type(CProblem), intent(in) :: v
AccumulatorSystemLeak = SetDue(v, ChangeAccumulatorSystemLeak)
BopProblems%AccumulatorSystemLeak = SetDue(v, ChangeAccumulatorSystemLeak)
#ifdef deb
print*, 'AccumulatorSystemLeak%ProblemType=', AccumulatorSystemLeak%ProblemType
print*, 'AccumulatorSystemLeak%StatusType=', AccumulatorSystemLeak%StatusType
print*, 'AccumulatorSystemLeak%Value=', AccumulatorSystemLeak%Value
print*, 'AccumulatorSystemLeak%ProblemType=', BopProblems%AccumulatorSystemLeak%ProblemType
print*, 'AccumulatorSystemLeak%StatusType=', BopProblems%AccumulatorSystemLeak%StatusType
print*, 'AccumulatorSystemLeak%Value=', BopProblems%AccumulatorSystemLeak%Value
#endif
end subroutine


+ 233
- 231
CSharp/Problems/CBopProblemsVariables.f90 Datei anzeigen

@@ -1,135 +1,137 @@
module CBopProblemsVariables
use CProblemDifinition
implicit none
public
implicit none
public
! Input vars
type(CProblem) :: AnnularWash
type(CProblem) :: AnnularFail
type(CProblem) :: AnnularLeak
type(CProblem) :: UpperRamWash
type(CProblem) :: UpperRamFail
type(CProblem) :: UpperRamLeak
type(CProblem) :: MiddleRamWash
type(CProblem) :: MiddleRamFail
type(CProblem) :: MiddleRamLeak
type(CProblem) :: LowerRamWash
type(CProblem) :: LowerRamFail
type(CProblem) :: LowerRamLeak
type(CProblem) :: AccumulatorPumpFail
type(CProblem) :: AccumulatorPumpLeak
type(CProblem) :: AccumulatorSystemFail
type(CProblem) :: AccumulatorSystemLeak

procedure (ActionInteger), pointer :: AnnularWashPtr
procedure (ActionInteger), pointer :: AnnularFailPtr
procedure (ActionInteger), pointer :: AnnularLeakPtr
procedure (ActionInteger), pointer :: UpperRamWashPtr
procedure (ActionInteger), pointer :: UpperRamFailPtr
procedure (ActionInteger), pointer :: UpperRamLeakPtr
procedure (ActionInteger), pointer :: MiddleRamWashPtr
procedure (ActionInteger), pointer :: MiddleRamFailPtr
procedure (ActionInteger), pointer :: MiddleRamLeakPtr
procedure (ActionInteger), pointer :: LowerRamWashPtr
procedure (ActionInteger), pointer :: LowerRamFailPtr
procedure (ActionInteger), pointer :: LowerRamLeakPtr
procedure (ActionInteger), pointer :: AccumulatorPumpFailPtr
procedure (ActionInteger), pointer :: AccumulatorPumpLeakPtr
procedure (ActionInteger), pointer :: AccumulatorSystemFailPtr
procedure (ActionInteger), pointer :: AccumulatorSystemLeakPtr
type::BopProblemsType
type(CProblem) :: AnnularWash
type(CProblem) :: AnnularFail
type(CProblem) :: AnnularLeak
type(CProblem) :: UpperRamWash
type(CProblem) :: UpperRamFail
type(CProblem) :: UpperRamLeak
type(CProblem) :: MiddleRamWash
type(CProblem) :: MiddleRamFail
type(CProblem) :: MiddleRamLeak
type(CProblem) :: LowerRamWash
type(CProblem) :: LowerRamFail
type(CProblem) :: LowerRamLeak
type(CProblem) :: AccumulatorPumpFail
type(CProblem) :: AccumulatorPumpLeak
type(CProblem) :: AccumulatorSystemFail
type(CProblem) :: AccumulatorSystemLeak
end type BopProblemsType
type(BopProblemsType)::BopProblems
! procedure (ActionInteger), pointer :: AnnularWashPtr
! procedure (ActionInteger), pointer :: AnnularFailPtr
! procedure (ActionInteger), pointer :: AnnularLeakPtr
! procedure (ActionInteger), pointer :: UpperRamWashPtr
! procedure (ActionInteger), pointer :: UpperRamFailPtr
! procedure (ActionInteger), pointer :: UpperRamLeakPtr
! procedure (ActionInteger), pointer :: MiddleRamWashPtr
! procedure (ActionInteger), pointer :: MiddleRamFailPtr
! procedure (ActionInteger), pointer :: MiddleRamLeakPtr
! procedure (ActionInteger), pointer :: LowerRamWashPtr
! procedure (ActionInteger), pointer :: LowerRamFailPtr
! procedure (ActionInteger), pointer :: LowerRamLeakPtr
! procedure (ActionInteger), pointer :: AccumulatorPumpFailPtr
! procedure (ActionInteger), pointer :: AccumulatorPumpLeakPtr
! procedure (ActionInteger), pointer :: AccumulatorSystemFailPtr
! procedure (ActionInteger), pointer :: AccumulatorSystemLeakPtr
contains
subroutine ProcessBopProblemsDueTime(time)
implicit none
integer :: time
if(AnnularWash%ProblemType == Time_ProblemType) call ProcessDueTime(AnnularWash, ChangeAnnularWash, time)
if(AnnularFail%ProblemType == Time_ProblemType) call ProcessDueTime(AnnularFail, ChangeAnnularFail, time)
if(AnnularLeak%ProblemType == Time_ProblemType) call ProcessDueTime(AnnularLeak, ChangeAnnularLeak, time)
if(UpperRamWash%ProblemType == Time_ProblemType) call ProcessDueTime(UpperRamWash, ChangeUpperRamWash, time)
if(UpperRamFail%ProblemType == Time_ProblemType) call ProcessDueTime(UpperRamFail, ChangeUpperRamFail, time)
if(UpperRamLeak%ProblemType == Time_ProblemType) call ProcessDueTime(UpperRamLeak, ChangeUpperRamLeak, time)
if(MiddleRamWash%ProblemType == Time_ProblemType) call ProcessDueTime(MiddleRamWash, ChangeMiddleRamWash, time)
if(MiddleRamFail%ProblemType == Time_ProblemType) call ProcessDueTime(MiddleRamFail, ChangeMiddleRamFail, time)
if(MiddleRamLeak%ProblemType == Time_ProblemType) call ProcessDueTime(MiddleRamLeak, ChangeMiddleRamLeak, time)
if(LowerRamWash%ProblemType == Time_ProblemType) call ProcessDueTime(LowerRamWash, ChangeLowerRamWash, time)
if(LowerRamFail%ProblemType == Time_ProblemType) call ProcessDueTime(LowerRamFail, ChangeLowerRamFail, time)
if(LowerRamLeak%ProblemType == Time_ProblemType) call ProcessDueTime(LowerRamLeak, ChangeLowerRamLeak, time)
if(AccumulatorPumpFail%ProblemType == Time_ProblemType) call ProcessDueTime(AccumulatorPumpFail, ChangeAccumulatorPumpFail, time)
if(AccumulatorPumpLeak%ProblemType == Time_ProblemType) call ProcessDueTime(AccumulatorPumpLeak, ChangeAccumulatorPumpLeak, time)
if(AccumulatorSystemFail%ProblemType == Time_ProblemType) call ProcessDueTime(AccumulatorSystemFail, ChangeAccumulatorSystemFail, time)
if(AccumulatorSystemLeak%ProblemType == Time_ProblemType) call ProcessDueTime(AccumulatorSystemLeak, ChangeAccumulatorSystemLeak, time)
if(BopProblems%AnnularWash%ProblemType == Time_ProblemType) call ProcessDueTime(BopProblems%AnnularWash, ChangeAnnularWash, time)
if(BopProblems%AnnularFail%ProblemType == Time_ProblemType) call ProcessDueTime(BopProblems%AnnularFail, ChangeAnnularFail, time)
if(BopProblems%AnnularLeak%ProblemType == Time_ProblemType) call ProcessDueTime(BopProblems%AnnularLeak, ChangeAnnularLeak, time)
if(BopProblems%UpperRamWash%ProblemType == Time_ProblemType) call ProcessDueTime(BopProblems%UpperRamWash, ChangeUpperRamWash, time)
if(BopProblems%UpperRamFail%ProblemType == Time_ProblemType) call ProcessDueTime(BopProblems%UpperRamFail, ChangeUpperRamFail, time)
if(BopProblems%UpperRamLeak%ProblemType == Time_ProblemType) call ProcessDueTime(BopProblems%UpperRamLeak, ChangeUpperRamLeak, time)
if(BopProblems%MiddleRamWash%ProblemType == Time_ProblemType) call ProcessDueTime(BopProblems%MiddleRamWash, ChangeMiddleRamWash, time)
if(BopProblems%MiddleRamFail%ProblemType == Time_ProblemType) call ProcessDueTime(BopProblems%MiddleRamFail, ChangeMiddleRamFail, time)
if(BopProblems%MiddleRamLeak%ProblemType == Time_ProblemType) call ProcessDueTime(BopProblems%MiddleRamLeak, ChangeMiddleRamLeak, time)
if(BopProblems%LowerRamWash%ProblemType == Time_ProblemType) call ProcessDueTime(BopProblems%LowerRamWash, ChangeLowerRamWash, time)
if(BopProblems%LowerRamFail%ProblemType == Time_ProblemType) call ProcessDueTime(BopProblems%LowerRamFail, ChangeLowerRamFail, time)
if(BopProblems%LowerRamLeak%ProblemType == Time_ProblemType) call ProcessDueTime(BopProblems%LowerRamLeak, ChangeLowerRamLeak, time)
if(BopProblems%AccumulatorPumpFail%ProblemType == Time_ProblemType) call ProcessDueTime(BopProblems%AccumulatorPumpFail, ChangeAccumulatorPumpFail, time)
if(BopProblems%AccumulatorPumpLeak%ProblemType == Time_ProblemType) call ProcessDueTime(BopProblems%AccumulatorPumpLeak, ChangeAccumulatorPumpLeak, time)
if(BopProblems%AccumulatorSystemFail%ProblemType == Time_ProblemType) call ProcessDueTime(BopProblems%AccumulatorSystemFail, ChangeAccumulatorSystemFail, time)
if(BopProblems%AccumulatorSystemLeak%ProblemType == Time_ProblemType) call ProcessDueTime(BopProblems%AccumulatorSystemLeak, ChangeAccumulatorSystemLeak, time)
end subroutine
subroutine ProcessBopProblemsDuePumpStrokes(strokes)
implicit none
integer :: strokes
if(AnnularWash%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(AnnularWash, ChangeAnnularWash, strokes)
if(AnnularFail%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(AnnularFail, ChangeAnnularFail, strokes)
if(AnnularLeak%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(AnnularLeak, ChangeAnnularLeak, strokes)
if(UpperRamWash%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(UpperRamWash, ChangeUpperRamWash, strokes)
if(UpperRamFail%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(UpperRamFail, ChangeUpperRamFail, strokes)
if(UpperRamLeak%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(UpperRamLeak, ChangeUpperRamLeak, strokes)
if(MiddleRamWash%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(MiddleRamWash, ChangeMiddleRamWash, strokes)
if(MiddleRamFail%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(MiddleRamFail, ChangeMiddleRamFail, strokes)
if(MiddleRamLeak%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(MiddleRamLeak, ChangeMiddleRamLeak, strokes)
if(LowerRamWash%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(LowerRamWash, ChangeLowerRamWash, strokes)
if(LowerRamFail%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(LowerRamFail, ChangeLowerRamFail, strokes)
if(LowerRamLeak%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(LowerRamLeak, ChangeLowerRamLeak, strokes)
if(AccumulatorPumpFail%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(AccumulatorPumpFail, ChangeAccumulatorPumpFail, strokes)
if(AccumulatorPumpLeak%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(AccumulatorPumpLeak, ChangeAccumulatorPumpLeak, strokes)
if(AccumulatorSystemFail%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(AccumulatorSystemFail, ChangeAccumulatorSystemFail, strokes)
if(AccumulatorSystemLeak%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(AccumulatorSystemLeak, ChangeAccumulatorSystemLeak, strokes)
if(BopProblems%AnnularWash%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(BopProblems%AnnularWash, ChangeAnnularWash, strokes)
if(BopProblems%AnnularFail%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(BopProblems%AnnularFail, ChangeAnnularFail, strokes)
if(BopProblems%AnnularLeak%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(BopProblems%AnnularLeak, ChangeAnnularLeak, strokes)
if(BopProblems%UpperRamWash%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(BopProblems%UpperRamWash, ChangeUpperRamWash, strokes)
if(BopProblems%UpperRamFail%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(BopProblems%UpperRamFail, ChangeUpperRamFail, strokes)
if(BopProblems%UpperRamLeak%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(BopProblems%UpperRamLeak, ChangeUpperRamLeak, strokes)
if(BopProblems%MiddleRamWash%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(BopProblems%MiddleRamWash, ChangeMiddleRamWash, strokes)
if(BopProblems%MiddleRamFail%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(BopProblems%MiddleRamFail, ChangeMiddleRamFail, strokes)
if(BopProblems%MiddleRamLeak%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(BopProblems%MiddleRamLeak, ChangeMiddleRamLeak, strokes)
if(BopProblems%LowerRamWash%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(BopProblems%LowerRamWash, ChangeLowerRamWash, strokes)
if(BopProblems%LowerRamFail%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(BopProblems%LowerRamFail, ChangeLowerRamFail, strokes)
if(BopProblems%LowerRamLeak%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(BopProblems%LowerRamLeak, ChangeLowerRamLeak, strokes)
if(BopProblems%AccumulatorPumpFail%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(BopProblems%AccumulatorPumpFail, ChangeAccumulatorPumpFail, strokes)
if(BopProblems%AccumulatorPumpLeak%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(BopProblems%AccumulatorPumpLeak, ChangeAccumulatorPumpLeak, strokes)
if(BopProblems%AccumulatorSystemFail%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(BopProblems%AccumulatorSystemFail, ChangeAccumulatorSystemFail, strokes)
if(BopProblems%AccumulatorSystemLeak%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(BopProblems%AccumulatorSystemLeak, ChangeAccumulatorSystemLeak, strokes)
end subroutine
subroutine ProcessBopProblemsDueVolumePumped(volume)
implicit none
real(8) :: volume
if(AnnularWash%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(AnnularWash, ChangeAnnularWash, volume)
if(AnnularFail%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(AnnularFail, ChangeAnnularFail, volume)
if(AnnularLeak%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(AnnularLeak, ChangeAnnularLeak, volume)
if(UpperRamWash%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(UpperRamWash, ChangeUpperRamWash, volume)
if(UpperRamFail%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(UpperRamFail, ChangeUpperRamFail, volume)
if(UpperRamLeak%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(UpperRamLeak, ChangeUpperRamLeak, volume)
if(MiddleRamWash%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(MiddleRamWash, ChangeMiddleRamWash, volume)
if(MiddleRamFail%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(MiddleRamFail, ChangeMiddleRamFail, volume)
if(MiddleRamLeak%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(MiddleRamLeak, ChangeMiddleRamLeak, volume)
if(LowerRamWash%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(LowerRamWash, ChangeLowerRamWash, volume)
if(LowerRamFail%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(LowerRamFail, ChangeLowerRamFail, volume)
if(LowerRamLeak%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(LowerRamLeak, ChangeLowerRamLeak, volume)
if(AccumulatorPumpFail%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(AccumulatorPumpFail, ChangeAccumulatorPumpFail, volume)
if(AccumulatorPumpLeak%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(AccumulatorPumpLeak, ChangeAccumulatorPumpLeak, volume)
if(AccumulatorSystemFail%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(AccumulatorSystemFail, ChangeAccumulatorSystemFail,volume)
if(AccumulatorSystemLeak%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(AccumulatorSystemLeak, ChangeAccumulatorSystemLeak, volume)
if(BopProblems%AnnularWash%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(BopProblems%AnnularWash, ChangeAnnularWash, volume)
if(BopProblems%AnnularFail%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(BopProblems%AnnularFail, ChangeAnnularFail, volume)
if(BopProblems%AnnularLeak%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(BopProblems%AnnularLeak, ChangeAnnularLeak, volume)
if(BopProblems%UpperRamWash%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(BopProblems%UpperRamWash, ChangeUpperRamWash, volume)
if(BopProblems%UpperRamFail%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(BopProblems%UpperRamFail, ChangeUpperRamFail, volume)
if(BopProblems%UpperRamLeak%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(BopProblems%UpperRamLeak, ChangeUpperRamLeak, volume)
if(BopProblems%MiddleRamWash%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(BopProblems%MiddleRamWash, ChangeMiddleRamWash, volume)
if(BopProblems%MiddleRamFail%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(BopProblems%MiddleRamFail, ChangeMiddleRamFail, volume)
if(BopProblems%MiddleRamLeak%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(BopProblems%MiddleRamLeak, ChangeMiddleRamLeak, volume)
if(BopProblems%LowerRamWash%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(BopProblems%LowerRamWash, ChangeLowerRamWash, volume)
if(BopProblems%LowerRamFail%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(BopProblems%LowerRamFail, ChangeLowerRamFail, volume)
if(BopProblems%LowerRamLeak%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(BopProblems%LowerRamLeak, ChangeLowerRamLeak, volume)
if(BopProblems%AccumulatorPumpFail%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(BopProblems%AccumulatorPumpFail, ChangeAccumulatorPumpFail, volume)
if(BopProblems%AccumulatorPumpLeak%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(BopProblems%AccumulatorPumpLeak, ChangeAccumulatorPumpLeak, volume)
if(BopProblems%AccumulatorSystemFail%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(BopProblems%AccumulatorSystemFail, ChangeAccumulatorSystemFail,volume)
if(BopProblems%AccumulatorSystemLeak%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(BopProblems%AccumulatorSystemLeak, ChangeAccumulatorSystemLeak, volume)
end subroutine
subroutine ProcessBopProblemsDueDistanceDrilled(distance)
implicit none
real(8) :: distance
if(AnnularWash%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(AnnularWash, ChangeAnnularWash, distance)
if(AnnularFail%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(AnnularFail, ChangeAnnularFail, distance)
if(AnnularLeak%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(AnnularLeak, ChangeAnnularLeak, distance)
if(UpperRamWash%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(UpperRamWash, ChangeUpperRamWash, distance)
if(UpperRamFail%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(UpperRamFail, ChangeUpperRamFail, distance)
if(UpperRamLeak%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(UpperRamLeak, ChangeUpperRamLeak, distance)
if(MiddleRamWash%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(MiddleRamWash, ChangeMiddleRamWash, distance)
if(MiddleRamFail%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(MiddleRamFail, ChangeMiddleRamFail, distance)
if(MiddleRamLeak%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(MiddleRamLeak, ChangeMiddleRamLeak, distance)
if(LowerRamWash%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(LowerRamWash, ChangeLowerRamWash, distance)
if(LowerRamFail%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(LowerRamFail, ChangeLowerRamFail, distance)
if(LowerRamLeak%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(LowerRamLeak, ChangeLowerRamLeak, distance)
if(AccumulatorPumpFail%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(AccumulatorPumpFail, ChangeAccumulatorPumpFail, distance)
if(AccumulatorPumpLeak%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(AccumulatorPumpLeak, ChangeAccumulatorPumpLeak, distance)
if(AccumulatorSystemFail%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(AccumulatorSystemFail, ChangeAccumulatorSystemFail, distance)
if(AccumulatorSystemLeak%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(AccumulatorSystemLeak, ChangeAccumulatorSystemLeak, distance)
if(BopProblems%AnnularWash%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(BopProblems%AnnularWash, ChangeAnnularWash, distance)
if(BopProblems%AnnularFail%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(BopProblems%AnnularFail, ChangeAnnularFail, distance)
if(BopProblems%AnnularLeak%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(BopProblems%AnnularLeak, ChangeAnnularLeak, distance)
if(BopProblems%UpperRamWash%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(BopProblems%UpperRamWash, ChangeUpperRamWash, distance)
if(BopProblems%UpperRamFail%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(BopProblems%UpperRamFail, ChangeUpperRamFail, distance)
if(BopProblems%UpperRamLeak%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(BopProblems%UpperRamLeak, ChangeUpperRamLeak, distance)
if(BopProblems%MiddleRamWash%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(BopProblems%MiddleRamWash, ChangeMiddleRamWash, distance)
if(BopProblems%MiddleRamFail%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(BopProblems%MiddleRamFail, ChangeMiddleRamFail, distance)
if(BopProblems%MiddleRamLeak%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(BopProblems%MiddleRamLeak, ChangeMiddleRamLeak, distance)
if(BopProblems%LowerRamWash%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(BopProblems%LowerRamWash, ChangeLowerRamWash, distance)
if(BopProblems%LowerRamFail%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(BopProblems%LowerRamFail, ChangeLowerRamFail, distance)
if(BopProblems%LowerRamLeak%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(BopProblems%LowerRamLeak, ChangeLowerRamLeak, distance)
if(BopProblems%AccumulatorPumpFail%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(BopProblems%AccumulatorPumpFail, ChangeAccumulatorPumpFail, distance)
if(BopProblems%AccumulatorPumpLeak%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(BopProblems%AccumulatorPumpLeak, ChangeAccumulatorPumpLeak, distance)
if(BopProblems%AccumulatorSystemFail%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(BopProblems%AccumulatorSystemFail, ChangeAccumulatorSystemFail, distance)
if(BopProblems%AccumulatorSystemLeak%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(BopProblems%AccumulatorSystemLeak, ChangeAccumulatorSystemLeak, distance)
end subroutine
subroutine ChangeAnnularWash(status)
implicit none
integer, intent (in) :: status
if(associated(AnnularWashPtr)) call AnnularWashPtr(status)
! ! if(associated(AnnularWashPtr)) call AnnularWashPtr(status)
!if(status == Clear_StatusType) print*,'On_AnnularWash_Clear'
!if(status == Executed_StatusType) print*,'On_AnnularWash_Execute'
endsubroutine
@@ -138,7 +140,7 @@ module CBopProblemsVariables
USE VARIABLES
implicit none
integer, intent (in) :: status
if(associated(AnnularFailPtr)) call AnnularFailPtr(status)
! ! if(associated(AnnularFailPtr)) call AnnularFailPtr(status)
if(status == Clear_StatusType) AnnularFailureMalf = 0
if(status == Executed_StatusType) AnnularFailureMalf = 1
endsubroutine
@@ -147,7 +149,7 @@ module CBopProblemsVariables
USE VARIABLES
implicit none
integer, intent (in) :: status
if(associated(AnnularLeakPtr)) call AnnularLeakPtr(status)
! ! if(associated(AnnularLeakPtr)) call AnnularLeakPtr(status)
if(status == Clear_StatusType) AnnularLeakMalf = 0
if(status == Executed_StatusType) AnnularLeakMalf = 1
endsubroutine
@@ -157,7 +159,7 @@ module CBopProblemsVariables
subroutine ChangeUpperRamWash(status)
implicit none
integer, intent (in) :: status
if(associated(UpperRamWashPtr)) call UpperRamWashPtr(status)
! ! if(associated(UpperRamWashPtr)) call UpperRamWashPtr(status)
!if(status == Clear_StatusType) print*,'On_UpperRamWash_Clear'
!if(status == Executed_StatusType) print*,'On_UpperRamWash_Execute'
endsubroutine
@@ -166,7 +168,7 @@ module CBopProblemsVariables
USE VARIABLES
implicit none
integer, intent (in) :: status
if(associated(UpperRamFailPtr)) call UpperRamFailPtr(status)
! ! if(associated(UpperRamFailPtr)) call UpperRamFailPtr(status)
if(status == Clear_StatusType) UpperRamsFailureMalf = 0
if(status == Executed_StatusType) UpperRamsFailureMalf = 1
endsubroutine
@@ -175,7 +177,7 @@ module CBopProblemsVariables
USE VARIABLES
implicit none
integer, intent (in) :: status
if(associated(UpperRamLeakPtr)) call UpperRamLeakPtr(status)
! ! if(associated(UpperRamLeakPtr)) call UpperRamLeakPtr(status)
if(status == Clear_StatusType) UpperRamsLeakMalf = 0
if(status == Executed_StatusType) UpperRamsLeakMalf = 1
endsubroutine
@@ -184,7 +186,7 @@ module CBopProblemsVariables
subroutine ChangeMiddleRamWash(status)
implicit none
integer, intent (in) :: status
if(associated(MiddleRamWashPtr)) call MiddleRamWashPtr(status)
! ! if(associated(MiddleRamWashPtr)) call MiddleRamWashPtr(status)
!if(status == Clear_StatusType) print*,'On_MiddleRamWash_Clear'
!if(status == Executed_StatusType) print*,'On_MiddleRamWash_Execute'
endsubroutine
@@ -193,7 +195,7 @@ module CBopProblemsVariables
USE VARIABLES
implicit none
integer, intent (in) :: status
if(associated(MiddleRamFailPtr)) call MiddleRamFailPtr(status)
! if(associated(MiddleRamFailPtr)) call MiddleRamFailPtr(status)
if(status == Clear_StatusType) MiddleRamsFailureMalf = 0
if(status == Executed_StatusType) MiddleRamsFailureMalf = 1
endsubroutine
@@ -202,7 +204,7 @@ module CBopProblemsVariables
USE VARIABLES
implicit none
integer, intent (in) :: status
if(associated(MiddleRamLeakPtr)) call MiddleRamLeakPtr(status)
! ! if(associated(MiddleRamLeakPtr)) call MiddleRamLeakPtr(status)
if(status == Clear_StatusType) MiddleRamsLeakMalf = 0
if(status == Executed_StatusType) MiddleRamsLeakMalf = 1
endsubroutine
@@ -212,7 +214,7 @@ module CBopProblemsVariables
subroutine ChangeLowerRamWash(status)
implicit none
integer, intent (in) :: status
if(associated(LowerRamWashPtr)) call LowerRamWashPtr(status)
! ! if(associated(LowerRamWashPtr)) call LowerRamWashPtr(status)
!if(status == Clear_StatusType) print*,'On_LowerRamWash_Clear'
!if(status == Executed_StatusType) print*,'On_LowerRamWash_Execute'
endsubroutine
@@ -221,7 +223,7 @@ module CBopProblemsVariables
USE VARIABLES
implicit none
integer, intent (in) :: status
if(associated(LowerRamFailPtr)) call LowerRamFailPtr(status)
! ! if(associated(LowerRamFailPtr)) call LowerRamFailPtr(status)
if(status == Clear_StatusType) LowerRamsFailureMalf = 0
if(status == Executed_StatusType) LowerRamsFailureMalf = 1
endsubroutine
@@ -230,7 +232,7 @@ module CBopProblemsVariables
USE VARIABLES
implicit none
integer, intent (in) :: status
if(associated(LowerRamLeakPtr)) call LowerRamLeakPtr(status)
! if(associated(LowerRamLeakPtr)) call LowerRamLeakPtr(status)
if(status == Clear_StatusType) LowerRamsLeakMalf = 0
if(status == Executed_StatusType) LowerRamsLeakMalf = 1
endsubroutine
@@ -239,7 +241,7 @@ module CBopProblemsVariables
USE VARIABLES
implicit none
integer, intent (in) :: status
if(associated(AccumulatorPumpFailPtr)) call AccumulatorPumpFailPtr(status)
! if(associated(AccumulatorPumpFailPtr)) call AccumulatorPumpFailPtr(status)
if(status == Clear_StatusType) AccPupmsFailMalf = 0
if(status == Executed_StatusType) AccPupmsFailMalf = 1
endsubroutine
@@ -247,7 +249,7 @@ module CBopProblemsVariables
subroutine ChangeAccumulatorPumpLeak(status)
implicit none
integer, intent (in) :: status
if(associated(AccumulatorPumpLeakPtr)) call AccumulatorPumpLeakPtr(status)
! if(associated(AccumulatorPumpLeakPtr)) call AccumulatorPumpLeakPtr(status)
!if(status == Clear_StatusType) print*,'On_AccumulatorPumpLeak_Clear'
!if(status == Executed_StatusType) print*,'On_AccumulatorPumpLeak_Execute'
endsubroutine
@@ -255,7 +257,7 @@ module CBopProblemsVariables
subroutine ChangeAccumulatorSystemFail(status)
implicit none
integer, intent (in) :: status
if(associated(AccumulatorSystemFailPtr)) call AccumulatorSystemFailPtr(status)
! if(associated(AccumulatorSystemFailPtr)) call AccumulatorSystemFailPtr(status)
!if(status == Clear_StatusType) print*,'On_AccumulatorSystemFail_Clear'
!if(status == Executed_StatusType) print*,'On_AccumulatorSystemFail_Execute'
endsubroutine
@@ -263,7 +265,7 @@ module CBopProblemsVariables
subroutine ChangeAccumulatorSystemLeak(status)
implicit none
integer, intent (in) :: status
if(associated(AccumulatorSystemLeakPtr)) call AccumulatorSystemLeakPtr(status)
! if(associated(AccumulatorSystemLeakPtr)) call AccumulatorSystemLeakPtr(status)
!if(status == Clear_StatusType) print*,'On_AccumulatorSystemLeak_Clear'
!if(status == Executed_StatusType) print*,'On_AccumulatorSystemLeak_Execute'
endsubroutine
@@ -279,136 +281,136 @@ module CBopProblemsVariables
subroutine SubscribeAnnularWash(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeAnnularWash
!DEC$ ATTRIBUTES ALIAS: 'SubscribeAnnularWash' :: SubscribeAnnularWash
implicit none
procedure (ActionInteger) :: v
AnnularWashPtr => v
end subroutine
! subroutine SubscribeAnnularWash(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeAnnularWash
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeAnnularWash' :: SubscribeAnnularWash
! implicit none
! procedure (ActionInteger) :: v
! AnnularWashPtr => v
! end subroutine
subroutine SubscribeAnnularFail(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeAnnularFail
!DEC$ ATTRIBUTES ALIAS: 'SubscribeAnnularFail' :: SubscribeAnnularFail
implicit none
procedure (ActionInteger) :: v
AnnularFailPtr => v
end subroutine
! subroutine SubscribeAnnularFail(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeAnnularFail
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeAnnularFail' :: SubscribeAnnularFail
! implicit none
! procedure (ActionInteger) :: v
! AnnularFailPtr => v
! end subroutine

subroutine SubscribeAnnularLeak(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeAnnularLeak
!DEC$ ATTRIBUTES ALIAS: 'SubscribeAnnularLeak' :: SubscribeAnnularLeak
implicit none
procedure (ActionInteger) :: v
AnnularLeakPtr => v
end subroutine
! subroutine SubscribeAnnularLeak(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeAnnularLeak
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeAnnularLeak' :: SubscribeAnnularLeak
! implicit none
! procedure (ActionInteger) :: v
! AnnularLeakPtr => v
! end subroutine

subroutine SubscribeUpperRamWash(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeUpperRamWash
!DEC$ ATTRIBUTES ALIAS: 'SubscribeUpperRamWash' :: SubscribeUpperRamWash
implicit none
procedure (ActionInteger) :: v
UpperRamWashPtr => v
end subroutine
subroutine SubscribeUpperRamFail(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeUpperRamFail
!DEC$ ATTRIBUTES ALIAS: 'SubscribeUpperRamFail' :: SubscribeUpperRamFail
implicit none
procedure (ActionInteger) :: v
UpperRamFailPtr => v
end subroutine
! subroutine SubscribeUpperRamWash(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeUpperRamWash
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeUpperRamWash' :: SubscribeUpperRamWash
! implicit none
! procedure (ActionInteger) :: v
! UpperRamWashPtr => v
! end subroutine
! subroutine SubscribeUpperRamFail(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeUpperRamFail
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeUpperRamFail' :: SubscribeUpperRamFail
! implicit none
! procedure (ActionInteger) :: v
! UpperRamFailPtr => v
! end subroutine

subroutine SubscribeUpperRamLeak(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeUpperRamLeak
!DEC$ ATTRIBUTES ALIAS: 'SubscribeUpperRamLeak' :: SubscribeUpperRamLeak
implicit none
procedure (ActionInteger) :: v
UpperRamLeakPtr => v
end subroutine
! subroutine SubscribeUpperRamLeak(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeUpperRamLeak
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeUpperRamLeak' :: SubscribeUpperRamLeak
! implicit none
! procedure (ActionInteger) :: v
! UpperRamLeakPtr => v
! end subroutine

subroutine SubscribeMiddleRamWash(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeMiddleRamWash
!DEC$ ATTRIBUTES ALIAS: 'SubscribeMiddleRamWash' :: SubscribeMiddleRamWash
implicit none
procedure (ActionInteger) :: v
MiddleRamWashPtr => v
end subroutine
subroutine SubscribeMiddleRamFail(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeMiddleRamFail
!DEC$ ATTRIBUTES ALIAS: 'SubscribeMiddleRamFail' :: SubscribeMiddleRamFail
implicit none
procedure (ActionInteger) :: v
MiddleRamFailPtr => v
end subroutine
! subroutine SubscribeMiddleRamWash(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeMiddleRamWash
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeMiddleRamWash' :: SubscribeMiddleRamWash
! implicit none
! procedure (ActionInteger) :: v
! MiddleRamWashPtr => v
! end subroutine
! subroutine SubscribeMiddleRamFail(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeMiddleRamFail
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeMiddleRamFail' :: SubscribeMiddleRamFail
! implicit none
! procedure (ActionInteger) :: v
! MiddleRamFailPtr => v
! end subroutine

subroutine SubscribeMiddleRamLeak(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeMiddleRamLeak
!DEC$ ATTRIBUTES ALIAS: 'SubscribeMiddleRamLeak' :: SubscribeMiddleRamLeak
implicit none
procedure (ActionInteger) :: v
MiddleRamLeakPtr => v
end subroutine
! subroutine SubscribeMiddleRamLeak(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeMiddleRamLeak
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeMiddleRamLeak' :: SubscribeMiddleRamLeak
! implicit none
! procedure (ActionInteger) :: v
! MiddleRamLeakPtr => v
! end subroutine

subroutine SubscribeLowerRamWash(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeLowerRamWash
!DEC$ ATTRIBUTES ALIAS: 'SubscribeLowerRamWash' :: SubscribeLowerRamWash
implicit none
procedure (ActionInteger) :: v
LowerRamWashPtr => v
end subroutine
subroutine SubscribeLowerRamFail(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeLowerRamFail
!DEC$ ATTRIBUTES ALIAS: 'SubscribeLowerRamFail' :: SubscribeLowerRamFail
implicit none
procedure (ActionInteger) :: v
LowerRamFailPtr => v
end subroutine
! subroutine SubscribeLowerRamWash(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeLowerRamWash
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeLowerRamWash' :: SubscribeLowerRamWash
! implicit none
! procedure (ActionInteger) :: v
! LowerRamWashPtr => v
! end subroutine
! subroutine SubscribeLowerRamFail(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeLowerRamFail
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeLowerRamFail' :: SubscribeLowerRamFail
! implicit none
! procedure (ActionInteger) :: v
! LowerRamFailPtr => v
! end subroutine

subroutine SubscribeLowerRamLeak(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeLowerRamLeak
!DEC$ ATTRIBUTES ALIAS: 'SubscribeLowerRamLeak' :: SubscribeLowerRamLeak
implicit none
procedure (ActionInteger) :: v
LowerRamLeakPtr => v
end subroutine
! subroutine SubscribeLowerRamLeak(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeLowerRamLeak
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeLowerRamLeak' :: SubscribeLowerRamLeak
! implicit none
! procedure (ActionInteger) :: v
! LowerRamLeakPtr => v
! end subroutine

subroutine SubscribeAccumulatorPumpFail(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeAccumulatorPumpFail
!DEC$ ATTRIBUTES ALIAS: 'SubscribeAccumulatorPumpFail' :: SubscribeAccumulatorPumpFail
implicit none
procedure (ActionInteger) :: v
AccumulatorPumpFailPtr => v
end subroutine
! subroutine SubscribeAccumulatorPumpFail(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeAccumulatorPumpFail
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeAccumulatorPumpFail' :: SubscribeAccumulatorPumpFail
! implicit none
! procedure (ActionInteger) :: v
! AccumulatorPumpFailPtr => v
! end subroutine

subroutine SubscribeAccumulatorPumpLeak(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeAccumulatorPumpLeak
!DEC$ ATTRIBUTES ALIAS: 'SubscribeAccumulatorPumpLeak' :: SubscribeAccumulatorPumpLeak
implicit none
procedure (ActionInteger) :: v
AccumulatorPumpLeakPtr => v
end subroutine
! subroutine SubscribeAccumulatorPumpLeak(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeAccumulatorPumpLeak
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeAccumulatorPumpLeak' :: SubscribeAccumulatorPumpLeak
! implicit none
! procedure (ActionInteger) :: v
! AccumulatorPumpLeakPtr => v
! end subroutine

subroutine SubscribeAccumulatorSystemFail(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeAccumulatorSystemFail
!DEC$ ATTRIBUTES ALIAS: 'SubscribeAccumulatorSystemFail' :: SubscribeAccumulatorSystemFail
implicit none
procedure (ActionInteger) :: v
AccumulatorSystemFailPtr => v
end subroutine
! subroutine SubscribeAccumulatorSystemFail(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeAccumulatorSystemFail
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeAccumulatorSystemFail' :: SubscribeAccumulatorSystemFail
! implicit none
! procedure (ActionInteger) :: v
! AccumulatorSystemFailPtr => v
! end subroutine

subroutine SubscribeAccumulatorSystemLeak(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeAccumulatorSystemLeak
!DEC$ ATTRIBUTES ALIAS: 'SubscribeAccumulatorSystemLeak' :: SubscribeAccumulatorSystemLeak
implicit none
procedure (ActionInteger) :: v
AccumulatorSystemLeakPtr => v
end subroutine
! subroutine SubscribeAccumulatorSystemLeak(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeAccumulatorSystemLeak
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeAccumulatorSystemLeak' :: SubscribeAccumulatorSystemLeak
! implicit none
! procedure (ActionInteger) :: v
! AccumulatorSystemLeakPtr => v
! end subroutine





+ 60
- 60
CSharp/Problems/CChokeProblems.f90 Datei anzeigen

@@ -10,11 +10,11 @@ module CChokeProblems
!DEC$ ATTRIBUTES ALIAS: 'SetHydraulicChoke1Plugged' :: SetHydraulicChoke1Plugged
implicit none
type(CProblem), intent(in) :: v
HydraulicChoke1Plugged = SetDue(v, ChangeHydraulicChoke1Plugged)
ChokeProblems%HydraulicChoke1Plugged = SetDue(v, ChangeHydraulicChoke1Plugged)
#ifdef deb
print*, 'HydraulicChoke1Plugged%ProblemType=', HydraulicChoke1Plugged%ProblemType
print*, 'HydraulicChoke1Plugged%StatusType=', HydraulicChoke1Plugged%StatusType
print*, 'HydraulicChoke1Plugged%Value=', HydraulicChoke1Plugged%Value
print*, 'HydraulicChoke1Plugged%ProblemType=', ChokeProblems%HydraulicChoke1Plugged%ProblemType
print*, 'HydraulicChoke1Plugged%StatusType=', ChokeProblems%HydraulicChoke1Plugged%StatusType
print*, 'HydraulicChoke1Plugged%Value=', ChokeProblems%HydraulicChoke1Plugged%Value
#endif
end subroutine

@@ -23,11 +23,11 @@ module CChokeProblems
!DEC$ ATTRIBUTES ALIAS: 'SetHydraulicChoke1Fail' :: SetHydraulicChoke1Fail
implicit none
type(CProblem), intent(in) :: v
HydraulicChoke1Fail = SetDue(v, ChangeHydraulicChoke1Fail)
ChokeProblems%HydraulicChoke1Fail = SetDue(v, ChangeHydraulicChoke1Fail)
#ifdef deb
print*, 'HydraulicChoke1Fail%ProblemType=', HydraulicChoke1Fail%ProblemType
print*, 'HydraulicChoke1Fail%StatusType=', HydraulicChoke1Fail%StatusType
print*, 'HydraulicChoke1Fail%Value=', HydraulicChoke1Fail%Value
print*, 'HydraulicChoke1Fail%ProblemType=', ChokeProblems%HydraulicChoke1Fail%ProblemType
print*, 'HydraulicChoke1Fail%StatusType=', ChokeProblems%HydraulicChoke1Fail%StatusType
print*, 'HydraulicChoke1Fail%Value=', ChokeProblems%HydraulicChoke1Fail%Value
#endif
end subroutine

@@ -36,11 +36,11 @@ module CChokeProblems
!DEC$ ATTRIBUTES ALIAS: 'SetHydraulicChoke1Washout' :: SetHydraulicChoke1Washout
implicit none
type(CProblem), intent(in) :: v
HydraulicChoke1Washout = SetDue(v, ChangeHydraulicChoke1Washout)
ChokeProblems%HydraulicChoke1Washout = SetDue(v, ChangeHydraulicChoke1Washout)
#ifdef deb
print*, 'HydraulicChoke1Washout%ProblemType=', HydraulicChoke1Washout%ProblemType
print*, 'HydraulicChoke1Washout%StatusType=', HydraulicChoke1Washout%StatusType
print*, 'HydraulicChoke1Washout%Value=', HydraulicChoke1Washout%Value
print*, 'HydraulicChoke1Washout%ProblemType=', ChokeProblems%HydraulicChoke1Washout%ProblemType
print*, 'HydraulicChoke1Washout%StatusType=', ChokeProblems%HydraulicChoke1Washout%StatusType
print*, 'HydraulicChoke1Washout%Value=', ChokeProblems%HydraulicChoke1Washout%Value
#endif
end subroutine

@@ -49,9 +49,9 @@ module CChokeProblems
!DEC$ ATTRIBUTES ALIAS: 'SetHydraulicChoke1PluggedPercent' :: SetHydraulicChoke1PluggedPercent
implicit none
integer, intent(in) :: v
HydraulicChoke1PluggedPercent = v
ChokeProblems%HydraulicChoke1PluggedPercent = v
#ifdef deb
print*, 'HydraulicChoke1PluggedPercent=', HydraulicChoke1PluggedPercent
print*, 'HydraulicChoke1PluggedPercent=', ChokeProblems%HydraulicChoke1PluggedPercent
#endif
end subroutine

@@ -60,11 +60,11 @@ module CChokeProblems
!DEC$ ATTRIBUTES ALIAS: 'SetHydraulicChoke2Plugged' :: SetHydraulicChoke2Plugged
implicit none
type(CProblem), intent(in) :: v
HydraulicChoke2Plugged = SetDue(v, ChangeHydraulicChoke2Plugged)
ChokeProblems%HydraulicChoke2Plugged = SetDue(v, ChangeHydraulicChoke2Plugged)
#ifdef deb
print*, 'HydraulicChoke2Plugged%ProblemType=', HydraulicChoke2Plugged%ProblemType
print*, 'HydraulicChoke2Plugged%StatusType=', HydraulicChoke2Plugged%StatusType
print*, 'HydraulicChoke2Plugged%Value=', HydraulicChoke2Plugged%Value
print*, 'HydraulicChoke2Plugged%ProblemType=', ChokeProblems%HydraulicChoke2Plugged%ProblemType
print*, 'HydraulicChoke2Plugged%StatusType=', ChokeProblems%HydraulicChoke2Plugged%StatusType
print*, 'HydraulicChoke2Plugged%Value=', ChokeProblems%HydraulicChoke2Plugged%Value
#endif
end subroutine

@@ -73,11 +73,11 @@ module CChokeProblems
!DEC$ ATTRIBUTES ALIAS: 'SetHydraulicChoke2Fail' :: SetHydraulicChoke2Fail
implicit none
type(CProblem), intent(in) :: v
HydraulicChoke2Fail = SetDue(v, ChangeHydraulicChoke2Fail)
ChokeProblems%HydraulicChoke2Fail = SetDue(v, ChangeHydraulicChoke2Fail)
#ifdef deb
print*, 'HydraulicChoke2Fail%ProblemType=', HydraulicChoke2Fail%ProblemType
print*, 'HydraulicChoke2Fail%StatusType=', HydraulicChoke2Fail%StatusType
print*, 'HydraulicChoke2Fail%Value=', HydraulicChoke2Fail%Value
print*, 'HydraulicChoke2Fail%ProblemType=', ChokeProblems%HydraulicChoke2Fail%ProblemType
print*, 'HydraulicChoke2Fail%StatusType=', ChokeProblems%HydraulicChoke2Fail%StatusType
print*, 'HydraulicChoke2Fail%Value=', ChokeProblems%HydraulicChoke2Fail%Value
#endif
end subroutine

@@ -86,11 +86,11 @@ module CChokeProblems
!DEC$ ATTRIBUTES ALIAS: 'SetHydraulicChoke2Washout' :: SetHydraulicChoke2Washout
implicit none
type(CProblem), intent(in) :: v
HydraulicChoke2Washout = SetDue(v, ChangeHydraulicChoke2Washout)
ChokeProblems%HydraulicChoke2Washout = SetDue(v, ChangeHydraulicChoke2Washout)
#ifdef deb
print*, 'HydraulicChoke2Washout%ProblemType=', HydraulicChoke2Washout%ProblemType
print*, 'HydraulicChoke2Washout%StatusType=', HydraulicChoke2Washout%StatusType
print*, 'HydraulicChoke2Washout%Value=', HydraulicChoke2Washout%Value
print*, 'HydraulicChoke2Washout%ProblemType=', ChokeProblems%HydraulicChoke2Washout%ProblemType
print*, 'HydraulicChoke2Washout%StatusType=', ChokeProblems%HydraulicChoke2Washout%StatusType
print*, 'HydraulicChoke2Washout%Value=', ChokeProblems%HydraulicChoke2Washout%Value
#endif
end subroutine

@@ -99,9 +99,9 @@ module CChokeProblems
!DEC$ ATTRIBUTES ALIAS: 'SetHydraulicChoke2PluggedPercent' :: SetHydraulicChoke2PluggedPercent
implicit none
integer, intent(in) :: v
HydraulicChoke2PluggedPercent = v
ChokeProblems%HydraulicChoke2PluggedPercent = v
#ifdef deb
print*, 'HydraulicChoke2PluggedPercent=', HydraulicChoke2PluggedPercent
print*, 'HydraulicChoke2PluggedPercent=', ChokeProblems%HydraulicChoke2PluggedPercent
#endif
end subroutine

@@ -110,11 +110,11 @@ module CChokeProblems
!DEC$ ATTRIBUTES ALIAS: 'SetManualChoke1Plugged' :: SetManualChoke1Plugged
implicit none
type(CProblem), intent(in) :: v
ManualChoke1Plugged = SetDue(v, ChangeManualChoke1Plugged)
ChokeProblems%ManualChoke1Plugged = SetDue(v, ChangeManualChoke1Plugged)
#ifdef deb
print*, 'ManualChoke1Plugged%ProblemType=', ManualChoke1Plugged%ProblemType
print*, 'ManualChoke1Plugged%StatusType=', ManualChoke1Plugged%StatusType
print*, 'ManualChoke1Plugged%Value=', ManualChoke1Plugged%Value
print*, 'ManualChoke1Plugged%ProblemType=', ChokeProblems%ManualChoke1Plugged%ProblemType
print*, 'ManualChoke1Plugged%StatusType=', ChokeProblems%ManualChoke1Plugged%StatusType
print*, 'ManualChoke1Plugged%Value=', ChokeProblems%ManualChoke1Plugged%Value
#endif
end subroutine

@@ -123,11 +123,11 @@ module CChokeProblems
!DEC$ ATTRIBUTES ALIAS: 'SetManualChoke1Fail' :: SetManualChoke1Fail
implicit none
type(CProblem), intent(in) :: v
ManualChoke1Fail = SetDue(v, ChangeManualChoke1Fail)
ChokeProblems%ManualChoke1Fail = SetDue(v, ChangeManualChoke1Fail)
#ifdef deb
print*, 'ManualChoke1Fail%ProblemType=', ManualChoke1Fail%ProblemType
print*, 'ManualChoke1Fail%StatusType=', ManualChoke1Fail%StatusType
print*, 'ManualChoke1Fail%Value=', ManualChoke1Fail%Value
print*, 'ManualChoke1Fail%ProblemType=', ChokeProblems%ManualChoke1Fail%ProblemType
print*, 'ManualChoke1Fail%StatusType=', ChokeProblems%ManualChoke1Fail%StatusType
print*, 'ManualChoke1Fail%Value=', ChokeProblems%ManualChoke1Fail%Value
#endif
end subroutine

@@ -136,11 +136,11 @@ module CChokeProblems
!DEC$ ATTRIBUTES ALIAS: 'SetManualChoke1Washout' :: SetManualChoke1Washout
implicit none
type(CProblem), intent(in) :: v
ManualChoke1Washout = SetDue(v, ChangeManualChoke1Washout)
ChokeProblems%ManualChoke1Washout = SetDue(v, ChangeManualChoke1Washout)
#ifdef deb
print*, 'ManualChoke1Washout%ProblemType=', ManualChoke1Washout%ProblemType
print*, 'ManualChoke1Washout%StatusType=', ManualChoke1Washout%StatusType
print*, 'ManualChoke1Washout%Value=', ManualChoke1Washout%Value
print*, 'ManualChoke1Washout%ProblemType=', ChokeProblems%ManualChoke1Washout%ProblemType
print*, 'ManualChoke1Washout%StatusType=', ChokeProblems%ManualChoke1Washout%StatusType
print*, 'ManualChoke1Washout%Value=', ChokeProblems%ManualChoke1Washout%Value
#endif
end subroutine

@@ -149,9 +149,9 @@ module CChokeProblems
!DEC$ ATTRIBUTES ALIAS: 'SetManualChoke1PluggedPercent' :: SetManualChoke1PluggedPercent
implicit none
integer, intent(in) :: v
ManualChoke1PluggedPercent = v
ChokeProblems%ManualChoke1PluggedPercent = v
#ifdef deb
print*, 'ManualChoke1PluggedPercent=', ManualChoke1PluggedPercent
print*, 'ManualChoke1PluggedPercent=', ChokeProblems%ManualChoke1PluggedPercent
#endif
end subroutine

@@ -160,11 +160,11 @@ module CChokeProblems
!DEC$ ATTRIBUTES ALIAS: 'SetManualChoke2Plugged' :: SetManualChoke2Plugged
implicit none
type(CProblem), intent(in) :: v
ManualChoke2Plugged = SetDue(v, ChangeManualChoke2Plugged)
ChokeProblems%ManualChoke2Plugged = SetDue(v, ChangeManualChoke2Plugged)
#ifdef deb
print*, 'ManualChoke2Plugged%ProblemType=', ManualChoke2Plugged%ProblemType
print*, 'ManualChoke2Plugged%StatusType=', ManualChoke2Plugged%StatusType
print*, 'ManualChoke2Plugged%Value=', ManualChoke2Plugged%Value
print*, 'ManualChoke2Plugged%ProblemType=', ChokeProblems%ManualChoke2Plugged%ProblemType
print*, 'ManualChoke2Plugged%StatusType=', ChokeProblems%ManualChoke2Plugged%StatusType
print*, 'ManualChoke2Plugged%Value=', ChokeProblems%ManualChoke2Plugged%Value
#endif
end subroutine

@@ -173,11 +173,11 @@ module CChokeProblems
!DEC$ ATTRIBUTES ALIAS: 'SetManualChoke2Fail' :: SetManualChoke2Fail
implicit none
type(CProblem), intent(in) :: v
ManualChoke2Fail = SetDue(v, ChangeManualChoke2Fail)
ChokeProblems%ManualChoke2Fail = SetDue(v, ChangeManualChoke2Fail)
#ifdef deb
print*, 'ManualChoke2Fail%ProblemType=', ManualChoke2Fail%ProblemType
print*, 'ManualChoke2Fail%StatusType=', ManualChoke2Fail%StatusType
print*, 'ManualChoke2Fail%Value=', ManualChoke2Fail%Value
print*, 'ManualChoke2Fail%ProblemType=', ChokeProblems%ManualChoke2Fail%ProblemType
print*, 'ManualChoke2Fail%StatusType=', ChokeProblems%ManualChoke2Fail%StatusType
print*, 'ManualChoke2Fail%Value=', ChokeProblems%ManualChoke2Fail%Value
#endif
end subroutine

@@ -186,11 +186,11 @@ module CChokeProblems
!DEC$ ATTRIBUTES ALIAS: 'SetManualChoke2Washout' :: SetManualChoke2Washout
implicit none
type(CProblem), intent(in) :: v
ManualChoke2Washout = SetDue(v, ChangeManualChoke2Washout)
ChokeProblems%ManualChoke2Washout = SetDue(v, ChangeManualChoke2Washout)
#ifdef deb
print*, 'ManualChoke2Washout%ProblemType=', ManualChoke2Washout%ProblemType
print*, 'ManualChoke2Washout%StatusType=', ManualChoke2Washout%StatusType
print*, 'ManualChoke2Washout%Value=', ManualChoke2Washout%Value
print*, 'ManualChoke2Washout%ProblemType=', ChokeProblems%ManualChoke2Washout%ProblemType
print*, 'ManualChoke2Washout%StatusType=', ChokeProblems%ManualChoke2Washout%StatusType
print*, 'ManualChoke2Washout%Value=', ChokeProblems%ManualChoke2Washout%Value
#endif
end subroutine

@@ -199,9 +199,9 @@ module CChokeProblems
!DEC$ ATTRIBUTES ALIAS: 'SetManualChoke2PluggedPercent' :: SetManualChoke2PluggedPercent
implicit none
integer, intent(in) :: v
ManualChoke2PluggedPercent = v
ChokeProblems%ManualChoke2PluggedPercent = v
#ifdef deb
print*, 'ManualChoke2PluggedPercent=', ManualChoke2PluggedPercent
print*, 'ManualChoke2PluggedPercent=', ChokeProblems%ManualChoke2PluggedPercent
#endif
end subroutine

@@ -210,11 +210,11 @@ module CChokeProblems
!DEC$ ATTRIBUTES ALIAS: 'SetChokePanelAirFail' :: SetChokePanelAirFail
implicit none
type(CProblem), intent(in) :: v
ChokePanelAirFail = SetDue(v, ChangeChokePanelAirFail)
ChokeProblems%ChokePanelAirFail = SetDue(v, ChangeChokePanelAirFail)
#ifdef deb
print*, 'ChokePanelAirFail%ProblemType=', ChokePanelAirFail%ProblemType
print*, 'ChokePanelAirFail%StatusType=', ChokePanelAirFail%StatusType
print*, 'ChokePanelAirFail%Value=', ChokePanelAirFail%Value
print*, 'ChokePanelAirFail%ProblemType=', ChokeProblems%ChokePanelAirFail%ProblemType
print*, 'ChokePanelAirFail%StatusType=', ChokeProblems%ChokePanelAirFail%StatusType
print*, 'ChokePanelAirFail%Value=', ChokeProblems%ChokePanelAirFail%Value
#endif
end subroutine


+ 189
- 187
CSharp/Problems/CChokeProblemsVariables.f90 Datei anzeigen

@@ -5,110 +5,112 @@ module CChokeProblemsVariables
public
! Input vars
type(CProblem) :: HydraulicChoke1Plugged
type(CProblem) :: HydraulicChoke1Fail
type(CProblem) :: HydraulicChoke1Washout
integer :: HydraulicChoke1PluggedPercent
type(CProblem) :: HydraulicChoke2Plugged
type(CProblem) :: HydraulicChoke2Fail
type(CProblem) :: HydraulicChoke2Washout
integer :: HydraulicChoke2PluggedPercent
type(CProblem) :: ManualChoke1Plugged
type(CProblem) :: ManualChoke1Fail
type(CProblem) :: ManualChoke1Washout
integer :: ManualChoke1PluggedPercent
type(CProblem) :: ManualChoke2Plugged
type(CProblem) :: ManualChoke2Fail
type(CProblem) :: ManualChoke2Washout
integer :: ManualChoke2PluggedPercent
type(CProblem) :: ChokePanelAirFail

procedure (ActionInteger), pointer :: HydraulicChoke1PluggedPtr
procedure (ActionInteger), pointer :: HydraulicChoke1FailPtr
procedure (ActionInteger), pointer :: HydraulicChoke1WashoutPtr
procedure (ActionInteger), pointer :: HydraulicChoke2PluggedPtr
procedure (ActionInteger), pointer :: HydraulicChoke2FailPtr
procedure (ActionInteger), pointer :: HydraulicChoke2WashoutPtr
procedure (ActionInteger), pointer :: ManualChoke1PluggedPtr
procedure (ActionInteger), pointer :: ManualChoke1FailPtr
procedure (ActionInteger), pointer :: ManualChoke1WashoutPtr
procedure (ActionInteger), pointer :: ManualChoke2PluggedPtr
procedure (ActionInteger), pointer :: ManualChoke2FailPtr
procedure (ActionInteger), pointer :: ManualChoke2WashoutPtr
procedure (ActionInteger), pointer :: ChokePanelAirFailPtr
type:: ChokeProblemsType
type(CProblem) :: HydraulicChoke1Plugged
type(CProblem) :: HydraulicChoke1Fail
type(CProblem) :: HydraulicChoke1Washout
integer :: HydraulicChoke1PluggedPercent
type(CProblem) :: HydraulicChoke2Plugged
type(CProblem) :: HydraulicChoke2Fail
type(CProblem) :: HydraulicChoke2Washout
integer :: HydraulicChoke2PluggedPercent
type(CProblem) :: ManualChoke1Plugged
type(CProblem) :: ManualChoke1Fail
type(CProblem) :: ManualChoke1Washout
integer :: ManualChoke1PluggedPercent
type(CProblem) :: ManualChoke2Plugged
type(CProblem) :: ManualChoke2Fail
type(CProblem) :: ManualChoke2Washout
integer :: ManualChoke2PluggedPercent
type(CProblem) :: ChokePanelAirFail
end type ChokeProblemsType
type(ChokeProblemsType)::ChokeProblems
! procedure (ActionInteger), pointer :: HydraulicChoke1PluggedPtr
! procedure (ActionInteger), pointer :: HydraulicChoke1FailPtr
! procedure (ActionInteger), pointer :: HydraulicChoke1WashoutPtr
! procedure (ActionInteger), pointer :: HydraulicChoke2PluggedPtr
! procedure (ActionInteger), pointer :: HydraulicChoke2FailPtr
! procedure (ActionInteger), pointer :: HydraulicChoke2WashoutPtr
! procedure (ActionInteger), pointer :: ManualChoke1PluggedPtr
! procedure (ActionInteger), pointer :: ManualChoke1FailPtr
! procedure (ActionInteger), pointer :: ManualChoke1WashoutPtr
! procedure (ActionInteger), pointer :: ManualChoke2PluggedPtr
! procedure (ActionInteger), pointer :: ManualChoke2FailPtr
! procedure (ActionInteger), pointer :: ManualChoke2WashoutPtr
! procedure (ActionInteger), pointer :: ChokePanelAirFailPtr
contains
subroutine ProcessChokeProblemsDueTime(time)
implicit none
integer :: time
if(HydraulicChoke1Plugged%ProblemType == Time_ProblemType) call ProcessDueTime(HydraulicChoke1Plugged, ChangeHydraulicChoke1Plugged, time)
if(HydraulicChoke1Fail%ProblemType == Time_ProblemType) call ProcessDueTime(HydraulicChoke1Fail, ChangeHydraulicChoke1Fail, time)
if(HydraulicChoke1Washout%ProblemType == Time_ProblemType) call ProcessDueTime(HydraulicChoke1Washout, ChangeHydraulicChoke1Washout, time)
if(HydraulicChoke2Plugged%ProblemType == Time_ProblemType) call ProcessDueTime(HydraulicChoke2Plugged, ChangeHydraulicChoke2Plugged, time)
if(HydraulicChoke2Fail%ProblemType == Time_ProblemType) call ProcessDueTime(HydraulicChoke2Fail, ChangeHydraulicChoke2Fail, time)
if(HydraulicChoke2Washout%ProblemType == Time_ProblemType) call ProcessDueTime(HydraulicChoke2Washout, ChangeHydraulicChoke2Washout, time)
if(ManualChoke1Plugged%ProblemType == Time_ProblemType) call ProcessDueTime(ManualChoke1Plugged, ChangeManualChoke1Plugged, time)
if(ManualChoke1Fail%ProblemType == Time_ProblemType) call ProcessDueTime(ManualChoke1Fail, ChangeManualChoke1Fail, time)
if(ManualChoke1Washout%ProblemType == Time_ProblemType) call ProcessDueTime(ManualChoke1Washout, ChangeManualChoke1Washout, time)
if(ManualChoke2Plugged%ProblemType == Time_ProblemType) call ProcessDueTime(ManualChoke2Plugged, ChangeManualChoke2Plugged, time)
if(ManualChoke2Fail%ProblemType == Time_ProblemType) call ProcessDueTime(ManualChoke2Fail, ChangeManualChoke2Fail, time)
if(ManualChoke2Washout%ProblemType == Time_ProblemType) call ProcessDueTime(ManualChoke2Washout, ChangeManualChoke2Washout, time)
if(ChokePanelAirFail%ProblemType == Time_ProblemType) call ProcessDueTime(ChokePanelAirFail, ChangeChokePanelAirFail, time)
if(ChokeProblems%HydraulicChoke1Plugged%ProblemType == Time_ProblemType) call ProcessDueTime(ChokeProblems%HydraulicChoke1Plugged, ChangeHydraulicChoke1Plugged, time)
if(ChokeProblems%HydraulicChoke1Fail%ProblemType == Time_ProblemType) call ProcessDueTime(ChokeProblems%HydraulicChoke1Fail, ChangeHydraulicChoke1Fail, time)
if(ChokeProblems%HydraulicChoke1Washout%ProblemType == Time_ProblemType) call ProcessDueTime(ChokeProblems%HydraulicChoke1Washout, ChangeHydraulicChoke1Washout, time)
if(ChokeProblems%HydraulicChoke2Plugged%ProblemType == Time_ProblemType) call ProcessDueTime(ChokeProblems%HydraulicChoke2Plugged, ChangeHydraulicChoke2Plugged, time)
if(ChokeProblems%HydraulicChoke2Fail%ProblemType == Time_ProblemType) call ProcessDueTime(ChokeProblems%HydraulicChoke2Fail, ChangeHydraulicChoke2Fail, time)
if(ChokeProblems%HydraulicChoke2Washout%ProblemType == Time_ProblemType) call ProcessDueTime(ChokeProblems%HydraulicChoke2Washout, ChangeHydraulicChoke2Washout, time)
if(ChokeProblems%ManualChoke1Plugged%ProblemType == Time_ProblemType) call ProcessDueTime(ChokeProblems%ManualChoke1Plugged, ChangeManualChoke1Plugged, time)
if(ChokeProblems%ManualChoke1Fail%ProblemType == Time_ProblemType) call ProcessDueTime(ChokeProblems%ManualChoke1Fail, ChangeManualChoke1Fail, time)
if(ChokeProblems%ManualChoke1Washout%ProblemType == Time_ProblemType) call ProcessDueTime(ChokeProblems%ManualChoke1Washout, ChangeManualChoke1Washout, time)
if(ChokeProblems%ManualChoke2Plugged%ProblemType == Time_ProblemType) call ProcessDueTime(ChokeProblems%ManualChoke2Plugged, ChangeManualChoke2Plugged, time)
if(ChokeProblems%ManualChoke2Fail%ProblemType == Time_ProblemType) call ProcessDueTime(ChokeProblems%ManualChoke2Fail, ChangeManualChoke2Fail, time)
if(ChokeProblems%ManualChoke2Washout%ProblemType == Time_ProblemType) call ProcessDueTime(ChokeProblems%ManualChoke2Washout, ChangeManualChoke2Washout, time)
if(ChokeProblems%ChokePanelAirFail%ProblemType == Time_ProblemType) call ProcessDueTime(ChokeProblems%ChokePanelAirFail, ChangeChokePanelAirFail, time)
end subroutine
subroutine ProcessChokeProblemsDuePumpStrokes(strokes)
implicit none
integer :: strokes
if(HydraulicChoke1Plugged%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(HydraulicChoke1Plugged, ChangeHydraulicChoke1Plugged, strokes)
if(HydraulicChoke1Fail%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(HydraulicChoke1Fail, ChangeHydraulicChoke1Fail, strokes)
if(HydraulicChoke1Washout%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(HydraulicChoke1Washout, ChangeHydraulicChoke1Washout, strokes)
if(HydraulicChoke2Plugged%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(HydraulicChoke2Plugged, ChangeHydraulicChoke2Plugged, strokes)
if(HydraulicChoke2Fail%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(HydraulicChoke2Fail, ChangeHydraulicChoke2Fail, strokes)
if(HydraulicChoke2Washout%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(HydraulicChoke2Washout, ChangeHydraulicChoke2Washout, strokes)
if(ManualChoke1Plugged%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(ManualChoke1Plugged, ChangeManualChoke1Plugged, strokes)
if(ManualChoke1Fail%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(ManualChoke1Fail, ChangeManualChoke1Fail, strokes)
if(ManualChoke1Washout%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(ManualChoke1Washout, ChangeManualChoke1Washout, strokes)
if(ManualChoke2Plugged%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(ManualChoke2Plugged, ChangeManualChoke2Plugged, strokes)
if(ManualChoke2Fail%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(ManualChoke2Fail, ChangeManualChoke2Fail, strokes)
if(ManualChoke2Washout%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(ManualChoke2Washout, ChangeManualChoke2Washout, strokes)
if(ChokePanelAirFail%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(ChokePanelAirFail, ChangeChokePanelAirFail, strokes)
if(ChokeProblems%HydraulicChoke1Plugged%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(ChokeProblems%HydraulicChoke1Plugged, ChangeHydraulicChoke1Plugged, strokes)
if(ChokeProblems%HydraulicChoke1Fail%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(ChokeProblems%HydraulicChoke1Fail, ChangeHydraulicChoke1Fail, strokes)
if(ChokeProblems%HydraulicChoke1Washout%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(ChokeProblems%HydraulicChoke1Washout, ChangeHydraulicChoke1Washout, strokes)
if(ChokeProblems%HydraulicChoke2Plugged%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(ChokeProblems%HydraulicChoke2Plugged, ChangeHydraulicChoke2Plugged, strokes)
if(ChokeProblems%HydraulicChoke2Fail%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(ChokeProblems%HydraulicChoke2Fail, ChangeHydraulicChoke2Fail, strokes)
if(ChokeProblems%HydraulicChoke2Washout%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(ChokeProblems%HydraulicChoke2Washout, ChangeHydraulicChoke2Washout, strokes)
if(ChokeProblems%ManualChoke1Plugged%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(ChokeProblems%ManualChoke1Plugged, ChangeManualChoke1Plugged, strokes)
if(ChokeProblems%ManualChoke1Fail%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(ChokeProblems%ManualChoke1Fail, ChangeManualChoke1Fail, strokes)
if(ChokeProblems%ManualChoke1Washout%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(ChokeProblems%ManualChoke1Washout, ChangeManualChoke1Washout, strokes)
if(ChokeProblems%ManualChoke2Plugged%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(ChokeProblems%ManualChoke2Plugged, ChangeManualChoke2Plugged, strokes)
if(ChokeProblems%ManualChoke2Fail%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(ChokeProblems%ManualChoke2Fail, ChangeManualChoke2Fail, strokes)
if(ChokeProblems%ManualChoke2Washout%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(ChokeProblems%ManualChoke2Washout, ChangeManualChoke2Washout, strokes)
if(ChokeProblems%ChokePanelAirFail%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(ChokeProblems%ChokePanelAirFail, ChangeChokePanelAirFail, strokes)
end subroutine
subroutine ProcessChokeProblemsDueVolumePumped(volume)
implicit none
real(8) :: volume
if(HydraulicChoke1Plugged%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(HydraulicChoke1Plugged, ChangeHydraulicChoke1Plugged, volume)
if(HydraulicChoke1Fail%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(HydraulicChoke1Fail, ChangeHydraulicChoke1Fail, volume)
if(HydraulicChoke1Washout%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(HydraulicChoke1Washout, ChangeHydraulicChoke1Washout, volume)
if(HydraulicChoke2Plugged%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(HydraulicChoke2Plugged, ChangeHydraulicChoke2Plugged, volume)
if(HydraulicChoke2Fail%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(HydraulicChoke2Fail, ChangeHydraulicChoke2Fail, volume)
if(HydraulicChoke2Washout%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(HydraulicChoke2Washout, ChangeHydraulicChoke2Washout, volume)
if(ManualChoke1Plugged%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(ManualChoke1Plugged, ChangeManualChoke1Plugged, volume)
if(ManualChoke1Fail%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(ManualChoke1Fail, ChangeManualChoke1Fail, volume)
if(ManualChoke1Washout%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(ManualChoke1Washout, ChangeManualChoke1Washout, volume)
if(ManualChoke2Plugged%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(ManualChoke2Plugged, ChangeManualChoke2Plugged, volume)
if(ManualChoke2Fail%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(ManualChoke2Fail, ChangeManualChoke2Fail, volume)
if(ManualChoke2Washout%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(ManualChoke2Washout, ChangeManualChoke2Washout, volume)
if(ChokePanelAirFail%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(ChokePanelAirFail, ChangeChokePanelAirFail, volume)
if(ChokeProblems%HydraulicChoke1Plugged%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(ChokeProblems%HydraulicChoke1Plugged, ChangeHydraulicChoke1Plugged, volume)
if(ChokeProblems%HydraulicChoke1Fail%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(ChokeProblems%HydraulicChoke1Fail, ChangeHydraulicChoke1Fail, volume)
if(ChokeProblems%HydraulicChoke1Washout%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(ChokeProblems%HydraulicChoke1Washout, ChangeHydraulicChoke1Washout, volume)
if(ChokeProblems%HydraulicChoke2Plugged%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(ChokeProblems%HydraulicChoke2Plugged, ChangeHydraulicChoke2Plugged, volume)
if(ChokeProblems%HydraulicChoke2Fail%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(ChokeProblems%HydraulicChoke2Fail, ChangeHydraulicChoke2Fail, volume)
if(ChokeProblems%HydraulicChoke2Washout%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(ChokeProblems%HydraulicChoke2Washout, ChangeHydraulicChoke2Washout, volume)
if(ChokeProblems%ManualChoke1Plugged%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(ChokeProblems%ManualChoke1Plugged, ChangeManualChoke1Plugged, volume)
if(ChokeProblems%ManualChoke1Fail%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(ChokeProblems%ManualChoke1Fail, ChangeManualChoke1Fail, volume)
if(ChokeProblems%ManualChoke1Washout%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(ChokeProblems%ManualChoke1Washout, ChangeManualChoke1Washout, volume)
if(ChokeProblems%ManualChoke2Plugged%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(ChokeProblems%ManualChoke2Plugged, ChangeManualChoke2Plugged, volume)
if(ChokeProblems%ManualChoke2Fail%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(ChokeProblems%ManualChoke2Fail, ChangeManualChoke2Fail, volume)
if(ChokeProblems%ManualChoke2Washout%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(ChokeProblems%ManualChoke2Washout, ChangeManualChoke2Washout, volume)
if(ChokeProblems%ChokePanelAirFail%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(ChokeProblems%ChokePanelAirFail, ChangeChokePanelAirFail, volume)
end subroutine
subroutine ProcessChokeProblemsDueDistanceDrilled(distance)
implicit none
real(8) :: distance
if(HydraulicChoke1Plugged%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(HydraulicChoke1Plugged, ChangeHydraulicChoke1Plugged, distance)
if(HydraulicChoke1Fail%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(HydraulicChoke1Fail, ChangeHydraulicChoke1Fail, distance)
if(HydraulicChoke1Washout%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(HydraulicChoke1Washout, ChangeHydraulicChoke1Washout, distance)
if(HydraulicChoke2Plugged%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(HydraulicChoke2Plugged, ChangeHydraulicChoke2Plugged, distance)
if(HydraulicChoke2Fail%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(HydraulicChoke2Fail, ChangeHydraulicChoke2Fail, distance)
if(HydraulicChoke2Washout%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(HydraulicChoke2Washout, ChangeHydraulicChoke2Washout, distance)
if(ManualChoke1Plugged%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(ManualChoke1Plugged, ChangeManualChoke1Plugged, distance)
if(ManualChoke1Fail%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(ManualChoke1Fail, ChangeManualChoke1Fail, distance)
if(ManualChoke1Washout%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(ManualChoke1Washout, ChangeManualChoke1Washout, distance)
if(ManualChoke2Plugged%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(ManualChoke2Plugged, ChangeManualChoke2Plugged, distance)
if(ManualChoke2Fail%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(ManualChoke2Fail, ChangeManualChoke2Fail, distance)
if(ManualChoke2Washout%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(ManualChoke2Washout, ChangeManualChoke2Washout, distance)
if(ChokePanelAirFail%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(ChokePanelAirFail, ChangeChokePanelAirFail, distance)
if(ChokeProblems%HydraulicChoke1Plugged%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(ChokeProblems%HydraulicChoke1Plugged, ChangeHydraulicChoke1Plugged, distance)
if(ChokeProblems%HydraulicChoke1Fail%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(ChokeProblems%HydraulicChoke1Fail, ChangeHydraulicChoke1Fail, distance)
if(ChokeProblems%HydraulicChoke1Washout%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(ChokeProblems%HydraulicChoke1Washout, ChangeHydraulicChoke1Washout, distance)
if(ChokeProblems%HydraulicChoke2Plugged%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(ChokeProblems%HydraulicChoke2Plugged, ChangeHydraulicChoke2Plugged, distance)
if(ChokeProblems%HydraulicChoke2Fail%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(ChokeProblems%HydraulicChoke2Fail, ChangeHydraulicChoke2Fail, distance)
if(ChokeProblems%HydraulicChoke2Washout%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(ChokeProblems%HydraulicChoke2Washout, ChangeHydraulicChoke2Washout, distance)
if(ChokeProblems%ManualChoke1Plugged%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(ChokeProblems%ManualChoke1Plugged, ChangeManualChoke1Plugged, distance)
if(ChokeProblems%ManualChoke1Fail%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(ChokeProblems%ManualChoke1Fail, ChangeManualChoke1Fail, distance)
if(ChokeProblems%ManualChoke1Washout%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(ChokeProblems%ManualChoke1Washout, ChangeManualChoke1Washout, distance)
if(ChokeProblems%ManualChoke2Plugged%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(ChokeProblems%ManualChoke2Plugged, ChangeManualChoke2Plugged, distance)
if(ChokeProblems%ManualChoke2Fail%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(ChokeProblems%ManualChoke2Fail, ChangeManualChoke2Fail, distance)
if(ChokeProblems%ManualChoke2Washout%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(ChokeProblems%ManualChoke2Washout, ChangeManualChoke2Washout, distance)
if(ChokeProblems%ChokePanelAirFail%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(ChokeProblems%ChokePanelAirFail, ChangeChokePanelAirFail, distance)
end subroutine
@@ -118,7 +120,7 @@ module CChokeProblemsVariables
USE CHOKEVARIABLES
implicit none
integer, intent (in) :: status
if(associated(HydraulicChoke1PluggedPtr)) call HydraulicChoke1PluggedPtr(status)
! if(associated(HydraulicChoke1PluggedPtr)) call HydraulicChoke1PluggedPtr(status)
if(status == Clear_StatusType) CHOOKE(1)%PlugMalf = 0
if(status == Executed_StatusType) CHOOKE(1)%PlugMalf = 1
endsubroutine
@@ -127,7 +129,7 @@ module CChokeProblemsVariables
USE CHOKEVARIABLES
implicit none
integer, intent (in) :: status
if(associated(HydraulicChoke1FailPtr)) call HydraulicChoke1FailPtr(status)
! if(associated(HydraulicChoke1FailPtr)) call HydraulicChoke1FailPtr(status)
if(status == Clear_StatusType) CHOOKE(1)%FailMalf = 0
if(status == Executed_StatusType) CHOOKE(1)%FailMalf = 1
endsubroutine
@@ -137,7 +139,7 @@ module CChokeProblemsVariables
use CChokeManifoldVariables
implicit none
integer, intent (in) :: status
if(associated(HydraulicChoke1WashoutPtr)) call HydraulicChoke1WashoutPtr(status)
! if(associated(HydraulicChoke1WashoutPtr)) call HydraulicChoke1WashoutPtr(status)
if(status == Clear_StatusType) CHOOKE(1)%WashoutMalf = 0
if(status == Executed_StatusType) CHOOKE(1)%WashoutMalf = 1
@@ -149,7 +151,7 @@ module CChokeProblemsVariables
USE CHOKEVARIABLES
implicit none
integer, intent (in) :: status
if(associated(HydraulicChoke2PluggedPtr)) call HydraulicChoke2PluggedPtr(status)
! if(associated(HydraulicChoke2PluggedPtr)) call HydraulicChoke2PluggedPtr(status)
if(status == Clear_StatusType) CHOOKE(2)%PlugMalf = 0
if(status == Executed_StatusType) CHOOKE(2)%PlugMalf = 1
endsubroutine
@@ -158,7 +160,7 @@ module CChokeProblemsVariables
USE CHOKEVARIABLES
implicit none
integer, intent (in) :: status
if(associated(HydraulicChoke2FailPtr)) call HydraulicChoke2FailPtr(status)
! if(associated(HydraulicChoke2FailPtr)) call HydraulicChoke2FailPtr(status)
if(status == Clear_StatusType) CHOOKE(2)%FailMalf = 0
if(status == Executed_StatusType) CHOOKE(2)%FailMalf = 1
endsubroutine
@@ -168,7 +170,7 @@ module CChokeProblemsVariables
use CChokeManifoldVariables
implicit none
integer, intent (in) :: status
if(associated(HydraulicChoke2WashoutPtr)) call HydraulicChoke2WashoutPtr(status)
! if(associated(HydraulicChoke2WashoutPtr)) call HydraulicChoke2WashoutPtr(status)
if(status == Clear_StatusType) CHOOKE(2)%WashoutMalf = 0
if(status == Executed_StatusType) CHOOKE(2)%WashoutMalf = 1
@@ -180,7 +182,7 @@ module CChokeProblemsVariables
USE FricPressDropVars
implicit none
integer, intent (in) :: status
if(associated(ManualChoke1PluggedPtr)) call ManualChoke1PluggedPtr(status)
! if(associated(ManualChoke1PluggedPtr)) call ManualChoke1PluggedPtr(status)
if(status == Clear_StatusType) ManChoke1Plug = 0
if(status == Executed_StatusType) ManChoke1Plug = 1
endsubroutine
@@ -188,7 +190,7 @@ module CChokeProblemsVariables
subroutine ChangeManualChoke1Fail(status)
implicit none
integer, intent (in) :: status
if(associated(ManualChoke1FailPtr)) call ManualChoke1FailPtr(status)
! if(associated(ManualChoke1FailPtr)) call ManualChoke1FailPtr(status)
!if(status == Clear_StatusType) print*,'On_ManualChoke1Fail_Clear'
!if(status == Executed_StatusType) print*,'On_ManualChoke1Fail_Execute'
endsubroutine
@@ -198,7 +200,7 @@ module CChokeProblemsVariables
use CChokeManifoldVariables
implicit none
integer, intent (in) :: status
if(associated(ManualChoke1WashoutPtr)) call ManualChoke1WashoutPtr(status)
! if(associated(ManualChoke1WashoutPtr)) call ManualChoke1WashoutPtr(status)
if(status == Clear_StatusType) ManChoke1Washout = 0
if(status == Executed_StatusType) ManChoke1Washout = 1
@@ -210,7 +212,7 @@ module CChokeProblemsVariables
USE FricPressDropVars
implicit none
integer, intent (in) :: status
if(associated(ManualChoke2PluggedPtr)) call ManualChoke2PluggedPtr(status)
! if(associated(ManualChoke2PluggedPtr)) call ManualChoke2PluggedPtr(status)
if(status == Clear_StatusType) ManChoke2Plug = 0
if(status == Executed_StatusType) ManChoke2Plug = 1
endsubroutine
@@ -218,7 +220,7 @@ module CChokeProblemsVariables
subroutine ChangeManualChoke2Fail(status)
implicit none
integer, intent (in) :: status
if(associated(ManualChoke2FailPtr)) call ManualChoke2FailPtr(status)
! if(associated(ManualChoke2FailPtr)) call ManualChoke2FailPtr(status)
!if(status == Clear_StatusType) print*,'On_ManualChoke2Fail_Clear'
!if(status == Executed_StatusType) print*,'On_ManualChoke2Fail_Execute'
endsubroutine
@@ -228,7 +230,7 @@ module CChokeProblemsVariables
use CChokeManifoldVariables
implicit none
integer, intent (in) :: status
if(associated(ManualChoke2WashoutPtr)) call ManualChoke2WashoutPtr(status)
! if(associated(ManualChoke2WashoutPtr)) call ManualChoke2WashoutPtr(status)
if(status == Clear_StatusType) ManChoke2Washout = 0
if(status == Executed_StatusType) ManChoke2Washout = 1
@@ -240,7 +242,7 @@ module CChokeProblemsVariables
USE CHOKEVARIABLES
implicit none
integer, intent (in) :: status
if(associated(ChokePanelAirFailPtr)) call ChokePanelAirFailPtr(status)
! if(associated(ChokePanelAirFailPtr)) call ChokePanelAirFailPtr(status)
if(status == Clear_StatusType) ChokeAirFail = 0
if(status == Executed_StatusType) ChokeAirFail = 1
endsubroutine
@@ -260,108 +262,108 @@ module CChokeProblemsVariables
subroutine SubscribeHydraulicChoke1Plugged(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeHydraulicChoke1Plugged
!DEC$ ATTRIBUTES ALIAS: 'SubscribeHydraulicChoke1Plugged' :: SubscribeHydraulicChoke1Plugged
implicit none
procedure (ActionInteger) :: v
HydraulicChoke1PluggedPtr => v
end subroutine
! subroutine SubscribeHydraulicChoke1Plugged(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeHydraulicChoke1Plugged
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeHydraulicChoke1Plugged' :: SubscribeHydraulicChoke1Plugged
! implicit none
! procedure (ActionInteger) :: v
! HydraulicChoke1PluggedPtr => v
! end subroutine

subroutine SubscribeHydraulicChoke1Fail(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeHydraulicChoke1Fail
!DEC$ ATTRIBUTES ALIAS: 'SubscribeHydraulicChoke1Fail' :: SubscribeHydraulicChoke1Fail
implicit none
procedure (ActionInteger) :: v
HydraulicChoke1FailPtr => v
end subroutine
! subroutine SubscribeHydraulicChoke1Fail(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeHydraulicChoke1Fail
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeHydraulicChoke1Fail' :: SubscribeHydraulicChoke1Fail
! implicit none
! procedure (ActionInteger) :: v
! HydraulicChoke1FailPtr => v
! end subroutine

subroutine SubscribeHydraulicChoke1Washout(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeHydraulicChoke1Washout
!DEC$ ATTRIBUTES ALIAS: 'SubscribeHydraulicChoke1Washout' :: SubscribeHydraulicChoke1Washout
implicit none
procedure (ActionInteger) :: v
HydraulicChoke1WashoutPtr => v
end subroutine
! subroutine SubscribeHydraulicChoke1Washout(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeHydraulicChoke1Washout
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeHydraulicChoke1Washout' :: SubscribeHydraulicChoke1Washout
! implicit none
! procedure (ActionInteger) :: v
! HydraulicChoke1WashoutPtr => v
! end subroutine

subroutine SubscribeHydraulicChoke2Plugged(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeHydraulicChoke2Plugged
!DEC$ ATTRIBUTES ALIAS: 'SubscribeHydraulicChoke2Plugged' :: SubscribeHydraulicChoke2Plugged
implicit none
procedure (ActionInteger) :: v
HydraulicChoke2PluggedPtr => v
end subroutine
! subroutine SubscribeHydraulicChoke2Plugged(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeHydraulicChoke2Plugged
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeHydraulicChoke2Plugged' :: SubscribeHydraulicChoke2Plugged
! implicit none
! procedure (ActionInteger) :: v
! HydraulicChoke2PluggedPtr => v
! end subroutine

subroutine SubscribeHydraulicChoke2Fail(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeHydraulicChoke2Fail
!DEC$ ATTRIBUTES ALIAS: 'SubscribeHydraulicChoke2Fail' :: SubscribeHydraulicChoke2Fail
implicit none
procedure (ActionInteger) :: v
HydraulicChoke2FailPtr => v
end subroutine
! subroutine SubscribeHydraulicChoke2Fail(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeHydraulicChoke2Fail
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeHydraulicChoke2Fail' :: SubscribeHydraulicChoke2Fail
! implicit none
! procedure (ActionInteger) :: v
! HydraulicChoke2FailPtr => v
! end subroutine

subroutine SubscribeHydraulicChoke2Washout(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeHydraulicChoke2Washout
!DEC$ ATTRIBUTES ALIAS: 'SubscribeHydraulicChoke2Washout' :: SubscribeHydraulicChoke2Washout
implicit none
procedure (ActionInteger) :: v
HydraulicChoke2WashoutPtr => v
end subroutine
! subroutine SubscribeHydraulicChoke2Washout(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeHydraulicChoke2Washout
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeHydraulicChoke2Washout' :: SubscribeHydraulicChoke2Washout
! implicit none
! procedure (ActionInteger) :: v
! HydraulicChoke2WashoutPtr => v
! end subroutine

subroutine SubscribeManualChoke1Plugged(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeManualChoke1Plugged
!DEC$ ATTRIBUTES ALIAS: 'SubscribeManualChoke1Plugged' :: SubscribeManualChoke1Plugged
implicit none
procedure (ActionInteger) :: v
ManualChoke1PluggedPtr => v
end subroutine
! subroutine SubscribeManualChoke1Plugged(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeManualChoke1Plugged
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeManualChoke1Plugged' :: SubscribeManualChoke1Plugged
! implicit none
! procedure (ActionInteger) :: v
! ManualChoke1PluggedPtr => v
! end subroutine

subroutine SubscribeManualChoke1Fail(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeManualChoke1Fail
!DEC$ ATTRIBUTES ALIAS: 'SubscribeManualChoke1Fail' :: SubscribeManualChoke1Fail
implicit none
procedure (ActionInteger) :: v
ManualChoke1FailPtr => v
end subroutine
! subroutine SubscribeManualChoke1Fail(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeManualChoke1Fail
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeManualChoke1Fail' :: SubscribeManualChoke1Fail
! implicit none
! procedure (ActionInteger) :: v
! ManualChoke1FailPtr => v
! end subroutine

subroutine SubscribeManualChoke1Washout(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeManualChoke1Washout
!DEC$ ATTRIBUTES ALIAS: 'SubscribeManualChoke1Washout' :: SubscribeManualChoke1Washout
implicit none
procedure (ActionInteger) :: v
ManualChoke1WashoutPtr => v
end subroutine
! subroutine SubscribeManualChoke1Washout(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeManualChoke1Washout
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeManualChoke1Washout' :: SubscribeManualChoke1Washout
! implicit none
! procedure (ActionInteger) :: v
! ManualChoke1WashoutPtr => v
! end subroutine

subroutine SubscribeManualChoke2Plugged(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeManualChoke2Plugged
!DEC$ ATTRIBUTES ALIAS: 'SubscribeManualChoke2Plugged' :: SubscribeManualChoke2Plugged
implicit none
procedure (ActionInteger) :: v
ManualChoke2PluggedPtr => v
end subroutine
! subroutine SubscribeManualChoke2Plugged(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeManualChoke2Plugged
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeManualChoke2Plugged' :: SubscribeManualChoke2Plugged
! implicit none
! procedure (ActionInteger) :: v
! ManualChoke2PluggedPtr => v
! end subroutine

subroutine SubscribeManualChoke2Fail(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeManualChoke2Fail
!DEC$ ATTRIBUTES ALIAS: 'SubscribeManualChoke2Fail' :: SubscribeManualChoke2Fail
implicit none
procedure (ActionInteger) :: v
ManualChoke2FailPtr => v
end subroutine
! subroutine SubscribeManualChoke2Fail(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeManualChoke2Fail
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeManualChoke2Fail' :: SubscribeManualChoke2Fail
! implicit none
! procedure (ActionInteger) :: v
! ManualChoke2FailPtr => v
! end subroutine

subroutine SubscribeManualChoke2Washout(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeManualChoke2Washout
!DEC$ ATTRIBUTES ALIAS: 'SubscribeManualChoke2Washout' :: SubscribeManualChoke2Washout
implicit none
procedure (ActionInteger) :: v
ManualChoke2WashoutPtr => v
end subroutine
! subroutine SubscribeManualChoke2Washout(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeManualChoke2Washout
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeManualChoke2Washout' :: SubscribeManualChoke2Washout
! implicit none
! procedure (ActionInteger) :: v
! ManualChoke2WashoutPtr => v
! end subroutine

subroutine SubscribeChokePanelAirFail(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeChokePanelAirFail
!DEC$ ATTRIBUTES ALIAS: 'SubscribeChokePanelAirFail' :: SubscribeChokePanelAirFail
implicit none
procedure (ActionInteger) :: v
ChokePanelAirFailPtr => v
end subroutine
! subroutine SubscribeChokePanelAirFail(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeChokePanelAirFail
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeChokePanelAirFail' :: SubscribeChokePanelAirFail
! implicit none
! procedure (ActionInteger) :: v
! ChokePanelAirFailPtr => v
! end subroutine

end module CChokeProblemsVariables

+ 16
- 16
CSharp/Problems/CDrillStemProblems.f90 Datei anzeigen

@@ -10,11 +10,11 @@ module CDrillStemProblems
!DEC$ ATTRIBUTES ALIAS: 'SetStringDragIncrease' :: SetStringDragIncrease
implicit none
type(CProblem), intent(in) :: v
StringDragIncrease = SetDue(v, ChangeStringDragIncrease)
DrillStemProblems%StringDragIncrease = SetDue(v, ChangeStringDragIncrease)
#ifdef deb
print*, 'StringDragIncrease%ProblemType=', StringDragIncrease%ProblemType
print*, 'StringDragIncrease%StatusType=', StringDragIncrease%StatusType
print*, 'StringDragIncrease%Value=', StringDragIncrease%Value
print*, 'StringDragIncrease%ProblemType=', DrillStemProblems%StringDragIncrease%ProblemType
print*, 'StringDragIncrease%StatusType=', DrillStemProblems%StringDragIncrease%StatusType
print*, 'StringDragIncrease%Value=', DrillStemProblems%StringDragIncrease%Value
#endif
end subroutine

@@ -23,11 +23,11 @@ module CDrillStemProblems
!DEC$ ATTRIBUTES ALIAS: 'SetStringTorqueIncrease' :: SetStringTorqueIncrease
implicit none
type(CProblem), intent(in) :: v
StringTorqueIncrease = SetDue(v, ChangeStringTorqueIncrease)
DrillStemProblems%StringTorqueIncrease = SetDue(v, ChangeStringTorqueIncrease)
#ifdef deb
print*, 'StringTorqueIncrease%ProblemType=', StringTorqueIncrease%ProblemType
print*, 'StringTorqueIncrease%StatusType=', StringTorqueIncrease%StatusType
print*, 'StringTorqueIncrease%Value=', StringTorqueIncrease%Value
print*, 'StringTorqueIncrease%ProblemType=', DrillStemProblems%StringTorqueIncrease%ProblemType
print*, 'StringTorqueIncrease%StatusType=', DrillStemProblems%StringTorqueIncrease%StatusType
print*, 'StringTorqueIncrease%Value=', DrillStemProblems%StringTorqueIncrease%Value
#endif
end subroutine

@@ -36,11 +36,11 @@ module CDrillStemProblems
!DEC$ ATTRIBUTES ALIAS: 'SetStringTorqueFluctuation' :: SetStringTorqueFluctuation
implicit none
type(CProblem), intent(in) :: v
StringTorqueFluctuation = SetDue(v, ChangeStringTorqueFluctuation)
DrillStemProblems%StringTorqueFluctuation = SetDue(v, ChangeStringTorqueFluctuation)
#ifdef deb
print*, 'StringTorqueFluctuation%ProblemType=', StringTorqueFluctuation%ProblemType
print*, 'StringTorqueFluctuation%StatusType=', StringTorqueFluctuation%StatusType
print*, 'StringTorqueFluctuation%Value=', StringTorqueFluctuation%Value
print*, 'StringTorqueFluctuation%ProblemType=', DrillStemProblems%StringTorqueFluctuation%ProblemType
print*, 'StringTorqueFluctuation%StatusType=', DrillStemProblems%StringTorqueFluctuation%StatusType
print*, 'StringTorqueFluctuation%Value=', DrillStemProblems%StringTorqueFluctuation%Value
#endif
end subroutine

@@ -49,9 +49,9 @@ module CDrillStemProblems
!DEC$ ATTRIBUTES ALIAS: 'SetStringDragIncreaseTime' :: SetStringDragIncreaseTime
implicit none
real(8), intent(in) :: v
StringDragIncreaseTime = v
DrillStemProblems%StringDragIncreaseTime = v
#ifdef deb
print*, 'StringDragIncreaseTime=', StringDragIncreaseTime
print*, 'StringDragIncreaseTime=', DrillStemProblems%StringDragIncreaseTime
#endif
end subroutine

@@ -60,9 +60,9 @@ module CDrillStemProblems
!DEC$ ATTRIBUTES ALIAS: 'SetStringTorqueIncreaseTime' :: SetStringTorqueIncreaseTime
implicit none
real(8), intent(in) :: v
StringTorqueIncreaseTime = v
DrillStemProblems%StringTorqueIncreaseTime = v
#ifdef deb
print*, 'StringTorqueIncreaseTime=', StringTorqueIncreaseTime
print*, 'StringTorqueIncreaseTime=', DrillStemProblems%StringTorqueIncreaseTime
#endif
end subroutine

+ 48
- 46
CSharp/Problems/CDrillStemProblemsVariables.f90 Datei anzeigen

@@ -4,49 +4,51 @@ module CDrillStemProblemsVariables
public
! Input vars
type(CProblem) :: StringDragIncrease
type(CProblem) :: StringTorqueIncrease
type(CProblem) :: StringTorqueFluctuation
real(8) :: StringDragIncreaseTime
real(8) :: StringTorqueIncreaseTime

procedure (ActionInteger), pointer :: StringDragIncreasePtr
procedure (ActionInteger), pointer :: StringTorqueIncreasePtr
procedure (ActionInteger), pointer :: StringTorqueFluctuationPtr
type:: DrillStemProblemsType
type(CProblem) :: StringDragIncrease
type(CProblem) :: StringTorqueIncrease
type(CProblem) :: StringTorqueFluctuation
real(8) :: StringDragIncreaseTime
real(8) :: StringTorqueIncreaseTime
end type DrillStemProblemsType
type(DrillStemProblemsType)::DrillStemProblems
! procedure (ActionInteger), pointer :: StringDragIncreasePtr
! procedure (ActionInteger), pointer :: StringTorqueIncreasePtr
! procedure (ActionInteger), pointer :: StringTorqueFluctuationPtr
contains
subroutine ProcessDrillStemProblemsDueTime(time)
implicit none
integer :: time
if(StringDragIncrease%ProblemType == Time_ProblemType) call ProcessDueTime(StringDragIncrease, ChangeStringDragIncrease, time)
if(StringTorqueIncrease%ProblemType == Time_ProblemType) call ProcessDueTime(StringTorqueIncrease, ChangeStringTorqueIncrease, time)
if(StringTorqueFluctuation%ProblemType == Time_ProblemType) call ProcessDueTime(StringTorqueFluctuation, ChangeStringTorqueFluctuation, time)
if(DrillStemProblems%StringDragIncrease%ProblemType == Time_ProblemType) call ProcessDueTime(DrillStemProblems%StringDragIncrease, ChangeStringDragIncrease, time)
if(DrillStemProblems%StringTorqueIncrease%ProblemType == Time_ProblemType) call ProcessDueTime(DrillStemProblems%StringTorqueIncrease, ChangeStringTorqueIncrease, time)
if(DrillStemProblems%StringTorqueFluctuation%ProblemType == Time_ProblemType) call ProcessDueTime(DrillStemProblems%StringTorqueFluctuation, ChangeStringTorqueFluctuation, time)
end subroutine
subroutine ProcessDrillStemProblemsDuePumpStrokes(strokes)
implicit none
integer :: strokes
if(StringDragIncrease%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(StringDragIncrease, ChangeStringDragIncrease, strokes)
if(StringTorqueIncrease%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(StringTorqueIncrease, ChangeStringTorqueIncrease, strokes)
if(StringTorqueFluctuation%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(StringTorqueFluctuation, ChangeStringTorqueFluctuation, strokes)
if(DrillStemProblems%StringDragIncrease%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(DrillStemProblems%StringDragIncrease, ChangeStringDragIncrease, strokes)
if(DrillStemProblems%StringTorqueIncrease%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(DrillStemProblems%StringTorqueIncrease, ChangeStringTorqueIncrease, strokes)
if(DrillStemProblems%StringTorqueFluctuation%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(DrillStemProblems%StringTorqueFluctuation, ChangeStringTorqueFluctuation, strokes)
end subroutine
subroutine ProcessDrillStemProblemsDueVolumePumped(volume)
implicit none
real(8) :: volume
if(StringDragIncrease%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(StringDragIncrease, ChangeStringDragIncrease, volume)
if(StringTorqueIncrease%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(StringTorqueIncrease, ChangeStringTorqueIncrease, volume)
if(StringTorqueFluctuation%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(StringTorqueFluctuation, ChangeStringTorqueFluctuation, volume)
if(DrillStemProblems%StringDragIncrease%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(DrillStemProblems%StringDragIncrease, ChangeStringDragIncrease, volume)
if(DrillStemProblems%StringTorqueIncrease%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(DrillStemProblems%StringTorqueIncrease, ChangeStringTorqueIncrease, volume)
if(DrillStemProblems%StringTorqueFluctuation%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(DrillStemProblems%StringTorqueFluctuation, ChangeStringTorqueFluctuation, volume)
end subroutine
subroutine ProcessDrillStemProblemsDueDistanceDrilled(distance)
implicit none
real(8) :: distance
if(StringDragIncrease%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(StringDragIncrease, ChangeStringDragIncrease, distance)
if(StringTorqueIncrease%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(StringTorqueIncrease, ChangeStringTorqueIncrease, distance)
if(StringTorqueFluctuation%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(StringTorqueFluctuation, ChangeStringTorqueFluctuation, distance)
if(DrillStemProblems%StringDragIncrease%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(DrillStemProblems%StringDragIncrease, ChangeStringDragIncrease, distance)
if(DrillStemProblems%StringTorqueIncrease%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(DrillStemProblems%StringTorqueIncrease, ChangeStringTorqueIncrease, distance)
if(DrillStemProblems%StringTorqueFluctuation%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(DrillStemProblems%StringTorqueFluctuation, ChangeStringTorqueFluctuation, distance)
end subroutine
@@ -54,7 +56,7 @@ module CDrillStemProblemsVariables
subroutine ChangeStringDragIncrease(status)
implicit none
integer, intent (in) :: status
if(associated(StringDragIncreasePtr)) call StringDragIncreasePtr(status)
! if(associated(StringDragIncreasePtr)) call StringDragIncreasePtr(status)
!if(status == Clear_StatusType) print*,'On_StringDragIncrease_Clear'
!if(status == Executed_StatusType) print*,'On_StringDragIncrease_Execute'
endsubroutine
@@ -62,7 +64,7 @@ module CDrillStemProblemsVariables
subroutine ChangeStringTorqueIncrease(status)
implicit none
integer, intent (in) :: status
if(associated(StringTorqueIncreasePtr)) call StringTorqueIncreasePtr(status)
! if(associated(StringTorqueIncreasePtr)) call StringTorqueIncreasePtr(status)
!if(status == Clear_StatusType) print*,'On_StringTorqueIncrease_Clear'
!if(status == Executed_StatusType) print*,'On_StringTorqueIncrease_Execute'
endsubroutine
@@ -70,7 +72,7 @@ module CDrillStemProblemsVariables
subroutine ChangeStringTorqueFluctuation(status)
implicit none
integer, intent (in) :: status
if(associated(StringTorqueFluctuationPtr)) call StringTorqueFluctuationPtr(status)
! if(associated(StringTorqueFluctuationPtr)) call StringTorqueFluctuationPtr(status)
!if(status == Clear_StatusType) print*,'On_StringTorqueFluctuation_Clear'
!if(status == Executed_StatusType) print*,'On_StringTorqueFluctuation_Execute'
endsubroutine
@@ -83,29 +85,29 @@ module CDrillStemProblemsVariables
subroutine SubscribeStringDragIncrease(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeStringDragIncrease
!DEC$ ATTRIBUTES ALIAS: 'SubscribeStringDragIncrease' :: SubscribeStringDragIncrease
implicit none
procedure (ActionInteger) :: v
StringDragIncreasePtr => v
end subroutine
! subroutine SubscribeStringDragIncrease(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeStringDragIncrease
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeStringDragIncrease' :: SubscribeStringDragIncrease
! implicit none
! procedure (ActionInteger) :: v
! StringDragIncreasePtr => v
! end subroutine

subroutine SubscribeStringTorqueIncrease(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeStringTorqueIncrease
!DEC$ ATTRIBUTES ALIAS: 'SubscribeStringTorqueIncrease' :: SubscribeStringTorqueIncrease
implicit none
procedure (ActionInteger) :: v
StringTorqueIncreasePtr => v
end subroutine
! subroutine SubscribeStringTorqueIncrease(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeStringTorqueIncrease
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeStringTorqueIncrease' :: SubscribeStringTorqueIncrease
! implicit none
! procedure (ActionInteger) :: v
! StringTorqueIncreasePtr => v
! end subroutine

subroutine SubscribeStringTorqueFluctuation(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeStringTorqueFluctuation
!DEC$ ATTRIBUTES ALIAS: 'SubscribeStringTorqueFluctuation' :: SubscribeStringTorqueFluctuation
implicit none
procedure (ActionInteger) :: v
StringTorqueFluctuationPtr => v
end subroutine
! subroutine SubscribeStringTorqueFluctuation(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeStringTorqueFluctuation
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeStringTorqueFluctuation' :: SubscribeStringTorqueFluctuation
! implicit none
! procedure (ActionInteger) :: v
! StringTorqueFluctuationPtr => v
! end subroutine



+ 92
- 92
CSharp/Problems/CGaugesProblems.f90 Datei anzeigen

@@ -10,11 +10,11 @@ module CGaugesProblems
!DEC$ ATTRIBUTES ALIAS: 'SetWeightIndicator' :: SetWeightIndicator
implicit none
type(CProblem), intent(in) :: v
WeightIndicator = SetDue(v, ChangeWeightIndicator)
GaugesProblems%WeightIndicator = SetDue(v, ChangeWeightIndicator)
#ifdef deb
print*, 'WeightIndicator%ProblemType=', WeightIndicator%ProblemType
print*, 'WeightIndicator%StatusType=', WeightIndicator%StatusType
print*, 'WeightIndicator%Value=', WeightIndicator%Value
print*, 'WeightIndicator%ProblemType=', GaugesProblems%WeightIndicator%ProblemType
print*, 'WeightIndicator%StatusType=', GaugesProblems%WeightIndicator%StatusType
print*, 'WeightIndicator%Value=', GaugesProblems%WeightIndicator%Value
#endif
end subroutine

@@ -23,11 +23,11 @@ module CGaugesProblems
!DEC$ ATTRIBUTES ALIAS: 'SetRotaryRpm' :: SetRotaryRpm
implicit none
type(CProblem), intent(in) :: v
RotaryRpm = SetDue(v, ChangeRotaryRpm)
GaugesProblems%RotaryRpm = SetDue(v, ChangeRotaryRpm)
#ifdef deb
print*, 'RotaryRpm%ProblemType=', RotaryRpm%ProblemType
print*, 'RotaryRpm%StatusType=', RotaryRpm%StatusType
print*, 'RotaryRpm%Value=', RotaryRpm%Value
print*, 'RotaryRpm%ProblemType=', GaugesProblems%RotaryRpm%ProblemType
print*, 'RotaryRpm%StatusType=', GaugesProblems%RotaryRpm%StatusType
print*, 'RotaryRpm%Value=', GaugesProblems%RotaryRpm%Value
#endif
end subroutine

@@ -36,11 +36,11 @@ module CGaugesProblems
!DEC$ ATTRIBUTES ALIAS: 'SetRotaryTorque' :: SetRotaryTorque
implicit none
type(CProblem), intent(in) :: v
RotaryTorque = SetDue(v, ChangeRotaryTorque)
GaugesProblems%RotaryTorque = SetDue(v, ChangeRotaryTorque)
#ifdef deb
print*, 'RotaryTorque%ProblemType=', RotaryTorque%ProblemType
print*, 'RotaryTorque%StatusType=', RotaryTorque%StatusType
print*, 'RotaryTorque%Value=', RotaryTorque%Value
print*, 'RotaryTorque%ProblemType=', GaugesProblems%RotaryTorque%ProblemType
print*, 'RotaryTorque%StatusType=', GaugesProblems%RotaryTorque%StatusType
print*, 'RotaryTorque%Value=', GaugesProblems%RotaryTorque%Value
#endif
end subroutine

@@ -49,11 +49,11 @@ module CGaugesProblems
!DEC$ ATTRIBUTES ALIAS: 'SetStandPipePressure' :: SetStandPipePressure
implicit none
type(CProblem), intent(in) :: v
StandPipePressure = SetDue(v, ChangeStandPipePressure)
GaugesProblems%StandPipePressure = SetDue(v, ChangeStandPipePressure)
#ifdef deb
print*, 'StandPipePressure%ProblemType=', StandPipePressure%ProblemType
print*, 'StandPipePressure%StatusType=', StandPipePressure%StatusType
print*, 'StandPipePressure%Value=', StandPipePressure%Value
print*, 'StandPipePressure%ProblemType=', GaugesProblems%StandPipePressure%ProblemType
print*, 'StandPipePressure%StatusType=', GaugesProblems%StandPipePressure%StatusType
print*, 'StandPipePressure%Value=', GaugesProblems%StandPipePressure%Value
#endif
end subroutine

@@ -62,11 +62,11 @@ module CGaugesProblems
!DEC$ ATTRIBUTES ALIAS: 'SetCasingPressure' :: SetCasingPressure
implicit none
type(CProblem), intent(in) :: v
CasingPressure = SetDue(v, ChangeCasingPressure)
GaugesProblems%CasingPressure = SetDue(v, ChangeCasingPressure)
#ifdef deb
print*, 'CasingPressure%ProblemType=', CasingPressure%ProblemType
print*, 'CasingPressure%StatusType=', CasingPressure%StatusType
print*, 'CasingPressure%Value=', CasingPressure%Value
print*, 'CasingPressure%ProblemType=', GaugesProblems%CasingPressure%ProblemType
print*, 'CasingPressure%StatusType=', GaugesProblems%CasingPressure%StatusType
print*, 'CasingPressure%Value=', GaugesProblems%CasingPressure%Value
#endif
end subroutine

@@ -75,11 +75,11 @@ module CGaugesProblems
!DEC$ ATTRIBUTES ALIAS: 'SetPump1Strokes' :: SetPump1Strokes
implicit none
type(CProblem), intent(in) :: v
Pump1Strokes = SetDue(v, ChangePump1Strokes)
GaugesProblems%Pump1Strokes = SetDue(v, ChangePump1Strokes)
#ifdef deb
print*, 'Pump1Strokes%ProblemType=', Pump1Strokes%ProblemType
print*, 'Pump1Strokes%StatusType=', Pump1Strokes%StatusType
print*, 'Pump1Strokes%Value=', Pump1Strokes%Value
print*, 'Pump1Strokes%ProblemType=', GaugesProblems%Pump1Strokes%ProblemType
print*, 'Pump1Strokes%StatusType=', GaugesProblems%Pump1Strokes%StatusType
print*, 'Pump1Strokes%Value=', GaugesProblems%Pump1Strokes%Value
#endif
end subroutine

@@ -88,11 +88,11 @@ module CGaugesProblems
!DEC$ ATTRIBUTES ALIAS: 'SetPump2Strokes' :: SetPump2Strokes
implicit none
type(CProblem), intent(in) :: v
Pump2Strokes = SetDue(v, ChangePump2Strokes)
GaugesProblems%Pump2Strokes = SetDue(v, ChangePump2Strokes)
#ifdef deb
print*, 'Pump2Strokes%ProblemType=', Pump2Strokes%ProblemType
print*, 'Pump2Strokes%StatusType=', Pump2Strokes%StatusType
print*, 'Pump2Strokes%Value=', Pump2Strokes%Value
print*, 'Pump2Strokes%ProblemType=', GaugesProblems%Pump2Strokes%ProblemType
print*, 'Pump2Strokes%StatusType=', GaugesProblems%Pump2Strokes%StatusType
print*, 'Pump2Strokes%Value=', GaugesProblems%Pump2Strokes%Value
#endif
end subroutine

@@ -101,11 +101,11 @@ module CGaugesProblems
!DEC$ ATTRIBUTES ALIAS: 'SetReturnLineTemperature' :: SetReturnLineTemperature
implicit none
type(CProblem), intent(in) :: v
ReturnLineTemperature = SetDue(v, ChangeReturnLineTemperature)
GaugesProblems%ReturnLineTemperature = SetDue(v, ChangeReturnLineTemperature)
#ifdef deb
print*, 'ReturnLineTemperature%ProblemType=', ReturnLineTemperature%ProblemType
print*, 'ReturnLineTemperature%StatusType=', ReturnLineTemperature%StatusType
print*, 'ReturnLineTemperature%Value=', ReturnLineTemperature%Value
print*, 'ReturnLineTemperature%ProblemType=', GaugesProblems%ReturnLineTemperature%ProblemType
print*, 'ReturnLineTemperature%StatusType=', GaugesProblems%ReturnLineTemperature%StatusType
print*, 'ReturnLineTemperature%Value=', GaugesProblems%ReturnLineTemperature%Value
#endif
end subroutine

@@ -114,11 +114,11 @@ module CGaugesProblems
!DEC$ ATTRIBUTES ALIAS: 'SetTripTank' :: SetTripTank
implicit none
type(CProblem), intent(in) :: v
TripTank = SetDue(v, ChangeTripTank)
GaugesProblems%TripTank = SetDue(v, ChangeTripTank)
#ifdef deb
print*, 'TripTank%ProblemType=', TripTank%ProblemType
print*, 'TripTank%StatusType=', TripTank%StatusType
print*, 'TripTank%Value=', TripTank%Value
print*, 'TripTank%ProblemType=', GaugesProblems%TripTank%ProblemType
print*, 'TripTank%StatusType=', GaugesProblems%TripTank%StatusType
print*, 'TripTank%Value=', GaugesProblems%TripTank%Value
#endif
end subroutine

@@ -127,11 +127,11 @@ module CGaugesProblems
!DEC$ ATTRIBUTES ALIAS: 'SetPitGainLoss' :: SetPitGainLoss
implicit none
type(CProblem), intent(in) :: v
PitGainLoss = SetDue(v, ChangePitGainLoss)
GaugesProblems%PitGainLoss = SetDue(v, ChangePitGainLoss)
#ifdef deb
print*, 'PitGainLoss%ProblemType=', PitGainLoss%ProblemType
print*, 'PitGainLoss%StatusType=', PitGainLoss%StatusType
print*, 'PitGainLoss%Value=', PitGainLoss%Value
print*, 'PitGainLoss%ProblemType=', GaugesProblems%PitGainLoss%ProblemType
print*, 'PitGainLoss%StatusType=', GaugesProblems%PitGainLoss%StatusType
print*, 'PitGainLoss%Value=', GaugesProblems%PitGainLoss%Value
#endif
end subroutine

@@ -140,11 +140,11 @@ module CGaugesProblems
!DEC$ ATTRIBUTES ALIAS: 'SetMudTankVolume' :: SetMudTankVolume
implicit none
type(CProblem), intent(in) :: v
MudTankVolume = SetDue(v, ChangeMudTankVolume)
GaugesProblems%MudTankVolume = SetDue(v, ChangeMudTankVolume)
#ifdef deb
print*, 'MudTankVolume%ProblemType=', MudTankVolume%ProblemType
print*, 'MudTankVolume%StatusType=', MudTankVolume%StatusType
print*, 'MudTankVolume%Value=', MudTankVolume%Value
print*, 'MudTankVolume%ProblemType=', GaugesProblems%MudTankVolume%ProblemType
print*, 'MudTankVolume%StatusType=', GaugesProblems%MudTankVolume%StatusType
print*, 'MudTankVolume%Value=', GaugesProblems%MudTankVolume%Value
#endif
end subroutine

@@ -153,11 +153,11 @@ module CGaugesProblems
!DEC$ ATTRIBUTES ALIAS: 'SetReturnMudFlow' :: SetReturnMudFlow
implicit none
type(CProblem), intent(in) :: v
ReturnMudFlow = SetDue(v, ChangeReturnMudFlow)
GaugesProblems%ReturnMudFlow = SetDue(v, ChangeReturnMudFlow)
#ifdef deb
print*, 'ReturnMudFlow%ProblemType=', ReturnMudFlow%ProblemType
print*, 'ReturnMudFlow%StatusType=', ReturnMudFlow%StatusType
print*, 'ReturnMudFlow%Value=', ReturnMudFlow%Value
print*, 'ReturnMudFlow%ProblemType=', GaugesProblems%ReturnMudFlow%ProblemType
print*, 'ReturnMudFlow%StatusType=', GaugesProblems%ReturnMudFlow%StatusType
print*, 'ReturnMudFlow%Value=', GaugesProblems%ReturnMudFlow%Value
#endif
end subroutine

@@ -166,11 +166,11 @@ module CGaugesProblems
!DEC$ ATTRIBUTES ALIAS: 'SetTorqueLimit' :: SetTorqueLimit
implicit none
type(CProblem), intent(in) :: v
TorqueLimit = SetDue(v, ChangeTorqueLimit)
GaugesProblems%TorqueLimit = SetDue(v, ChangeTorqueLimit)
#ifdef deb
print*, 'TorqueLimit%ProblemType=', TorqueLimit%ProblemType
print*, 'TorqueLimit%StatusType=', TorqueLimit%StatusType
print*, 'TorqueLimit%Value=', TorqueLimit%Value
print*, 'TorqueLimit%ProblemType=', GaugesProblems%TorqueLimit%ProblemType
print*, 'TorqueLimit%StatusType=', GaugesProblems%TorqueLimit%StatusType
print*, 'TorqueLimit%Value=', GaugesProblems%TorqueLimit%Value
#endif
end subroutine

@@ -179,11 +179,11 @@ module CGaugesProblems
!DEC$ ATTRIBUTES ALIAS: 'SetPowerLimit' :: SetPowerLimit
implicit none
type(CProblem), intent(in) :: v
PowerLimit = SetDue(v, ChangePowerLimit)
GaugesProblems%PowerLimit = SetDue(v, ChangePowerLimit)
#ifdef deb
print*, 'PowerLimit%ProblemType=', PowerLimit%ProblemType
print*, 'PowerLimit%StatusType=', PowerLimit%StatusType
print*, 'PowerLimit%Value=', PowerLimit%Value
print*, 'PowerLimit%ProblemType=', GaugesProblems%PowerLimit%ProblemType
print*, 'PowerLimit%StatusType=', GaugesProblems%PowerLimit%StatusType
print*, 'PowerLimit%Value=', GaugesProblems%PowerLimit%Value
#endif
end subroutine

@@ -192,11 +192,11 @@ module CGaugesProblems
!DEC$ ATTRIBUTES ALIAS: 'SetAccumulatorPressure' :: SetAccumulatorPressure
implicit none
type(CProblem), intent(in) :: v
AccumulatorPressure = SetDue(v, ChangeAccumulatorPressure)
GaugesProblems%AccumulatorPressure = SetDue(v, ChangeAccumulatorPressure)
#ifdef deb
print*, 'AccumulatorPressure%ProblemType=', AccumulatorPressure%ProblemType
print*, 'AccumulatorPressure%StatusType=', AccumulatorPressure%StatusType
print*, 'AccumulatorPressure%Value=', AccumulatorPressure%Value
print*, 'AccumulatorPressure%ProblemType=', GaugesProblems%AccumulatorPressure%ProblemType
print*, 'AccumulatorPressure%StatusType=', GaugesProblems%AccumulatorPressure%StatusType
print*, 'AccumulatorPressure%Value=', GaugesProblems%AccumulatorPressure%Value
#endif
end subroutine

@@ -205,11 +205,11 @@ module CGaugesProblems
!DEC$ ATTRIBUTES ALIAS: 'SetManifoldPressure' :: SetManifoldPressure
implicit none
type(CProblem), intent(in) :: v
ManifoldPressure = SetDue(v, ChangeManifoldPressure)
GaugesProblems%ManifoldPressure = SetDue(v, ChangeManifoldPressure)
#ifdef deb
print*, 'ManifoldPressure%ProblemType=', ManifoldPressure%ProblemType
print*, 'ManifoldPressure%StatusType=', ManifoldPressure%StatusType
print*, 'ManifoldPressure%Value=', ManifoldPressure%Value
print*, 'ManifoldPressure%ProblemType=', GaugesProblems%ManifoldPressure%ProblemType
print*, 'ManifoldPressure%StatusType=', GaugesProblems%ManifoldPressure%StatusType
print*, 'ManifoldPressure%Value=', GaugesProblems%ManifoldPressure%Value
#endif
end subroutine

@@ -218,11 +218,11 @@ module CGaugesProblems
!DEC$ ATTRIBUTES ALIAS: 'SetAnnularPressure' :: SetAnnularPressure
implicit none
type(CProblem), intent(in) :: v
AnnularPressure = SetDue(v, ChangeAnnularPressure)
GaugesProblems%AnnularPressure = SetDue(v, ChangeAnnularPressure)
#ifdef deb
print*, 'AnnularPressure%ProblemType=', AnnularPressure%ProblemType
print*, 'AnnularPressure%StatusType=', AnnularPressure%StatusType
print*, 'AnnularPressure%Value=', AnnularPressure%Value
print*, 'AnnularPressure%ProblemType=', GaugesProblems%AnnularPressure%ProblemType
print*, 'AnnularPressure%StatusType=', GaugesProblems%AnnularPressure%StatusType
print*, 'AnnularPressure%Value=', GaugesProblems%AnnularPressure%Value
#endif
end subroutine

@@ -231,11 +231,11 @@ module CGaugesProblems
!DEC$ ATTRIBUTES ALIAS: 'SetRigAirPressure' :: SetRigAirPressure
implicit none
type(CProblem), intent(in) :: v
RigAirPressure = SetDue(v, ChangeRigAirPressure)
GaugesProblems%RigAirPressure = SetDue(v, ChangeRigAirPressure)
#ifdef deb
print*, 'RigAirPressure%ProblemType=', RigAirPressure%ProblemType
print*, 'RigAirPressure%StatusType=', RigAirPressure%StatusType
print*, 'RigAirPressure%Value=', RigAirPressure%Value
print*, 'RigAirPressure%ProblemType=', GaugesProblems%RigAirPressure%ProblemType
print*, 'RigAirPressure%StatusType=', GaugesProblems%RigAirPressure%StatusType
print*, 'RigAirPressure%Value=', GaugesProblems%RigAirPressure%Value
#endif
end subroutine

@@ -244,11 +244,11 @@ module CGaugesProblems
!DEC$ ATTRIBUTES ALIAS: 'SetStandPipe1' :: SetStandPipe1
implicit none
type(CProblem), intent(in) :: v
StandPipe1 = SetDue(v, ChangeStandPipe1)
GaugesProblems%StandPipe1 = SetDue(v, ChangeStandPipe1)
#ifdef deb
print*, 'StandPipe1%ProblemType=', StandPipe1%ProblemType
print*, 'StandPipe1%StatusType=', StandPipe1%StatusType
print*, 'StandPipe1%Value=', StandPipe1%Value
print*, 'StandPipe1%ProblemType=', GaugesProblems%StandPipe1%ProblemType
print*, 'StandPipe1%StatusType=', GaugesProblems%StandPipe1%StatusType
print*, 'StandPipe1%Value=', GaugesProblems%StandPipe1%Value
#endif
end subroutine

@@ -257,11 +257,11 @@ module CGaugesProblems
!DEC$ ATTRIBUTES ALIAS: 'SetStandPipe2' :: SetStandPipe2
implicit none
type(CProblem), intent(in) :: v
StandPipe2 = SetDue(v, ChangeStandPipe2)
GaugesProblems%StandPipe2 = SetDue(v, ChangeStandPipe2)
#ifdef deb
print*, 'StandPipe2%ProblemType=', StandPipe2%ProblemType
print*, 'StandPipe2%StatusType=', StandPipe2%StatusType
print*, 'StandPipe2%Value=', StandPipe2%Value
print*, 'StandPipe2%ProblemType=', GaugesProblems%StandPipe2%ProblemType
print*, 'StandPipe2%StatusType=', GaugesProblems%StandPipe2%StatusType
print*, 'StandPipe2%Value=', GaugesProblems%StandPipe2%Value
#endif
end subroutine

@@ -270,11 +270,11 @@ module CGaugesProblems
!DEC$ ATTRIBUTES ALIAS: 'SetDrillPipePressure' :: SetDrillPipePressure
implicit none
type(CProblem), intent(in) :: v
DrillPipePressure = SetDue(v, ChangeDrillPipePressure)
GaugesProblems%DrillPipePressure = SetDue(v, ChangeDrillPipePressure)
#ifdef deb
print*, 'DrillPipePressure%ProblemType=', DrillPipePressure%ProblemType
print*, 'DrillPipePressure%StatusType=', DrillPipePressure%StatusType
print*, 'DrillPipePressure%Value=', DrillPipePressure%Value
print*, 'DrillPipePressure%ProblemType=', GaugesProblems%DrillPipePressure%ProblemType
print*, 'DrillPipePressure%StatusType=', GaugesProblems%DrillPipePressure%StatusType
print*, 'DrillPipePressure%Value=', GaugesProblems%DrillPipePressure%Value
#endif
end subroutine

@@ -283,11 +283,11 @@ module CGaugesProblems
!DEC$ ATTRIBUTES ALIAS: 'SetChokePosition' :: SetChokePosition
implicit none
type(CProblem), intent(in) :: v
ChokePosition = SetDue(v, ChangeChokePosition)
GaugesProblems%ChokePosition = SetDue(v, ChangeChokePosition)
#ifdef deb
print*, 'ChokePosition%ProblemType=', ChokePosition%ProblemType
print*, 'ChokePosition%StatusType=', ChokePosition%StatusType
print*, 'ChokePosition%Value=', ChokePosition%Value
print*, 'ChokePosition%ProblemType=', GaugesProblems%ChokePosition%ProblemType
print*, 'ChokePosition%StatusType=', GaugesProblems%ChokePosition%StatusType
print*, 'ChokePosition%Value=', GaugesProblems%ChokePosition%Value
#endif
end subroutine

@@ -296,11 +296,11 @@ module CGaugesProblems
!DEC$ ATTRIBUTES ALIAS: 'SetCasingPressure2' :: SetCasingPressure2
implicit none
type(CProblem), intent(in) :: v
CasingPressure2 = SetDue(v, ChangeCasingPressure2)
GaugesProblems%CasingPressure2 = SetDue(v, ChangeCasingPressure2)
#ifdef deb
print*, 'CasingPressure2%ProblemType=', CasingPressure2%ProblemType
print*, 'CasingPressure2%StatusType=', CasingPressure2%StatusType
print*, 'CasingPressure2%Value=', CasingPressure2%Value
print*, 'CasingPressure2%ProblemType=', GaugesProblems%CasingPressure2%ProblemType
print*, 'CasingPressure2%StatusType=', GaugesProblems%CasingPressure2%StatusType
print*, 'CasingPressure2%Value=', GaugesProblems%CasingPressure2%Value
#endif
end subroutine


+ 328
- 327
CSharp/Problems/CGaugesProblemsVariables.f90 Datei anzeigen

@@ -2,57 +2,58 @@ module CGaugesProblemsVariables
use CProblemDifinition
implicit none
public
type(CProblem) :: WeightIndicator
type(CProblem) :: RotaryRpm
type(CProblem) :: RotaryTorque
type(CProblem) :: StandPipePressure
type(CProblem) :: CasingPressure
type(CProblem) :: Pump1Strokes
type(CProblem) :: Pump2Strokes
type(CProblem) :: ReturnLineTemperature
type(CProblem) :: TripTank
type(CProblem) :: PitGainLoss
type(CProblem) :: MudTankVolume
type(CProblem) :: ReturnMudFlow
type(CProblem) :: TorqueLimit
type(CProblem) :: PowerLimit
type(CProblem) :: AccumulatorPressure
type(CProblem) :: ManifoldPressure
type(CProblem) :: AnnularPressure
type(CProblem) :: RigAirPressure
type(CProblem) :: StandPipe1
type(CProblem) :: StandPipe2
type(CProblem) :: DrillPipePressure
type(CProblem) :: ChokePosition
type(CProblem) :: CasingPressure2

procedure (ActionInteger), pointer :: WeightIndicatorPtr
procedure (ActionInteger), pointer :: RotaryRpmPtr
procedure (ActionInteger), pointer :: RotaryTorquePtr
procedure (ActionInteger), pointer :: StandPipePressurePtr
procedure (ActionInteger), pointer :: CasingPressurePtr
procedure (ActionInteger), pointer :: Pump1StrokesPtr
procedure (ActionInteger), pointer :: Pump2StrokesPtr
procedure (ActionInteger), pointer :: ReturnLineTemperaturePtr
procedure (ActionInteger), pointer :: TripTankPtr
procedure (ActionInteger), pointer :: PitGainLossPtr
procedure (ActionInteger), pointer :: MudTankVolumePtr
procedure (ActionInteger), pointer :: ReturnMudFlowPtr
procedure (ActionInteger), pointer :: TorqueLimitPtr
procedure (ActionInteger), pointer :: PowerLimitPtr
procedure (ActionInteger), pointer :: AccumulatorPressurePtr
procedure (ActionInteger), pointer :: ManifoldPressurePtr
procedure (ActionInteger), pointer :: AnnularPressurePtr
procedure (ActionInteger), pointer :: RigAirPressurePtr
procedure (ActionInteger), pointer :: StandPipe1Ptr
procedure (ActionInteger), pointer :: StandPipe2Ptr
procedure (ActionInteger), pointer :: DrillPipePressurePtr
procedure (ActionInteger), pointer :: ChokePositionPtr
procedure (ActionInteger), pointer :: CasingPressure2Ptr
type :: GaugesProblemsType
type(CProblem) :: WeightIndicator
type(CProblem) :: RotaryRpm
type(CProblem) :: RotaryTorque
type(CProblem) :: StandPipePressure
type(CProblem) :: CasingPressure
type(CProblem) :: Pump1Strokes
type(CProblem) :: Pump2Strokes
type(CProblem) :: ReturnLineTemperature
type(CProblem) :: TripTank
type(CProblem) :: PitGainLoss
type(CProblem) :: MudTankVolume
type(CProblem) :: ReturnMudFlow
type(CProblem) :: TorqueLimit
type(CProblem) :: PowerLimit
type(CProblem) :: AccumulatorPressure
type(CProblem) :: ManifoldPressure
type(CProblem) :: AnnularPressure
type(CProblem) :: RigAirPressure
type(CProblem) :: StandPipe1
type(CProblem) :: StandPipe2
type(CProblem) :: DrillPipePressure
type(CProblem) :: ChokePosition
type(CProblem) :: CasingPressure2
end type GaugesProblemsType
type(GaugesProblemsType)::GaugesProblems
! procedure (ActionInteger), pointer :: WeightIndicatorPtr
! procedure (ActionInteger), pointer :: RotaryRpmPtr
! procedure (ActionInteger), pointer :: RotaryTorquePtr
! procedure (ActionInteger), pointer :: StandPipePressurePtr
! procedure (ActionInteger), pointer :: CasingPressurePtr
! procedure (ActionInteger), pointer :: Pump1StrokesPtr
! procedure (ActionInteger), pointer :: Pump2StrokesPtr
! procedure (ActionInteger), pointer :: ReturnLineTemperaturePtr
! procedure (ActionInteger), pointer :: TripTankPtr
! procedure (ActionInteger), pointer :: PitGainLossPtr
! procedure (ActionInteger), pointer :: MudTankVolumePtr
! procedure (ActionInteger), pointer :: ReturnMudFlowPtr
! procedure (ActionInteger), pointer :: TorqueLimitPtr
! procedure (ActionInteger), pointer :: PowerLimitPtr
! procedure (ActionInteger), pointer :: AccumulatorPressurePtr
! procedure (ActionInteger), pointer :: ManifoldPressurePtr
! procedure (ActionInteger), pointer :: AnnularPressurePtr
! procedure (ActionInteger), pointer :: RigAirPressurePtr
! procedure (ActionInteger), pointer :: StandPipe1Ptr
! procedure (ActionInteger), pointer :: StandPipe2Ptr
! procedure (ActionInteger), pointer :: DrillPipePressurePtr
! procedure (ActionInteger), pointer :: ChokePositionPtr
! procedure (ActionInteger), pointer :: CasingPressure2Ptr

contains
@@ -60,113 +61,113 @@ module CGaugesProblemsVariables
subroutine ProcessGaugesProblemsDueTime(time)
implicit none
integer :: time
if(WeightIndicator%ProblemType == Time_ProblemType) call ProcessDueTime(WeightIndicator, ChangeWeightIndicator, time)
if(RotaryRpm%ProblemType == Time_ProblemType) call ProcessDueTime(RotaryRpm, ChangeRotaryRpm, time)
if(RotaryTorque%ProblemType == Time_ProblemType) call ProcessDueTime(RotaryTorque, ChangeRotaryTorque, time)
if(StandPipePressure%ProblemType == Time_ProblemType) call ProcessDueTime(StandPipePressure, ChangeStandPipePressure, time)
if(CasingPressure%ProblemType == Time_ProblemType) call ProcessDueTime(CasingPressure, ChangeCasingPressure, time)
if(Pump1Strokes%ProblemType == Time_ProblemType) call ProcessDueTime(Pump1Strokes, ChangePump1Strokes, time)
if(Pump2Strokes%ProblemType == Time_ProblemType) call ProcessDueTime(Pump2Strokes, ChangePump2Strokes, time)
if(ReturnLineTemperature%ProblemType == Time_ProblemType) call ProcessDueTime(ReturnLineTemperature, ChangeReturnLineTemperature, time)
if(TripTank%ProblemType == Time_ProblemType) call ProcessDueTime(TripTank, ChangeTripTank, time)
if(PitGainLoss%ProblemType == Time_ProblemType) call ProcessDueTime(PitGainLoss, ChangePitGainLoss, time)
if(MudTankVolume%ProblemType == Time_ProblemType) call ProcessDueTime(MudTankVolume, ChangeMudTankVolume, time)
if(ReturnMudFlow%ProblemType == Time_ProblemType) call ProcessDueTime(ReturnMudFlow, ChangeReturnMudFlow, time)
if(TorqueLimit%ProblemType == Time_ProblemType) call ProcessDueTime(TorqueLimit, ChangeTorqueLimit, time)
if(PowerLimit%ProblemType == Time_ProblemType) call ProcessDueTime(PowerLimit, ChangePowerLimit, time)
if(AccumulatorPressure%ProblemType == Time_ProblemType) call ProcessDueTime(AccumulatorPressure, ChangeAccumulatorPressure, time)
if(ManifoldPressure%ProblemType == Time_ProblemType) call ProcessDueTime(ManifoldPressure, ChangeManifoldPressure, time)
if(AnnularPressure%ProblemType == Time_ProblemType) call ProcessDueTime(AnnularPressure, ChangeAnnularPressure, time)
if(RigAirPressure%ProblemType == Time_ProblemType) call ProcessDueTime(RigAirPressure, ChangeRigAirPressure, time)
if(StandPipe1%ProblemType == Time_ProblemType) call ProcessDueTime(StandPipe1, ChangeStandPipe1, time)
if(StandPipe2%ProblemType == Time_ProblemType) call ProcessDueTime(StandPipe2, ChangeStandPipe2, time)
if(DrillPipePressure%ProblemType == Time_ProblemType) call ProcessDueTime(DrillPipePressure, ChangeDrillPipePressure, time)
if(ChokePosition%ProblemType == Time_ProblemType) call ProcessDueTime(ChokePosition, ChangeChokePosition, time)
if(CasingPressure2%ProblemType == Time_ProblemType) call ProcessDueTime(CasingPressure2, ChangeCasingPressure2, time)
if(GaugesProblems%WeightIndicator%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%WeightIndicator, ChangeWeightIndicator, time)
if(GaugesProblems%RotaryRpm%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%RotaryRpm, ChangeRotaryRpm, time)
if(GaugesProblems%RotaryTorque%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%RotaryTorque, ChangeRotaryTorque, time)
if(GaugesProblems%StandPipePressure%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%StandPipePressure, ChangeStandPipePressure, time)
if(GaugesProblems%CasingPressure%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%CasingPressure, ChangeCasingPressure, time)
if(GaugesProblems%Pump1Strokes%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%Pump1Strokes, ChangePump1Strokes, time)
if(GaugesProblems%Pump2Strokes%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%Pump2Strokes, ChangePump2Strokes, time)
if(GaugesProblems%ReturnLineTemperature%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%ReturnLineTemperature, ChangeReturnLineTemperature, time)
if(GaugesProblems%TripTank%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%TripTank, ChangeTripTank, time)
if(GaugesProblems%PitGainLoss%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%PitGainLoss, ChangePitGainLoss, time)
if(GaugesProblems%MudTankVolume%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%MudTankVolume, ChangeMudTankVolume, time)
if(GaugesProblems%ReturnMudFlow%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%ReturnMudFlow, ChangeReturnMudFlow, time)
if(GaugesProblems%TorqueLimit%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%TorqueLimit, ChangeTorqueLimit, time)
if(GaugesProblems%PowerLimit%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%PowerLimit, ChangePowerLimit, time)
if(GaugesProblems%AccumulatorPressure%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%AccumulatorPressure, ChangeAccumulatorPressure, time)
if(GaugesProblems%ManifoldPressure%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%ManifoldPressure, ChangeManifoldPressure, time)
if(GaugesProblems%AnnularPressure%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%AnnularPressure, ChangeAnnularPressure, time)
if(GaugesProblems%RigAirPressure%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%RigAirPressure, ChangeRigAirPressure, time)
if(GaugesProblems%StandPipe1%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%StandPipe1, ChangeStandPipe1, time)
if(GaugesProblems%StandPipe2%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%StandPipe2, ChangeStandPipe2, time)
if(GaugesProblems%DrillPipePressure%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%DrillPipePressure, ChangeDrillPipePressure, time)
if(GaugesProblems%ChokePosition%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%ChokePosition, ChangeChokePosition, time)
if(GaugesProblems%CasingPressure2%ProblemType == Time_ProblemType) call ProcessDueTime(GaugesProblems%CasingPressure2, ChangeCasingPressure2, time)
end subroutine
subroutine ProcessGaugesProblemsDuePumpStrokes(strokes)
implicit none
integer :: strokes
if(WeightIndicator%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(WeightIndicator, ChangeWeightIndicator, strokes)
if(RotaryRpm%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(RotaryRpm, ChangeRotaryRpm, strokes)
if(RotaryTorque%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(RotaryTorque, ChangeRotaryTorque, strokes)
if(StandPipePressure%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(StandPipePressure, ChangeStandPipePressure, strokes)
if(CasingPressure%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(CasingPressure, ChangeCasingPressure, strokes)
if(Pump1Strokes%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(Pump1Strokes, ChangePump1Strokes, strokes)
if(Pump2Strokes%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(Pump2Strokes, ChangePump2Strokes, strokes)
if(ReturnLineTemperature%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(ReturnLineTemperature, ChangeReturnLineTemperature, strokes)
if(TripTank%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(TripTank, ChangeTripTank, strokes)
if(PitGainLoss%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(PitGainLoss, ChangePitGainLoss, strokes)
if(MudTankVolume%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(MudTankVolume, ChangeMudTankVolume, strokes)
if(ReturnMudFlow%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(ReturnMudFlow, ChangeReturnMudFlow, strokes)
if(TorqueLimit%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(TorqueLimit, ChangeTorqueLimit, strokes)
if(PowerLimit%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(PowerLimit, ChangePowerLimit, strokes)
if(AccumulatorPressure%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(AccumulatorPressure, ChangeAccumulatorPressure, strokes)
if(ManifoldPressure%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(ManifoldPressure, ChangeManifoldPressure, strokes)
if(AnnularPressure%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(AnnularPressure, ChangeAnnularPressure, strokes)
if(RigAirPressure%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(RigAirPressure, ChangeRigAirPressure, strokes)
if(StandPipe1%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(StandPipe1, ChangeStandPipe1, strokes)
if(StandPipe2%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(StandPipe2, ChangeStandPipe2, strokes)
if(DrillPipePressure%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(DrillPipePressure, ChangeDrillPipePressure, strokes)
if(ChokePosition%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(ChokePosition, ChangeChokePosition, strokes)
if(CasingPressure2%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(CasingPressure2, ChangeCasingPressure2, strokes)
if(GaugesProblems%WeightIndicator%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%WeightIndicator, ChangeWeightIndicator, strokes)
if(GaugesProblems%RotaryRpm%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%RotaryRpm, ChangeRotaryRpm, strokes)
if(GaugesProblems%RotaryTorque%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%RotaryTorque, ChangeRotaryTorque, strokes)
if(GaugesProblems%StandPipePressure%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%StandPipePressure, ChangeStandPipePressure, strokes)
if(GaugesProblems%CasingPressure%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%CasingPressure, ChangeCasingPressure, strokes)
if(GaugesProblems%Pump1Strokes%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%Pump1Strokes, ChangePump1Strokes, strokes)
if(GaugesProblems%Pump2Strokes%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%Pump2Strokes, ChangePump2Strokes, strokes)
if(GaugesProblems%ReturnLineTemperature%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%ReturnLineTemperature, ChangeReturnLineTemperature, strokes)
if(GaugesProblems%TripTank%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%TripTank, ChangeTripTank, strokes)
if(GaugesProblems%PitGainLoss%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%PitGainLoss, ChangePitGainLoss, strokes)
if(GaugesProblems%MudTankVolume%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%MudTankVolume, ChangeMudTankVolume, strokes)
if(GaugesProblems%ReturnMudFlow%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%ReturnMudFlow, ChangeReturnMudFlow, strokes)
if(GaugesProblems%TorqueLimit%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%TorqueLimit, ChangeTorqueLimit, strokes)
if(GaugesProblems%PowerLimit%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%PowerLimit, ChangePowerLimit, strokes)
if(GaugesProblems%AccumulatorPressure%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%AccumulatorPressure, ChangeAccumulatorPressure, strokes)
if(GaugesProblems%ManifoldPressure%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%ManifoldPressure, ChangeManifoldPressure, strokes)
if(GaugesProblems%AnnularPressure%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%AnnularPressure, ChangeAnnularPressure, strokes)
if(GaugesProblems%RigAirPressure%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%RigAirPressure, ChangeRigAirPressure, strokes)
if(GaugesProblems%StandPipe1%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%StandPipe1, ChangeStandPipe1, strokes)
if(GaugesProblems%StandPipe2%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%StandPipe2, ChangeStandPipe2, strokes)
if(GaugesProblems%DrillPipePressure%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%DrillPipePressure, ChangeDrillPipePressure, strokes)
if(GaugesProblems%ChokePosition%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%ChokePosition, ChangeChokePosition, strokes)
if(GaugesProblems%CasingPressure2%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(GaugesProblems%CasingPressure2, ChangeCasingPressure2, strokes)
end subroutine
subroutine ProcessGaugesProblemsDueVolumePumped(volume)
implicit none
real(8) :: volume
if(WeightIndicator%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(WeightIndicator, ChangeWeightIndicator, volume)
if(RotaryRpm%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(RotaryRpm, ChangeRotaryRpm, volume)
if(RotaryTorque%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(RotaryTorque, ChangeRotaryTorque, volume)
if(StandPipePressure%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(StandPipePressure, ChangeStandPipePressure, volume)
if(CasingPressure%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(CasingPressure, ChangeCasingPressure, volume)
if(Pump1Strokes%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(Pump1Strokes, ChangePump1Strokes, volume)
if(Pump2Strokes%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(Pump2Strokes, ChangePump2Strokes, volume)
if(ReturnLineTemperature%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(ReturnLineTemperature, ChangeReturnLineTemperature, volume)
if(TripTank%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(TripTank, ChangeTripTank, volume)
if(PitGainLoss%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(PitGainLoss, ChangePitGainLoss, volume)
if(MudTankVolume%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(MudTankVolume, ChangeMudTankVolume, volume)
if(ReturnMudFlow%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(ReturnMudFlow, ChangeReturnMudFlow, volume)
if(TorqueLimit%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(TorqueLimit, ChangeTorqueLimit, volume)
if(PowerLimit%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(PowerLimit, ChangePowerLimit, volume)
if(AccumulatorPressure%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(AccumulatorPressure, ChangeAccumulatorPressure, volume)
if(ManifoldPressure%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(ManifoldPressure, ChangeManifoldPressure, volume)
if(AnnularPressure%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(AnnularPressure, ChangeAnnularPressure, volume)
if(RigAirPressure%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(RigAirPressure, ChangeRigAirPressure, volume)
if(StandPipe1%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(StandPipe1, ChangeStandPipe1, volume)
if(StandPipe2%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(StandPipe2, ChangeStandPipe2, volume)
if(DrillPipePressure%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(DrillPipePressure, ChangeDrillPipePressure, volume)
if(ChokePosition%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(ChokePosition, ChangeChokePosition, volume)
if(CasingPressure2%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(CasingPressure2, ChangeCasingPressure2, volume)
if(GaugesProblems%WeightIndicator%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%WeightIndicator, ChangeWeightIndicator, volume)
if(GaugesProblems%RotaryRpm%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%RotaryRpm, ChangeRotaryRpm, volume)
if(GaugesProblems%RotaryTorque%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%RotaryTorque, ChangeRotaryTorque, volume)
if(GaugesProblems%StandPipePressure%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%StandPipePressure, ChangeStandPipePressure, volume)
if(GaugesProblems%CasingPressure%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%CasingPressure, ChangeCasingPressure, volume)
if(GaugesProblems%Pump1Strokes%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%Pump1Strokes, ChangePump1Strokes, volume)
if(GaugesProblems%Pump2Strokes%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%Pump2Strokes, ChangePump2Strokes, volume)
if(GaugesProblems%ReturnLineTemperature%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%ReturnLineTemperature, ChangeReturnLineTemperature, volume)
if(GaugesProblems%TripTank%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%TripTank, ChangeTripTank, volume)
if(GaugesProblems%PitGainLoss%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%PitGainLoss, ChangePitGainLoss, volume)
if(GaugesProblems%MudTankVolume%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%MudTankVolume, ChangeMudTankVolume, volume)
if(GaugesProblems%ReturnMudFlow%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%ReturnMudFlow, ChangeReturnMudFlow, volume)
if(GaugesProblems%TorqueLimit%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%TorqueLimit, ChangeTorqueLimit, volume)
if(GaugesProblems%PowerLimit%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%PowerLimit, ChangePowerLimit, volume)
if(GaugesProblems%AccumulatorPressure%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%AccumulatorPressure, ChangeAccumulatorPressure, volume)
if(GaugesProblems%ManifoldPressure%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%ManifoldPressure, ChangeManifoldPressure, volume)
if(GaugesProblems%AnnularPressure%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%AnnularPressure, ChangeAnnularPressure, volume)
if(GaugesProblems%RigAirPressure%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%RigAirPressure, ChangeRigAirPressure, volume)
if(GaugesProblems%StandPipe1%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%StandPipe1, ChangeStandPipe1, volume)
if(GaugesProblems%StandPipe2%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%StandPipe2, ChangeStandPipe2, volume)
if(GaugesProblems%DrillPipePressure%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%DrillPipePressure, ChangeDrillPipePressure, volume)
if(GaugesProblems%ChokePosition%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%ChokePosition, ChangeChokePosition, volume)
if(GaugesProblems%CasingPressure2%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(GaugesProblems%CasingPressure2, ChangeCasingPressure2, volume)
end subroutine
subroutine ProcessGaugesProblemsDueDistanceDrilled(distance)
implicit none
real(8) :: distance
if(WeightIndicator%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(WeightIndicator, ChangeWeightIndicator, distance)
if(RotaryRpm%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(RotaryRpm, ChangeRotaryRpm, distance)
if(RotaryTorque%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(RotaryTorque, ChangeRotaryTorque, distance)
if(StandPipePressure%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(StandPipePressure, ChangeStandPipePressure, distance)
if(CasingPressure%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(CasingPressure, ChangeCasingPressure, distance)
if(Pump1Strokes%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(Pump1Strokes, ChangePump1Strokes, distance)
if(Pump2Strokes%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(Pump2Strokes, ChangePump2Strokes, distance)
if(ReturnLineTemperature%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(ReturnLineTemperature, ChangeReturnLineTemperature, distance)
if(TripTank%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(TripTank, ChangeTripTank, distance)
if(PitGainLoss%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(PitGainLoss, ChangePitGainLoss, distance)
if(MudTankVolume%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(MudTankVolume, ChangeMudTankVolume, distance)
if(ReturnMudFlow%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(ReturnMudFlow, ChangeReturnMudFlow, distance)
if(TorqueLimit%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(TorqueLimit, ChangeTorqueLimit, distance)
if(PowerLimit%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(PowerLimit, ChangePowerLimit, distance)
if(AccumulatorPressure%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(AccumulatorPressure, ChangeAccumulatorPressure, distance)
if(ManifoldPressure%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(ManifoldPressure, ChangeManifoldPressure, distance)
if(AnnularPressure%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(AnnularPressure, ChangeAnnularPressure, distance)
if(RigAirPressure%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(RigAirPressure, ChangeRigAirPressure, distance)
if(StandPipe1%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(StandPipe1, ChangeStandPipe1, distance)
if(StandPipe2%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(StandPipe2, ChangeStandPipe2, distance)
if(DrillPipePressure%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(DrillPipePressure, ChangeDrillPipePressure, distance)
if(ChokePosition%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(ChokePosition, ChangeChokePosition, distance)
if(CasingPressure2%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(CasingPressure2, ChangeCasingPressure2, distance)
if(GaugesProblems%WeightIndicator%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%WeightIndicator, ChangeWeightIndicator, distance)
if(GaugesProblems%RotaryRpm%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%RotaryRpm, ChangeRotaryRpm, distance)
if(GaugesProblems%RotaryTorque%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%RotaryTorque, ChangeRotaryTorque, distance)
if(GaugesProblems%StandPipePressure%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%StandPipePressure, ChangeStandPipePressure, distance)
if(GaugesProblems%CasingPressure%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%CasingPressure, ChangeCasingPressure, distance)
if(GaugesProblems%Pump1Strokes%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%Pump1Strokes, ChangePump1Strokes, distance)
if(GaugesProblems%Pump2Strokes%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%Pump2Strokes, ChangePump2Strokes, distance)
if(GaugesProblems%ReturnLineTemperature%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%ReturnLineTemperature, ChangeReturnLineTemperature, distance)
if(GaugesProblems%TripTank%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%TripTank, ChangeTripTank, distance)
if(GaugesProblems%PitGainLoss%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%PitGainLoss, ChangePitGainLoss, distance)
if(GaugesProblems%MudTankVolume%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%MudTankVolume, ChangeMudTankVolume, distance)
if(GaugesProblems%ReturnMudFlow%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%ReturnMudFlow, ChangeReturnMudFlow, distance)
if(GaugesProblems%TorqueLimit%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%TorqueLimit, ChangeTorqueLimit, distance)
if(GaugesProblems%PowerLimit%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%PowerLimit, ChangePowerLimit, distance)
if(GaugesProblems%AccumulatorPressure%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%AccumulatorPressure, ChangeAccumulatorPressure, distance)
if(GaugesProblems%ManifoldPressure%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%ManifoldPressure, ChangeManifoldPressure, distance)
if(GaugesProblems%AnnularPressure%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%AnnularPressure, ChangeAnnularPressure, distance)
if(GaugesProblems%RigAirPressure%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%RigAirPressure, ChangeRigAirPressure, distance)
if(GaugesProblems%StandPipe1%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%StandPipe1, ChangeStandPipe1, distance)
if(GaugesProblems%StandPipe2%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%StandPipe2, ChangeStandPipe2, distance)
if(GaugesProblems%DrillPipePressure%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%DrillPipePressure, ChangeDrillPipePressure, distance)
if(GaugesProblems%ChokePosition%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%ChokePosition, ChangeChokePosition, distance)
if(GaugesProblems%CasingPressure2%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(GaugesProblems%CasingPressure2, ChangeCasingPressure2, distance)
end subroutine
@@ -181,7 +182,7 @@ module CGaugesProblemsVariables
use TD_GeneralData
implicit none
integer, intent (in) :: status
if(associated(WeightIndicatorPtr)) call WeightIndicatorPtr(status)
! if(associated(WeightIndicatorPtr)) call WeightIndicatorPtr(status)
if(status == Clear_StatusType) TD_WeightIndicatorMalf = 0
if(status == Executed_StatusType) TD_WeightIndicatorMalf = 1
endsubroutine
@@ -190,7 +191,7 @@ module CGaugesProblemsVariables
use RTable_VARIABLES
implicit none
integer, intent (in) :: status
if(associated(RotaryRpmPtr)) call RotaryRpmPtr(status)
! if(associated(RotaryRpmPtr)) call RotaryRpmPtr(status)
if(status == Clear_StatusType) RTable%RpmGaugeMalf = 0
if(status == Executed_StatusType) RTable%RpmGaugeMalf = 1
endsubroutine
@@ -199,7 +200,7 @@ module CGaugesProblemsVariables
use RTable_VARIABLES
implicit none
integer, intent (in) :: status
if(associated(RotaryTorquePtr)) call RotaryTorquePtr(status)
! if(associated(RotaryTorquePtr)) call RotaryTorquePtr(status)
if(status == Clear_StatusType) RTable%TorqueGaugeMalf = 0
if(status == Executed_StatusType) RTable%TorqueGaugeMalf = 1
endsubroutine
@@ -208,7 +209,7 @@ module CGaugesProblemsVariables
use MudSystemVARIABLES
implicit none
integer, intent (in) :: status
if(associated(StandPipePressurePtr)) call StandPipePressurePtr(status)
! if(associated(StandPipePressurePtr)) call StandPipePressurePtr(status)
if(status == Clear_StatusType) StandPipePressure_DataDisplayMalf = 0
if(status == Executed_StatusType) StandPipePressure_DataDisplayMalf = 1
endsubroutine
@@ -217,7 +218,7 @@ module CGaugesProblemsVariables
USE FricPressDropVars
implicit none
integer, intent (in) :: status
if(associated(CasingPressurePtr)) call CasingPressurePtr(status)
! if(associated(CasingPressurePtr)) call CasingPressurePtr(status)
if(status == Clear_StatusType) CasingPressure_DataDisplayMalF = 0
if(status == Executed_StatusType) CasingPressure_DataDisplayMalF = 1
endsubroutine
@@ -226,7 +227,7 @@ module CGaugesProblemsVariables
use Pumps_VARIABLES
implicit none
integer, intent (in) :: status
if(associated(Pump1StrokesPtr)) call Pump1StrokesPtr(status)
! if(associated(Pump1StrokesPtr)) call Pump1StrokesPtr(status)
if(status == Clear_StatusType) PUMP(1)%SPMGaugeMalf = 0
if(status == Executed_StatusType) PUMP(1)%SPMGaugeMalf = 1
endsubroutine
@@ -235,7 +236,7 @@ module CGaugesProblemsVariables
use Pumps_VARIABLES
implicit none
integer, intent (in) :: status
if(associated(Pump2StrokesPtr)) call Pump2StrokesPtr(status)
! if(associated(Pump2StrokesPtr)) call Pump2StrokesPtr(status)
if(status == Clear_StatusType) PUMP(2)%SPMGaugeMalf = 0
if(status == Executed_StatusType) PUMP(2)%SPMGaugeMalf = 1
endsubroutine
@@ -243,7 +244,7 @@ module CGaugesProblemsVariables
subroutine ChangeReturnLineTemperature(status)
implicit none
integer, intent (in) :: status
if(associated(ReturnLineTemperaturePtr)) call ReturnLineTemperaturePtr(status)
! if(associated(ReturnLineTemperaturePtr)) call ReturnLineTemperaturePtr(status)
!if(status == Clear_StatusType) print*,'On_ReturnLineTemperature_Clear'
!if(status == Executed_StatusType) print*,'On_ReturnLineTemperature_Execute'
endsubroutine
@@ -252,7 +253,7 @@ module CGaugesProblemsVariables
USE MudSystemVARIABLES
implicit none
integer, intent (in) :: status
if(associated(TripTankPtr)) call TripTankPtr(status)
! if(associated(TripTankPtr)) call TripTankPtr(status)
if(status == Clear_StatusType) TripTankPressure_DataDisplayMalf = 0
if(status == Executed_StatusType) TripTankPressure_DataDisplayMalf = 1
endsubroutine
@@ -261,7 +262,7 @@ module CGaugesProblemsVariables
USE MudSystemVARIABLES
implicit none
integer, intent (in) :: status
if(associated(PitGainLossPtr)) call PitGainLossPtr(status)
! if(associated(PitGainLossPtr)) call PitGainLossPtr(status)
if(status == Clear_StatusType) PitGainLossGaugeMalf = 0
if(status == Executed_StatusType) PitGainLossGaugeMalf = 1
endsubroutine
@@ -269,7 +270,7 @@ module CGaugesProblemsVariables
subroutine ChangeMudTankVolume(status)
implicit none
integer, intent (in) :: status
if(associated(MudTankVolumePtr)) call MudTankVolumePtr(status)
! if(associated(MudTankVolumePtr)) call MudTankVolumePtr(status)
!if(status == Clear_StatusType) print*,'On_MudTankVolume_Clear'
!if(status == Executed_StatusType) print*,'On_MudTankVolume_Execute'
endsubroutine
@@ -277,7 +278,7 @@ module CGaugesProblemsVariables
subroutine ChangeReturnMudFlow(status)
implicit none
integer, intent (in) :: status
if(associated(ReturnMudFlowPtr)) call ReturnMudFlowPtr(status)
! if(associated(ReturnMudFlowPtr)) call ReturnMudFlowPtr(status)
!if(status == Clear_StatusType) print*,'On_ReturnMudFlow_Clear'
!if(status == Executed_StatusType) print*,'On_ReturnMudFlow_Execute'
endsubroutine
@@ -286,7 +287,7 @@ module CGaugesProblemsVariables
use RTable_VARIABLES
implicit none
integer, intent (in) :: status
if(associated(TorqueLimitPtr)) call TorqueLimitPtr(status)
! if(associated(TorqueLimitPtr)) call TorqueLimitPtr(status)
if(status == Clear_StatusType) RTable%TorqueLimitGaugeMalf = 0
if(status == Executed_StatusType) RTable%TorqueLimitGaugeMalf = 1
endsubroutine
@@ -294,7 +295,7 @@ module CGaugesProblemsVariables
subroutine ChangePowerLimit(status)
implicit none
integer, intent (in) :: status
if(associated(PowerLimitPtr)) call PowerLimitPtr(status)
! if(associated(PowerLimitPtr)) call PowerLimitPtr(status)
!if(status == Clear_StatusType) print*,'On_PowerLimit_Clear'
!if(status == Executed_StatusType) print*,'On_PowerLimit_Execute'
endsubroutine
@@ -303,7 +304,7 @@ module CGaugesProblemsVariables
USE VARIABLES
implicit none
integer, intent (in) :: status
if(associated(AccumulatorPressurePtr)) call AccumulatorPressurePtr(status)
! if(associated(AccumulatorPressurePtr)) call AccumulatorPressurePtr(status)
if(status == Clear_StatusType) AccumulatorPressureGaugeMalf = 0
if(status == Executed_StatusType) AccumulatorPressureGaugeMalf = 1
endsubroutine
@@ -312,7 +313,7 @@ module CGaugesProblemsVariables
USE VARIABLES
implicit none
integer, intent (in) :: status
if(associated(ManifoldPressurePtr)) call ManifoldPressurePtr(status)
! if(associated(ManifoldPressurePtr)) call ManifoldPressurePtr(status)
if(status == Clear_StatusType) ManifoldPressureGaugeMalf = 0
if(status == Executed_StatusType) ManifoldPressureGaugeMalf = 1
endsubroutine
@@ -321,7 +322,7 @@ module CGaugesProblemsVariables
USE VARIABLES
implicit none
integer, intent (in) :: status
if(associated(AnnularPressurePtr)) call AnnularPressurePtr(status)
! if(associated(AnnularPressurePtr)) call AnnularPressurePtr(status)
if(status == Clear_StatusType) AnnularPressureGaugeMalf = 0
if(status == Executed_StatusType) AnnularPressureGaugeMalf = 1
endsubroutine
@@ -330,7 +331,7 @@ module CGaugesProblemsVariables
USE VARIABLES
implicit none
integer, intent (in) :: status
if(associated(RigAirPressurePtr)) call RigAirPressurePtr(status)
! if(associated(RigAirPressurePtr)) call RigAirPressurePtr(status)
if(status == Clear_StatusType) AirSupplyPressureGaugeMalf = 0
if(status == Executed_StatusType) AirSupplyPressureGaugeMalf = 1
endsubroutine
@@ -339,7 +340,7 @@ module CGaugesProblemsVariables
use MudSystemVARIABLES
implicit none
integer, intent (in) :: status
if(associated(StandPipe1Ptr)) call StandPipe1Ptr(status)
! if(associated(StandPipe1Ptr)) call StandPipe1Ptr(status)
if(status == Clear_StatusType) StandPipeGauge1Malf = 0
if(status == Executed_StatusType) StandPipeGauge1Malf = 1
endsubroutine
@@ -348,7 +349,7 @@ module CGaugesProblemsVariables
use MudSystemVARIABLES
implicit none
integer, intent (in) :: status
if(associated(StandPipe2Ptr)) call StandPipe2Ptr(status)
! if(associated(StandPipe2Ptr)) call StandPipe2Ptr(status)
if(status == Clear_StatusType) StandPipeGauge2Malf = 0
if(status == Executed_StatusType) StandPipeGauge2Malf = 1
endsubroutine
@@ -357,7 +358,7 @@ module CGaugesProblemsVariables
use MudSystemVARIABLES
implicit none
integer, intent (in) :: status
if(associated(DrillPipePressurePtr)) call DrillPipePressurePtr(status)
! if(associated(DrillPipePressurePtr)) call DrillPipePressurePtr(status)
if(status == Clear_StatusType) DrillPipePressureMalf = 0
if(status == Executed_StatusType) DrillPipePressureMalf = 1
endsubroutine
@@ -366,7 +367,7 @@ module CGaugesProblemsVariables
USE CHOKEVARIABLES
implicit none
integer, intent (in) :: status
if(associated(ChokePositionPtr)) call ChokePositionPtr(status)
! if(associated(ChokePositionPtr)) call ChokePositionPtr(status)
if(status == Clear_StatusType) GaugeChokePositionMailf = 0
if(status == Executed_StatusType) GaugeChokePositionMailf = 1
endsubroutine
@@ -375,7 +376,7 @@ module CGaugesProblemsVariables
use FricPressDropVars
implicit none
integer, intent (in) :: status
if(associated(CasingPressure2Ptr)) call CasingPressure2Ptr(status)
! if(associated(CasingPressure2Ptr)) call CasingPressure2Ptr(status)
if(status == Clear_StatusType) CasingPressure_ChokeMalF = 0
if(status == Executed_StatusType) CasingPressure_ChokeMalF = 1
endsubroutine
@@ -395,189 +396,189 @@ module CGaugesProblemsVariables
subroutine SubscribeWeightIndicator(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeWeightIndicator
!DEC$ ATTRIBUTES ALIAS: 'SubscribeWeightIndicator' :: SubscribeWeightIndicator
implicit none
procedure (ActionInteger) :: v
WeightIndicatorPtr => v
end subroutine
! subroutine SubscribeWeightIndicator(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeWeightIndicator
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeWeightIndicator' :: SubscribeWeightIndicator
! implicit none
! procedure (ActionInteger) :: v
! WeightIndicatorPtr => v
! end subroutine

subroutine SubscribeRotaryRpm(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeRotaryRpm
!DEC$ ATTRIBUTES ALIAS: 'SubscribeRotaryRpm' :: SubscribeRotaryRpm
implicit none
procedure (ActionInteger) :: v
RotaryRpmPtr => v
end subroutine
! subroutine SubscribeRotaryRpm(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeRotaryRpm
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeRotaryRpm' :: SubscribeRotaryRpm
! implicit none
! procedure (ActionInteger) :: v
! RotaryRpmPtr => v
! end subroutine

subroutine SubscribeRotaryTorque(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeRotaryTorque
!DEC$ ATTRIBUTES ALIAS: 'SubscribeRotaryTorque' :: SubscribeRotaryTorque
implicit none
procedure (ActionInteger) :: v
RotaryTorquePtr => v
end subroutine
! subroutine SubscribeRotaryTorque(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeRotaryTorque
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeRotaryTorque' :: SubscribeRotaryTorque
! implicit none
! procedure (ActionInteger) :: v
! RotaryTorquePtr => v
! end subroutine

subroutine SubscribeStandPipePressure(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeStandPipePressure
!DEC$ ATTRIBUTES ALIAS: 'SubscribeStandPipePressure' :: SubscribeStandPipePressure
implicit none
procedure (ActionInteger) :: v
StandPipePressurePtr => v
end subroutine
! subroutine SubscribeStandPipePressure(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeStandPipePressure
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeStandPipePressure' :: SubscribeStandPipePressure
! implicit none
! procedure (ActionInteger) :: v
! StandPipePressurePtr => v
! end subroutine

subroutine SubscribeCasingPressure(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeCasingPressure
!DEC$ ATTRIBUTES ALIAS: 'SubscribeCasingPressure' :: SubscribeCasingPressure
implicit none
procedure (ActionInteger) :: v
CasingPressurePtr => v
end subroutine
! subroutine SubscribeCasingPressure(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeCasingPressure
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeCasingPressure' :: SubscribeCasingPressure
! implicit none
! procedure (ActionInteger) :: v
! CasingPressurePtr => v
! end subroutine

subroutine SubscribePump1Strokes(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribePump1Strokes
!DEC$ ATTRIBUTES ALIAS: 'SubscribePump1Strokes' :: SubscribePump1Strokes
implicit none
procedure (ActionInteger) :: v
Pump1StrokesPtr => v
end subroutine
! subroutine SubscribePump1Strokes(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribePump1Strokes
! !DEC$ ATTRIBUTES ALIAS: 'SubscribePump1Strokes' :: SubscribePump1Strokes
! implicit none
! procedure (ActionInteger) :: v
! Pump1StrokesPtr => v
! end subroutine

subroutine SubscribePump2Strokes(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribePump2Strokes
!DEC$ ATTRIBUTES ALIAS: 'SubscribePump2Strokes' :: SubscribePump2Strokes
implicit none
procedure (ActionInteger) :: v
Pump2StrokesPtr => v
end subroutine
! subroutine SubscribePump2Strokes(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribePump2Strokes
! !DEC$ ATTRIBUTES ALIAS: 'SubscribePump2Strokes' :: SubscribePump2Strokes
! implicit none
! procedure (ActionInteger) :: v
! Pump2StrokesPtr => v
! end subroutine

subroutine SubscribeReturnLineTemperature(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeReturnLineTemperature
!DEC$ ATTRIBUTES ALIAS: 'SubscribeReturnLineTemperature' :: SubscribeReturnLineTemperature
implicit none
procedure (ActionInteger) :: v
ReturnLineTemperaturePtr => v
end subroutine
! subroutine SubscribeReturnLineTemperature(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeReturnLineTemperature
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeReturnLineTemperature' :: SubscribeReturnLineTemperature
! implicit none
! procedure (ActionInteger) :: v
! ReturnLineTemperaturePtr => v
! end subroutine

subroutine SubscribeTripTank(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeTripTank
!DEC$ ATTRIBUTES ALIAS: 'SubscribeTripTank' :: SubscribeTripTank
implicit none
procedure (ActionInteger) :: v
TripTankPtr => v
end subroutine
! subroutine SubscribeTripTank(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeTripTank
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeTripTank' :: SubscribeTripTank
! implicit none
! procedure (ActionInteger) :: v
! TripTankPtr => v
! end subroutine

subroutine SubscribePitGainLoss(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribePitGainLoss
!DEC$ ATTRIBUTES ALIAS: 'SubscribePitGainLoss' :: SubscribePitGainLoss
implicit none
procedure (ActionInteger) :: v
PitGainLossPtr => v
end subroutine
! subroutine SubscribePitGainLoss(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribePitGainLoss
! !DEC$ ATTRIBUTES ALIAS: 'SubscribePitGainLoss' :: SubscribePitGainLoss
! implicit none
! procedure (ActionInteger) :: v
! PitGainLossPtr => v
! end subroutine

subroutine SubscribeMudTankVolume(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeMudTankVolume
!DEC$ ATTRIBUTES ALIAS: 'SubscribeMudTankVolume' :: SubscribeMudTankVolume
implicit none
procedure (ActionInteger) :: v
MudTankVolumePtr => v
end subroutine
! subroutine SubscribeMudTankVolume(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeMudTankVolume
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeMudTankVolume' :: SubscribeMudTankVolume
! implicit none
! procedure (ActionInteger) :: v
! MudTankVolumePtr => v
! end subroutine

subroutine SubscribeReturnMudFlow(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeReturnMudFlow
!DEC$ ATTRIBUTES ALIAS: 'SubscribeReturnMudFlow' :: SubscribeReturnMudFlow
implicit none
procedure (ActionInteger) :: v
ReturnMudFlowPtr => v
end subroutine
! subroutine SubscribeReturnMudFlow(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeReturnMudFlow
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeReturnMudFlow' :: SubscribeReturnMudFlow
! implicit none
! procedure (ActionInteger) :: v
! ReturnMudFlowPtr => v
! end subroutine

subroutine SubscribeTorqueLimit(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeTorqueLimit
!DEC$ ATTRIBUTES ALIAS: 'SubscribeTorqueLimit' :: SubscribeTorqueLimit
implicit none
procedure (ActionInteger) :: v
TorqueLimitPtr => v
end subroutine
! subroutine SubscribeTorqueLimit(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeTorqueLimit
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeTorqueLimit' :: SubscribeTorqueLimit
! implicit none
! procedure (ActionInteger) :: v
! TorqueLimitPtr => v
! end subroutine

subroutine SubscribePowerLimit(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribePowerLimit
!DEC$ ATTRIBUTES ALIAS: 'SubscribePowerLimit' :: SubscribePowerLimit
implicit none
procedure (ActionInteger) :: v
PowerLimitPtr => v
end subroutine
! subroutine SubscribePowerLimit(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribePowerLimit
! !DEC$ ATTRIBUTES ALIAS: 'SubscribePowerLimit' :: SubscribePowerLimit
! implicit none
! procedure (ActionInteger) :: v
! PowerLimitPtr => v
! end subroutine

subroutine SubscribeAccumulatorPressure(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeAccumulatorPressure
!DEC$ ATTRIBUTES ALIAS: 'SubscribeAccumulatorPressure' :: SubscribeAccumulatorPressure
implicit none
procedure (ActionInteger) :: v
AccumulatorPressurePtr => v
end subroutine
! subroutine SubscribeAccumulatorPressure(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeAccumulatorPressure
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeAccumulatorPressure' :: SubscribeAccumulatorPressure
! implicit none
! procedure (ActionInteger) :: v
! AccumulatorPressurePtr => v
! end subroutine

subroutine SubscribeManifoldPressure(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeManifoldPressure
!DEC$ ATTRIBUTES ALIAS: 'SubscribeManifoldPressure' :: SubscribeManifoldPressure
implicit none
procedure (ActionInteger) :: v
ManifoldPressurePtr => v
end subroutine
! subroutine SubscribeManifoldPressure(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeManifoldPressure
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeManifoldPressure' :: SubscribeManifoldPressure
! implicit none
! procedure (ActionInteger) :: v
! ManifoldPressurePtr => v
! end subroutine

subroutine SubscribeAnnularPressure(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeAnnularPressure
!DEC$ ATTRIBUTES ALIAS: 'SubscribeAnnularPressure' :: SubscribeAnnularPressure
implicit none
procedure (ActionInteger) :: v
AnnularPressurePtr => v
end subroutine
! subroutine SubscribeAnnularPressure(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeAnnularPressure
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeAnnularPressure' :: SubscribeAnnularPressure
! implicit none
! procedure (ActionInteger) :: v
! AnnularPressurePtr => v
! end subroutine

subroutine SubscribeRigAirPressure(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeRigAirPressure
!DEC$ ATTRIBUTES ALIAS: 'SubscribeRigAirPressure' :: SubscribeRigAirPressure
implicit none
procedure (ActionInteger) :: v
RigAirPressurePtr => v
end subroutine
! subroutine SubscribeRigAirPressure(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeRigAirPressure
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeRigAirPressure' :: SubscribeRigAirPressure
! implicit none
! procedure (ActionInteger) :: v
! RigAirPressurePtr => v
! end subroutine

subroutine SubscribeStandPipe1(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeStandPipe1
!DEC$ ATTRIBUTES ALIAS: 'SubscribeStandPipe1' :: SubscribeStandPipe1
implicit none
procedure (ActionInteger) :: v
StandPipe1Ptr => v
end subroutine
! subroutine SubscribeStandPipe1(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeStandPipe1
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeStandPipe1' :: SubscribeStandPipe1
! implicit none
! procedure (ActionInteger) :: v
! StandPipe1Ptr => v
! end subroutine

subroutine SubscribeStandPipe2(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeStandPipe2
!DEC$ ATTRIBUTES ALIAS: 'SubscribeStandPipe2' :: SubscribeStandPipe2
implicit none
procedure (ActionInteger) :: v
StandPipe2Ptr => v
end subroutine
! subroutine SubscribeStandPipe2(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeStandPipe2
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeStandPipe2' :: SubscribeStandPipe2
! implicit none
! procedure (ActionInteger) :: v
! StandPipe2Ptr => v
! end subroutine

subroutine SubscribeDrillPipePressure(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeDrillPipePressure
!DEC$ ATTRIBUTES ALIAS: 'SubscribeDrillPipePressure' :: SubscribeDrillPipePressure
implicit none
procedure (ActionInteger) :: v
DrillPipePressurePtr => v
end subroutine
! subroutine SubscribeDrillPipePressure(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeDrillPipePressure
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeDrillPipePressure' :: SubscribeDrillPipePressure
! implicit none
! procedure (ActionInteger) :: v
! DrillPipePressurePtr => v
! end subroutine

subroutine SubscribeChokePosition(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeChokePosition
!DEC$ ATTRIBUTES ALIAS: 'SubscribeChokePosition' :: SubscribeChokePosition
implicit none
procedure (ActionInteger) :: v
ChokePositionPtr => v
end subroutine
! subroutine SubscribeChokePosition(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeChokePosition
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeChokePosition' :: SubscribeChokePosition
! implicit none
! procedure (ActionInteger) :: v
! ChokePositionPtr => v
! end subroutine

subroutine SubscribeCasingPressure2(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeCasingPressure2
!DEC$ ATTRIBUTES ALIAS: 'SubscribeCasingPressure2' :: SubscribeCasingPressure2
implicit none
procedure (ActionInteger) :: v
CasingPressure2Ptr => v
end subroutine
! subroutine SubscribeCasingPressure2(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeCasingPressure2
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeCasingPressure2' :: SubscribeCasingPressure2
! implicit none
! procedure (ActionInteger) :: v
! CasingPressure2Ptr => v
! end subroutine




+ 12
- 12
CSharp/Problems/CHoistingProblems.f90 Datei anzeigen

@@ -10,11 +10,11 @@ module CHoistingProblems
!DEC$ ATTRIBUTES ALIAS: 'SetMotorFail' :: SetMotorFail
implicit none
type(CProblem), intent(in) :: v
MotorFail = SetDue(v, ChangeMotorFail)
HoistingProblems%MotorFail = SetDue(v, ChangeMotorFail)
#ifdef deb
print*, 'MotorFail%ProblemType=', MotorFail%ProblemType
print*, 'MotorFail%StatusType=', MotorFail%StatusType
print*, 'MotorFail%Value=', MotorFail%Value
print*, 'MotorFail%ProblemType=', HoistingProblems%MotorFail%ProblemType
print*, 'MotorFail%StatusType=', HoistingProblems%MotorFail%StatusType
print*, 'MotorFail%Value=', HoistingProblems%MotorFail%Value
#endif
end subroutine

@@ -23,11 +23,11 @@ module CHoistingProblems
!DEC$ ATTRIBUTES ALIAS: 'SetClutchEngage' :: SetClutchEngage
implicit none
type(CProblem), intent(in) :: v
ClutchEngage = SetDue(v, ChangeClutchEngage)
HoistingProblems%ClutchEngage = SetDue(v, ChangeClutchEngage)
#ifdef deb
print*, 'ClutchEngage%ProblemType=', ClutchEngage%ProblemType
print*, 'ClutchEngage%StatusType=', ClutchEngage%StatusType
print*, 'ClutchEngage%Value=', ClutchEngage%Value
print*, 'ClutchEngage%ProblemType=', HoistingProblems%ClutchEngage%ProblemType
print*, 'ClutchEngage%StatusType=', HoistingProblems%ClutchEngage%StatusType
print*, 'ClutchEngage%Value=', HoistingProblems%ClutchEngage%Value
#endif
end subroutine

@@ -36,11 +36,11 @@ module CHoistingProblems
!DEC$ ATTRIBUTES ALIAS: 'SetClutchDisengage' :: SetClutchDisengage
implicit none
type(CProblem), intent(in) :: v
ClutchDisengage = SetDue(v, ChangeClutchDisengage)
HoistingProblems%ClutchDisengage = SetDue(v, ChangeClutchDisengage)
#ifdef deb
print*, 'ClutchDisengage%ProblemType=', ClutchDisengage%ProblemType
print*, 'ClutchDisengage%StatusType=', ClutchDisengage%StatusType
print*, 'ClutchDisengage%Value=', ClutchDisengage%Value
print*, 'ClutchDisengage%ProblemType=', HoistingProblems%ClutchDisengage%ProblemType
print*, 'ClutchDisengage%StatusType=', HoistingProblems%ClutchDisengage%StatusType
print*, 'ClutchDisengage%Value=', HoistingProblems%ClutchDisengage%Value
#endif
end subroutine


+ 45
- 43
CSharp/Problems/CHoistingProblemsVariables.f90 Datei anzeigen

@@ -4,13 +4,15 @@ module CHoistingProblemsVariables
public
! Input vars
type(CProblem) :: MotorFail
type(CProblem) :: ClutchEngage
type(CProblem) :: ClutchDisengage
procedure (ActionInteger), pointer :: MotorFailPtr
procedure (ActionInteger), pointer :: ClutchEngagePtr
procedure (ActionInteger), pointer :: ClutchDisengagePtr
type :: HoistingProblemsType
type(CProblem) :: MotorFail
type(CProblem) :: ClutchEngage
type(CProblem) :: ClutchDisengage
end type HoistingProblemsType
type(HoistingProblemsType):: HoistingProblems
! procedure (ActionInteger), pointer :: MotorFailPtr
! procedure (ActionInteger), pointer :: ClutchEngagePtr
! procedure (ActionInteger), pointer :: ClutchDisengagePtr

contains
@@ -18,33 +20,33 @@ module CHoistingProblemsVariables
subroutine ProcessHoistingProblemsDueTime(time)
implicit none
integer :: time
if(MotorFail%ProblemType == Time_ProblemType) call ProcessDueTime(MotorFail, ChangeMotorFail, time)
if(ClutchEngage%ProblemType == Time_ProblemType) call ProcessDueTime(ClutchEngage, ChangeClutchEngage, time)
if(ClutchDisengage%ProblemType == Time_ProblemType) call ProcessDueTime(ClutchDisengage, ChangeClutchDisengage, time)
if(HoistingProblems%MotorFail%ProblemType == Time_ProblemType) call ProcessDueTime(HoistingProblems%MotorFail, ChangeMotorFail, time)
if(HoistingProblems%ClutchEngage%ProblemType == Time_ProblemType) call ProcessDueTime(HoistingProblems%ClutchEngage, ChangeClutchEngage, time)
if(HoistingProblems%ClutchDisengage%ProblemType == Time_ProblemType) call ProcessDueTime(HoistingProblems%ClutchDisengage, ChangeClutchDisengage, time)
end subroutine
subroutine ProcessHoistingProblemsDuePumpStrokes(strokes)
implicit none
integer :: strokes
if(MotorFail%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(MotorFail, ChangeMotorFail, strokes)
if(ClutchEngage%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(ClutchEngage, ChangeClutchEngage, strokes)
if(ClutchDisengage%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(ClutchDisengage, ChangeClutchDisengage, strokes)
if(HoistingProblems%MotorFail%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(HoistingProblems%MotorFail, ChangeMotorFail, strokes)
if(HoistingProblems%ClutchEngage%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(HoistingProblems%ClutchEngage, ChangeClutchEngage, strokes)
if(HoistingProblems%ClutchDisengage%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(HoistingProblems%ClutchDisengage, ChangeClutchDisengage, strokes)
end subroutine
subroutine ProcessHoistingProblemsDueVolumePumped(volume)
implicit none
real(8) :: volume
if(MotorFail%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(MotorFail, ChangeMotorFail, volume)
if(ClutchEngage%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(ClutchEngage, ChangeClutchEngage, volume)
if(ClutchDisengage%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(ClutchDisengage, ChangeClutchDisengage, volume)
if(HoistingProblems%MotorFail%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(HoistingProblems%MotorFail, ChangeMotorFail, volume)
if(HoistingProblems%ClutchEngage%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(HoistingProblems%ClutchEngage, ChangeClutchEngage, volume)
if(HoistingProblems%ClutchDisengage%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(HoistingProblems%ClutchDisengage, ChangeClutchDisengage, volume)
end subroutine
subroutine ProcessHoistingProblemsDueDistanceDrilled(distance)
implicit none
real(8) :: distance
if(MotorFail%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(MotorFail, ChangeMotorFail, distance)
if(ClutchEngage%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(ClutchEngage, ChangeClutchEngage, distance)
if(ClutchDisengage%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(ClutchDisengage, ChangeClutchDisengage, distance)
if(HoistingProblems%MotorFail%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(HoistingProblems%MotorFail, ChangeMotorFail, distance)
if(HoistingProblems%ClutchEngage%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(HoistingProblems%ClutchEngage, ChangeClutchEngage, distance)
if(HoistingProblems%ClutchDisengage%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(HoistingProblems%ClutchDisengage, ChangeClutchDisengage, distance)
end subroutine
@@ -56,7 +58,7 @@ module CHoistingProblemsVariables
use Drawworks_VARIABLES
implicit none
integer, intent (in) :: status
if(associated(MotorFailPtr)) call MotorFailPtr(status)
! if(associated(MotorFailPtr)) call MotorFailPtr(status)
if(status == Clear_StatusType) Drawworks%MotorFaileMalf=0
if(status == Executed_StatusType) Drawworks%MotorFaileMalf=1
endsubroutine
@@ -65,7 +67,7 @@ module CHoistingProblemsVariables
use Drawworks_VARIABLES
implicit none
integer, intent (in) :: status
if(associated(ClutchEngagePtr)) call ClutchEngagePtr(status)
! if(associated(ClutchEngagePtr)) call ClutchEngagePtr(status)
if(status == Clear_StatusType) Drawworks%ClutchEngageMalf=0
if(status == Executed_StatusType) Drawworks%ClutchEngageMalf=1
endsubroutine
@@ -74,7 +76,7 @@ module CHoistingProblemsVariables
use Drawworks_VARIABLES
implicit none
integer, intent (in) :: status
if(associated(ClutchDisengagePtr)) call ClutchDisengagePtr(status)
! if(associated(ClutchDisengagePtr)) call ClutchDisengagePtr(status)
if(status == Clear_StatusType) Drawworks%ClutchDisengageMalf=0
if(status == Executed_StatusType) Drawworks%ClutchDisengageMalf=1
endsubroutine
@@ -88,29 +90,29 @@ module CHoistingProblemsVariables
subroutine SubscribeMotorFail(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeMotorFail
!DEC$ ATTRIBUTES ALIAS: 'SubscribeMotorFail' :: SubscribeMotorFail
implicit none
procedure (ActionInteger) :: v
MotorFailPtr => v
end subroutine
! subroutine SubscribeMotorFail(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeMotorFail
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeMotorFail' :: SubscribeMotorFail
! implicit none
! procedure (ActionInteger) :: v
! MotorFailPtr => v
! end subroutine

subroutine SubscribeClutchEngage(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeClutchEngage
!DEC$ ATTRIBUTES ALIAS: 'SubscribeClutchEngage' :: SubscribeClutchEngage
implicit none
procedure (ActionInteger) :: v
ClutchEngagePtr => v
end subroutine
! subroutine SubscribeClutchEngage(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeClutchEngage
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeClutchEngage' :: SubscribeClutchEngage
! implicit none
! procedure (ActionInteger) :: v
! ClutchEngagePtr => v
! end subroutine

subroutine SubscribeClutchDisengage(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeClutchDisengage
!DEC$ ATTRIBUTES ALIAS: 'SubscribeClutchDisengage' :: SubscribeClutchDisengage
implicit none
procedure (ActionInteger) :: v
ClutchDisengagePtr => v
end subroutine
! subroutine SubscribeClutchDisengage(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeClutchDisengage
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeClutchDisengage' :: SubscribeClutchDisengage
! implicit none
! procedure (ActionInteger) :: v
! ClutchDisengagePtr => v
! end subroutine
end module CHoistingProblemsVariables

+ 14
- 14
CSharp/Problems/CKickProblems.f90 Datei anzeigen

@@ -10,11 +10,11 @@ module CKickProblems
!DEC$ ATTRIBUTES ALIAS: 'SetKick' :: SetKick
implicit none
type(CProblem), intent(in) :: v
Kick = SetDue(v, ChangeKick)
KickProblems%Kick = SetDue(v, ChangeKick)
#ifdef deb
print*, 'Kick%ProblemType=', Kick%ProblemType
print*, 'Kick%StatusType=', Kick%StatusType
print*, 'Kick%Value=', Kick%Value
print*, 'Kick%ProblemType=', KickProblems%Kick%ProblemType
print*, 'Kick%StatusType=', KickProblems%Kick%StatusType
print*, 'Kick%Value=', KickProblems%Kick%Value
#endif
end subroutine
@@ -23,9 +23,9 @@ module CKickProblems
!DEC$ ATTRIBUTES ALIAS: 'SetFluidTypeP' :: SetFluidTypeP
implicit none
integer, intent(in) :: v
FluidType = v
KickProblems%FluidType = v
#ifdef deb
print*, 'FluidType=', FluidType
print*, 'FluidType=', KickProblems%FluidType
#endif
end subroutine

@@ -34,9 +34,9 @@ module CKickProblems
!DEC$ ATTRIBUTES ALIAS: 'SetFlowRateP' :: SetFlowRateP
implicit none
real*8, intent(in) :: v
FlowRate = v
KickProblems%FlowRate = v
#ifdef deb
print*, 'FlowRate=', FlowRate
print*, 'FlowRate=', KickProblems%FlowRate
#endif
end subroutine

@@ -45,9 +45,9 @@ module CKickProblems
!DEC$ ATTRIBUTES ALIAS: 'SetOverBalancePressure' :: SetOverBalancePressure
implicit none
real*8, intent(in) :: v
OverBalancePressure = v
KickProblems%OverBalancePressure = v
#ifdef deb
print*, 'OverBalancePressure=', OverBalancePressure
print*, 'OverBalancePressure=', KickProblems%OverBalancePressure
#endif
end subroutine

@@ -56,9 +56,9 @@ module CKickProblems
!DEC$ ATTRIBUTES ALIAS: 'SetIsAutoMigrationRateSelectedP' :: SetIsAutoMigrationRateSelectedP
implicit none
logical, intent(in) :: v
IsAutoMigrationRateSelected = v
KickProblems%IsAutoMigrationRateSelected = v
#ifdef deb
print*, 'IsAutoMigrationRateSelected=', IsAutoMigrationRateSelected
print*, 'IsAutoMigrationRateSelected=', KickProblems%IsAutoMigrationRateSelected
#endif
end subroutine

@@ -67,9 +67,9 @@ module CKickProblems
!DEC$ ATTRIBUTES ALIAS: 'SetAutoMigrationRateP' :: SetAutoMigrationRateP
implicit none
real*8, intent(in) :: v
AutoMigrationRate = v
KickProblems%AutoMigrationRate = v
#ifdef deb
print*, 'AutoMigrationRate=', AutoMigrationRate
print*, 'AutoMigrationRate=', KickProblems%AutoMigrationRate
#endif
end subroutine


+ 22
- 20
CSharp/Problems/CKickProblemsVariables.f90 Datei anzeigen

@@ -10,14 +10,16 @@ module CKickProblemsVariables
! Input vars
type(CProblem) :: Kick
integer :: FluidType
integer :: FlowRate
integer :: OverBalancePressure
logical :: IsAutoMigrationRateSelected
real(8) :: AutoMigrationRate
procedure (ActionInteger), pointer :: KickPtr
type :: KickProblemsType
type(CProblem) :: Kick
integer :: FluidType
integer :: FlowRate
integer :: OverBalancePressure
logical :: IsAutoMigrationRateSelected
real(8) :: AutoMigrationRate
end type KickProblemsType
type(KickProblemsType)::KickProblems
! procedure (ActionInteger), pointer :: KickPtr
contains
@@ -26,7 +28,7 @@ module CKickProblemsVariables
implicit none
integer :: time
if(Kick%ProblemType == Time_ProblemType) call ProcessDueTime(Kick, ChangeKick, time)
if(KickProblems%Kick%ProblemType == Time_ProblemType) call ProcessDueTime(KickProblems%Kick, ChangeKick, time)
end subroutine
@@ -34,7 +36,7 @@ module CKickProblemsVariables
implicit none
integer :: strokes
if(Kick%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(Kick, ChangeKick, strokes)
if(KickProblems%Kick%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(KickProblems%Kick, ChangeKick, strokes)
end subroutine
@@ -42,7 +44,7 @@ module CKickProblemsVariables
implicit none
real(8) :: volume
if(Kick%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(Kick, ChangeKick, volume)
if(KickProblems%Kick%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(KickProblems%Kick, ChangeKick, volume)
end subroutine
@@ -50,14 +52,14 @@ module CKickProblemsVariables
implicit none
real(8) :: distance
if(Kick%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(Kick, ChangeKick, distance)
if(KickProblems%Kick%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(KickProblems%Kick, ChangeKick, distance)
end subroutine
subroutine ChangeKick(status)
implicit none
integer, intent (in) :: status
if(associated(KickPtr)) call KickPtr(status)
! if(associated(KickProblems%KickPtr)) call KickProblems%KickPtr(status)
!if(status == Clear_StatusType) print*,'On_Kick_Clear'
!if(status == Executed_StatusType) print*,'On_Kick_Execute'
endsubroutine
@@ -73,13 +75,13 @@ module CKickProblemsVariables
subroutine SubscribeKick(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeKick
!DEC$ ATTRIBUTES ALIAS: 'SubscribeKick' :: SubscribeKick
implicit none
procedure (ActionInteger) :: v
KickPtr => v
end subroutine
! subroutine SubscribeKick(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeKick
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeKick' :: SubscribeKick
! implicit none
! procedure (ActionInteger) :: v
! KickProblems%KickPtr => v
! end subroutine


+ 6
- 6
CSharp/Problems/CLostProblems.f90 Datei anzeigen

@@ -10,11 +10,11 @@ module CLostProblems
!DEC$ ATTRIBUTES ALIAS: 'SetLostCirculation' :: SetLostCirculation
implicit none
type(CProblem), intent(in) :: v
LostCirculation = SetDue(v, ChangeLostCirculation)
LostProblems%LostCirculation = SetDue(v, ChangeLostCirculation)
#ifdef deb
print*, 'LostCirculation%ProblemType=', LostCirculation%ProblemType
print*, 'LostCirculation%StatusType=', LostCirculation%StatusType
print*, 'LostCirculation%Value=', LostCirculation%Value
print*, 'LostCirculation%ProblemType=', LostProblems%LostCirculation%ProblemType
print*, 'LostCirculation%StatusType=', LostProblems%LostCirculation%StatusType
print*, 'LostCirculation%Value=', LostProblems%LostCirculation%Value
#endif
end subroutine

@@ -23,9 +23,9 @@ module CLostProblems
!DEC$ ATTRIBUTES ALIAS: 'SetFlowRate' :: SetFlowRate
implicit none
real*8, intent(in) :: v
FlowRate = v
LostProblems%FlowRate = v
#ifdef deb
print*, 'FlowRate=', FlowRate
print*, 'FlowRate=', LostProblems%FlowRate
#endif
end subroutine

+ 19
- 18
CSharp/Problems/CLostProblemsVariables.f90 Datei anzeigen

@@ -1,29 +1,30 @@
module CLostProblemsVariables
use CProblemDifinition
implicit none
public
public
! Input vars
type(CProblem) :: LostCirculation
real(8) :: FlowRate
type::LostProblemsType
type(CProblem) :: LostCirculation
real(8) :: FlowRate
end type LostProblemsType
type(LostProblemsType)::LostProblems

procedure (ActionInteger), pointer :: LostCirculationPtr
! procedure (ActionInteger), pointer :: LostCirculationPtr
contains
subroutine ProcessLostProblemsDueTime(time)
implicit none
integer :: time
if(LostCirculation%ProblemType == Time_ProblemType) call ProcessDueTime(LostCirculation, ChangeLostCirculation, time)
if(LostProblems%LostCirculation%ProblemType == Time_ProblemType) call ProcessDueTime(LostProblems%LostCirculation, ChangeLostCirculation, time)
end subroutine
subroutine ProcessLostProblemsDuePumpStrokes(strokes)
implicit none
integer :: strokes
if(LostCirculation%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(LostCirculation, ChangeLostCirculation, strokes)
if(LostProblems%LostCirculation%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(LostProblems%LostCirculation, ChangeLostCirculation, strokes)
end subroutine
@@ -31,7 +32,7 @@ module CLostProblemsVariables
implicit none
real(8) :: volume
if(LostCirculation%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(LostCirculation, ChangeLostCirculation, volume)
if(LostProblems%LostCirculation%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(LostProblems%LostCirculation, ChangeLostCirculation, volume)
end subroutine
@@ -39,7 +40,7 @@ module CLostProblemsVariables
implicit none
real(8) :: distance
if(LostCirculation%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(LostCirculation, ChangeLostCirculation, distance)
if(LostProblems%LostCirculation%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(LostProblems%LostCirculation, ChangeLostCirculation, distance)
end subroutine
@@ -49,7 +50,7 @@ module CLostProblemsVariables
subroutine ChangeLostCirculation(status)
implicit none
integer, intent (in) :: status
if(associated(LostCirculationPtr)) call LostCirculationPtr(status)
! if(associated(LostCirculationPtr)) call LostCirculationPtr(status)
!if(status == Clear_StatusType) print*,'On_LostCirculation_Clear'
!if(status == Executed_StatusType) print*,'On_LostCirculation_Execute'
endsubroutine
@@ -62,12 +63,12 @@ module CLostProblemsVariables
subroutine SubscribeLostCirculation(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeLostCirculation
!DEC$ ATTRIBUTES ALIAS: 'SubscribeLostCirculation' :: SubscribeLostCirculation
implicit none
procedure (ActionInteger) :: v
LostCirculationPtr => v
end subroutine
! subroutine SubscribeLostCirculation(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeLostCirculation
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeLostCirculation' :: SubscribeLostCirculation
! implicit none
! procedure (ActionInteger) :: v
! LostCirculationPtr => v
! end subroutine
end module CLostProblemsVariables

+ 4
- 4
CSharp/Problems/CMudTreatmentProblems.f90 Datei anzeigen

@@ -10,7 +10,7 @@ module CMudTreatmentProblems
!DEC$ ATTRIBUTES ALIAS: 'SetDegasser' :: SetDegasser
implicit none
type(CProblem), intent(in) :: v
Degasser = SetDue(v, ChangeDegasser)
MudTreatmentProblems%Degasser = SetDue(v, ChangeDegasser)
#ifdef deb
print*, 'Degasser%ProblemType=', V%ProblemType
print*, 'Degasser%StatusType=', V%StatusType
@@ -23,7 +23,7 @@ module CMudTreatmentProblems
!DEC$ ATTRIBUTES ALIAS: 'SetShaleShaker' :: SetShaleShaker
implicit none
type(CProblem), intent(in) :: v
ShaleShaker = SetDue(v, ChangeShaleShaker)
MudTreatmentProblems%ShaleShaker = SetDue(v, ChangeShaleShaker)
#ifdef deb
print*, 'ShaleShaker%ProblemType=', V%ProblemType
print*, 'ShaleShaker%StatusType=', V%StatusType
@@ -36,7 +36,7 @@ module CMudTreatmentProblems
!DEC$ ATTRIBUTES ALIAS: 'SetDesander' :: SetDesander
implicit none
type(CProblem), intent(in) :: v
Desander = SetDue(v, ChangeDesander)
MudTreatmentProblems%Desander = SetDue(v, ChangeDesander)
#ifdef deb
print*, 'Desander%ProblemType=', V%ProblemType
print*, 'Desander%StatusType=', V%StatusType
@@ -49,7 +49,7 @@ module CMudTreatmentProblems
!DEC$ ATTRIBUTES ALIAS: 'SetDesilter' :: SetDesilter
implicit none
type(CProblem), intent(in) :: v
Desilter = SetDue(v, ChangeDesilter)
MudTreatmentProblems%Desilter = SetDue(v, ChangeDesilter)
#ifdef deb
print*, 'Desilter%ProblemType=', V%ProblemType
print*, 'Desilter%StatusType=', V%StatusType


+ 59
- 57
CSharp/Problems/CMudTreatmentProblemsVariables.f90 Datei anzeigen

@@ -4,16 +4,18 @@ module CMudTreatmentProblemsVariables
public
! Input vars
type(CProblem) :: Degasser
type(CProblem) :: ShaleShaker
type(CProblem) :: Desander
type(CProblem) :: Desilter
Type::MudTreatmentProblemsType
type(CProblem) :: Degasser
type(CProblem) :: ShaleShaker
type(CProblem) :: Desander
type(CProblem) :: Desilter
end type MudTreatmentProblemsType
type(MudTreatmentProblemsType)::MudTreatmentProblems

procedure (ActionInteger), pointer :: DegasserPtr
procedure (ActionInteger), pointer :: ShaleShakerPtr
procedure (ActionInteger), pointer :: DesanderPtr
procedure (ActionInteger), pointer :: DesilterPtr
! procedure (ActionInteger), pointer :: DegasserPtr
! procedure (ActionInteger), pointer :: ShaleShakerPtr
! procedure (ActionInteger), pointer :: DesanderPtr
! procedure (ActionInteger), pointer :: DesilterPtr
contains
@@ -21,10 +23,10 @@ module CMudTreatmentProblemsVariables
implicit none
integer :: time
if(Degasser%ProblemType == Time_ProblemType) call ProcessDueTime(Degasser, ChangeDegasser, time)
if(ShaleShaker%ProblemType == Time_ProblemType) call ProcessDueTime(ShaleShaker, ChangeShaleShaker, time)
if(Desander%ProblemType == Time_ProblemType) call ProcessDueTime(Desander, ChangeDesander, time)
if(Desilter%ProblemType == Time_ProblemType) call ProcessDueTime(Desilter, ChangeDesilter, time)
if(MudTreatmentProblems%Degasser%ProblemType == Time_ProblemType) call ProcessDueTime(MudTreatmentProblems%Degasser, ChangeDegasser, time)
if(MudTreatmentProblems%ShaleShaker%ProblemType == Time_ProblemType) call ProcessDueTime(MudTreatmentProblems%ShaleShaker, ChangeShaleShaker, time)
if(MudTreatmentProblems%Desander%ProblemType == Time_ProblemType) call ProcessDueTime(MudTreatmentProblems%Desander, ChangeDesander, time)
if(MudTreatmentProblems%Desilter%ProblemType == Time_ProblemType) call ProcessDueTime(MudTreatmentProblems%Desilter, ChangeDesilter, time)
end subroutine
@@ -33,10 +35,10 @@ module CMudTreatmentProblemsVariables
implicit none
integer :: strokes
if(Degasser%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(Degasser, ChangeDegasser, strokes)
if(ShaleShaker%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(ShaleShaker, ChangeShaleShaker, strokes)
if(Desander%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(Desander, ChangeDesander, strokes)
if(Desilter%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(Desilter, ChangeDesilter, strokes)
if(MudTreatmentProblems%Degasser%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(MudTreatmentProblems%Degasser, ChangeDegasser, strokes)
if(MudTreatmentProblems%ShaleShaker%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(MudTreatmentProblems%ShaleShaker, ChangeShaleShaker, strokes)
if(MudTreatmentProblems%Desander%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(MudTreatmentProblems%Desander, ChangeDesander, strokes)
if(MudTreatmentProblems%Desilter%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(MudTreatmentProblems%Desilter, ChangeDesilter, strokes)
end subroutine
@@ -45,10 +47,10 @@ module CMudTreatmentProblemsVariables
implicit none
real(8) :: volume
if(Degasser%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(Degasser, ChangeDegasser, volume)
if(ShaleShaker%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(ShaleShaker, ChangeShaleShaker, volume)
if(Desander%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(Desander, ChangeDesander, volume)
if(Desilter%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(Desilter, ChangeDesilter, volume)
if(MudTreatmentProblems%Degasser%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(MudTreatmentProblems%Degasser, ChangeDegasser, volume)
if(MudTreatmentProblems%ShaleShaker%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(MudTreatmentProblems%ShaleShaker, ChangeShaleShaker, volume)
if(MudTreatmentProblems%Desander%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(MudTreatmentProblems%Desander, ChangeDesander, volume)
if(MudTreatmentProblems%Desilter%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(MudTreatmentProblems%Desilter, ChangeDesilter, volume)
end subroutine
@@ -56,10 +58,10 @@ module CMudTreatmentProblemsVariables
implicit none
real(8) :: distance
if(Degasser%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(Degasser, ChangeDegasser, distance)
if(ShaleShaker%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(ShaleShaker, ChangeShaleShaker, distance)
if(Desander%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(Desander, ChangeDesander, distance)
if(Desilter%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(Desilter, ChangeDesilter, distance)
if(MudTreatmentProblems%Degasser%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(MudTreatmentProblems%Degasser, ChangeDegasser, distance)
if(MudTreatmentProblems%ShaleShaker%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(MudTreatmentProblems%ShaleShaker, ChangeShaleShaker, distance)
if(MudTreatmentProblems%Desander%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(MudTreatmentProblems%Desander, ChangeDesander, distance)
if(MudTreatmentProblems%Desilter%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(MudTreatmentProblems%Desilter, ChangeDesilter, distance)
end subroutine
@@ -72,7 +74,7 @@ module CMudTreatmentProblemsVariables
subroutine ChangeDegasser(status)
implicit none
integer, intent (in) :: status
if(associated(DegasserPtr)) call DegasserPtr(status)
!if(associated(DegasserPtr)) call DegasserPtr(status)
!if(status == Clear_StatusType) print*,'On_Degasser_Clear'
!if(status == Executed_StatusType) print*,'On_Degasser_Execute'
endsubroutine
@@ -80,7 +82,7 @@ module CMudTreatmentProblemsVariables
subroutine ChangeShaleShaker(status)
implicit none
integer, intent (in) :: status
if(associated(ShaleShakerPtr)) call ShaleShakerPtr(status)
!if(associated(ShaleShakerPtr)) call ShaleShakerPtr(status)
!if(status == Clear_StatusType) print*,'On_ShaleShaker_Clear'
!if(status == Executed_StatusType) print*,'On_ShaleShaker_Execute'
endsubroutine
@@ -88,7 +90,7 @@ module CMudTreatmentProblemsVariables
subroutine ChangeDesander(status)
implicit none
integer, intent (in) :: status
if(associated(DesanderPtr)) call DesanderPtr(status)
!if(associated(DesanderPtr)) call DesanderPtr(status)
!if(status == Clear_StatusType) print*,'On_Desander_Clear'
!if(status == Executed_StatusType) print*,'On_Desander_Execute'
endsubroutine
@@ -96,7 +98,7 @@ module CMudTreatmentProblemsVariables
subroutine ChangeDesilter(status)
implicit none
integer, intent (in) :: status
if(associated(DesilterPtr)) call DesilterPtr(status)
!if(associated(DesilterPtr)) call DesilterPtr(status)
!if(status == Clear_StatusType) print*,'On_Desilter_Clear'
!if(status == Executed_StatusType) print*,'On_Desilter_Execute'
endsubroutine
@@ -116,37 +118,37 @@ module CMudTreatmentProblemsVariables
subroutine SubscribeDegasser(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeDegasser
!DEC$ ATTRIBUTES ALIAS: 'SubscribeDegasser' :: SubscribeDegasser
implicit none
procedure (ActionInteger) :: v
DegasserPtr => v
end subroutine
! subroutine SubscribeDegasser(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeDegasser
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeDegasser' :: SubscribeDegasser
! implicit none
! procedure (ActionInteger) :: v
! DegasserPtr => v
! end subroutine

subroutine SubscribeShaleShaker(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeShaleShaker
!DEC$ ATTRIBUTES ALIAS: 'SubscribeShaleShaker' :: SubscribeShaleShaker
implicit none
procedure (ActionInteger) :: v
ShaleShakerPtr => v
end subroutine
! subroutine SubscribeShaleShaker(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeShaleShaker
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeShaleShaker' :: SubscribeShaleShaker
! implicit none
! procedure (ActionInteger) :: v
! ShaleShakerPtr => v
! end subroutine

subroutine SubscribeDesander(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeDesander
!DEC$ ATTRIBUTES ALIAS: 'SubscribeDesander' :: SubscribeDesander
implicit none
procedure (ActionInteger) :: v
DesanderPtr => v
end subroutine
! subroutine SubscribeDesander(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeDesander
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeDesander' :: SubscribeDesander
! implicit none
! procedure (ActionInteger) :: v
! DesanderPtr => v
! end subroutine

subroutine SubscribeDesilter(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeDesilter
!DEC$ ATTRIBUTES ALIAS: 'SubscribeDesilter' :: SubscribeDesilter
implicit none
procedure (ActionInteger) :: v
DesilterPtr => v
end subroutine
! subroutine SubscribeDesilter(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeDesilter
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeDesilter' :: SubscribeDesilter
! implicit none
! procedure (ActionInteger) :: v
! DesilterPtr => v
! end subroutine


+ 11
- 11
CSharp/Problems/COtherProblems.f90 Datei anzeigen

@@ -10,7 +10,7 @@ module COtherProblems
!DEC$ ATTRIBUTES ALIAS: 'SetRigAlarm' :: SetRigAlarm
implicit none
type(CProblem), intent(in) :: v
RigAlarm = SetDue(v, ChangeRigAlarm)
OtherProblems%RigAlarm = SetDue(v, ChangeRigAlarm)
#ifdef deb
print*, 'RigAlarm%ProblemType=', V%ProblemType
print*, 'RigAlarm%StatusType=', V%StatusType
@@ -23,7 +23,7 @@ module COtherProblems
!DEC$ ATTRIBUTES ALIAS: 'SetRigWaterSupply' :: SetRigWaterSupply
implicit none
type(CProblem), intent(in) :: v
RigWaterSupply = SetDue(v, ChangeRigWaterSupply)
OtherProblems%RigWaterSupply = SetDue(v, ChangeRigWaterSupply)
#ifdef deb
print*, 'RigWaterSupply%ProblemType=', V%ProblemType
print*, 'RigWaterSupply%StatusType=', V%StatusType
@@ -36,7 +36,7 @@ module COtherProblems
!DEC$ ATTRIBUTES ALIAS: 'SetRigAir' :: SetRigAir
implicit none
type(CProblem), intent(in) :: v
RigAir = SetDue(v, ChangeRigAir)
OtherProblems%RigAir = SetDue(v, ChangeRigAir)
#ifdef deb
print*, 'RigAir%ProblemType=', V%ProblemType
print*, 'RigAir%StatusType=', V%StatusType
@@ -49,7 +49,7 @@ module COtherProblems
!DEC$ ATTRIBUTES ALIAS: 'SetGen1' :: SetGen1
implicit none
type(CProblem), intent(in) :: v
Gen1 = SetDue(v, ChangeGen1)
OtherProblems%Gen1 = SetDue(v, ChangeGen1)
#ifdef deb
print*, 'Gen1%ProblemType=', V%ProblemType
print*, 'Gen1%StatusType=', V%StatusType
@@ -62,7 +62,7 @@ module COtherProblems
!DEC$ ATTRIBUTES ALIAS: 'SetGen2' :: SetGen2
implicit none
type(CProblem), intent(in) :: v
Gen2 = SetDue(v, ChangeGen2)
OtherProblems%Gen2 = SetDue(v, ChangeGen2)
#ifdef deb
print*, 'Gen2%ProblemType=', V%ProblemType
print*, 'Gen2%StatusType=', V%StatusType
@@ -75,7 +75,7 @@ module COtherProblems
!DEC$ ATTRIBUTES ALIAS: 'SetGen3' :: SetGen3
implicit none
type(CProblem), intent(in) :: v
Gen3 = SetDue(v, ChangeGen3)
OtherProblems%Gen3 = SetDue(v, ChangeGen3)
#ifdef deb
print*, 'Gen3%ProblemType=', V%ProblemType
print*, 'Gen3%StatusType=', V%StatusType
@@ -88,7 +88,7 @@ module COtherProblems
!DEC$ ATTRIBUTES ALIAS: 'SetGen4' :: SetGen4
implicit none
type(CProblem), intent(in) :: v
Gen4 = SetDue(v, ChangeGen4)
OtherProblems%Gen4 = SetDue(v, ChangeGen4)
#ifdef deb
print*, 'Gen4%ProblemType=', V%ProblemType
print*, 'Gen4%StatusType=', V%StatusType
@@ -101,7 +101,7 @@ module COtherProblems
!DEC$ ATTRIBUTES ALIAS: 'SetScr1' :: SetScr1
implicit none
type(CProblem), intent(in) :: v
Scr1 = SetDue(v, ChangeScr1)
OtherProblems%Scr1 = SetDue(v, ChangeScr1)
#ifdef deb
print*, 'Scr1%ProblemType=', V%ProblemType
print*, 'Scr1%StatusType=', V%StatusType
@@ -114,7 +114,7 @@ module COtherProblems
!DEC$ ATTRIBUTES ALIAS: 'SetScr2' :: SetScr2
implicit none
type(CProblem), intent(in) :: v
Scr2 = SetDue(v, ChangeScr2)
OtherProblems%Scr2 = SetDue(v, ChangeScr2)
#ifdef deb
print*, 'Scr2%ProblemType=', V%ProblemType
print*, 'Scr2%StatusType=', V%StatusType
@@ -127,7 +127,7 @@ module COtherProblems
!DEC$ ATTRIBUTES ALIAS: 'SetScr3' :: SetScr3
implicit none
type(CProblem), intent(in) :: v
Scr3 = SetDue(v, ChangeScr3)
OtherProblems%Scr3 = SetDue(v, ChangeScr3)
#ifdef deb
print*, 'Scr3%ProblemType=', V%ProblemType
print*, 'Scr3%StatusType=', V%StatusType
@@ -140,7 +140,7 @@ module COtherProblems
!DEC$ ATTRIBUTES ALIAS: 'SetScr4' :: SetScr4
implicit none
type(CProblem), intent(in) :: v
Scr4 = SetDue(v, ChangeScr4)
OtherProblems%Scr4 = SetDue(v, ChangeScr4)
#ifdef deb
print*, 'Scr4%ProblemType=', V%ProblemType
print*, 'Scr4%StatusType=', V%StatusType


+ 157
- 155
CSharp/Problems/COtherProblemsVariables.f90 Datei anzeigen

@@ -4,29 +4,31 @@ module COtherProblemsVariables
public
! Input vars
type(CProblem) :: RigAlarm
type(CProblem) :: RigWaterSupply
type(CProblem) :: RigAir
type(CProblem) :: Gen1
type(CProblem) :: Gen2
type(CProblem) :: Gen3
type(CProblem) :: Gen4
type(CProblem) :: Scr1
type(CProblem) :: Scr2
type(CProblem) :: Scr3
type(CProblem) :: Scr4
procedure (ActionInteger), pointer :: RigAlarmPtr
procedure (ActionInteger), pointer :: RigWaterSupplyPtr
procedure (ActionInteger), pointer :: RigAirPtr
procedure (ActionInteger), pointer :: Gen1Ptr
procedure (ActionInteger), pointer :: Gen2Ptr
procedure (ActionInteger), pointer :: Gen3Ptr
procedure (ActionInteger), pointer :: Gen4Ptr
procedure (ActionInteger), pointer :: Scr1Ptr
procedure (ActionInteger), pointer :: Scr2Ptr
procedure (ActionInteger), pointer :: Scr3Ptr
procedure (ActionInteger), pointer :: Scr4Ptr
TYPE:: OtherProblemsType
type(CProblem) :: RigAlarm
type(CProblem) :: RigWaterSupply
type(CProblem) :: RigAir
type(CProblem) :: Gen1
type(CProblem) :: Gen2
type(CProblem) :: Gen3
type(CProblem) :: Gen4
type(CProblem) :: Scr1
type(CProblem) :: Scr2
type(CProblem) :: Scr3
type(CProblem) :: Scr4
end type OtherProblemsType
type(OtherProblemsType)::OtherProblems
! procedure (ActionInteger), pointer :: RigAlarmPtr
! procedure (ActionInteger), pointer :: RigWaterSupplyPtr
! procedure (ActionInteger), pointer :: RigAirPtr
! procedure (ActionInteger), pointer :: Gen1Ptr
! procedure (ActionInteger), pointer :: Gen2Ptr
! procedure (ActionInteger), pointer :: Gen3Ptr
! procedure (ActionInteger), pointer :: Gen4Ptr
! procedure (ActionInteger), pointer :: Scr1Ptr
! procedure (ActionInteger), pointer :: Scr2Ptr
! procedure (ActionInteger), pointer :: Scr3Ptr
! procedure (ActionInteger), pointer :: Scr4Ptr
contains
@@ -34,17 +36,17 @@ module COtherProblemsVariables
implicit none
integer :: time
if(RigAlarm%ProblemType == Time_ProblemType) call ProcessDueTime(RigAlarm, ChangeRigAlarm, time)
if(RigWaterSupply%ProblemType == Time_ProblemType) call ProcessDueTime(RigWaterSupply, ChangeRigWaterSupply, time)
if(RigAir%ProblemType == Time_ProblemType) call ProcessDueTime(RigAir, ChangeRigAir, time)
if(Gen1%ProblemType == Time_ProblemType) call ProcessDueTime(Gen1, ChangeGen1, time)
if(Gen2%ProblemType == Time_ProblemType) call ProcessDueTime(Gen2, ChangeGen2, time)
if(Gen3%ProblemType == Time_ProblemType) call ProcessDueTime(Gen3, ChangeGen3, time)
if(Gen4%ProblemType == Time_ProblemType) call ProcessDueTime(Gen4, ChangeGen4, time)
if(Scr1%ProblemType == Time_ProblemType) call ProcessDueTime(Scr1, ChangeScr1, time)
if(Scr2%ProblemType == Time_ProblemType) call ProcessDueTime(Scr2, ChangeScr2, time)
if(Scr3%ProblemType == Time_ProblemType) call ProcessDueTime(Scr3, ChangeScr3, time)
if(Scr4%ProblemType == Time_ProblemType) call ProcessDueTime(Scr4, ChangeScr4, time)
if(OtherProblems%RigAlarm%ProblemType == Time_ProblemType) call ProcessDueTime(OtherProblems%RigAlarm, ChangeRigAlarm, time)
if(OtherProblems%RigWaterSupply%ProblemType == Time_ProblemType) call ProcessDueTime(OtherProblems%RigWaterSupply, ChangeRigWaterSupply, time)
if(OtherProblems%RigAir%ProblemType == Time_ProblemType) call ProcessDueTime(OtherProblems%RigAir, ChangeRigAir, time)
if(OtherProblems%Gen1%ProblemType == Time_ProblemType) call ProcessDueTime(OtherProblems%Gen1, ChangeGen1, time)
if(OtherProblems%Gen2%ProblemType == Time_ProblemType) call ProcessDueTime(OtherProblems%Gen2, ChangeGen2, time)
if(OtherProblems%Gen3%ProblemType == Time_ProblemType) call ProcessDueTime(OtherProblems%Gen3, ChangeGen3, time)
if(OtherProblems%Gen4%ProblemType == Time_ProblemType) call ProcessDueTime(OtherProblems%Gen4, ChangeGen4, time)
if(OtherProblems%Scr1%ProblemType == Time_ProblemType) call ProcessDueTime(OtherProblems%Scr1, ChangeScr1, time)
if(OtherProblems%Scr2%ProblemType == Time_ProblemType) call ProcessDueTime(OtherProblems%Scr2, ChangeScr2, time)
if(OtherProblems%Scr3%ProblemType == Time_ProblemType) call ProcessDueTime(OtherProblems%Scr3, ChangeScr3, time)
if(OtherProblems%Scr4%ProblemType == Time_ProblemType) call ProcessDueTime(OtherProblems%Scr4, ChangeScr4, time)
end subroutine
@@ -52,17 +54,17 @@ module COtherProblemsVariables
implicit none
integer :: strokes
if(RigAlarm%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(RigAlarm, ChangeRigAlarm, strokes)
if(RigWaterSupply%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(RigWaterSupply, ChangeRigWaterSupply, strokes)
if(RigAir%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(RigAir, ChangeRigAir, strokes)
if(Gen1%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(Gen1, ChangeGen1, strokes)
if(Gen2%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(Gen2, ChangeGen2, strokes)
if(Gen3%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(Gen3, ChangeGen3, strokes)
if(Gen4%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(Gen4, ChangeGen4, strokes)
if(Scr1%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(Scr1, ChangeScr1, strokes)
if(Scr2%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(Scr2, ChangeScr2, strokes)
if(Scr3%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(Scr3, ChangeScr3, strokes)
if(Scr4%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(Scr4, ChangeScr4, strokes)
if(OtherProblems%RigAlarm%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(OtherProblems%RigAlarm, ChangeRigAlarm, strokes)
if(OtherProblems%RigWaterSupply%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(OtherProblems%RigWaterSupply, ChangeRigWaterSupply, strokes)
if(OtherProblems%RigAir%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(OtherProblems%RigAir, ChangeRigAir, strokes)
if(OtherProblems%Gen1%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(OtherProblems%Gen1, ChangeGen1, strokes)
if(OtherProblems%Gen2%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(OtherProblems%Gen2, ChangeGen2, strokes)
if(OtherProblems%Gen3%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(OtherProblems%Gen3, ChangeGen3, strokes)
if(OtherProblems%Gen4%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(OtherProblems%Gen4, ChangeGen4, strokes)
if(OtherProblems%Scr1%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(OtherProblems%Scr1, ChangeScr1, strokes)
if(OtherProblems%Scr2%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(OtherProblems%Scr2, ChangeScr2, strokes)
if(OtherProblems%Scr3%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(OtherProblems%Scr3, ChangeScr3, strokes)
if(OtherProblems%Scr4%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(OtherProblems%Scr4, ChangeScr4, strokes)
end subroutine
@@ -70,17 +72,17 @@ module COtherProblemsVariables
implicit none
real(8) :: volume
if(RigAlarm%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(RigAlarm, ChangeRigAlarm, volume)
if(RigWaterSupply%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(RigWaterSupply, ChangeRigWaterSupply, volume)
if(RigAir%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(RigAir, ChangeRigAir, volume)
if(Gen1%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(Gen1, ChangeGen1, volume)
if(Gen2%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(Gen2, ChangeGen2, volume)
if(Gen3%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(Gen3, ChangeGen3, volume)
if(Gen4%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(Gen4, ChangeGen4, volume)
if(Scr1%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(Scr1, ChangeScr1, volume)
if(Scr2%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(Scr2, ChangeScr2, volume)
if(Scr3%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(Scr3, ChangeScr3, volume)
if(Scr4%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(Scr4, ChangeScr4, volume)
if(OtherProblems%RigAlarm%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(OtherProblems%RigAlarm, ChangeRigAlarm, volume)
if(OtherProblems%RigWaterSupply%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(OtherProblems%RigWaterSupply, ChangeRigWaterSupply, volume)
if(OtherProblems%RigAir%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(OtherProblems%RigAir, ChangeRigAir, volume)
if(OtherProblems%Gen1%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(OtherProblems%Gen1, ChangeGen1, volume)
if(OtherProblems%Gen2%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(OtherProblems%Gen2, ChangeGen2, volume)
if(OtherProblems%Gen3%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(OtherProblems%Gen3, ChangeGen3, volume)
if(OtherProblems%Gen4%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(OtherProblems%Gen4, ChangeGen4, volume)
if(OtherProblems%Scr1%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(OtherProblems%Scr1, ChangeScr1, volume)
if(OtherProblems%Scr2%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(OtherProblems%Scr2, ChangeScr2, volume)
if(OtherProblems%Scr3%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(OtherProblems%Scr3, ChangeScr3, volume)
if(OtherProblems%Scr4%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(OtherProblems%Scr4, ChangeScr4, volume)
end subroutine
@@ -88,17 +90,17 @@ module COtherProblemsVariables
implicit none
real(8) :: distance
if(RigAlarm%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(RigAlarm, ChangeRigAlarm, distance)
if(RigWaterSupply%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(RigWaterSupply, ChangeRigWaterSupply, distance)
if(RigAir%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(RigAir, ChangeRigAir, distance)
if(Gen1%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(Gen1, ChangeGen1, distance)
if(Gen2%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(Gen2, ChangeGen2, distance)
if(Gen3%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(Gen3, ChangeGen3, distance)
if(Gen4%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(Gen4, ChangeGen4, distance)
if(Scr1%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(Scr1, ChangeScr1, distance)
if(Scr2%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(Scr2, ChangeScr2, distance)
if(Scr3%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(Scr3, ChangeScr3, distance)
if(Scr4%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(Scr4, ChangeScr4, distance)
if(OtherProblems%RigAlarm%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(OtherProblems%RigAlarm, ChangeRigAlarm, distance)
if(OtherProblems%RigWaterSupply%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(OtherProblems%RigWaterSupply, ChangeRigWaterSupply, distance)
if(OtherProblems%RigAir%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(OtherProblems%RigAir, ChangeRigAir, distance)
if(OtherProblems%Gen1%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(OtherProblems%Gen1, ChangeGen1, distance)
if(OtherProblems%Gen2%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(OtherProblems%Gen2, ChangeGen2, distance)
if(OtherProblems%Gen3%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(OtherProblems%Gen3, ChangeGen3, distance)
if(OtherProblems%Gen4%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(OtherProblems%Gen4, ChangeGen4, distance)
if(OtherProblems%Scr1%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(OtherProblems%Scr1, ChangeScr1, distance)
if(OtherProblems%Scr2%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(OtherProblems%Scr2, ChangeScr2, distance)
if(OtherProblems%Scr3%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(OtherProblems%Scr3, ChangeScr3, distance)
if(OtherProblems%Scr4%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(OtherProblems%Scr4, ChangeScr4, distance)
end subroutine
@@ -106,7 +108,7 @@ module COtherProblemsVariables
subroutine ChangeRigAlarm(status)
implicit none
integer, intent (in) :: status
if(associated(RigAlarmPtr)) call RigAlarmPtr(status)
!if(associated(RigAlarmPtr)) call RigAlarmPtr(status)
!if(status == Clear_StatusType) print*,'On_RigAlarm_Clear'
!if(status == Executed_StatusType) print*,'On_RigAlarm_Execute'
endsubroutine
@@ -114,7 +116,7 @@ module COtherProblemsVariables
subroutine ChangeRigWaterSupply(status)
implicit none
integer, intent (in) :: status
if(associated(RigWaterSupplyPtr)) call RigWaterSupplyPtr(status)
!if(associated(RigWaterSupplyPtr)) call RigWaterSupplyPtr(status)
!if(status == Clear_StatusType) print*,'On_RigWaterSupply_Clear'
!if(status == Executed_StatusType) print*,'On_RigWaterSupply_Execute'
endsubroutine
@@ -123,7 +125,7 @@ module COtherProblemsVariables
use VARIABLES
implicit none
integer, intent (in) :: status
if(associated(RigAirPtr)) call RigAirPtr(status)
!if(associated(RigAirPtr)) call RigAirPtr(status)
if(status == Clear_StatusType) RigAirMalf = 0
if(status == Executed_StatusType) RigAirMalf = 1
endsubroutine
@@ -131,7 +133,7 @@ module COtherProblemsVariables
subroutine ChangeGen1(status)
implicit none
integer, intent (in) :: status
if(associated(Gen1Ptr)) call Gen1Ptr(status)
!if(associated(Gen1Ptr)) call Gen1Ptr(status)
!if(status == Clear_StatusType) print*,'On_Gen1_Clear'
!if(status == Executed_StatusType) print*,'On_Gen1_Execute'
endsubroutine
@@ -139,7 +141,7 @@ module COtherProblemsVariables
subroutine ChangeGen2(status)
implicit none
integer, intent (in) :: status
if(associated(Gen2Ptr)) call Gen2Ptr(status)
!if(associated(Gen2Ptr)) call Gen2Ptr(status)
!if(status == Clear_StatusType) print*,'On_Gen2_Clear'
!if(status == Executed_StatusType) print*,'On_Gen2_Execute'
endsubroutine
@@ -147,7 +149,7 @@ module COtherProblemsVariables
subroutine ChangeGen3(status)
implicit none
integer, intent (in) :: status
if(associated(Gen3Ptr)) call Gen3Ptr(status)
!if(associated(Gen3Ptr)) call Gen3Ptr(status)
!if(status == Clear_StatusType) print*,'On_Gen3_Clear'
!if(status == Executed_StatusType) print*,'On_Gen3_Execute'
endsubroutine
@@ -155,7 +157,7 @@ module COtherProblemsVariables
subroutine ChangeGen4(status)
implicit none
integer, intent (in) :: status
if(associated(Gen4Ptr)) call Gen4Ptr(status)
!if(associated(Gen4Ptr)) call Gen4Ptr(status)
!if(status == Clear_StatusType) print*,'On_Gen4_Clear'
!if(status == Executed_StatusType) print*,'On_Gen4_Execute'
endsubroutine
@@ -163,7 +165,7 @@ module COtherProblemsVariables
subroutine ChangeScr1(status)
implicit none
integer, intent (in) :: status
if(associated(Scr1Ptr)) call Scr1Ptr(status)
!if(associated(Scr1Ptr)) call Scr1Ptr(status)
!if(status == Clear_StatusType) print*,'On_Scr1_Clear'
!if(status == Executed_StatusType) print*,'On_Scr1_Execute'
endsubroutine
@@ -171,7 +173,7 @@ module COtherProblemsVariables
subroutine ChangeScr2(status)
implicit none
integer, intent (in) :: status
if(associated(Scr2Ptr)) call Scr2Ptr(status)
!if(associated(Scr2Ptr)) call Scr2Ptr(status)
!if(status == Clear_StatusType) print*,'On_Scr2_Clear'
!if(status == Executed_StatusType) print*,'On_Scr2_Execute'
endsubroutine
@@ -179,7 +181,7 @@ module COtherProblemsVariables
subroutine ChangeScr3(status)
implicit none
integer, intent (in) :: status
if(associated(Scr3Ptr)) call Scr3Ptr(status)
!if(associated(Scr3Ptr)) call Scr3Ptr(status)
!if(status == Clear_StatusType) print*,'On_Scr3_Clear'
!if(status == Executed_StatusType) print*,'On_Scr3_Execute'
endsubroutine
@@ -187,7 +189,7 @@ module COtherProblemsVariables
subroutine ChangeScr4(status)
implicit none
integer, intent (in) :: status
if(associated(Scr4Ptr)) call Scr4Ptr(status)
!if(associated(Scr4Ptr)) call Scr4Ptr(status)
!if(status == Clear_StatusType) print*,'On_Scr4_Clear'
!if(status == Executed_StatusType) print*,'On_Scr4_Execute'
endsubroutine
@@ -203,93 +205,93 @@ module COtherProblemsVariables
subroutine SubscribeRigAlarm(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeRigAlarm
!DEC$ ATTRIBUTES ALIAS: 'SubscribeRigAlarm' :: SubscribeRigAlarm
implicit none
procedure (ActionInteger) :: v
RigAlarmPtr => v
end subroutine
! subroutine SubscribeRigAlarm(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeRigAlarm
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeRigAlarm' :: SubscribeRigAlarm
! implicit none
! procedure (ActionInteger) :: v
! RigAlarmPtr => v
! end subroutine

subroutine SubscribeRigWaterSupply(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeRigWaterSupply
!DEC$ ATTRIBUTES ALIAS: 'SubscribeRigWaterSupply' :: SubscribeRigWaterSupply
implicit none
procedure (ActionInteger) :: v
RigWaterSupplyPtr => v
end subroutine
! subroutine SubscribeRigWaterSupply(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeRigWaterSupply
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeRigWaterSupply' :: SubscribeRigWaterSupply
! implicit none
! procedure (ActionInteger) :: v
! RigWaterSupplyPtr => v
! end subroutine

subroutine SubscribeRigAir(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeRigAir
!DEC$ ATTRIBUTES ALIAS: 'SubscribeRigAir' :: SubscribeRigAir
implicit none
procedure (ActionInteger) :: v
RigAirPtr => v
end subroutine
! subroutine SubscribeRigAir(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeRigAir
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeRigAir' :: SubscribeRigAir
! implicit none
! procedure (ActionInteger) :: v
! RigAirPtr => v
! end subroutine

subroutine SubscribeGen1(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeGen1
!DEC$ ATTRIBUTES ALIAS: 'SubscribeGen1' :: SubscribeGen1
implicit none
procedure (ActionInteger) :: v
Gen1Ptr => v
end subroutine
! subroutine SubscribeGen1(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeGen1
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeGen1' :: SubscribeGen1
! implicit none
! procedure (ActionInteger) :: v
! Gen1Ptr => v
! end subroutine

subroutine SubscribeGen2(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeGen2
!DEC$ ATTRIBUTES ALIAS: 'SubscribeGen2' :: SubscribeGen2
implicit none
procedure (ActionInteger) :: v
Gen2Ptr => v
end subroutine
! subroutine SubscribeGen2(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeGen2
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeGen2' :: SubscribeGen2
! implicit none
! procedure (ActionInteger) :: v
! Gen2Ptr => v
! end subroutine

subroutine SubscribeGen3(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeGen3
!DEC$ ATTRIBUTES ALIAS: 'SubscribeGen3' :: SubscribeGen3
implicit none
procedure (ActionInteger) :: v
Gen3Ptr => v
end subroutine
! subroutine SubscribeGen3(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeGen3
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeGen3' :: SubscribeGen3
! implicit none
! procedure (ActionInteger) :: v
! Gen3Ptr => v
! end subroutine

subroutine SubscribeGen4(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeGen4
!DEC$ ATTRIBUTES ALIAS: 'SubscribeGen4' :: SubscribeGen4
implicit none
procedure (ActionInteger) :: v
Gen4Ptr => v
end subroutine
! subroutine SubscribeGen4(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeGen4
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeGen4' :: SubscribeGen4
! implicit none
! procedure (ActionInteger) :: v
! Gen4Ptr => v
! end subroutine

subroutine SubscribeScr1(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeScr1
!DEC$ ATTRIBUTES ALIAS: 'SubscribeScr1' :: SubscribeScr1
implicit none
procedure (ActionInteger) :: v
Scr1Ptr => v
end subroutine
! subroutine SubscribeScr1(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeScr1
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeScr1' :: SubscribeScr1
! implicit none
! procedure (ActionInteger) :: v
! Scr1Ptr => v
! end subroutine

subroutine SubscribeScr2(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeScr2
!DEC$ ATTRIBUTES ALIAS: 'SubscribeScr2' :: SubscribeScr2
implicit none
procedure (ActionInteger) :: v
Scr2Ptr => v
end subroutine
! subroutine SubscribeScr2(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeScr2
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeScr2' :: SubscribeScr2
! implicit none
! procedure (ActionInteger) :: v
! Scr2Ptr => v
! end subroutine

subroutine SubscribeScr3(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeScr3
!DEC$ ATTRIBUTES ALIAS: 'SubscribeScr3' :: SubscribeScr3
implicit none
procedure (ActionInteger) :: v
Scr3Ptr => v
end subroutine
! subroutine SubscribeScr3(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeScr3
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeScr3' :: SubscribeScr3
! implicit none
! procedure (ActionInteger) :: v
! Scr3Ptr => v
! end subroutine

subroutine SubscribeScr4(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeScr4
!DEC$ ATTRIBUTES ALIAS: 'SubscribeScr4' :: SubscribeScr4
implicit none
procedure (ActionInteger) :: v
Scr4Ptr => v
end subroutine
! subroutine SubscribeScr4(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeScr4
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeScr4' :: SubscribeScr4
! implicit none
! procedure (ActionInteger) :: v
! Scr4Ptr => v
! end subroutine




+ 68
- 68
CSharp/Problems/CProblemDifinition.f90 Datei anzeigen

@@ -31,82 +31,82 @@ module CProblemDifinition
if(problem%StatusType == Executed_StatusType .and. associated(action)) call action(Executed_StatusType)
end subroutine
type(CProblem) function SetDue(problem, action)
use CSimulationVariables
! type(CProblem) function SetDue(problem, action)
! ! use CSimulationVariables
implicit none
type(CProblem), intent(in) :: problem
procedure (ActionInteger), pointer, intent(in) :: action
real(8) :: CurrentTime
real(8) :: CurrentPumpStrokes
real(8) :: CurrentVolumePumped
real(8) :: CurrentDistanceDrilled
real(8) :: Due
! implicit none
! type(CProblem), intent(in) :: problem
! procedure (ActionInteger), pointer, intent(in) :: action
! real(8) :: CurrentTime
! real(8) :: CurrentPumpStrokes
! real(8) :: CurrentVolumePumped
! real(8) :: CurrentDistanceDrilled
! real(8) :: Due
CurrentTime = 0
CurrentPumpStrokes = 0
CurrentVolumePumped = 0
CurrentDistanceDrilled = 0
! CurrentTime = 0
! CurrentPumpStrokes = 0
! CurrentVolumePumped = 0
! CurrentDistanceDrilled = 0
SetDue = problem
! SetDue = problem
if(problem%StatusType == Clear_StatusType .and. associated(action)) then
call action(Clear_StatusType)
SetDue%DueValue = 0
return
endif
! if(problem%StatusType == Clear_StatusType .and. associated(action)) then
! call action(Clear_StatusType)
! SetDue%DueValue = 0
! return
! endif
select case (problem%ProblemType)
case(Time_ProblemType)
select case (SimulationState)
case(SimulationState_Stopped)
CurrentTime = 0
case(SimulationState_Started)
CurrentTime = dble(SimulationTime)
case(SimulationState_Paused)
CurrentTime = dble(SimulationTime)
end select
Due = problem%Value + CurrentTime
case(PumpStrokes_ProblemType)
select case (SimulationState)
case(SimulationState_Stopped)
CurrentPumpStrokes = 0
case(SimulationState_Started)
CurrentPumpStrokes = TotalPumpStrokes
case(SimulationState_Paused)
CurrentPumpStrokes = TotalPumpStrokes
end select
Due = problem%Value + CurrentPumpStrokes
case(VolumePumped_ProblemType)
select case (SimulationState)
case(SimulationState_Stopped)
CurrentVolumePumped = 0
case(SimulationState_Started)
CurrentVolumePumped = TotalVolumePumped
case(SimulationState_Paused)
CurrentVolumePumped = TotalVolumePumped
end select
Due = problem%Value + CurrentVolumePumped
case(DistanceDrilled_ProblemType)
select case (SimulationState)
case(SimulationState_Stopped)
CurrentDistanceDrilled = 0
case(SimulationState_Started)
CurrentDistanceDrilled = DistanceDrilled
case(SimulationState_Paused)
CurrentDistanceDrilled = DistanceDrilled
end select
Due = problem%Value + CurrentDistanceDrilled
end select
! select case (problem%ProblemType)
! case(Time_ProblemType)
! select case (SimulationState)
! case(SimulationState_Stopped)
! CurrentTime = 0
! case(SimulationState_Started)
! CurrentTime = dble(SimulationTime)
! case(SimulationState_Paused)
! CurrentTime = dble(SimulationTime)
! end select
! Due = problem%Value + CurrentTime
! case(PumpStrokes_ProblemType)
! select case (SimulationState)
! case(SimulationState_Stopped)
! CurrentPumpStrokes = 0
! case(SimulationState_Started)
! CurrentPumpStrokes = TotalPumpStrokes
! case(SimulationState_Paused)
! CurrentPumpStrokes = TotalPumpStrokes
! end select
! Due = problem%Value + CurrentPumpStrokes
! case(VolumePumped_ProblemType)
! select case (SimulationState)
! case(SimulationState_Stopped)
! CurrentVolumePumped = 0
! case(SimulationState_Started)
! CurrentVolumePumped = TotalVolumePumped
! case(SimulationState_Paused)
! CurrentVolumePumped = TotalVolumePumped
! end select
! Due = problem%Value + CurrentVolumePumped
! case(DistanceDrilled_ProblemType)
! select case (SimulationState)
! case(SimulationState_Stopped)
! CurrentDistanceDrilled = 0
! case(SimulationState_Started)
! CurrentDistanceDrilled = DistanceDrilled
! case(SimulationState_Paused)
! CurrentDistanceDrilled = DistanceDrilled
! end select
! Due = problem%Value + CurrentDistanceDrilled
! end select
SetDue%DueValue = Due
! SetDue%DueValue = Due
end function SetDue
! end function SetDue
subroutine ProcessDueTime(problem, action, time)
use CSimulationVariables
! use CSimulationVariables
use CLog3
implicit none
type(CProblem) :: problem
@@ -118,7 +118,7 @@ module CProblemDifinition
end subroutine
subroutine ProcessDuePumpStrokes(problem, action, strokes)
use CSimulationVariables
! use CSimulationVariables
implicit none
type(CProblem) :: problem
procedure (ActionInteger), pointer, intent(in) :: action
@@ -129,7 +129,7 @@ module CProblemDifinition
end subroutine
subroutine ProcessDueVolumePumped(problem, action, volume)
use CSimulationVariables
! use CSimulationVariables
implicit none
type(CProblem) :: problem
procedure (ActionInteger), pointer, intent(in) :: action
@@ -140,7 +140,7 @@ module CProblemDifinition
end subroutine
subroutine ProcessDueDistanceDrilled(problem, action, distance)
use CSimulationVariables
! use CSimulationVariables
implicit none
type(CProblem) :: problem
procedure (ActionInteger), pointer, intent(in) :: action


+ 73
- 73
CSharp/Problems/CPumpProblems.f90 Datei anzeigen

@@ -4,83 +4,83 @@ module CPumpProblems
public
contains
! Input routines
subroutine SetPump1PowerFail(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SetPump1PowerFail
!DEC$ ATTRIBUTES ALIAS: 'SetPump1PowerFail' :: SetPump1PowerFail
implicit none
type(CProblem), intent(in) :: v
Pump1PowerFail = SetDue(v, ChangePump1PowerFail)
#ifdef deb
print*, 'Pump1PowerFail%ProblemType=', V%ProblemType
print*, 'Pump1PowerFail%StatusType=', V%StatusType
print*, 'Pump1PowerFail%Value=', V%Value
#endif
end subroutine
! ! Input routines
! subroutine SetPump1PowerFail(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SetPump1PowerFail
! !DEC$ ATTRIBUTES ALIAS: 'SetPump1PowerFail' :: SetPump1PowerFail
! implicit none
! type(CProblem), intent(in) :: v
! Pump1PowerFail = SetDue(v, ChangePump1PowerFail)
! #ifdef deb
! print*, 'Pump1PowerFail%ProblemType=', V%ProblemType
! print*, 'Pump1PowerFail%StatusType=', V%StatusType
! print*, 'Pump1PowerFail%Value=', V%Value
! #endif
! end subroutine

subroutine SetPump1BlowPopOffValve(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SetPump1BlowPopOffValve
!DEC$ ATTRIBUTES ALIAS: 'SetPump1BlowPopOffValve' :: SetPump1BlowPopOffValve
implicit none
type(CProblem), intent(in) :: v
Pump1BlowPopOffValve = SetDue(v, ChangePump1BlowPopOffValve)
#ifdef deb
print*, 'Pump1BlowPopOffValve%ProblemType=', V%ProblemType
print*, 'Pump1BlowPopOffValve%StatusType=', V%StatusType
print*, 'Pump1BlowPopOffValve%Value=', V%Value
#endif
end subroutine
! subroutine SetPump1BlowPopOffValve(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SetPump1BlowPopOffValve
! !DEC$ ATTRIBUTES ALIAS: 'SetPump1BlowPopOffValve' :: SetPump1BlowPopOffValve
! implicit none
! type(CProblem), intent(in) :: v
! PumpProblems%Pump1BlowPopOffValve = SetDue(v, ChangePump1BlowPopOffValve)
! #ifdef deb
! print*, 'Pump1BlowPopOffValve%ProblemType=', V%ProblemType
! print*, 'Pump1BlowPopOffValve%StatusType=', V%StatusType
! print*, 'Pump1BlowPopOffValve%Value=', V%Value
! #endif
! end subroutine

subroutine SetPump2PowerFail(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SetPump2PowerFail
!DEC$ ATTRIBUTES ALIAS: 'SetPump2PowerFail' :: SetPump2PowerFail
implicit none
type(CProblem), intent(in) :: v
Pump2PowerFail = SetDue(v, ChangePump2PowerFail)
#ifdef deb
print*, 'Pump2PowerFail%ProblemType=', V%ProblemType
print*, 'Pump2PowerFail%StatusType=', V%StatusType
print*, 'Pump2PowerFail%Value=', V%Value
#endif
end subroutine
! subroutine SetPump2PowerFail(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SetPump2PowerFail
! !DEC$ ATTRIBUTES ALIAS: 'SetPump2PowerFail' :: SetPump2PowerFail
! implicit none
! type(CProblem), intent(in) :: v
! PumpProblems%Pump2PowerFail = SetDue(v, ChangePump2PowerFail)
! #ifdef deb
! print*, 'Pump2PowerFail%ProblemType=', V%ProblemType
! print*, 'Pump2PowerFail%StatusType=', V%StatusType
! print*, 'Pump2PowerFail%Value=', V%Value
! #endif
! end subroutine

subroutine SetPump2BlowPopOffValve(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SetPump2BlowPopOffValve
!DEC$ ATTRIBUTES ALIAS: 'SetPump2BlowPopOffValve' :: SetPump2BlowPopOffValve
implicit none
type(CProblem), intent(in) :: v
Pump2BlowPopOffValve = SetDue(v, ChangePump2BlowPopOffValve)
#ifdef deb
print*, 'Pump2BlowPopOffValve%ProblemType=', V%ProblemType
print*, 'Pump2BlowPopOffValve%StatusType=', V%StatusType
print*, 'Pump2BlowPopOffValve%Value=', V%Value
#endif
end subroutine
! subroutine SetPump2BlowPopOffValve(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SetPump2BlowPopOffValve
! !DEC$ ATTRIBUTES ALIAS: 'SetPump2BlowPopOffValve' :: SetPump2BlowPopOffValve
! implicit none
! type(CProblem), intent(in) :: v
! PumpProblems%Pump2BlowPopOffValve = SetDue(v, ChangePump2BlowPopOffValve)
! #ifdef deb
! print*, 'Pump2BlowPopOffValve%ProblemType=', V%ProblemType
! print*, 'Pump2BlowPopOffValve%StatusType=', V%StatusType
! print*, 'Pump2BlowPopOffValve%Value=', V%Value
! #endif
! end subroutine

subroutine SetCementPumpPowerFail(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SetCementPumpPowerFail
!DEC$ ATTRIBUTES ALIAS: 'SetCementPumpPowerFail' :: SetCementPumpPowerFail
implicit none
type(CProblem), intent(in) :: v
CementPumpPowerFail = SetDue(v, ChangeCementPumpPowerFail)
#ifdef deb
print*, 'CementPumpPowerFail%ProblemType=', V%ProblemType
print*, 'CementPumpPowerFail%StatusType=', V%StatusType
print*, 'CementPumpPowerFail%Value=', V%Value
#endif
end subroutine
! subroutine SetCementPumpPowerFail(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SetCementPumpPowerFail
! !DEC$ ATTRIBUTES ALIAS: 'SetCementPumpPowerFail' :: SetCementPumpPowerFail
! implicit none
! type(CProblem), intent(in) :: v
! PumpProblems%CementPumpPowerFail = SetDue(v, ChangeCementPumpPowerFail)
! #ifdef deb
! print*, 'CementPumpPowerFail%ProblemType=', V%ProblemType
! print*, 'CementPumpPowerFail%StatusType=', V%StatusType
! print*, 'CementPumpPowerFail%Value=', V%Value
! #endif
! end subroutine

subroutine SetCementPumpBlowPopOffValve(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SetCementPumpBlowPopOffValve
!DEC$ ATTRIBUTES ALIAS: 'SetCementPumpBlowPopOffValve' :: SetCementPumpBlowPopOffValve
implicit none
type(CProblem), intent(in) :: v
CementPumpBlowPopOffValve = SetDue(v, ChangeCementPumpBlowPopOffValve)
#ifdef deb
print*, 'CementPumpBlowPopOffValve%ProblemType=', V%ProblemType
print*, 'CementPumpBlowPopOffValve%StatusType=', V%StatusType
print*, 'CementPumpBlowPopOffValve%Value=', V%Value
#endif
end subroutine
! subroutine SetCementPumpBlowPopOffValve(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SetCementPumpBlowPopOffValve
! !DEC$ ATTRIBUTES ALIAS: 'SetCementPumpBlowPopOffValve' :: SetCementPumpBlowPopOffValve
! implicit none
! type(CProblem), intent(in) :: v
! PumpProblems%CementPumpBlowPopOffValve = SetDue(v, ChangeCementPumpBlowPopOffValve)
! #ifdef deb
! print*, 'CementPumpBlowPopOffValve%ProblemType=', V%ProblemType
! print*, 'CementPumpBlowPopOffValve%StatusType=', V%StatusType
! print*, 'CementPumpBlowPopOffValve%Value=', V%Value
! #endif
! end subroutine

end module CPumpProblems

+ 47
- 97
CSharp/Problems/CPumpProblemsVariables.f90 Datei anzeigen

@@ -4,19 +4,22 @@ module CPumpProblemsVariables
public
! Input vars
type(CProblem) :: Pump1PowerFail
type(CProblem) :: Pump1BlowPopOffValve
type(CProblem) :: Pump2PowerFail
type(CProblem) :: Pump2BlowPopOffValve
type(CProblem) :: CementPumpPowerFail
type(CProblem) :: CementPumpBlowPopOffValve
procedure (ActionInteger), pointer :: Pump1PowerFailPtr
procedure (ActionInteger), pointer :: Pump1BlowPopOffValvePtr
procedure (ActionInteger), pointer :: Pump2PowerFailPtr
procedure (ActionInteger), pointer :: Pump2BlowPopOffValvePtr
procedure (ActionInteger), pointer :: CementPumpPowerFailPtr
procedure (ActionInteger), pointer :: CementPumpBlowPopOffValvePtr
type :: PumpProblemsType
type(CProblem) :: Pump1PowerFail
type(CProblem) :: Pump1BlowPopOffValve
type(CProblem) :: Pump2PowerFail
type(CProblem) :: Pump2BlowPopOffValve
type(CProblem) :: CementPumpPowerFail
type(CProblem) :: CementPumpBlowPopOffValve
end type PumpProblemsType
type(PumpProblemsType)::PumpProblems

! procedure (ActionInteger), pointer :: Pump1PowerFailPtr
! procedure (ActionInteger), pointer :: Pump1BlowPopOffValvePtr
! procedure (ActionInteger), pointer :: Pump2PowerFailPtr
! procedure (ActionInteger), pointer :: Pump2BlowPopOffValvePtr
! procedure (ActionInteger), pointer :: CementPumpPowerFailPtr
! procedure (ActionInteger), pointer :: CementPumpBlowPopOffValvePtr

contains
@@ -25,12 +28,12 @@ module CPumpProblemsVariables
implicit none
integer :: time
if(Pump1PowerFail%ProblemType == Time_ProblemType) call ProcessDueTime(Pump1PowerFail, ChangePump1PowerFail, time)
if(Pump1BlowPopOffValve%ProblemType == Time_ProblemType) call ProcessDueTime(Pump1BlowPopOffValve, ChangePump1BlowPopOffValve, time)
if(Pump2PowerFail%ProblemType == Time_ProblemType) call ProcessDueTime(Pump2PowerFail, ChangePump2PowerFail, time)
if(Pump2BlowPopOffValve%ProblemType == Time_ProblemType) call ProcessDueTime(Pump2BlowPopOffValve, ChangePump2BlowPopOffValve, time)
if(CementPumpPowerFail%ProblemType == Time_ProblemType) call ProcessDueTime(CementPumpPowerFail, ChangeCementPumpPowerFail, time)
if(CementPumpBlowPopOffValve%ProblemType == Time_ProblemType) call ProcessDueTime(CementPumpBlowPopOffValve, ChangeCementPumpBlowPopOffValve, time)
if(PumpProblems%Pump1PowerFail%ProblemType == Time_ProblemType) call ProcessDueTime(PumpProblems%Pump1PowerFail, ChangePump1PowerFail, time)
if(PumpProblems%Pump1BlowPopOffValve%ProblemType == Time_ProblemType) call ProcessDueTime(PumpProblems%Pump1BlowPopOffValve, ChangePump1BlowPopOffValve, time)
if(PumpProblems%Pump2PowerFail%ProblemType == Time_ProblemType) call ProcessDueTime(PumpProblems%Pump2PowerFail, ChangePump2PowerFail, time)
if(PumpProblems%Pump2BlowPopOffValve%ProblemType == Time_ProblemType) call ProcessDueTime(PumpProblems%Pump2BlowPopOffValve, ChangePump2BlowPopOffValve, time)
if(PumpProblems%CementPumpPowerFail%ProblemType == Time_ProblemType) call ProcessDueTime(PumpProblems%CementPumpPowerFail, ChangeCementPumpPowerFail, time)
if(PumpProblems%CementPumpBlowPopOffValve%ProblemType == Time_ProblemType) call ProcessDueTime(PumpProblems%CementPumpBlowPopOffValve, ChangeCementPumpBlowPopOffValve, time)
end subroutine
@@ -38,12 +41,12 @@ module CPumpProblemsVariables
implicit none
integer :: strokes
if(Pump1PowerFail%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(Pump1PowerFail, ChangePump1PowerFail, strokes)
if(Pump1BlowPopOffValve%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(Pump1BlowPopOffValve, ChangePump1BlowPopOffValve, strokes)
if(Pump2PowerFail%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(Pump2PowerFail, ChangePump2PowerFail, strokes)
if(Pump2BlowPopOffValve%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(Pump2BlowPopOffValve, ChangePump2BlowPopOffValve, strokes)
if(CementPumpPowerFail%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(CementPumpPowerFail, ChangeCementPumpPowerFail, strokes)
if(CementPumpBlowPopOffValve%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(CementPumpBlowPopOffValve, ChangeCementPumpBlowPopOffValve, strokes)
if(PumpProblems%Pump1PowerFail%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(PumpProblems%Pump1PowerFail, ChangePump1PowerFail, strokes)
if(PumpProblems%Pump1BlowPopOffValve%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(PumpProblems%Pump1BlowPopOffValve, ChangePump1BlowPopOffValve, strokes)
if(PumpProblems%Pump2PowerFail%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(PumpProblems%Pump2PowerFail, ChangePump2PowerFail, strokes)
if(PumpProblems%Pump2BlowPopOffValve%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(PumpProblems%Pump2BlowPopOffValve, ChangePump2BlowPopOffValve, strokes)
if(PumpProblems%CementPumpPowerFail%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(PumpProblems%CementPumpPowerFail, ChangeCementPumpPowerFail, strokes)
if(PumpProblems%CementPumpBlowPopOffValve%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(PumpProblems%CementPumpBlowPopOffValve, ChangeCementPumpBlowPopOffValve, strokes)
end subroutine
@@ -51,12 +54,12 @@ module CPumpProblemsVariables
implicit none
real(8) :: volume
if(Pump1PowerFail%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(Pump1PowerFail, ChangePump1PowerFail, volume)
if(Pump1BlowPopOffValve%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(Pump1BlowPopOffValve, ChangePump1BlowPopOffValve, volume)
if(Pump2PowerFail%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(Pump2PowerFail, ChangePump2PowerFail, volume)
if(Pump2BlowPopOffValve%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(Pump2BlowPopOffValve, ChangePump2BlowPopOffValve, volume)
if(CementPumpPowerFail%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(CementPumpPowerFail, ChangeCementPumpPowerFail, volume)
if(CementPumpBlowPopOffValve%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(CementPumpBlowPopOffValve, ChangeCementPumpBlowPopOffValve, volume)
if(PumpProblems%Pump1PowerFail%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(PumpProblems%Pump1PowerFail, ChangePump1PowerFail, volume)
if(PumpProblems%Pump1BlowPopOffValve%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(PumpProblems%Pump1BlowPopOffValve, ChangePump1BlowPopOffValve, volume)
if(PumpProblems%Pump2PowerFail%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(PumpProblems%Pump2PowerFail, ChangePump2PowerFail, volume)
if(PumpProblems%Pump2BlowPopOffValve%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(PumpProblems%Pump2BlowPopOffValve, ChangePump2BlowPopOffValve, volume)
if(PumpProblems%CementPumpPowerFail%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(PumpProblems%CementPumpPowerFail, ChangeCementPumpPowerFail, volume)
if(PumpProblems%CementPumpBlowPopOffValve%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(PumpProblems%CementPumpBlowPopOffValve, ChangeCementPumpBlowPopOffValve, volume)
end subroutine
@@ -64,12 +67,12 @@ module CPumpProblemsVariables
implicit none
real(8) :: distance
if(Pump1PowerFail%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(Pump1PowerFail, ChangePump1PowerFail, distance)
if(Pump1BlowPopOffValve%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(Pump1BlowPopOffValve, ChangePump1BlowPopOffValve, distance)
if(Pump2PowerFail%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(Pump2PowerFail, ChangePump2PowerFail, distance)
if(Pump2BlowPopOffValve%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(Pump2BlowPopOffValve, ChangePump2BlowPopOffValve, distance)
if(CementPumpPowerFail%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(CementPumpPowerFail, ChangeCementPumpPowerFail, distance)
if(CementPumpBlowPopOffValve%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(CementPumpBlowPopOffValve, ChangeCementPumpBlowPopOffValve, distance)
if(PumpProblems%Pump1PowerFail%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(PumpProblems%Pump1PowerFail, ChangePump1PowerFail, distance)
if(PumpProblems%Pump1BlowPopOffValve%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(PumpProblems%Pump1BlowPopOffValve, ChangePump1BlowPopOffValve, distance)
if(PumpProblems%Pump2PowerFail%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(PumpProblems%Pump2PowerFail, ChangePump2PowerFail, distance)
if(PumpProblems%Pump2BlowPopOffValve%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(PumpProblems%Pump2BlowPopOffValve, ChangePump2BlowPopOffValve, distance)
if(PumpProblems%CementPumpPowerFail%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(PumpProblems%CementPumpPowerFail, ChangeCementPumpPowerFail, distance)
if(PumpProblems%CementPumpBlowPopOffValve%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(PumpProblems%CementPumpBlowPopOffValve, ChangeCementPumpBlowPopOffValve, distance)
end subroutine
@@ -87,7 +90,7 @@ module CPumpProblemsVariables
Use Pumps_VARIABLES
implicit none
integer, intent (in) :: status
if(associated(Pump1PowerFailPtr)) call Pump1PowerFailPtr(status)
!if(associated(Pump1PowerFailPtr)) call Pump1PowerFailPtr(status)
if(status == Clear_StatusType) PUMP(1)%PowerFailMalf=0
if(status == Executed_StatusType) PUMP(1)%PowerFailMalf=1
endsubroutine
@@ -96,7 +99,7 @@ module CPumpProblemsVariables
Use Pumps_VARIABLES
implicit none
integer, intent (in) :: status
if(associated(Pump1BlowPopOffValvePtr)) call Pump1BlowPopOffValvePtr(status)
!if(associated(Pump1BlowPopOffValvePtr)) call Pump1BlowPopOffValvePtr(status)
if(status == Clear_StatusType) PUMP(1)%BlowPopOffMalf=0
if(status == Executed_StatusType) PUMP(1)%BlowPopOffMalf=1
endsubroutine
@@ -105,7 +108,7 @@ module CPumpProblemsVariables
Use Pumps_VARIABLES
implicit none
integer, intent (in) :: status
if(associated(Pump2PowerFailPtr)) call Pump2PowerFailPtr(status)
!if(associated(Pump2PowerFailPtr)) call Pump2PowerFailPtr(status)
if(status == Clear_StatusType) PUMP(2)%PowerFailMalf=0
if(status == Executed_StatusType) PUMP(2)%PowerFailMalf=1
endsubroutine
@@ -114,7 +117,7 @@ module CPumpProblemsVariables
Use Pumps_VARIABLES
implicit none
integer, intent (in) :: status
if(associated(Pump2BlowPopOffValvePtr)) call Pump2BlowPopOffValvePtr(status)
!if(associated(Pump2BlowPopOffValvePtr)) call Pump2BlowPopOffValvePtr(status)
if(status == Clear_StatusType) PUMP(2)%BlowPopOffMalf=0
if(status == Executed_StatusType) PUMP(2)%BlowPopOffMalf=1
endsubroutine
@@ -123,7 +126,7 @@ module CPumpProblemsVariables
Use Pumps_VARIABLES
implicit none
integer, intent (in) :: status
if(associated(CementPumpPowerFailPtr)) call CementPumpPowerFailPtr(status)
!if(associated(CementPumpPowerFailPtr)) call CementPumpPowerFailPtr(status)
if(status == Clear_StatusType) PUMP(3)%PowerFailMalf=0
if(status == Executed_StatusType) PUMP(3)%PowerFailMalf=1
endsubroutine
@@ -132,7 +135,7 @@ module CPumpProblemsVariables
Use Pumps_VARIABLES
implicit none
integer, intent (in) :: status
if(associated(CementPumpBlowPopOffValvePtr)) call CementPumpBlowPopOffValvePtr(status)
!if(associated(CementPumpBlowPopOffValvePtr)) call CementPumpBlowPopOffValvePtr(status)
if(status == Clear_StatusType) PUMP(3)%BlowPopOffMalf=0
if(status == Executed_StatusType) PUMP(3)%BlowPopOffMalf=1
endsubroutine
@@ -149,60 +152,7 @@ module CPumpProblemsVariables
subroutine SubscribePump1PowerFail(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribePump1PowerFail
!DEC$ ATTRIBUTES ALIAS: 'SubscribePump1PowerFail' :: SubscribePump1PowerFail
implicit none
procedure (ActionInteger) :: v
Pump1PowerFailPtr => v
end subroutine

subroutine SubscribePump1BlowPopOffValve(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribePump1BlowPopOffValve
!DEC$ ATTRIBUTES ALIAS: 'SubscribePump1BlowPopOffValve' :: SubscribePump1BlowPopOffValve
implicit none
procedure (ActionInteger) :: v
Pump1BlowPopOffValvePtr => v
end subroutine

subroutine SubscribePump2PowerFail(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribePump2PowerFail
!DEC$ ATTRIBUTES ALIAS: 'SubscribePump2PowerFail' :: SubscribePump2PowerFail
implicit none
procedure (ActionInteger) :: v
Pump2PowerFailPtr => v
end subroutine

subroutine SubscribePump2BlowPopOffValve(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribePump2BlowPopOffValve
!DEC$ ATTRIBUTES ALIAS: 'SubscribePump2BlowPopOffValve' :: SubscribePump2BlowPopOffValve
implicit none
procedure (ActionInteger) :: v
Pump2BlowPopOffValvePtr => v
end subroutine

subroutine SubscribeCementPumpPowerFail(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeCementPumpPowerFail
!DEC$ ATTRIBUTES ALIAS: 'SubscribeCementPumpPowerFail' :: SubscribeCementPumpPowerFail
implicit none
procedure (ActionInteger) :: v
CementPumpPowerFailPtr => v
end subroutine

subroutine SubscribeCementPumpBlowPopOffValve(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeCementPumpBlowPopOffValve
!DEC$ ATTRIBUTES ALIAS: 'SubscribeCementPumpBlowPopOffValve' :: SubscribeCementPumpBlowPopOffValve
implicit none
procedure (ActionInteger) :: v
CementPumpBlowPopOffValvePtr => v
end subroutine


end module CPumpProblemsVariables

+ 25
- 25
CSharp/Problems/CRotaryProblems.f90 Datei anzeigen

@@ -4,31 +4,31 @@ module CRotaryProblems
public
contains
! Input routines
subroutine SetMotorFail2(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SetMotorFail2
!DEC$ ATTRIBUTES ALIAS: 'SetMotorFail2' :: SetMotorFail2
implicit none
type(CProblem), intent(in) :: v
MotorFail = SetDue(v, ChangeMotorFail)
#ifdef deb
print*, 'MotorFail%ProblemType=', V%ProblemType
print*, 'MotorFail%StatusType=', V%StatusType
print*, 'MotorFail%Value=', V%Value
#endif
end subroutine
! ! Input routines
! subroutine SetMotorFail2(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SetMotorFail2
! !DEC$ ATTRIBUTES ALIAS: 'SetMotorFail2' :: SetMotorFail2
! implicit none
! type(CProblem), intent(in) :: v
! RotaryProblems%MotorFail = SetDue(v, ChangeMotorFail)
! #ifdef deb
! print*, 'MotorFail%ProblemType=', V%ProblemType
! print*, 'MotorFail%StatusType=', V%StatusType
! print*, 'MotorFail%Value=', V%Value
! #endif
! end subroutine

subroutine SetOverideTorqueLimit2(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SetOverideTorqueLimit2
!DEC$ ATTRIBUTES ALIAS: 'SetOverideTorqueLimit2' :: SetOverideTorqueLimit2
implicit none
type(CProblem), intent(in) :: v
OverideTorqueLimit = SetDue(v, ChangeOverideTorqueLimit)
#ifdef deb
print*, 'OverideTorqueLimit%ProblemType=', V%ProblemType
print*, 'OverideTorqueLimit%StatusType=', V%StatusType
print*, 'OverideTorqueLimit%Value=', V%Value
#endif
end subroutine
! subroutine SetOverideTorqueLimit2(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SetOverideTorqueLimit2
! !DEC$ ATTRIBUTES ALIAS: 'SetOverideTorqueLimit2' :: SetOverideTorqueLimit2
! implicit none
! type(CProblem), intent(in) :: v
! RotaryProblems%OverideTorqueLimit = SetDue(v, ChangeOverideTorqueLimit)
! #ifdef deb
! print*, 'OverideTorqueLimit%ProblemType=', V%ProblemType
! print*, 'OverideTorqueLimit%StatusType=', V%StatusType
! print*, 'OverideTorqueLimit%Value=', V%Value
! #endif
! end subroutine

end module CRotaryProblems

+ 31
- 29
CSharp/Problems/CRotaryProblemsVariables.f90 Datei anzeigen

@@ -4,11 +4,13 @@ module CRotaryProblemsVariables
public
! Input vars
type(CProblem) :: MotorFail
type(CProblem) :: OverideTorqueLimit
procedure (ActionInteger), pointer :: MotorFailPtr
procedure (ActionInteger), pointer :: OverideTorqueLimitPtr
type::RotaryProblemsType
type(CProblem) :: MotorFail
type(CProblem) :: OverideTorqueLimit
end type RotaryProblemsType
type(RotaryProblemsType)::RotaryProblems
! procedure (ActionInteger), pointer :: MotorFailPtr
! procedure (ActionInteger), pointer :: OverideTorqueLimitPtr
contains
@@ -16,8 +18,8 @@ module CRotaryProblemsVariables
implicit none
integer :: time
if(MotorFail%ProblemType == Time_ProblemType) call ProcessDueTime(MotorFail, ChangeMotorFail, time)
if(OverideTorqueLimit%ProblemType == Time_ProblemType) call ProcessDueTime(OverideTorqueLimit, ChangeOverideTorqueLimit, time)
if(RotaryProblems%MotorFail%ProblemType == Time_ProblemType) call ProcessDueTime(RotaryProblems%MotorFail, ChangeMotorFail, time)
if(RotaryProblems%OverideTorqueLimit%ProblemType == Time_ProblemType) call ProcessDueTime(RotaryProblems%OverideTorqueLimit, ChangeOverideTorqueLimit, time)
end subroutine
@@ -25,8 +27,8 @@ module CRotaryProblemsVariables
implicit none
integer :: strokes
if(MotorFail%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(MotorFail, ChangeMotorFail, strokes)
if(OverideTorqueLimit%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(OverideTorqueLimit, ChangeOverideTorqueLimit, strokes)
if(RotaryProblems%MotorFail%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(RotaryProblems%MotorFail, ChangeMotorFail, strokes)
if(RotaryProblems%OverideTorqueLimit%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(RotaryProblems%OverideTorqueLimit, ChangeOverideTorqueLimit, strokes)
end subroutine
@@ -34,8 +36,8 @@ module CRotaryProblemsVariables
implicit none
real(8) :: volume
if(MotorFail%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(MotorFail, ChangeMotorFail, volume)
if(OverideTorqueLimit%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(OverideTorqueLimit, ChangeOverideTorqueLimit, volume)
if(RotaryProblems%MotorFail%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(RotaryProblems%MotorFail, ChangeMotorFail, volume)
if(RotaryProblems%OverideTorqueLimit%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(RotaryProblems%OverideTorqueLimit, ChangeOverideTorqueLimit, volume)
end subroutine
@@ -43,8 +45,8 @@ module CRotaryProblemsVariables
implicit none
real(8) :: distance
if(MotorFail%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(MotorFail, ChangeMotorFail, distance)
if(OverideTorqueLimit%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(OverideTorqueLimit, ChangeOverideTorqueLimit, distance)
if(RotaryProblems%MotorFail%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(RotaryProblems%MotorFail, ChangeMotorFail, distance)
if(RotaryProblems%OverideTorqueLimit%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(RotaryProblems%OverideTorqueLimit, ChangeOverideTorqueLimit, distance)
end subroutine
@@ -58,7 +60,7 @@ module CRotaryProblemsVariables
use RTable_VARIABLES
implicit none
integer, intent (in) :: status
if(associated(MotorFailPtr)) call MotorFailPtr(status)
!if(associated(MotorFailPtr)) call MotorFailPtr(status)
if(status == Clear_StatusType) RTable%MotorFaileMalf=0
if(status == Executed_StatusType) RTable%MotorFaileMalf=1
endsubroutine
@@ -67,7 +69,7 @@ module CRotaryProblemsVariables
use RTable_VARIABLES
implicit none
integer, intent (in) :: status
if(associated(OverideTorqueLimitPtr)) call OverideTorqueLimitPtr(status)
!if(associated(OverideTorqueLimitPtr)) call OverideTorqueLimitPtr(status)
if(status == Clear_StatusType) RTable%OverideTorqueLimitMalf=0
if(status == Executed_StatusType) RTable%OverideTorqueLimitMalf=1
endsubroutine
@@ -85,21 +87,21 @@ module CRotaryProblemsVariables
subroutine SubscribeMotorFail2(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeMotorFail2
!DEC$ ATTRIBUTES ALIAS: 'SubscribeMotorFail2' :: SubscribeMotorFail2
implicit none
procedure (ActionInteger) :: v
MotorFailPtr => v
end subroutine
! subroutine SubscribeMotorFail2(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeMotorFail2
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeMotorFail2' :: SubscribeMotorFail2
! implicit none
! procedure (ActionInteger) :: v
! MotorFailPtr => v
! end subroutine

subroutine SubscribeOverideTorqueLimit(v)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeOverideTorqueLimit
!DEC$ ATTRIBUTES ALIAS: 'SubscribeOverideTorqueLimit' :: SubscribeOverideTorqueLimit
implicit none
procedure (ActionInteger) :: v
OverideTorqueLimitPtr => v
end subroutine
! subroutine SubscribeOverideTorqueLimit(v)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeOverideTorqueLimit
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeOverideTorqueLimit' :: SubscribeOverideTorqueLimit
! implicit none
! procedure (ActionInteger) :: v
! OverideTorqueLimitPtr => v
! end subroutine

+ 1
- 1
CSharp/Simulation/CSimulation.f90 Datei anzeigen

@@ -1,5 +1,5 @@
module CSimulation
use CSimulationVariables
! use CSimulationVariables
use CSimulationThreads
use ifcore
use ifmt


+ 23
- 23
CSharp/Simulation/CSimulationVariables.f90 Datei anzeigen

@@ -279,29 +279,29 @@ module CSimulationVariables
if(associated(SpeedChangePossibilityPtr)) call SpeedChangePossibilityPtr(SpeedChangePossibilityValue)
end subroutine
subroutine SubscribeSpeedChangePossibility(a)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeSpeedChangePossibility
!DEC$ ATTRIBUTES ALIAS: 'SubscribeSpeedChangePossibility' :: SubscribeSpeedChangePossibility
implicit none
procedure (ActionBool) :: a
SpeedChangePossibilityPtr => a
end subroutine
subroutine SubscribeForceRealTimeSpeed(a)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeForceRealTimeSpeed
!DEC$ ATTRIBUTES ALIAS: 'SubscribeForceRealTimeSpeed' :: SubscribeForceRealTimeSpeed
implicit none
procedure (ActionVoid) :: a
ForceRealTimeSpeedPtr => a
end subroutine
subroutine SubscribeTotalStrokesChanged(a)
!DEC$ ATTRIBUTES DLLEXPORT :: SubscribeTotalStrokesChanged
!DEC$ ATTRIBUTES ALIAS: 'SubscribeTotalStrokesChanged' :: SubscribeTotalStrokesChanged
implicit none
procedure (ActionInteger) :: a
TotalStrokesChangedPtr => a
end subroutine
! subroutine SubscribeSpeedChangePossibility(a)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeSpeedChangePossibility
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeSpeedChangePossibility' :: SubscribeSpeedChangePossibility
! implicit none
! procedure (ActionBool) :: a
! SpeedChangePossibilityPtr => a
! end subroutine
! subroutine SubscribeForceRealTimeSpeed(a)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeForceRealTimeSpeed
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeForceRealTimeSpeed' :: SubscribeForceRealTimeSpeed
! implicit none
! procedure (ActionVoid) :: a
! ForceRealTimeSpeedPtr => a
! end subroutine
! subroutine SubscribeTotalStrokesChanged(a)
! !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeTotalStrokesChanged
! !DEC$ ATTRIBUTES ALIAS: 'SubscribeTotalStrokesChanged' :: SubscribeTotalStrokesChanged
! implicit none
! procedure (ActionInteger) :: a
! TotalStrokesChangedPtr => a
! end subroutine
subroutine SetTotalStrokes(strokes)
implicit none


+ 438
- 436
CSharp/Simulation/CSounds.f90
Datei-Diff unterdrückt, da er zu groß ist
Datei anzeigen


+ 75
- 75
CSounds.f90 Datei anzeigen

@@ -6,31 +6,31 @@ module CSounds
! Input vars

! Output vars
integer :: SoundMP1s
integer :: SoundMP2s
integer :: SoundMP3s
integer :: SoundRTs
integer :: SoundDwFws
integer :: SoundDwRevs
integer :: SoundDwBrakes
integer :: SoundChokePumps
integer :: SoundGasThroughChokes
integer :: SoundKoomeyAirPumps
integer :: SoundKoomeyElectricPumps
logical :: SoundRtGearCrashs
logical :: SoundDwGearCrashs
logical :: SoundFloorCollisions
logical :: SoundCrownCollisions
logical :: SoundDwClutchs
logical :: SoundBlowers
logical :: SoundBlowerMp1s
logical :: SoundBlowerMp2s
logical :: SoundBlowerMp3s
logical :: SoundBlowerRts
logical :: SoundBlowerDws
logical :: SoundBlowerStarts
logical :: SoundBlowerShutdowns
logical :: SoundElectricPumps
integer :: Sounds%MP1s
integer :: Sounds%MP2s
integer :: Sounds%MP3s
integer :: Sounds%RTs
integer :: Sounds%DwFws
integer :: Sounds%DwRevs
integer :: Sounds%DwBrakes
integer :: Sounds%ChokePumps
integer :: Sounds%GasThroughChokes
integer :: Sounds%KoomeyAirPumps
integer :: Sounds%KoomeyElectricPumps
logical :: Sounds%RtGearCrashs
logical :: Sounds%DwGearCrashs
logical :: Sounds%FloorCollisions
logical :: Sounds%CrownCollisions
logical :: Sounds%DwClutchs
logical :: Sounds%Blowers
logical :: Sounds%BlowerMp1s
logical :: Sounds%BlowerMp2s
logical :: Sounds%BlowerMp3s
logical :: Sounds%BlowerRts
logical :: Sounds%BlowerDws
logical :: Sounds%BlowerStarts
logical :: Sounds%BlowerShutdowns
logical :: Sounds%ElectricPumps

procedure (ActionInteger), pointer :: SoundMP1Ptr
@@ -73,154 +73,154 @@ module CSounds
implicit none
integer, intent(inout) :: v
!if(associated(SoundMP1Ptr)) call SoundMP1Ptr(v)
SoundMP1s = v
Sounds%MP1s = v
end subroutine

subroutine SetSoundMP2(v)
implicit none
integer, intent(inout) :: v
!if(associated(SoundMP2Ptr)) call SoundMP2Ptr(v)
SoundMP2s = v
Sounds%MP2s = v
end subroutine

subroutine SetSoundMP3(v)
implicit none
integer, intent(inout) :: v
!if(associated(SoundMP3Ptr)) call SoundMP3Ptr(v)
SoundMP3s = v
Sounds%MP3s = v
end subroutine

subroutine SetSoundRT(v)
implicit none
integer, intent(inout) :: v
!if(associated(SoundRTPtr)) call SoundRTPtr(v)
SoundRTs = v
Sounds%RTs = v
end subroutine

subroutine SetSoundDwFw(v)
implicit none
integer, intent(inout) :: v
!if(associated(SoundDwFwPtr)) call SoundDwFwPtr(v)
SoundDwFws = v
Sounds%DwFws = v
end subroutine

subroutine SetSoundDwRev(v)
implicit none
integer, intent(inout) :: v
!if(associated(SoundDwRevPtr)) call SoundDwRevPtr(v)
SoundDwRevs = v
Sounds%DwRevs = v
end subroutine

subroutine SetSoundDwBrake(v)
implicit none
integer, intent(inout) :: v
!if(associated(SoundDwBrakePtr)) call SoundDwBrakePtr(v)
SoundDwBrakes = v
Sounds%DwBrakes = v
end subroutine

subroutine SetSoundChokePump(v)
implicit none
integer, intent(inout) :: v
!if(associated(SoundChokePumpPtr)) call SoundChokePumpPtr(v)
SoundChokePumps = v
Sounds%ChokePumps = v
end subroutine

subroutine SetSoundGasThroughChoke(v)
implicit none
integer, intent(inout) :: v
!if(associated(SoundGasThroughChokePtr)) call SoundGasThroughChokePtr(v)
SoundGasThroughChokes = v
Sounds%GasThroughChokes = v
end subroutine

subroutine SetSoundKoomeyAirPump(v)
implicit none
integer, intent(inout) :: v
!if(associated(SoundKoomeyAirPumpPtr)) call SoundKoomeyAirPumpPtr(v)
SoundKoomeyAirPumps = v
Sounds%KoomeyAirPumps = v
end subroutine

subroutine SetSoundKoomeyElectricPump(v)
implicit none
integer, intent(inout) :: v
!if(associated(SoundKoomeyElectricPumpPtr)) call SoundKoomeyElectricPumpPtr(v)
SoundKoomeyElectricPumps = v
Sounds%KoomeyElectricPumps = v
end subroutine

subroutine SetSoundRtGearCrash(v)
implicit none
logical, intent(inout) :: v
!if(associated(SoundRtGearCrashPtr)) call SoundRtGearCrashPtr(v)
SoundRtGearCrashs = v
Sounds%RtGearCrashs = v
end subroutine

subroutine SetSoundDwGearCrash(v)
implicit none
logical, intent(inout) :: v
!if(associated(SoundDwGearCrashPtr)) call SoundDwGearCrashPtr(v)
SoundDwGearCrashs = v
Sounds%DwGearCrashs = v
end subroutine

subroutine SetSoundFloorCollision(v)
implicit none
logical, intent(inout) :: v
!if(associated(SoundFloorCollisionPtr)) call SoundFloorCollisionPtr(v)
SoundFloorCollisions = v
Sounds%FloorCollisions = v
end subroutine

subroutine SetSoundCrownCollision(v)
implicit none
logical, intent(inout) :: v
!if(associated(SoundCrownCollisionPtr)) call SoundCrownCollisionPtr(v)
SoundCrownCollisions = v
Sounds%CrownCollisions = v
end subroutine

subroutine SetSoundDwClutch(v)
implicit none
logical, intent(inout) :: v
!if(associated(SoundDwClutchPtr)) call SoundDwClutchPtr(v)
SoundDwClutchs = v
Sounds%DwClutchs = v
end subroutine

subroutine SetSoundBlower(v)
implicit none
logical, intent(inout) :: v
!if(associated(SoundBlowerPtr)) call SoundBlowerPtr(v)
SoundBlowers = v
Sounds%Blowers = v
end subroutine
subroutine SetSoundBlowerMP1(v)
implicit none
logical, intent(inout) :: v
!if(associated(SoundBlowerMp1Ptr)) call SoundBlowerMp1Ptr(v)
SoundBlowerMp1s = v
Sounds%BlowerMp1s = v
end subroutine
subroutine SetSoundBlowerMP2(v)
implicit none
logical, intent(inout) :: v
!if(associated(SoundBlowerMp2Ptr)) call SoundBlowerMp2Ptr(v)
SoundBlowerMp2s = v
Sounds%BlowerMp2s = v
end subroutine
subroutine SetSoundBlowerMP3(v)
implicit none
logical, intent(inout) :: v
!if(associated(SoundBlowerMp3Ptr)) call SoundBlowerMp3Ptr(v)
SoundBlowerMp3s = v
Sounds%BlowerMp3s = v
end subroutine
subroutine SetSoundBlowerRT(v)
implicit none
logical, intent(inout) :: v
!if(associated(SoundBlowerRtPtr)) call SoundBlowerRtPtr(v)
SoundBlowerRts = v
Sounds%BlowerRts = v
end subroutine
subroutine SetSoundBlowerDW(v)
implicit none
logical, intent(inout) :: v
!if(associated(SoundBlowerDwPtr)) call SoundBlowerDwPtr(v)
SoundBlowerDws = v
Sounds%BlowerDws = v
end subroutine
@@ -228,14 +228,14 @@ module CSounds
implicit none
logical, intent(inout) :: v
!if(associated(SoundBlowerStartPtr)) call SoundBlowerStartPtr(v)
SoundBlowerStarts = v
Sounds%BlowerStarts = v
end subroutine

subroutine SetSoundBlowerShutdown(v)
implicit none
logical, intent(inout) :: v
!if(associated(SoundBlowerShutdownPtr)) call SoundBlowerShutdownPtr(v)
SoundBlowerShutdowns = v
Sounds%BlowerShutdowns = v
end subroutine
@@ -243,7 +243,7 @@ module CSounds
implicit none
logical, intent(inout) :: v
!if(associated(SoundElectricPumpPtr)) call SoundElectricPumpPtr(v)
SoundElectricPumps = v
Sounds%ElectricPumps = v
end subroutine
@@ -499,175 +499,175 @@ module CSounds
!DEC$ ATTRIBUTES DLLEXPORT :: GetSoundMP1
!DEC$ ATTRIBUTES ALIAS: 'GetSoundMP1' :: GetSoundMP1
implicit none
GetSoundMP1 = SoundMP1s
GetSoundMP1 = Sounds%MP1s
end function

integer function GetSoundMP2()
!DEC$ ATTRIBUTES DLLEXPORT :: GetSoundMP2
!DEC$ ATTRIBUTES ALIAS: 'GetSoundMP2' :: GetSoundMP2
implicit none
GetSoundMP2 = SoundMP2s
GetSoundMP2 = Sounds%MP2s
end function

integer function GetSoundMP3()
!DEC$ ATTRIBUTES DLLEXPORT :: GetSoundMP3
!DEC$ ATTRIBUTES ALIAS: 'GetSoundMP3' :: GetSoundMP3
implicit none
GetSoundMP3 = SoundMP3s
GetSoundMP3 = Sounds%MP3s
end function

integer function GetSoundRT()
!DEC$ ATTRIBUTES DLLEXPORT :: GetSoundRT
!DEC$ ATTRIBUTES ALIAS: 'GetSoundRT' :: GetSoundRT
implicit none
GetSoundRT = SoundRTs
GetSoundRT = Sounds%RTs
end function

integer function GetSoundDwFw()
!DEC$ ATTRIBUTES DLLEXPORT :: GetSoundDwFw
!DEC$ ATTRIBUTES ALIAS: 'GetSoundDwFw' :: GetSoundDwFw
implicit none
GetSoundDwFw = SoundDwFws
GetSoundDwFw = Sounds%DwFws
end function

integer function GetSoundDwRev()
!DEC$ ATTRIBUTES DLLEXPORT :: GetSoundDwRev
!DEC$ ATTRIBUTES ALIAS: 'GetSoundDwRev' :: GetSoundDwRev
implicit none
GetSoundDwRev = SoundDwRevs
GetSoundDwRev = Sounds%DwRevs
end function

integer function GetSoundDwBrake()
!DEC$ ATTRIBUTES DLLEXPORT :: GetSoundDwBrake
!DEC$ ATTRIBUTES ALIAS: 'GetSoundDwBrake' :: GetSoundDwBrake
implicit none
GetSoundDwBrake = SoundDwBrakes
GetSoundDwBrake = Sounds%DwBrakes
end function

integer function GetSoundChokePump()
!DEC$ ATTRIBUTES DLLEXPORT :: GetSoundChokePump
!DEC$ ATTRIBUTES ALIAS: 'GetSoundChokePump' :: GetSoundChokePump
implicit none
GetSoundChokePump = SoundChokePumps
GetSoundChokePump = Sounds%ChokePumps
end function

integer function GetSoundGasThroughChoke()
!DEC$ ATTRIBUTES DLLEXPORT :: GetSoundGasThroughChoke
!DEC$ ATTRIBUTES ALIAS: 'GetSoundGasThroughChoke' :: GetSoundGasThroughChoke
implicit none
GetSoundGasThroughChoke = SoundGasThroughChokes
GetSoundGasThroughChoke = Sounds%GasThroughChokes
end function

integer function GetSoundKoomeyAirPump()
!DEC$ ATTRIBUTES DLLEXPORT :: GetSoundKoomeyAirPump
!DEC$ ATTRIBUTES ALIAS: 'GetSoundKoomeyAirPump' :: GetSoundKoomeyAirPump
implicit none
GetSoundKoomeyAirPump = SoundKoomeyAirPumps
GetSoundKoomeyAirPump = Sounds%KoomeyAirPumps
end function

integer function GetSoundKoomeyElectricPump()
!DEC$ ATTRIBUTES DLLEXPORT :: GetSoundKoomeyElectricPump
!DEC$ ATTRIBUTES ALIAS: 'GetSoundKoomeyElectricPump' :: GetSoundKoomeyElectricPump
implicit none
GetSoundKoomeyElectricPump = SoundKoomeyElectricPumps
GetSoundKoomeyElectricPump = Sounds%KoomeyElectricPumps
end function

logical function GetSoundRtGearCrash()
!DEC$ ATTRIBUTES DLLEXPORT :: GetSoundRtGearCrash
!DEC$ ATTRIBUTES ALIAS: 'GetSoundRtGearCrash' :: GetSoundRtGearCrash
implicit none
GetSoundRtGearCrash = SoundRtGearCrashs
GetSoundRtGearCrash = Sounds%RtGearCrashs
end function

logical function GetSoundDwGearCrash()
!DEC$ ATTRIBUTES DLLEXPORT :: GetSoundDwGearCrash
!DEC$ ATTRIBUTES ALIAS: 'GetSoundDwGearCrash' :: GetSoundDwGearCrash
implicit none
GetSoundDwGearCrash = SoundDwGearCrashs
GetSoundDwGearCrash = Sounds%DwGearCrashs
end function

logical function GetSoundFloorCollision()
!DEC$ ATTRIBUTES DLLEXPORT :: GetSoundFloorCollision
!DEC$ ATTRIBUTES ALIAS: 'GetSoundFloorCollision' :: GetSoundFloorCollision
implicit none
GetSoundFloorCollision = SoundFloorCollisions
GetSoundFloorCollision = Sounds%FloorCollisions
end function

logical function GetSoundCrownCollision()
!DEC$ ATTRIBUTES DLLEXPORT :: GetSoundCrownCollision
!DEC$ ATTRIBUTES ALIAS: 'GetSoundCrownCollision' :: GetSoundCrownCollision
implicit none
GetSoundCrownCollision = SoundCrownCollisions
GetSoundCrownCollision = Sounds%CrownCollisions
end function

logical function GetSoundDwClutch()
!DEC$ ATTRIBUTES DLLEXPORT :: GetSoundDwClutch
!DEC$ ATTRIBUTES ALIAS: 'GetSoundDwClutch' :: GetSoundDwClutch
implicit none
GetSoundDwClutch = SoundDwClutchs
GetSoundDwClutch = Sounds%DwClutchs
end function

logical function GetSoundBlower()
!DEC$ ATTRIBUTES DLLEXPORT :: GetSoundBlower
!DEC$ ATTRIBUTES ALIAS: 'GetSoundBlower' :: GetSoundBlower
implicit none
GetSoundBlower = SoundBlowers
GetSoundBlower = Sounds%Blowers
end function

logical function GetSoundBlowerMp1()
!DEC$ ATTRIBUTES DLLEXPORT :: GetSoundBlowerMp1
!DEC$ ATTRIBUTES ALIAS: 'GetSoundBlowerMp1' :: GetSoundBlowerMp1
implicit none
GetSoundBlowerMp1 = SoundBlowerMp1s
GetSoundBlowerMp1 = Sounds%BlowerMp1s
end function

logical function GetSoundBlowerMp2()
!DEC$ ATTRIBUTES DLLEXPORT :: GetSoundBlowerMp2
!DEC$ ATTRIBUTES ALIAS: 'GetSoundBlowerMp2' :: GetSoundBlowerMp2
implicit none
GetSoundBlowerMp2 = SoundBlowerMp2s
GetSoundBlowerMp2 = Sounds%BlowerMp2s
end function

logical function GetSoundBlowerMp3()
!DEC$ ATTRIBUTES DLLEXPORT :: GetSoundBlowerMp3
!DEC$ ATTRIBUTES ALIAS: 'GetSoundBlowerMp3' :: GetSoundBlowerMp3
implicit none
GetSoundBlowerMp3 = SoundBlowerMp3s
GetSoundBlowerMp3 = Sounds%BlowerMp3s
end function

logical function GetSoundBlowerRt()
!DEC$ ATTRIBUTES DLLEXPORT :: GetSoundBlowerRt
!DEC$ ATTRIBUTES ALIAS: 'GetSoundBlowerRt' :: GetSoundBlowerRt
implicit none
GetSoundBlowerRt = SoundBlowerRts
GetSoundBlowerRt = Sounds%BlowerRts
end function

logical function GetSoundBlowerDw()
!DEC$ ATTRIBUTES DLLEXPORT :: GetSoundBlowerDw
!DEC$ ATTRIBUTES ALIAS: 'GetSoundBlowerDw' :: GetSoundBlowerDw
implicit none
GetSoundBlowerDw = SoundBlowerDws
GetSoundBlowerDw = Sounds%BlowerDws
end function

logical function GetSoundBlowerStart()
!DEC$ ATTRIBUTES DLLEXPORT :: GetSoundBlowerStart
!DEC$ ATTRIBUTES ALIAS: 'GetSoundBlowerStart' :: GetSoundBlowerStart
implicit none
GetSoundBlowerStart = SoundBlowerStarts
GetSoundBlowerStart = Sounds%BlowerStarts
end function

logical function GetSoundBlowerShutdown()
!DEC$ ATTRIBUTES DLLEXPORT :: GetSoundBlowerShutdown
!DEC$ ATTRIBUTES ALIAS: 'GetSoundBlowerShutdown' :: GetSoundBlowerShutdown
implicit none
GetSoundBlowerShutdown = SoundBlowerShutdowns
GetSoundBlowerShutdown = Sounds%BlowerShutdowns
end function

logical function GetSoundElectricPump()
!DEC$ ATTRIBUTES DLLEXPORT :: GetSoundElectricPump
!DEC$ ATTRIBUTES ALIAS: 'GetSoundElectricPump' :: GetSoundElectricPump
implicit none
GetSoundElectricPump = SoundElectricPumps
GetSoundElectricPump = Sounds%ElectricPumps
end function




+ 30
- 1
Data Structures.txt Datei anzeigen

@@ -40,4 +40,33 @@ CSharp:
DownHole:
DownHole
OperationScenario:
OperationScenarioCommon: Constants? or Variables?
Common:
OperationScenario: Constants? or Variables?
Enums:
ElevatorConnectionEnum: merged into OperationScenario
KellyConnectionEnum
TdsConnectionModesEnum
Notifications:
Notifications
Permissions:
Permissions
SoftwareInputs
Unity:
UnityInputs
UnityOutputs
UnitySignals:
UnitySignals
Problems:
BitProblems
BopProblems
ChockProblems
DrillStemProblems
GaugesProblems
HoistingProblems
KickProblems
LostProblems
MudTreatmentProblems
OtherProblems
PumpProblems
RotaryProblems

+ 6
- 6
Equipments/BopStack/ANNULAR.f90 Datei anzeigen

@@ -200,7 +200,7 @@ SUBROUTINE ANNULAR_SUB
USE CBopControlPanelVariables
USE CEquipmentsConstants
USE CBopStackVariables
USE CSimulationVariables
! use CSimulationVariables
implicit none
@@ -209,7 +209,7 @@ SUBROUTINE ANNULAR_SUB
RamsFirstSet= 0
loop5: do while (finished_Annular==0)
! loop5: do while (finished_Annular==0)
!write(*,*) 'checkpoint 2'
@@ -389,7 +389,7 @@ RAM(1)%timecounter_ram=RAM(1)%timecounter_ram+1
!60 FORMAT(11(f18.5))
call sleepqq(100)
! call sleepqq(100)
!CALL CPU_TIME(Annular_EndTime)
@@ -410,10 +410,10 @@ if (Annular_closed==1) then
! endif
endif
if (IsStopped == .true.) return
! if (IsStopped == .true.) return

end do loop5 !while finished_Annular==0
! end do loop5 !while finished_Annular==0
@@ -421,7 +421,7 @@ endif
if ( finished_Annular==1 .and. RAM(1)%Bottles_Charged_MalfActive==.true.) then
call bop_codeAnnular(1) !ramtype=4 1=RNUMBER
call sleepqq(100)
! call sleepqq(100)
endif
END SUBROUTINE ANNULAR_SUB

+ 52
- 41
Equipments/BopStack/AnnularMain.f90 Datei anzeigen

@@ -3,63 +3,74 @@ module AnnularMain
public
contains
subroutine Annular_Setup()
use CSimulationVariables
implicit none
call OnSimulationInitialization%Add(Annular_Init)
call OnSimulationStop%Add(Annular_Init)
call OnAnnularStep%Add(Annular_Step)
call OnAnnularOutput%Add(Annular_Output)
call OnAnnularMain%Add(AnnularMainBody)
end subroutine
! subroutine Annular_Setup()
! ! use CSimulationVariables
! implicit none
! call OnSimulationInitialization%Add(Annular_Init)
! call OnSimulationStop%Add(Annular_Init)
! call OnAnnularStep%Add(Annular_Step)
! call OnAnnularOutput%Add(Annular_Output)
! call OnAnnularMain%Add(AnnularMainBody)
! end subroutine
subroutine Annular_Init
implicit none
end subroutine Annular_Init
! subroutine Annular_Init
! implicit none
! end subroutine Annular_Init
subroutine Annular_Step
CALL ANNULAR
use VARIABLES
implicit none
if (finished_Annular/=0) then
call ANNULAR
if (AnnularIsOpening .or. AnnularIsClosing .or. RAM(1)%Bottles_Charged_MalfActive) then
if(finished_Annular==0) then
call ANNULAR_SUB !only body of loop2
endif
endif
else
call ANNULAR_SUB
endif
end subroutine Annular_Step
subroutine Annular_Output
implicit none
end subroutine Annular_Output
! subroutine Annular_Output
! implicit none
! end subroutine Annular_Output
subroutine AnnularMainBody
USE ifport
USE ifmt
USE CSimulationVariables
! USE BOP
implicit none
! subroutine AnnularMainBody
! USE ifport
! USE ifmt
! ! use CSimulationVariables
! ! USE BOP
! implicit none
INTEGER :: AnnularDuration
integer,dimension(8) :: AnnularStartTime , AnnularEndTime
! INTEGER :: AnnularDuration
! integer,dimension(8) :: AnnularStartTime , AnnularEndTime
! CALL BOP_StartUp()
loop1: DO
CALL DATE_AND_TIME(values=AnnularStartTime)
! ! CALL BOP_StartUp()
! loop1: DO
! CALL DATE_AND_TIME(values=AnnularStartTime)
CALL ANNULAR
! CALL ANNULAR
CALL DATE_AND_TIME(values=AnnularEndTime)
! CALL DATE_AND_TIME(values=AnnularEndTime)
AnnularDuration = 3600000 * (AnnularEndTime(5) - AnnularStartTime(5)) + 60000 * (AnnularEndTime(6) - AnnularStartTime(6)) + 1000 * (AnnularEndTime(7) - AnnularStartTime(7)) + (AnnularEndTime(8) - AnnularStartTime(8))
! AnnularDuration = 3600000 * (AnnularEndTime(5) - AnnularStartTime(5)) + 60000 * (AnnularEndTime(6) - AnnularStartTime(6)) + 1000 * (AnnularEndTime(7) - AnnularStartTime(7)) + (AnnularEndTime(8) - AnnularStartTime(8))
if (AnnularDuration < 100) then
call sleepqq(100 - AnnularDuration)
ELSE
WRITE (*,*) 'Annular BOP run duration exceeded 100 ms and =', AnnularDuration
end if
! if (AnnularDuration < 100) then
! call sleepqq(100 - AnnularDuration)
! ELSE
! WRITE (*,*) 'Annular BOP run duration exceeded 100 ms and =', AnnularDuration
! end if
IF (IsStopped==.true.) THEN
EXIT loop1
ENDIF
! IF (IsStopped==.true.) THEN
! EXIT loop1
! ENDIF

ENDDO loop1
! ENDDO loop1


! CALL DEALLOCATE_ARRAYS()
end subroutine AnnularMainBody
! ! CALL DEALLOCATE_ARRAYS()
! end subroutine AnnularMainBody
end module AnnularMain

+ 60
- 40
Equipments/BopStack/BlindRamsMain.f90 Datei anzeigen

@@ -3,66 +3,86 @@ module BlindRamsMain
public
contains
subroutine BlindRams_Setup()
use CSimulationVariables
implicit none
call OnSimulationInitialization%Add(BlindRams_Init)
call OnSimulationStop%Add(BlindRams_Init)
call OnBlindRamsStep%Add(BlindRams_Step)
call OnBlindRamsOutput%Add(BlindRams_Output)
call OnBlindRamsMain%Add(BlindRamsMainBody)
end subroutine
! subroutine BlindRams_Setup()
! ! use CSimulationVariables
! implicit none
! call OnSimulationInitialization%Add(BlindRams_Init)
! call OnSimulationStop%Add(BlindRams_Init)
! call OnBlindRamsStep%Add(BlindRams_Step)
! call OnBlindRamsOutput%Add(BlindRams_Output)
! call OnBlindRamsMain%Add(BlindRamsMainBody)
! end subroutine
subroutine BlindRams_Init
implicit none
end subroutine BlindRams_Init
! subroutine BlindRams_Init
! implicit none
! end subroutine BlindRams_Init
subroutine BlindRams_Step
CALL SHEAR_RAMS
use VARIABLES
implicit none
if (FINISHED_shear/=0) then
call SHEAR_RAMS
if (ShearRamIsOpening .or. ShearRamIsClosing .or. RAM(4)%Bottles_Charged_MalfActive) then
FirstSet= 0
RamsFirstSet= 0
if(FINISHED_shear==0) then
call SHEAR_RAMS_SUB !only body of loop2
if (FINISHED_shear/=0 .and. finished_shear==1 .and. RAM(4)%Bottles_Charged_MalfActive==.true.) then
call bop_code(1,H_ShearRamBop,4)
endif
endif
endif
else
call SHEAR_RAMS_SUB
if (FINISHED_shear/=0 .and. finished_shear==1 .and. RAM(4)%Bottles_Charged_MalfActive==.true.) then
call bop_code(1,H_ShearRamBop,4)
endif
endif

end subroutine BlindRams_Step
subroutine BlindRams_Output
implicit none
end subroutine BlindRams_Output
! subroutine BlindRams_Output
! implicit none
! end subroutine BlindRams_Output
subroutine BlindRamsMainBody
USE ifport
USE ifmt
USE CSimulationVariables
! USE BOP
! subroutine BlindRamsMainBody
! USE ifport
! USE ifmt
! ! use CSimulationVariables
! ! USE BOP
implicit none
! implicit none
INTEGER :: ShearRamDuration
integer,dimension(8) :: ShearRamStartTime , ShearRamEndTime
! INTEGER :: ShearRamDuration
! integer,dimension(8) :: ShearRamStartTime , ShearRamEndTime
! CALL BOP_StartUp()
loop1: DO
! ! CALL BOP_StartUp()
! loop1: DO
CALL DATE_AND_TIME(values=ShearRamStartTime)
! CALL DATE_AND_TIME(values=ShearRamStartTime)

CALL SHEAR_RAMS
! CALL SHEAR_RAMS
CALL DATE_AND_TIME(values=ShearRamEndTime)
! CALL DATE_AND_TIME(values=ShearRamEndTime)
ShearRamDuration = 3600000 * (ShearRamEndTime(5) - ShearRamStartTime(5)) + 60000 * (ShearRamEndTime(6) - ShearRamStartTime(6)) + 1000 * (ShearRamEndTime(7) - ShearRamStartTime(7)) + (ShearRamEndTime(8) - ShearRamStartTime(8))
! ShearRamDuration = 3600000 * (ShearRamEndTime(5) - ShearRamStartTime(5)) + 60000 * (ShearRamEndTime(6) - ShearRamStartTime(6)) + 1000 * (ShearRamEndTime(7) - ShearRamStartTime(7)) + (ShearRamEndTime(8) - ShearRamStartTime(8))
if (ShearRamDuration < 100) then
call sleepqq(100 - ShearRamDuration)
ELSE
WRITE (*,*) 'ShearRam BOP run duration exceeded 100 ms and =', ShearRamDuration
end if
! if (ShearRamDuration < 100) then
! call sleepqq(100 - ShearRamDuration)
! ELSE
! WRITE (*,*) 'ShearRam BOP run duration exceeded 100 ms and =', ShearRamDuration
! end if
IF (IsStopped==.true.) THEN
EXIT loop1
ENDIF
! IF (IsStopped==.true.) THEN
! EXIT loop1
! ENDIF

ENDDO loop1
! ENDDO loop1
end subroutine BlindRamsMainBody
! end subroutine BlindRamsMainBody
end module BlindRamsMain

+ 0
- 1
Equipments/BopStack/BopStackMain.f90 Datei anzeigen

@@ -4,7 +4,6 @@ module BopStackMain
public
contains
subroutine BopStack_Step
CALL BOP_MainBody
end subroutine BopStack_Step
END MODULE BopStackMain

+ 14
- 15
Equipments/BopStack/CHOKE_LINE.f90 Datei anzeigen

@@ -130,9 +130,9 @@ SUBROUTINE CHOKE_LINE
!=====================================================================
if (ChokeLineIsOpening .or. ChokeLineIsClosing) then
CALL CHOKE_LINE_SUB
end if
! if (ChokeLineIsOpening .or. ChokeLineIsClosing) then
! CALL CHOKE_LINE_SUB
! end if
END SUBROUTINE CHOKE_LINE
@@ -155,14 +155,14 @@ SUBROUTINE CHOKE_LINE_SUB
USE CBopStackVariables
USE CBopControlPanelVariables
USE CEquipmentsConstants
USE CSimulationVariables
! use CSimulationVariables
implicit none
FirstSet= 0
RamsFirstSet= 0
! FirstSet= 0
! RamsFirstSet= 0
loop5: do while (finished_ChokeLine==0)
! loop5: do while (finished_ChokeLine==0)
RAM(5)%SuccessionCounter = RAM(5)%SuccessionCounter + 1
@@ -294,16 +294,15 @@ RAM(5)%timecounter_ram=RAM(5)%timecounter_ram+1
!60 FORMAT(11(f18.5))
call sleepqq(100)
if (ChokeLine_closed==1) then
! if ((UpperRamsValve==1. .and. UpperRamsFailureMalf==0) .or. (UpperRamsValve==-1.0 .and. UpperRamsFailureMalf==0) .or. (MiddleRamsValve==1. .and. MiddleRamsFailureMalf==0) .or. (MiddleRamsValve==-1.0 .and. MiddleRamsFailureMalf==0) .or. (LowerRamsValve==1. .and. LowerRamsFailureMalf==0) .or. (LowerRamsValve==-1.0 .and. LowerRamsFailureMalf==0) .or. (AnnularValve==1. .and. AnnularFailureMalf==0) .or. (AnnularValve==-1.0 .and. AnnularFailureMalf==0) .or. KillLineValve==1. .or. KillLineValve==-1.0) then
finished_ChokeLine=1
! endif
! call sleepqq(100)
if (ChokeLine_closed==1) then
! if ((UpperRamsValve==1. .and. UpperRamsFailureMalf==0) .or. (UpperRamsValve==-1.0 .and. UpperRamsFailureMalf==0) .or. (MiddleRamsValve==1. .and. MiddleRamsFailureMalf==0) .or. (MiddleRamsValve==-1.0 .and. MiddleRamsFailureMalf==0) .or. (LowerRamsValve==1. .and. LowerRamsFailureMalf==0) .or. (LowerRamsValve==-1.0 .and. LowerRamsFailureMalf==0) .or. (AnnularValve==1. .and. AnnularFailureMalf==0) .or. (AnnularValve==-1.0 .and. AnnularFailureMalf==0) .or. KillLineValve==1. .or. KillLineValve==-1.0) then
finished_ChokeLine=1
! endif
endif
if (IsStopped == .true.) return
! if (IsStopped == .true.) return

end do loop5 !while finished_ChokeLine==0
! end do loop5 !while finished_ChokeLine==0
END SUBROUTINE CHOKE_LINE_SUB

+ 54
- 41
Equipments/BopStack/ChokeLineMain.f90 Datei anzeigen

@@ -3,67 +3,80 @@ module ChokeLineMain
public
contains
subroutine ChokeLine_Setup()
use CSimulationVariables
implicit none
call OnSimulationInitialization%Add(ChokeLine_Init)
call OnSimulationStop%Add(ChokeLine_Init)
call OnChokeLineStep%Add(ChokeLine_Step)
call OnChokeLineOutput%Add(ChokeLine_Output)
call OnChokeLineMain%Add(ChokeLineMainBody)
end subroutine
! subroutine ChokeLine_Setup()
! ! use CSimulationVariables
! implicit none
! call OnSimulationInitialization%Add(ChokeLine_Init)
! call OnSimulationStop%Add(ChokeLine_Init)
! call OnChokeLineStep%Add(ChokeLine_Step)
! call OnChokeLineOutput%Add(ChokeLine_Output)
! call OnChokeLineMain%Add(ChokeLineMainBody)
! end subroutine
subroutine ChokeLine_Init
implicit none
end subroutine ChokeLine_Init
! subroutine ChokeLine_Init
! implicit none
! end subroutine ChokeLine_Init
subroutine ChokeLine_Step
CALL CHOKE_LINE
use VARIABLES
implicit none
if (finished_ChokeLine/=0) then
call CHOKE_LINE
if (ChokeLineIsOpening .or. ChokeLineIsClosing) then
FirstSet= 0
RamsFirstSet= 0
if(finished_ChokeLine==0) then
call CHOKE_LINE_SUB !only body of loop2
endif
endif
else
call SHEAR_RAMS_SUB
endif
end subroutine ChokeLine_Step
subroutine ChokeLine_Output
implicit none
end subroutine ChokeLine_Output
! subroutine ChokeLine_Output
! implicit none
! end subroutine ChokeLine_Output
subroutine ChokeLineMainBody
USE ifport
USE ifmt
USE CSimulationVariables
! USE BOP
! subroutine ChokeLineMainBody
! USE ifport
! USE ifmt
! ! use CSimulationVariables
! ! USE BOP

implicit none
! implicit none
INTEGER :: ChokeLineDuration
integer,dimension(8) :: ChokeLineStartTime , ChokeLineEndTime
! INTEGER :: ChokeLineDuration
! integer,dimension(8) :: ChokeLineStartTime , ChokeLineEndTime
! CALL BOP_StartUp()
loop1: DO
! ! CALL BOP_StartUp()
! loop1: DO
CALL DATE_AND_TIME(values=ChokeLineStartTime)
! CALL DATE_AND_TIME(values=ChokeLineStartTime)

CALL CHOKE_LINE
! CALL CHOKE_LINE
CALL DATE_AND_TIME(values=chokeLineEndTime)
! CALL DATE_AND_TIME(values=chokeLineEndTime)
chokeLineDuration = 3600000 * (chokeLineEndTime(5) - chokeLineStartTime(5)) + 60000 * (chokeLineEndTime(6) - chokeLineStartTime(6)) + 1000 * (chokeLineEndTime(7) - chokeLineStartTime(7)) + (chokeLineEndTime(8) - chokeLineStartTime(8))
! chokeLineDuration = 3600000 * (chokeLineEndTime(5) - chokeLineStartTime(5)) + 60000 * (chokeLineEndTime(6) - chokeLineStartTime(6)) + 1000 * (chokeLineEndTime(7) - chokeLineStartTime(7)) + (chokeLineEndTime(8) - chokeLineStartTime(8))
if (chokeLineDuration < 100) then
call sleepqq(100 - chokeLineDuration)
ELSE
WRITE (*,*) 'chokeLine BOP run duration exceeded 100 ms and =', chokeLineDuration
end if
! if (chokeLineDuration < 100) then
! call sleepqq(100 - chokeLineDuration)
! ELSE
! WRITE (*,*) 'chokeLine BOP run duration exceeded 100 ms and =', chokeLineDuration
! end if
IF (IsStopped==.true.) THEN
EXIT loop1
ENDIF
! IF (IsStopped==.true.) THEN
! EXIT loop1
! ENDIF

ENDDO loop1
! ENDDO loop1


! CALL DEALLOCATE_ARRAYS()
! ! CALL DEALLOCATE_ARRAYS()
end subroutine ChokeLineMainBody
! end subroutine ChokeLineMainBody
end module ChokeLineMain

+ 6
- 6
Equipments/BopStack/KILL_LINE.f90 Datei anzeigen

@@ -6,7 +6,7 @@ SUBROUTINE KILL_LINE
USE CBopStackVariables
USE CBopControlPanelVariables
USE CEquipmentsConstants
USE CSimulationVariables
use CSimulationVariables
implicit none
@@ -152,7 +152,7 @@ SUBROUTINE KILL_LINE_SUB
USE CBopStackVariables
USE CBopControlPanelVariables
USE CEquipmentsConstants
USE CSimulationVariables
use CSimulationVariables

implicit none
@@ -160,7 +160,7 @@ SUBROUTINE KILL_LINE_SUB
FirstSet= 0
RamsFirstSet= 0
loop6: do while (finished_KillLine==0)
! loop6: do while (finished_KillLine==0)
RAM(6)%SuccessionCounter = RAM(6)%SuccessionCounter + 1
@@ -293,7 +293,7 @@ RAM(6)%timecounter_ram=RAM(6)%timecounter_ram+1
!60 FORMAT(11(f18.5))
call sleepqq(100)
! call sleepqq(100)
if (KillLine_closed==1) then
! if ((UpperRamsValve==1. .and. UpperRamsFailureMalf==0) .or. (UpperRamsValve==-1.0 .and. UpperRamsFailureMalf==0) .or. (MiddleRamsValve==1. .and. MiddleRamsFailureMalf==0) .or. (MiddleRamsValve==-1.0 .and. MiddleRamsFailureMalf==0) .or. (LowerRamsValve==1. .and. LowerRamsFailureMalf==0) .or. (LowerRamsValve==-1.0 .and. LowerRamsFailureMalf==0) .or. (AnnularValve==1. .and. AnnularFailureMalf==0) .or. (AnnularValve==-1.0 .and. AnnularFailureMalf==0) .or. ChokeLineValve==1. .or. ChokeLineValve==-1.0) then
@@ -301,8 +301,8 @@ if (KillLine_closed==1) then
! endif
endif
if (IsStopped == .true.) return
! if (IsStopped == .true.) return
end do loop6 !while finished_KillLine==0
! end do loop6 !while finished_KillLine==0
END SUBROUTINE KILL_LINE_SUB

+ 52
- 41
Equipments/BopStack/KillLineMain.f90 Datei anzeigen

@@ -3,66 +3,77 @@ module KillLineMain
public
contains
subroutine KillLine_Setup()
use CSimulationVariables
implicit none
call OnSimulationInitialization%Add(KillLine_Init)
call OnSimulationStop%Add(KillLine_Init)
call OnKillLineStep%Add(KillLine_Step)
call OnKillLineOutput%Add(KillLine_Output)
call OnKillLineMain%Add(KillLineMainBody)
end subroutine
! subroutine KillLine_Setup()
! ! use CSimulationVariables
! implicit none
! call OnSimulationInitialization%Add(KillLine_Init)
! call OnSimulationStop%Add(KillLine_Init)
! call OnKillLineStep%Add(KillLine_Step)
! call OnKillLineOutput%Add(KillLine_Output)
! call OnKillLineMain%Add(KillLineMainBody)
! end subroutine
subroutine KillLine_Init
implicit none
end subroutine KillLine_Init
! subroutine KillLine_Init
! implicit none
! end subroutine KillLine_Init
subroutine KillLine_Step
CALL KILL_LINE
use VARIABLES
implicit none
if (finished_KillLine/=0) then
call KILL_LINE
if (KillLineIsOpening .or. KillLineIsClosing) then
if(finished_KillLine==0) then
call KILL_LINE_SUB !only body of loop2
endif
endif
else
call KILL_LINE_SUB
endif
end subroutine KillLine_Step
subroutine KillLine_Output
implicit none
end subroutine KillLine_Output
! subroutine KillLine_Output
! implicit none
! end subroutine KillLine_Output
subroutine KillLineMainBody
USE ifport
USE ifmt
USE CSimulationVariables
! USE BOP
implicit none
! subroutine KillLineMainBody
! USE ifport
! USE ifmt
! ! use CSimulationVariables
! ! USE BOP
! implicit none
INTEGER :: KillLineDuration
integer,dimension(8) :: KillLineStartTime , KillLineEndTime
! INTEGER :: KillLineDuration
! integer,dimension(8) :: KillLineStartTime , KillLineEndTime
! CALL BOP_StartUp()
loop1: DO
! ! CALL BOP_StartUp()
! loop1: DO
CALL DATE_AND_TIME(values=KillLineStartTime)
! CALL DATE_AND_TIME(values=KillLineStartTime)
CALL KILL_LINE
! CALL KILL_LINE
CALL DATE_AND_TIME(values=KillLineEndTime)
! CALL DATE_AND_TIME(values=KillLineEndTime)
KillLineDuration = 3600000 * (KillLineEndTime(5) - KillLineStartTime(5)) + 60000 * (KillLineEndTime(6) - KillLineStartTime(6)) + 1000 * (KillLineEndTime(7) - KillLineStartTime(7)) + (KillLineEndTime(8) - KillLineStartTime(8))
! KillLineDuration = 3600000 * (KillLineEndTime(5) - KillLineStartTime(5)) + 60000 * (KillLineEndTime(6) - KillLineStartTime(6)) + 1000 * (KillLineEndTime(7) - KillLineStartTime(7)) + (KillLineEndTime(8) - KillLineStartTime(8))
if (KillLineDuration < 100) then
call sleepqq(100 - KillLineDuration)
ELSE
WRITE (*,*) 'KillLine BOP run duration exceeded 100 ms and =', KillLineDuration
end if
! if (KillLineDuration < 100) then
! call sleepqq(100 - KillLineDuration)
! ELSE
! WRITE (*,*) 'KillLine BOP run duration exceeded 100 ms and =', KillLineDuration
! end if
IF (IsStopped==.true.) THEN
EXIT loop1
ENDIF
! IF (IsStopped==.true.) THEN
! EXIT loop1
! ENDIF

ENDDO loop1
! ENDDO loop1


! CALL DEALLOCATE_ARRAYS()
! ! CALL DEALLOCATE_ARRAYS()
end subroutine KillLineMainBody
! end subroutine KillLineMainBody
end module KillLineMain

+ 2
- 2
Equipments/BopStack/LOSS_INPUTS.f90 Datei anzeigen

@@ -332,7 +332,7 @@ USE CAccumulatorVariables
USE CBopStackVariables
USE CBopControlPanelVariables
USE CEquipmentsConstants
USE CSimulationVariables
! use CSimulationVariables
implicit none

!Pannular_regset=min(AnnularRegulatorSetControl,1700.) ! for changing its set conditions instantaneously
@@ -549,7 +549,7 @@ deltav_air=QAIR_PUMP*DeltaT_BOP/60. !(galon) delta_t=1sec , Q(gpm)
USE CAccumulatorVariables
USE CBopControlPanelVariables
USE CEquipmentsConstants
USE CSimulationVariables
! use CSimulationVariables
USE TD_GeneralData
use CUnityOutputs
implicit none


Einige Dateien werden nicht angezeigt, da zu viele Dateien in diesem Diff geändert wurden.

Laden…
Abbrechen
Speichern