GetHumRatioFromTWetBulb Function

public function GetHumRatioFromTWetBulb(TDryBulb, TWetBulb, Pressure) result(HumRatio)

Return humidity ratio given dry-bulb temperature, wet-bulb temperature, and pressure. References: ASHRAE Handbook - Fundamentals (2017) ch. 1 eqn 33 and 35

Arguments

Type IntentOptional AttributesName
real, intent(in) :: TDryBulb

Dry-bulb temperature in °F [IP] or °C [SI]

real, intent(in) :: TWetBulb

Wet-bulb temperature in °F [IP] or °C [SI]

real, intent(in) :: Pressure

Atmospheric pressure in Psi [IP] or Pa [SI]

Return Value real

Humidity ratio in lb_H₂O lb_Air⁻¹ [IP] or kg_H₂O kg_Air⁻¹ [SI]


Calls

proc~~gethumratiofromtwetbulb~~CallsGraph proc~gethumratiofromtwetbulb GetHumRatioFromTWetBulb proc~getsathumratio GetSatHumRatio proc~gethumratiofromtwetbulb->proc~getsathumratio proc~isip isIP proc~gethumratiofromtwetbulb->proc~isip proc~getsatvappres GetSatVapPres proc~getsathumratio->proc~getsatvappres proc~getsatvappres->proc~isip proc~gettrankinefromtfahrenheit GetTRankineFromTFahrenheit proc~getsatvappres->proc~gettrankinefromtfahrenheit proc~gettkelvinfromtcelsius GetTKelvinFromTCelsius proc~getsatvappres->proc~gettkelvinfromtcelsius

Called by

proc~~gethumratiofromtwetbulb~~CalledByGraph proc~gethumratiofromtwetbulb GetHumRatioFromTWetBulb proc~gettwetbulbfromhumratio GetTWetBulbFromHumRatio proc~gettwetbulbfromhumratio->proc~gethumratiofromtwetbulb proc~getrelhumfromtwetbulb GetRelHumFromTWetBulb proc~getrelhumfromtwetbulb->proc~gethumratiofromtwetbulb proc~calcpsychrometricsfromtwetbulb CalcPsychrometricsFromTWetBulb proc~calcpsychrometricsfromtwetbulb->proc~gethumratiofromtwetbulb proc~gettdewpointfromtwetbulb GetTDewPointFromTWetBulb proc~gettdewpointfromtwetbulb->proc~gethumratiofromtwetbulb proc~gettwetbulbfromtdewpoint GetTWetBulbFromTDewPoint proc~gettwetbulbfromtdewpoint->proc~gettwetbulbfromhumratio proc~calcminimaldxheating CalcMinimalDXHeating proc~calcminimaldxheating->proc~gettwetbulbfromhumratio proc~calcpsychrometricsfromrelhum CalcPsychrometricsFromRelHum proc~calcpsychrometricsfromrelhum->proc~gettwetbulbfromhumratio proc~calcminimaldxcooling CalcMinimalDXCooling proc~calcminimaldxcooling->proc~gettwetbulbfromhumratio proc~gettwetbulbfromrelhum GetTWetBulbFromRelHum proc~gettwetbulbfromrelhum->proc~gettwetbulbfromhumratio proc~calcpsychrometricsfromtdewpoint CalcPsychrometricsFromTDewPoint proc~calcpsychrometricsfromtdewpoint->proc~gettwetbulbfromhumratio proc~simminimaldxheating SimMinimalDXHeating proc~simminimaldxheating->proc~calcminimaldxheating proc~simminimaldxcooling SimMinimalDXCooling proc~simminimaldxcooling->proc~calcminimaldxcooling

Contents


Source Code

  function GetHumRatioFromTWetBulb(TDryBulb, TWetBulb, Pressure) result(HumRatio)
    !+ Return humidity ratio given dry-bulb temperature, wet-bulb temperature, and pressure.
    !+ References:
    !+ ASHRAE Handbook - Fundamentals (2017) ch. 1 eqn 33 and 35

    real, intent(in)  ::  TDryBulb
      !+ Dry-bulb temperature in °F [IP] or °C [SI]
    real, intent(in)  ::  TWetBulb
      !+ Wet-bulb temperature in °F [IP] or °C [SI]
    real, intent(in)  ::  Pressure
      !+ Atmospheric pressure in Psi [IP] or Pa [SI]
    real              ::  HumRatio
      !+ Humidity ratio in lb_H₂O lb_Air⁻¹ [IP] or kg_H₂O kg_Air⁻¹ [SI]
    real              ::  Wsstar
      !+ Humidity ratio at temperature Tstar in lb_H₂O lb_Air⁻¹ [IP] or kg_H₂O kg_Air⁻¹ [SI]

    if (TWetBulb > TDryBulb) then
      error stop "Error: wet bulb temperature is above dry bulb temperature"
    end if

    Wsstar = GetSatHumRatio(TWetBulb, Pressure)

    if (isIP()) then
      if (TWetBulb >= 32.0) then
        HumRatio = ((1093.0 - 0.556 * TWetBulb) * Wsstar - 0.240 * (TDryBulb - TWetBulb))   &
                   / (1093.0 + 0.444 * TDryBulb - TWetBulb)
      else
        HumRatio = ((1220.0 - 0.04 * TWetBulb) * Wsstar - 0.240 * (TDryBulb - TWetBulb))    &
                   / (1220.0 + 0.444 * TDryBulb - 0.48 * TWetBulb)
      end if
    else
      if (TWetBulb >= 0.0) then
        HumRatio = ((2501.0 - 2.326 * TWetBulb) * Wsstar - 1.006 * (TDryBulb - TWetBulb))   &
                   / (2501.0 + 1.86 * TDryBulb - 4.186 * TWetBulb)
      else
           HumRatio = ((2830.0 - 0.24 * TWetBulb) * Wsstar - 1.006 * (TDryBulb - TWetBulb)) &
                      / (2830.0 + 1.86 * TDryBulb - 2.1 * TWetBulb)
      end if
    end if

    ! Validity check.
    HumRatio = max(HumRatio, MIN_HUM_RATIO)
  end function GetHumRatioFromTWetBulb