diff --git a/src/core_atmosphere/Registry.xml b/src/core_atmosphere/Registry.xml
index 425e0349d1..2e0c1770cd 100644
--- a/src/core_atmosphere/Registry.xml
+++ b/src/core_atmosphere/Registry.xml
@@ -2905,7 +2905,7 @@
packages="sfclayer"/>
+ description="2-meter water vapor mixing ratio"/>
diff --git a/src/core_atmosphere/physics/mpas_atmphys_vars.F b/src/core_atmosphere/physics/mpas_atmphys_vars.F
index 134009f537..9b545e267e 100644
--- a/src/core_atmosphere/physics/mpas_atmphys_vars.F
+++ b/src/core_atmosphere/physics/mpas_atmphys_vars.F
@@ -574,10 +574,10 @@ module mpas_atmphys_vars
pblh_p, &!PBL height [m]
psih_p, &!similarity theory for heat [-]
psim_p, &!similarity theory for momentum [-]
- q2_p, &!specific humidity at 2m [kg/kg]
+ q2_p, &!water vapor mixing ratio at 2m [kg/kg]
qfx_p, &!upward moisture flux at the surface [kg/m2/s]
- qgh_p, &!
- qsfc_p, &!specific humidity at lower boundary [kg/kg]
+ qgh_p, &!lowest level saturation mixing ratio [kg/kg]
+ qsfc_p, &!mixing ratio at lower boundary [kg/kg]
regime_p, &!flag indicating PBL regime (stable_p,unstable_p,etc...) [-]
rmol_p, &!1 / Monin Ob length [-]
t2m_p, &!temperature at 2m [K]
diff --git a/src/core_atmosphere/physics/physics_noahmp/drivers/mpas/EnergyVarInTransferMod.F90 b/src/core_atmosphere/physics/physics_noahmp/drivers/mpas/EnergyVarInTransferMod.F90
index f0a96a5795..e1ee310989 100644
--- a/src/core_atmosphere/physics/physics_noahmp/drivers/mpas/EnergyVarInTransferMod.F90
+++ b/src/core_atmosphere/physics/physics_noahmp/drivers/mpas/EnergyVarInTransferMod.F90
@@ -46,7 +46,7 @@ subroutine EnergyVarInTransfer(noahmp, NoahmpIO)
! energy state variables
noahmp%energy%state%LeafAreaIndex = NoahmpIO%LAI (I)
noahmp%energy%state%StemAreaIndex = NoahmpIO%XSAIXY (I)
- noahmp%energy%state%SpecHumiditySfcMean = NoahmpIO%QSFC (I)
+ noahmp%energy%state%SpecHumiditySfcMean = NoahmpIO%QSFC (I) / (1.0+NoahmpIO%QSFC(I))
noahmp%energy%state%TemperatureGrd = NoahmpIO%TGXY (I)
noahmp%energy%state%TemperatureCanopy = NoahmpIO%TVXY (I)
noahmp%energy%state%SnowAgeNondim = NoahmpIO%TAUSSXY (I)
diff --git a/src/core_atmosphere/physics/physics_noahmp/drivers/mpas/EnergyVarOutTransferMod.F90 b/src/core_atmosphere/physics/physics_noahmp/drivers/mpas/EnergyVarOutTransferMod.F90
index a150bf9b6e..75a6661812 100644
--- a/src/core_atmosphere/physics/physics_noahmp/drivers/mpas/EnergyVarOutTransferMod.F90
+++ b/src/core_atmosphere/physics/physics_noahmp/drivers/mpas/EnergyVarOutTransferMod.F90
@@ -104,7 +104,7 @@ subroutine EnergyVarOutTransfer(noahmp, NoahmpIO)
! energy state variables
NoahmpIO%TSK (I) = noahmp%energy%state%TemperatureRadSfc
NoahmpIO%EMISS (I) = noahmp%energy%state%EmissivitySfc
- NoahmpIO%QSFC (I) = noahmp%energy%state%SpecHumiditySfcMean
+ NoahmpIO%QSFC (I) = noahmp%energy%state%SpecHumiditySfcMean/(1.0-noahmp%energy%state%SpecHumiditySfcMean)
NoahmpIO%TVXY (I) = noahmp%energy%state%TemperatureCanopy
NoahmpIO%TGXY (I) = noahmp%energy%state%TemperatureGrd
NoahmpIO%EAHXY (I) = noahmp%energy%state%PressureVaporCanAir
diff --git a/src/core_atmosphere/physics/physics_noahmp/drivers/mpas/NoahmpIOVarFinalizeMod.F90 b/src/core_atmosphere/physics/physics_noahmp/drivers/mpas/NoahmpIOVarFinalizeMod.F90
index 66458d638e..d3c275c1be 100644
--- a/src/core_atmosphere/physics/physics_noahmp/drivers/mpas/NoahmpIOVarFinalizeMod.F90
+++ b/src/core_atmosphere/physics/physics_noahmp/drivers/mpas/NoahmpIOVarFinalizeMod.F90
@@ -131,7 +131,7 @@ subroutine NoahmpIOVarFinalizeDefault(NoahmpIO)
if ( allocated (NoahmpIO%acsnom) ) deallocate ( NoahmpIO%acsnom ) ! accumulated snow melt leaving pack
if ( allocated (NoahmpIO%acsnow) ) deallocate ( NoahmpIO%acsnow ) ! accumulated snow on grid
if ( allocated (NoahmpIO%emiss) ) deallocate ( NoahmpIO%emiss ) ! surface bulk emissivity
- if ( allocated (NoahmpIO%qsfc) ) deallocate ( NoahmpIO%qsfc ) ! bulk surface specific humidity
+ if ( allocated (NoahmpIO%qsfc) ) deallocate ( NoahmpIO%qsfc ) ! bulk surface mixing ratio
if ( allocated (NoahmpIO%smoiseq) ) deallocate ( NoahmpIO%smoiseq ) ! equilibrium volumetric soil moisture [m3/m3]
if ( allocated (NoahmpIO%smois) ) deallocate ( NoahmpIO%smois ) ! volumetric soil moisture [m3/m3]
if ( allocated (NoahmpIO%sh2o) ) deallocate ( NoahmpIO%sh2o ) ! volumetric liquid soil moisture [m3/m3]
diff --git a/src/core_atmosphere/physics/physics_noahmp/drivers/mpas/NoahmpIOVarInitMod.F90 b/src/core_atmosphere/physics/physics_noahmp/drivers/mpas/NoahmpIOVarInitMod.F90
index 4f3c3f4f2c..2eeea6dede 100644
--- a/src/core_atmosphere/physics/physics_noahmp/drivers/mpas/NoahmpIOVarInitMod.F90
+++ b/src/core_atmosphere/physics/physics_noahmp/drivers/mpas/NoahmpIOVarInitMod.F90
@@ -135,7 +135,7 @@ subroutine NoahmpIOVarInitDefault(NoahmpIO)
if ( .not. allocated (NoahmpIO%acsnom) ) allocate ( NoahmpIO%acsnom (its:ite ) ) ! accumulated snow melt leaving pack
if ( .not. allocated (NoahmpIO%acsnow) ) allocate ( NoahmpIO%acsnow (its:ite ) ) ! accumulated snow on grid
if ( .not. allocated (NoahmpIO%emiss) ) allocate ( NoahmpIO%emiss (its:ite ) ) ! surface bulk emissivity
- if ( .not. allocated (NoahmpIO%qsfc) ) allocate ( NoahmpIO%qsfc (its:ite ) ) ! bulk surface specific humidity
+ if ( .not. allocated (NoahmpIO%qsfc) ) allocate ( NoahmpIO%qsfc (its:ite ) ) ! bulk surface mixing ratio
if ( .not. allocated (NoahmpIO%smoiseq) ) allocate ( NoahmpIO%smoiseq (its:ite,1:nsoil) ) ! equilibrium volumetric soil moisture [m3/m3]
if ( .not. allocated (NoahmpIO%smois) ) allocate ( NoahmpIO%smois (its:ite,1:nsoil) ) ! volumetric soil moisture [m3/m3]
if ( .not. allocated (NoahmpIO%sh2o) ) allocate ( NoahmpIO%sh2o (its:ite,1:nsoil) ) ! volumetric liquid soil moisture [m3/m3]
diff --git a/src/core_atmosphere/physics/physics_noahmp/drivers/mpas/NoahmpIOVarType.F90 b/src/core_atmosphere/physics/physics_noahmp/drivers/mpas/NoahmpIOVarType.F90
index 05a29d7035..7bb5327a63 100644
--- a/src/core_atmosphere/physics/physics_noahmp/drivers/mpas/NoahmpIOVarType.F90
+++ b/src/core_atmosphere/physics/physics_noahmp/drivers/mpas/NoahmpIOVarType.F90
@@ -174,7 +174,7 @@ module NoahmpIOVarType
real(kind=kind_noahmp), allocatable, dimension(:) :: acsnom ! accumulated snow melt leaving pack
real(kind=kind_noahmp), allocatable, dimension(:) :: acsnow ! accumulated snow on grid
real(kind=kind_noahmp), allocatable, dimension(:) :: emiss ! surface bulk emissivity
- real(kind=kind_noahmp), allocatable, dimension(:) :: qsfc ! bulk surface specific humidity
+ real(kind=kind_noahmp), allocatable, dimension(:) :: qsfc ! bulk surface mixing ratio
! INOUT (with no Noah LSM equivalent) (as defined in WRF)
integer, allocatable, dimension(:) :: isnowxy ! actual no. of snow layers
diff --git a/src/core_init_atmosphere/Registry.xml b/src/core_init_atmosphere/Registry.xml
index 160774e61c..039a668c00 100644
--- a/src/core_init_atmosphere/Registry.xml
+++ b/src/core_init_atmosphere/Registry.xml
@@ -1381,7 +1381,7 @@
packages="met_stage_out"/>