|
- module CKickProblemsVariables
- use CProblemDifinition
- implicit none
- public
-
- !constants
- integer :: Gas_FluidType = 0
- integer :: Oil_FluidType = 1
- integer :: Water_FluidType = 2
-
-
- ! Input vars
- type(CProblem) :: Kick
- integer :: FluidType
- integer :: FlowRate
- integer :: OverBalancePressure
- logical :: IsAutoMigrationRateSelected
- real(8) :: AutoMigrationRate
-
- procedure (ActionInteger), pointer :: KickPtr
-
- contains
-
-
- subroutine ProcessKickProblemsDueTime(time)
- implicit none
- integer :: time
-
- if(Kick%ProblemType == Time_ProblemType) call ProcessDueTime(Kick, ChangeKick, time)
-
- end subroutine
-
- subroutine ProcessKickProblemsDuePumpStrokes(strokes)
- implicit none
- integer :: strokes
-
- if(Kick%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(Kick, ChangeKick, strokes)
-
- end subroutine
-
- subroutine ProcessKickProblemsDueVolumePumped(volume)
- implicit none
- real(8) :: volume
-
- if(Kick%ProblemType == VolumePumped_ProblemType) call ProcessDueVolumePumped(Kick, ChangeKick, volume)
-
- end subroutine
-
- subroutine ProcessKickProblemsDueDistanceDrilled(distance)
- implicit none
- real(8) :: distance
-
- if(Kick%ProblemType == DistanceDrilled_ProblemType) call ProcessDueDistanceDrilled(Kick, ChangeKick, distance)
-
- end subroutine
-
- subroutine ChangeKick(status)
- implicit none
- integer, intent (in) :: status
- if(associated(KickPtr)) call KickPtr(status)
- !if(status == Clear_StatusType) print*,'On_Kick_Clear'
- !if(status == Executed_StatusType) print*,'On_Kick_Execute'
- endsubroutine
-
-
-
-
-
-
-
-
-
-
-
-
- subroutine SubscribeKick(v)
- !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeKick
- !DEC$ ATTRIBUTES ALIAS: 'SubscribeKick' :: SubscribeKick
- implicit none
- procedure (ActionInteger) :: v
- KickPtr => v
- end subroutine
-
-
-
- end module CKickProblemsVariables
|