module CMudPropertiesVariables use CIActionReference use CDoubleEventHandlerCollection implicit none public !pointers procedure (ActionDouble), pointer :: ActiveMudVolumePtr procedure (ActionDouble), pointer :: ActiveDensityPtr procedure (ActionDouble), pointer :: ReserveMudVolumePtr procedure (ActionDouble), pointer :: ReserveDensityPtr type(DoubleEventHandlerCollection) :: OnActiveMudVolumeChange type(DoubleEventHandlerCollection) :: OnActiveDensityChange type(DoubleEventHandlerCollection) :: OnReserveMudVolumeChange type(DoubleEventHandlerCollection) :: OnReserveDensityChange !constants integer, parameter :: WaterBase_MudType = 0 integer, parameter :: OilBase_MudType = 1 integer, parameter :: PowerLaw_RheologyModel = 0 integer, parameter :: Bingham_RheologyModel = 1 integer, parameter :: Newtonian_RheologyModel = 2 INTEGER, PARAMETER :: Herschel_Bulkley_RheologyModel = 3 ! variables Type::MudPropertiesType integer :: ActiveMudType integer :: ActiveRheologyModel real(8) :: ActiveMudVolume real(8) :: ActiveMudVolumeGal real(8) :: ActiveDensity real(8) :: ActivePlasticViscosity real(8) :: ActiveYieldPoint real(8) :: ActiveThetaThreeHundred real(8) :: ActiveThetaSixHundred integer :: ReserveMudType real(8) :: ReserveMudVolume real(8) :: ReserveMudVolumeGal real(8) :: ReserveDensity real(8) :: ReservePlasticViscosity real(8) :: ReserveYieldPoint real(8) :: ReserveThetaThreeHundred real(8) :: ReserveThetaSixHundred real(8) :: ActiveTotalTankCapacity real(8) :: ActiveTotalTankCapacityGal real(8) :: ActiveSettledContents real(8) :: ActiveSettledContentsGal real(8) :: ActiveTotalContents real(8) :: ActiveTotalContentsGal logical :: ActiveAutoDensity !real(8) :: ReserveTotalTankCapacity !real(8) :: ReserveTotalTankCapacityGal !real(8) :: ReserveSettledContents !real(8) :: ReserveSettledContentsGal !real(8) :: ReserveTotalContents !real(8) :: ReserveTotalContentsGal real(8) :: InitialTripTankMudVolume real(8) :: InitialTripTankMudVolumeGal real(8) :: PedalFlowMeter End type MudPropertiesType Type(MudPropertiesType)::MudProperties contains subroutine Set_ActiveMudVolume_StudentStation(v) implicit none real*8, intent(in) :: v #ifdef ExcludeExtraChanges if(MudProperties%ActiveMudVolume == v) return #endif MudProperties%ActiveMudVolume = v if(associated(ActiveMudVolumePtr)) call ActiveMudVolumePtr(MudProperties%ActiveMudVolume) end subroutine subroutine Set_ActiveDensity_StudentStation(v) implicit none real*8, intent(in) :: v #ifdef ExcludeExtraChanges if(MudProperties%ActiveDensity == v) return #endif MudProperties%ActiveDensity = v if(associated(ActiveDensityPtr)) call ActiveDensityPtr(MudProperties%ActiveDensity) end subroutine subroutine Set_ReserveMudVolume_StudentStation(v) implicit none real*8, intent(in) :: v #ifdef ExcludeExtraChanges if(MudProperties%ReserveMudVolume == v) return #endif MudProperties%ReserveMudVolume = v if(associated(ReserveMudVolumePtr)) call ReserveMudVolumePtr(MudProperties%ReserveMudVolume) end subroutine subroutine Set_ReserveDensity_StudentStation(v) implicit none real*8, intent(in) :: v #ifdef ExcludeExtraChanges if(MudProperties%ReserveDensity == v) return #endif MudProperties%ReserveDensity = v if(associated(ReserveDensityPtr)) call ReserveDensityPtr(MudProperties%ReserveDensity) end subroutine subroutine SubscribeActiveMudVolume(a) !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeActiveMudVolume !DEC$ ATTRIBUTES ALIAS: 'SubscribeActiveMudVolume' :: SubscribeActiveMudVolume implicit none procedure (ActionDouble) :: a ActiveMudVolumePtr => a end subroutine subroutine SubscribeActiveDensity(a) !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeActiveDensity !DEC$ ATTRIBUTES ALIAS: 'SubscribeActiveDensity' :: SubscribeActiveDensity implicit none procedure (ActionDouble) :: a ActiveDensityPtr => a end subroutine subroutine SubscribeReserveMudVolume(a) !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeReserveMudVolume !DEC$ ATTRIBUTES ALIAS: 'SubscribeReserveMudVolume' :: SubscribeReserveMudVolume implicit none procedure (ActionDouble) :: a ReserveMudVolumePtr => a end subroutine subroutine SubscribeReserveDensity(a) !DEC$ ATTRIBUTES DLLEXPORT :: SubscribeReserveDensity !DEC$ ATTRIBUTES ALIAS: 'SubscribeReserveDensity' :: SubscribeReserveDensity implicit none procedure (ActionDouble) :: a ReserveDensityPtr => a end subroutine end module CMudPropertiesVariables