module SoftwareInputsModule
    use SimulationVariables

    contains

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

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

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