Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updates to radiation, cloud, and land processes for improved surface temperature and radiative flux biases #244

Open
wants to merge 3 commits into
base: ufs/dev
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion physics/MP/Thompson/module_mp_thompson.F90
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ module module_mp_thompson
!.. droplet number concentration.
!real(wp), parameter :: Nt_c = 100.e6
real(wp), parameter :: Nt_c_o = 50.e6
real(wp), parameter :: Nt_c_l = 100.e6
real(wp), parameter :: Nt_c_l = 150.e6
real(wp), parameter, private :: Nt_c_max = 1999.e6

!..Declaration of constants for assumed CCN/IN aerosols when none in
Expand Down
10 changes: 8 additions & 2 deletions physics/Radiation/radiation_clouds.f
Original file line number Diff line number Diff line change
Expand Up @@ -200,6 +200,7 @@ module module_radiation_clouds
real (kind=kind_phys), parameter :: reice_def = 50.0 !< default ice radius to 50 micron
real (kind=kind_phys), parameter :: rrain_def = 1000.0 !< default rain radius to 1000 micron
real (kind=kind_phys), parameter :: rsnow_def = 250.0 !< default snow radius to 250 micron
real (kind=kind_phys), parameter :: creice_def = 25.0 !< default convective ice radius to 25 micron overland

real (kind=kind_phys), parameter :: cldssa_def = 0.99 !< default cld single scat albedo
real (kind=kind_phys), parameter :: cldasy_def = 0.84 !< default cld asymmetry factor
Expand Down Expand Up @@ -2164,8 +2165,13 @@ subroutine progcld_thompson_wsm6 &
cip(i,k) = max(0.0, (clw(i,k,ntiw) +
& snow2ice*clw(i,k,ntsw) + tem2) *
& gfac * delp(i,k))
if(tem2 > 1.e-12 .and. clw(i,k,ntiw) < 1.e-12)
& rei(i,k)=reice_def
if(tem2 > 1.e-12 .and. clw(i,k,ntiw) < 1.e-12) then
if(nint(slmsk(i))==1) then
rei(i,k)=creice_def
else
rei(i,k)=reice_def
endif
endif
crp(i,k) = max(0.0, clw(i,k,ntrw) * gfac * delp(i,k))
csp(i,k) = max(0.0, (1.-snow2ice)*clw(i,k,ntsw) *
& gfac * delp(i,k))
Expand Down
29 changes: 24 additions & 5 deletions physics/SFC_Models/Land/Noahmp/module_sf_noahmplsm.F90
Original file line number Diff line number Diff line change
Expand Up @@ -2511,7 +2511,19 @@ subroutine thermoprop (parameters,nsoil ,nsnow ,isnow ,ist ,dzsnso ,
real (kind=kind_phys), dimension(-nsnow+1: 0) :: tksno !snow thermal conductivity (j/m3/k)
real (kind=kind_phys), dimension( 1:nsoil) :: sice !soil ice content
real (kind=kind_phys), parameter :: sbeta = -2.0
real (kind=kind_phys), dimension(4,20) :: soil_carbon ! soil carbon content [kg/m3]
real (kind=kind_phys), parameter :: soil_carbon_df = 0.25 ! soil carbon therm cond (Lawrence and Slater)
real (kind=kind_phys), parameter :: soil_carbon_hcpct = 2.5e6 ! soil carbon heat capacity (Lawrence and Slater)
! --------------------------------------------------------------------------------------------------
! soil carbon [kg/m3] by vegetation type estimated from global PNNL soil carbon dataset
! and VIIRS surface type

soil_carbon(1,:) = (/90,65,90,65,90,40,50,50,40,50,90,60,60,60,0,20,0,90,90,60/)
soil_carbon(2,:) = (/40,30,40,30,40,25,30,30,25,30,40,30,30,30,0,15,0,60,60,40/)
soil_carbon(3,:) = (/20,15,20,15,20,15,20,15,15,15,25,20,20,20,0,10,0,40,40,30/)
soil_carbon(4,:) = (/15,10,15,10,15,10,15,10,10,10,20,10,10,10,0,10,0,40,30,20/)

soil_carbon = soil_carbon / 130.0 ! convert to soil carbon relative to peat

! compute snow thermal conductivity and heat capacity

Expand All @@ -2530,6 +2542,11 @@ subroutine thermoprop (parameters,nsoil ,nsnow ,isnow ,ist ,dzsnso ,
hcpct(iz) = sh2o(iz)*cwat + (1.0-parameters%smcmax(iz))*parameters%csoil &
+ (parameters%smcmax(iz)-smc(iz))*cpair + sice(iz)*cice
call tdfcnd (parameters,iz,df(iz), smc(iz), sh2o(iz))

! adjust for soil carbon organic content

! hcpct(iz) = (1.0 - soil_carbon(iz,vegtyp)) * hcpct(iz) + soil_carbon(iz,vegtyp) * soil_carbon_hcpct
df(iz) = (1.0 - soil_carbon(iz,vegtyp)) * df(iz) + soil_carbon(iz,vegtyp) * soil_carbon_df
end do

if ( parameters%urban_flag ) then
Expand Down Expand Up @@ -3003,6 +3020,10 @@ subroutine albedo (parameters,vegtyp ,ist ,ice ,nsoil , & !in
if (ib.eq.1) fsun = 0.
end do

! snow age

call snow_age (parameters,dt,tg,sneqvo,sneqv,tauss,fage)

if(cosz <= 0) goto 100

! weight reflectance/transmittance by lai and sai
Expand All @@ -3015,10 +3036,6 @@ subroutine albedo (parameters,vegtyp ,ist ,ice ,nsoil , & !in
tau(ib) = max(parameters%taul(ib)*wl+parameters%taus(ib)*ws, mpe)
end do

! snow age

call snow_age (parameters,dt,tg,sneqvo,sneqv,tauss,fage)

! snow albedos: only if cosz > 0 and fsno > 0

if(opt_alb == 1) &
Expand Down Expand Up @@ -9128,7 +9145,9 @@ subroutine groundwater(parameters,nsnow ,nsoil ,dt ,sice ,zsoil , & !in

! ka = hk(iwt)
! harmonic average, c.he changed based on gy niu's update
ka = 2.0*(hk(iwt)*parameters%dksat(iwt)*1.0e3) / (hk(iwt)+parameters%dksat(iwt)*1.0e3)
! ka = 2.0*(hk(iwt)*parameters%dksat(iwt)*1.0e3) / (hk(iwt)+parameters%dksat(iwt)*1.0e3)
! tried one suggesteed by gy niu
ka = 0.5*(hk(iwt)+parameters%dksat(iwt)*1.0e3)

wh_zwt = - zwt * 1.e3 !(mm)
wh = smpfz - znode(iwt)*1.e3 !(mm)
Expand Down