module CBitProblemsVariables use CProblemDifinition use CLog3 implicit none public ! Input vars type(CProblem) :: PlugJets type(CProblem) :: JetWashout integer :: PlugJetsCount integer :: JetWashoutCount procedure (ActionInteger), pointer :: PlugJetsPtr procedure (ActionInteger), pointer :: JetWashoutPtr 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) end subroutine subroutine ProcessBitProblemsDuePumpStrokes(strokes) implicit none integer :: strokes if(PlugJets%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(PlugJets, ChangePlugJets, strokes) if(JetWashout%ProblemType == PumpStrokes_ProblemType) call ProcessDuePumpStrokes(JetWashout, ChangeJetWashout, strokes) end subroutine subroutine ProcessBitProblemsDueVolumePumped(volume) 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) end subroutine subroutine ProcessBitProblemsDueDistanceDrilled(distance) 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) end subroutine subroutine ChangePlugJets(status) USE FricPressDropVars implicit none integer, intent (in) :: status if(associated(PlugJetsPtr)) call PlugJetsPtr(status) if(status == Clear_StatusType) BitJetsPlugged = 0 if(status == Executed_StatusType) BitJetsPlugged = 1 endsubroutine subroutine ChangeJetWashout(status) USE FricPressDropVars implicit none integer, intent (in) :: status if(associated(JetWashoutPtr)) call JetWashoutPtr(status) if(status == Clear_StatusType) BitJetsWashedOut = 0 if(status == Executed_StatusType) BitJetsWashedOut = 1 endsubroutine subroutine SubscribePlugJets(v) !DEC$ ATTRIBUTES DLLEXPORT :: SubscribePlugJets !DEC$ ATTRIBUTES ALIAS: 'SubscribePlugJets' :: SubscribePlugJets implicit none procedure (ActionInteger) :: v 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 end module CBitProblemsVariables