module CDataDisplayConsole
	! use CDataDisplayConsole
    use SimulationVariables
	implicit none    
	public    
    contains  

    subroutine DataDisplayConsoleFromJson(parent)
        type(json_value),pointer :: parent
        type(json_core) :: json
        type(json_value),pointer :: p,pval

        ! 1. get related root
        call json%get(parent,'DataDisplay',p)
        
        ! 2. get member of data type from node
		! call json%get(p,'TripAlarmLow',pval)
		! call json%get(pval,data%Equipments%DataDisplayConsole%TripAlarmLow)
		! call json%get(p,'TripAlarmHigh',pval)
		! call json%get(pval,data%Equipments%DataDisplayConsole%TripAlarmHigh)
		! call json%get(p,'RetFlowAlarmLow',pval)
		! call json%get(pval,data%Equipments%DataDisplayConsole%RetFlowAlarmLow)
		! call json%get(p,'RetFlowAlarmHigh',pval)
		! call json%get(pval,data%Equipments%DataDisplayConsole%RetFlowAlarmHigh)
		! call json%get(p,'PitAlarmLow',pval)
		! call json%get(pval,data%Equipments%DataDisplayConsole%PitAlarmLow)
		! call json%get(p,'PitAlarmHigh',pval)
		! call json%get(pval,data%Equipments%DataDisplayConsole%PitAlarmHigh)
		! call json%get(p,'PortWeightOnBit',pval)
		! call json%get(pval,data%Equipments%DataDisplayConsole%PortWeightOnBit)
		! call json%get(p,'PortHookLoad',pval)
		! call json%get(pval,data%Equipments%DataDisplayConsole%PortHookLoad)
		! call json%get(p,'PortCasingPressure',pval)
		! call json%get(pval,data%Equipments%DataDisplayConsole%PortCasingPressure)
		! call json%get(p,'PortPumpPressure',pval)
		! call json%get(pval,data%Equipments%DataDisplayConsole%PortPumpPressure)
		call json%get(p,'TripTankSetAlarmLow',pval)
		call json%get(pval,data%Equipments%DataDisplayConsole%TripTankSetAlarmLow)
		call json%get(p,'TripTankSetAlarmHigh',pval)
		call json%get(pval,data%Equipments%DataDisplayConsole%TripTankSetAlarmHigh)
		call json%get(p,'TripTankSetAlarmSwitch',pval)
		call json%get(pval,data%Equipments%DataDisplayConsole%TripTankSetAlarmSwitch)
		call json%get(p,'TripTankPowerSwitch',pval)
		call json%get(pval,data%Equipments%DataDisplayConsole%TripTankPowerSwitch)
		call json%get(p,'TripTankPumpSwitch',pval)
		call json%get(pval,data%Equipments%DataDisplayConsole%TripTankPumpSwitch)
		call json%get(p,'TripTankHornSwitch',pval)
		call json%get(pval,data%Equipments%DataDisplayConsole%TripTankHornSwitch)
		call json%get(p,'AcidGasDetectionHornSwitch',pval)
		call json%get(pval,data%Equipments%DataDisplayConsole%AcidGasDetectionHornSwitch)
		call json%get(p,'TotalStrokeCounterResetSwitch',pval)
		call json%get(pval,data%Equipments%DataDisplayConsole%TotalStrokeCounterResetSwitch)
		call json%get(p,'DrillingTrippingSelectorSwitch',pval)
		call json%get(pval,data%Equipments%DataDisplayConsole%DrillingTrippingSelectorSwitch)
		call json%get(p,'MVTSetAlarmLowKnob',pval)
		call json%get(pval,data%Equipments%DataDisplayConsole%MVTSetAlarmLowKnob)
		call json%get(p,'MVTSetAlarmHighKnob',pval)
		call json%get(pval,data%Equipments%DataDisplayConsole%MVTSetAlarmHighKnob)
		call json%get(p,'MVTSetAlarmSwitch',pval)
		call json%get(pval,data%Equipments%DataDisplayConsole%MVTSetAlarmSwitch)
		call json%get(p,'MudTank1Switch',pval)
		call json%get(pval,data%Equipments%DataDisplayConsole%MudTank1Switch)
		call json%get(p,'MudTank2Switch',pval)
		call json%get(pval,data%Equipments%DataDisplayConsole%MudTank2Switch)
		call json%get(p,'MudTank3Switch',pval)
		call json%get(pval,data%Equipments%DataDisplayConsole%MudTank3Switch)
		call json%get(p,'MudTank4Switch',pval)
		call json%get(pval,data%Equipments%DataDisplayConsole%MudTank4Switch)
		call json%get(p,'MVTFineKnob',pval)
		call json%get(pval,data%Equipments%DataDisplayConsole%MVTFineKnob)
		call json%get(p,'MVTCoarseKnob',pval)
		call json%get(pval,data%Equipments%DataDisplayConsole%MVTCoarseKnob)
		call json%get(p,'MVTHornSwitch',pval)
		call json%get(pval,data%Equipments%DataDisplayConsole%MVTHornSwitch)
		call json%get(p,'MVTDeviationTripSelectionSwitch',pval)
		call json%get(pval,data%Equipments%DataDisplayConsole%MVTDeviationTripSelectionSwitch)
		call json%get(p,'MVTPowerSwitch',pval)
		call json%get(pval,data%Equipments%DataDisplayConsole%MVTPowerSwitch)
		call json%get(p,'MFFIResetTotalStrokes',pval)
		call json%get(pval,data%Equipments%DataDisplayConsole%MFFIResetTotalStrokes)
		call json%get(p,'MFFIResetFillCounter',pval)
		call json%get(pval,data%Equipments%DataDisplayConsole%MFFIResetFillCounter)
		call json%get(p,'MFFIPumpSelectorSwitch',pval)
		call json%get(pval,data%Equipments%DataDisplayConsole%MFFIPumpSelectorSwitch)
		call json%get(p,'MFFIFillSPMSelectorSwitch',pval)
		call json%get(pval,data%Equipments%DataDisplayConsole%MFFIFillSPMSelectorSwitch)
		call json%get(p,'MFFISetAlarmLowKnob',pval)
		call json%get(pval,data%Equipments%DataDisplayConsole%MFFISetAlarmLowKnob)
		call json%get(p,'MFFISetAlarmHighKnob',pval)
		call json%get(pval,data%Equipments%DataDisplayConsole%MFFISetAlarmHighKnob)
		call json%get(p,'MFFISetAlarmSwitch',pval)
		call json%get(pval,data%Equipments%DataDisplayConsole%MFFISetAlarmSwitch)
		call json%get(p,'MFFIPowerSwitch',pval)
		call json%get(pval,data%Equipments%DataDisplayConsole%MFFIPowerSwitch)
		call json%get(p,'MFFIHornSwitch',pval)
		call json%get(pval,data%Equipments%DataDisplayConsole%MFFIHornSwitch)
		call json%get(p,'ResetWob',pval)
		call json%get(pval,data%Equipments%DataDisplayConsole%ResetWob)
		call json%get(p,'Clutch',pval)
		! call json%get(pval,data%Equipments%DataDisplayConsole%Clutch)
		! call json%get(p,'WOBPointer',pval)
		! call json%get(pval,data%Equipments%DataDisplayConsole%WOBPointer)
		! call json%get(p,'HookLoadPointer',pval)
		! call json%get(pval,data%Equipments%DataDisplayConsole%HookLoadPointer)
		! call json%get(p,'TripTankGauge',pval)
		! call json%get(pval,data%Equipments%DataDisplayConsole%TripTankGauge)
		! call json%get(p,'TripTankAlarmLED',pval)
		! call json%get(pval,data%Equipments%DataDisplayConsole%TripTankAlarmLED)
		! call json%get(p,'TripTankPumpLED',pval)
		! call json%get(pval,data%Equipments%DataDisplayConsole%TripTankPumpLED)
		! call json%get(p,'StandPipePressureGauge',pval)
		! call json%get(pval,data%Equipments%DataDisplayConsole%StandPipePressureGauge)
		! call json%get(p,'CasingPressureGauge',pval)
		! call json%get(pval,data%Equipments%DataDisplayConsole%CasingPressureGauge)
		! call json%get(p,'MP1SPMGauge',pval)
		! call json%get(pval,data%Equipments%DataDisplayConsole%MP1SPMGauge)
		! call json%get(p,'MP2SPMGauge',pval)
		! call json%get(pval,data%Equipments%DataDisplayConsole%MP2SPMGauge)
		! call json%get(p,'ReturnLineTempGauge',pval)
		! call json%get(pval,data%Equipments%DataDisplayConsole%ReturnLineTempGauge)
		! call json%get(p,'RotaryTorqueGauge',pval)
		! call json%get(pval,data%Equipments%DataDisplayConsole%RotaryTorqueGauge)
		! call json%get(p,'RotaryRPMGauge',pval)
		! call json%get(pval,data%Equipments%DataDisplayConsole%RotaryRPMGauge)
		! call json%get(p,'AcidGasDetectionLED',pval)
		! call json%get(pval,data%Equipments%DataDisplayConsole%AcidGasDetectionLED)
		! call json%get(p,'TotalStrokeCounter',pval)
		! call json%get(pval,data%Equipments%DataDisplayConsole%TotalStrokeCounter)
		! call json%get(p,'PitGainLossGauge',pval)
		! call json%get(pval,data%Equipments%DataDisplayConsole%PitGainLossGauge)
		! call json%get(p,'MudTanksVolumeGauge',pval)
		! call json%get(pval,data%Equipments%DataDisplayConsole%MudTanksVolumeGauge)
		! call json%get(p,'MVTAlarmLED',pval)
		! call json%get(pval,data%Equipments%DataDisplayConsole%MVTAlarmLED)
		! call json%get(p,'ReturnMudFlowGauge',pval)
		! call json%get(pval,data%Equipments%DataDisplayConsole%ReturnMudFlowGauge)
		! call json%get(p,'FillStrokeCounter',pval)
		! call json%get(pval,data%Equipments%DataDisplayConsole%FillStrokeCounter)
		! call json%get(p,'MFFITotalStrokeCounter',pval)
		! call json%get(pval,data%Equipments%DataDisplayConsole%MFFITotalStrokeCounter)
		! call json%get(p,'MFFIAlarmLED',pval)
		! call json%get(pval,data%Equipments%DataDisplayConsole%MFFIAlarmLED)
		! call json%get(p,'MFFIPumpLED',pval)
		! call json%get(pval,data%Equipments%DataDisplayConsole%MFFIPumpLED)
		! call json%get(p,'TotalWellDepth',pval)
		! call json%get(pval,data%Equipments%DataDisplayConsole%TotalWellDepth)
		! call json%get(p,'BitDepth',pval)
		! call json%get(pval,data%Equipments%DataDisplayConsole%BitDepth)
		! call json%get(p,'HookLoad',pval)
		! call json%get(pval,data%Equipments%DataDisplayConsole%HookLoad)
		! call json%get(p,'StandPipePressure',pval)
		! call json%get(pval,data%Equipments%DataDisplayConsole%StandPipePressure)
		! call json%get(p,'CasingPressure',pval)
		! call json%get(pval,data%Equipments%DataDisplayConsole%CasingPressure)
		! call json%get(p,'MP1SPM',pval)
		! call json%get(pval,data%Equipments%DataDisplayConsole%MP1SPM)
		! call json%get(p,'MP2SPM',pval)
		! call json%get(pval,data%Equipments%DataDisplayConsole%MP2SPM)
		! call json%get(p,'RTTorque',pval)
		! call json%get(pval,data%Equipments%DataDisplayConsole%RTTorque)
		! call json%get(p,'RTRPM',pval)
		! call json%get(pval,data%Equipments%DataDisplayConsole%RTRPM)
		! call json%get(p,'WOP',pval)
		! call json%get(pval,data%Equipments%DataDisplayConsole%WOP)
		! call json%get(p,'ROP',pval)
		! call json%get(pval,data%Equipments%DataDisplayConsole%ROP)
		! call json%get(p,'MudWeightIn',pval)
		! call json%get(pval,data%Equipments%DataDisplayConsole%MudWeightIn)
		! call json%get(p,'MudWeightOut',pval)
		! call json%get(pval,data%Equipments%DataDisplayConsole%MudWeightOut)
		! call json%get(p,'Buzzer1',pval)
		! call json%get(pval,data%Equipments%DataDisplayConsole%Buzzer1)
		! call json%get(p,'Buzzer2',pval)
		! call json%get(pval,data%Equipments%DataDisplayConsole%Buzzer2)
		! call json%get(p,'Buzzer3',pval)
		! call json%get(pval,data%Equipments%DataDisplayConsole%Buzzer3)
		! call json%get(p,'Buzzer4',pval)
		! call json%get(pval,data%Equipments%DataDisplayConsole%Buzzer4)
    end subroutine

    subroutine DataDisplayConsoleToJson(parent)

        type(json_value),pointer :: parent
        type(json_core) :: json
        type(json_value),pointer :: p

        ! 1. create new node
        call json%create_object(p,'DataDisplay')
        ! call json%add(p,"TripAlarmLow",data%Equipments%DataDisplayConsole%TripAlarmLow)
        ! call json%add(p,"TripAlarmHigh",data%Equipments%DataDisplayConsole%TripAlarmHigh)
        ! call json%add(p,"RetFlowAlarmLow",data%Equipments%DataDisplayConsole%RetFlowAlarmLow)
        ! call json%add(p,"RetFlowAlarmHigh",data%Equipments%DataDisplayConsole%RetFlowAlarmHigh)
        ! call json%add(p,"PitAlarmLow",data%Equipments%DataDisplayConsole%PitAlarmLow)
        ! call json%add(p,"PitAlarmHigh",data%Equipments%DataDisplayConsole%PitAlarmHigh)
		! call json%add(p,"PortWeightOnBit",data%Equipments%DataDisplayConsole%PortWeightOnBit)
        ! call json%add(p,"PortHookLoad",data%Equipments%DataDisplayConsole%PortHookLoad)
        ! call json%add(p,"PortCasingPressure",data%Equipments%DataDisplayConsole%PortCasingPressure)
        ! call json%add(p,"PortPumpPressure",data%Equipments%DataDisplayConsole%PortPumpPressure)

        ! call json%add(p,"TripTankSetAlarmLow",data%Equipments%DataDisplayConsole%TripTankSetAlarmLow)
        ! call json%add(p,"TripTankSetAlarmHigh",data%Equipments%DataDisplayConsole%TripTankSetAlarmHigh)
        ! call json%add(p,"TripTankSetAlarmSwitch",data%Equipments%DataDisplayConsole%TripTankSetAlarmSwitch)
        ! call json%add(p,"TripTankPowerSwitch",data%Equipments%DataDisplayConsole%TripTankPowerSwitch)
        ! call json%add(p,"TripTankPumpSwitch",data%Equipments%DataDisplayConsole%TripTankPumpSwitch)
        ! call json%add(p,"TripTankHornSwitch",data%Equipments%DataDisplayConsole%TripTankHornSwitch)
        ! call json%add(p,"AcidGasDetectionHornSwitch",data%Equipments%DataDisplayConsole%AcidGasDetectionHornSwitch)
        ! call json%add(p,"TotalStrokeCounterResetSwitch",data%Equipments%DataDisplayConsole%TotalStrokeCounterResetSwitch)
        ! call json%add(p,"DrillingTrippingSelectorSwitch",data%Equipments%DataDisplayConsole%DrillingTrippingSelectorSwitch)
        ! call json%add(p,"MVTSetAlarmLowKnob",data%Equipments%DataDisplayConsole%MVTSetAlarmLowKnob)
        ! call json%add(p,"MVTSetAlarmHighKnob",data%Equipments%DataDisplayConsole%MVTSetAlarmHighKnob)
        ! call json%add(p,"MVTSetAlarmSwitch",data%Equipments%DataDisplayConsole%MVTSetAlarmSwitch)
        ! call json%add(p,"MudTank1Switch",data%Equipments%DataDisplayConsole%MudTank1Switch)
        ! call json%add(p,"MudTank2Switch",data%Equipments%DataDisplayConsole%MudTank2Switch)
        ! call json%add(p,"MudTank3Switch",data%Equipments%DataDisplayConsole%MudTank3Switch)
        ! call json%add(p,"MudTank4Switch",data%Equipments%DataDisplayConsole%MudTank4Switch)
        ! call json%add(p,"MVTFineKnob",data%Equipments%DataDisplayConsole%MVTFineKnob)
        ! call json%add(p,"MVTCoarseKnob",data%Equipments%DataDisplayConsole%MVTCoarseKnob)
        ! call json%add(p,"MVTHornSwitch",data%Equipments%DataDisplayConsole%MVTHornSwitch)
        ! call json%add(p,"MVTDeviationTripSelectionSwitch",data%Equipments%DataDisplayConsole%MVTDeviationTripSelectionSwitch)
        ! call json%add(p,"MVTPowerSwitch",data%Equipments%DataDisplayConsole%MVTPowerSwitch)
        ! call json%add(p,"MFFIResetTotalStrokes",data%Equipments%DataDisplayConsole%MFFIResetTotalStrokes)
        ! call json%add(p,"MFFIResetFillCounter",data%Equipments%DataDisplayConsole%MFFIResetFillCounter)
        ! call json%add(p,"MFFIPumpSelectorSwitch",data%Equipments%DataDisplayConsole%MFFIPumpSelectorSwitch)
        ! call json%add(p,"MFFIFillSPMSelectorSwitch",data%Equipments%DataDisplayConsole%MFFIFillSPMSelectorSwitch)
        ! call json%add(p,"MFFISetAlarmLowKnob",data%Equipments%DataDisplayConsole%MFFISetAlarmLowKnob)
        ! call json%add(p,"MFFISetAlarmHighKnob",data%Equipments%DataDisplayConsole%MFFISetAlarmHighKnob)
        ! call json%add(p,"MFFISetAlarmSwitch",data%Equipments%DataDisplayConsole%MFFISetAlarmSwitch)
        ! call json%add(p,"MFFIPowerSwitch",data%Equipments%DataDisplayConsole%MFFIPowerSwitch)
        ! call json%add(p,"MFFIHornSwitch",data%Equipments%DataDisplayConsole%MFFIHornSwitch)
        ! call json%add(p,"ResetWob",data%Equipments%DataDisplayConsole%ResetWob)
        ! call json%add(p,"Clutch",data%Equipments%DataDisplayConsole%Clutch)

		call json%add(p,"WOBPointer",data%Equipments%DataDisplayConsole%WOBPointer)
        call json%add(p,"HookLoadPointer",data%Equipments%DataDisplayConsole%HookLoadPointer)
        call json%add(p,"TripTankGauge",data%Equipments%DataDisplayConsole%TripTankGauge)
        call json%add(p,"TripTankAlarmLED",data%Equipments%DataDisplayConsole%TripTankAlarmLED)
        call json%add(p,"TripTankPumpLED",data%Equipments%DataDisplayConsole%TripTankPumpLED)
        call json%add(p,"StandPipePressureGauge",data%Equipments%DataDisplayConsole%StandPipePressureGauge)
        call json%add(p,"CasingPressureGauge",data%Equipments%DataDisplayConsole%CasingPressureGauge)
        call json%add(p,"MP1SPMGauge",data%Equipments%DataDisplayConsole%MP1SPMGauge)
        call json%add(p,"MP2SPMGauge",data%Equipments%DataDisplayConsole%MP2SPMGauge)
        call json%add(p,"ReturnLineTempGauge",data%Equipments%DataDisplayConsole%ReturnLineTempGauge)
        call json%add(p,"RotaryTorqueGauge",data%Equipments%DataDisplayConsole%RotaryTorqueGauge)
        call json%add(p,"RotaryRPMGauge",data%Equipments%DataDisplayConsole%RotaryRPMGauge)
        call json%add(p,"AcidGasDetectionLED",data%Equipments%DataDisplayConsole%AcidGasDetectionLED)
        call json%add(p,"TotalStrokeCounter",data%Equipments%DataDisplayConsole%TotalStrokeCounter)
        call json%add(p,"PitGainLossGauge",data%Equipments%DataDisplayConsole%PitGainLossGauge)
        call json%add(p,"MudTanksVolumeGauge",data%Equipments%DataDisplayConsole%MudTanksVolumeGauge)
        call json%add(p,"MVTAlarmLED",data%Equipments%DataDisplayConsole%MVTAlarmLED)
        call json%add(p,"ReturnMudFlowGauge",data%Equipments%DataDisplayConsole%ReturnMudFlowGauge)
        call json%add(p,"FillStrokeCounter",data%Equipments%DataDisplayConsole%FillStrokeCounter)
        call json%add(p,"MFFITotalStrokeCounter",data%Equipments%DataDisplayConsole%MFFITotalStrokeCounter)
        call json%add(p,"MFFIAlarmLED",data%Equipments%DataDisplayConsole%MFFIAlarmLED)
        call json%add(p,"MFFIPumpLED",data%Equipments%DataDisplayConsole%MFFIPumpLED)
        call json%add(p,"TotalWellDepth",data%Equipments%DataDisplayConsole%TotalWellDepth)
        call json%add(p,"BitDepth",data%Equipments%DataDisplayConsole%BitDepth)
        call json%add(p,"HookLoad",data%Equipments%DataDisplayConsole%HookLoad)
        call json%add(p,"StandPipePressure",data%Equipments%DataDisplayConsole%StandPipePressure)
        call json%add(p,"CasingPressure",data%Equipments%DataDisplayConsole%CasingPressure)
        call json%add(p,"MP1SPM",data%Equipments%DataDisplayConsole%MP1SPM)
        call json%add(p,"MP2SPM",data%Equipments%DataDisplayConsole%MP2SPM)
        call json%add(p,"RTTorque",data%Equipments%DataDisplayConsole%RTTorque)
        call json%add(p,"RTRPM",data%Equipments%DataDisplayConsole%RTRPM)
        call json%add(p,"WOP",data%Equipments%DataDisplayConsole%WOP)
        call json%add(p,"ROP",data%Equipments%DataDisplayConsole%ROP)
        call json%add(p,"MudWeightIn",data%Equipments%DataDisplayConsole%MudWeightIn)
        call json%add(p,"MudWeightOut",data%Equipments%DataDisplayConsole%MudWeightOut)
        call json%add(p,"Buzzer1",data%Equipments%DataDisplayConsole%Buzzer1)
        call json%add(p,"Buzzer2",data%Equipments%DataDisplayConsole%Buzzer2)
        call json%add(p,"Buzzer3",data%Equipments%DataDisplayConsole%Buzzer3)
        call json%add(p,"Buzzer4",data%Equipments%DataDisplayConsole%Buzzer4)
    

        call json%add(parent,p)
    end subroutine


    subroutine Set_TotalDepth(v)
        use SimulationVariables !@!!, only: data%Equipments%DrillingWatch%Depth
        ! use CSimulationVariables, only: SetDistanceDrilled
	    implicit none
	    real(8), intent(in) :: v
	    data%Equipments%DataDisplayConsole%TotalWellDepth = v
        data%Equipments%DrillingWatch%Depth = v
        ! call SetDistanceDrilled(v)
    end subroutine
    
    subroutine Set_BitPosition(v)
        use SimulationVariables !@!!, only: data%Equipments%DrillingWatch%BitPosition
	    implicit none
	    real(8), intent(in) :: v
	    data%Equipments%DataDisplayConsole%BitDepth = v
        data%Equipments%DrillingWatch%BitPosition = v
    end subroutine
    
    subroutine Set_RotaryTorque(v)
        use SimulationVariables !@!!, only: data%Equipments%DrillingWatch%Torque
	    implicit none
	    real(8), intent(in) :: v
	    data%Equipments%DataDisplayConsole%RotaryTorqueGauge = v
	    data%Equipments%DrillingWatch%Torque = v
        data%Equipments%DataDisplayConsole%RTTorque = v
    end subroutine
    
    
    subroutine Set_MudWeightIn(v)
        use SimulationVariables !@!, only: MudWeightInDw => data%Equipments%DataDisplayConsole%MudWeightIn
	    implicit none
	    real(8), intent(in) :: v
	    data%Equipments%DataDisplayConsole%MudWeightIn = v
	    data%Equipments%DrillingWatch%MudWeightIn = v
    end subroutine
    
    subroutine Set_MudWeightOut(v)
        use SimulationVariables !@!, only: MudWeightOutDw => data%Equipments%DataDisplayConsole%MudWeightOut
	    implicit none
	    real(8), intent(in) :: v
	    data%Equipments%DataDisplayConsole%MudWeightOut = v
	    data%Equipments%DrillingWatch%MudWeightOut = v
    end subroutine
    
    subroutine Set_TripTankVolume(v)
        use SimulationVariables !@!, only: data%Equipments%DrillingWatch%TripTankVolume
	    implicit none
	    real(8), intent(in) :: v
	    data%Equipments%DrillingWatch%TripTankVolume = v
    end subroutine
    
    subroutine Set_FillVolume(v)
        use SimulationVariables !@!, only: data%Equipments%DrillingWatch%FillVolume
	    implicit none
	    real(8), intent(in) :: v
	    data%Equipments%DrillingWatch%FillVolume = v
    end subroutine
    
    subroutine Set_HookLoad(v)
        use SimulationVariables !@!, only: HookLoadDw => data%Equipments%DataDisplayConsole%HookLoad
	    implicit none
	    real(8), intent(in) :: v
	    data%Equipments%DataDisplayConsole%HookLoadPointer = v
        data%Equipments%DrillingWatch%HookLoad = v * 1000
        data%Equipments%DataDisplayConsole%HookLoad = v
    end subroutine
    
    subroutine Set_WeightOnBit(v)
        use SimulationVariables !@!, only: data%Equipments%DrillingWatch%WeightOnBit
	    implicit none
	    real(8), intent(in) :: v
	    data%Equipments%DataDisplayConsole%WOBPointer = v
        data%Equipments%DrillingWatch%WeightOnBit = v
        data%Equipments%DataDisplayConsole%WOP = v
    end subroutine
    
    subroutine Set_ROP(v)
        use SimulationVariables !@!, only: ROPDw => data%Equipments%DataDisplayConsole%ROP
	    implicit none
	    real(8), intent(in) :: v
	    data%Equipments%DataDisplayConsole%ROP = v
        data%Equipments%DrillingWatch%ROP = v
    end subroutine
    
    subroutine Set_CasingPressure(v)
        use SimulationVariables !@!, only: CasingPressureDw => CasingPressure
        use CChokeControlPanelVariables
        use SimulationVariables!, only: CasingPressureChoke => CasingPressure
	    implicit none
	    real(8), intent(in) :: v
	    data%Equipments%DataDisplayConsole%CasingPressureGauge = v
        data%Equipments%DrillingWatch%CasingPressure = v
        data%Equipments%ChokeControlPanel%CasingPressure = v
        data%Equipments%DataDisplayConsole%CasingPressure = v
    end subroutine
    
    subroutine Set_StandPipePressure(v)
        use SimulationVariables !@!, only: data%Equipments%DrillingWatch%PumpPressure
        use CChokeControlPanelVariables
    use SimulationVariables!, only: StandPipePressureChoke => data%Equipments%DataDisplayConsole%StandPipePressure
	    implicit none
	    real(8), intent(in) :: v
	    data%Equipments%DataDisplayConsole%StandPipePressureGauge = v
        data%Equipments%DrillingWatch%PumpPressure = v
        data%Equipments%ChokeControlPanel%StandPipePressure = v
        data%Equipments%DataDisplayConsole%StandPipePressure = v
        
        
        
    end subroutine
    
    
    subroutine Set_RotaryRPMGauge(v)
        use SimulationVariables !@!, only: data%Equipments%DrillingWatch%RPM
	    implicit none
	    real(8), intent(in) :: v
	    data%Equipments%DataDisplayConsole%RotaryRPMGauge = v
        data%Equipments%DrillingWatch%RPM = v
        data%Equipments%DataDisplayConsole%RTRPM = v
        ! call data%Equipments%DataDisplayConsole%OnRotaryRpmChange%RunAll(v)
    end subroutine
    
    
    
    
    subroutine Set_MP1SPMGauge(v)
	    implicit none
	    real(8), intent(in) :: v
	    data%Equipments%DataDisplayConsole%MP1SPMGauge = v
        data%Equipments%DataDisplayConsole%MP1SPM = v
        !@data%State%unitySignals%(PumpsSpmChanges)) call PumpsSpmChanges(data%Equipments%DataDisplayConsole%MP1SPMGauge, data%Equipments%DataDisplayConsole%MP2SPMGauge)
#ifdef deb
	    print*, 'MP1SPMGauge=', data%Equipments%DataDisplayConsole%MP1SPMGauge
#endif
    end subroutine
    
    subroutine Set_MP2SPMGauge(v)
	    implicit none
	    real(8), intent(in) :: v
	    data%Equipments%DataDisplayConsole%MP2SPMGauge = v
        data%Equipments%DataDisplayConsole%MP2SPM = v
        !@data%State%unitySignals%(PumpsSpmChanges)) call PumpsSpmChanges(data%Equipments%DataDisplayConsole%MP1SPMGauge, data%Equipments%DataDisplayConsole%MP2SPMGauge)
#ifdef deb
	    print*, 'MP2SPMGauge=', data%Equipments%DataDisplayConsole%MP2SPMGauge
#endif
    end subroutine
end module CDataDisplayConsole