Skip to content

Commit

Permalink
Merge pull request #978 from grantfirl/ufs-dev-PR14
Browse files Browse the repository at this point in the history
UFS-dev PR#14
  • Loading branch information
grantfirl authored Nov 15, 2022
2 parents c348f3e + a733073 commit 6374c88
Show file tree
Hide file tree
Showing 53 changed files with 4,264 additions and 1,535 deletions.
2 changes: 1 addition & 1 deletion physics/GFS_MP_generic_post.F90
Original file line number Diff line number Diff line change
Expand Up @@ -249,7 +249,7 @@ subroutine GFS_MP_generic_post_run(
! Conversion factor from mm per day to m per physics timestep
tem = dtp * con_p001 / con_day

!> - For GFDL and Thompson MP scheme, determine convective snow by surface temperature;
!> - For GFDL, Thompson and NSSL MP schemes, determine convective snow by surface temperature;
!! and determine explicit rain/snow by snow/ice/graupel coming out directly from MP
!! and convective rainfall from the cumulus scheme if the surface temperature is below
!! \f$0^oC\f$.
Expand Down
8 changes: 4 additions & 4 deletions physics/GFS_radiation_surface.F90
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ end subroutine GFS_radiation_surface_init
!! \htmlinclude GFS_radiation_surface_run.html
!!
subroutine GFS_radiation_surface_run ( &
im, frac_grid, lslwr, lsswr, lsm, lsm_noahmp, lsm_ruc, &
im, nf_albd, frac_grid, lslwr, lsswr, lsm, lsm_noahmp, lsm_ruc, &
xlat, xlon, slmsk, lndp_type, n_var_lndp, sfc_alb_pert, &
lndp_var_list, lndp_prt_list, landfrac, snodl, snodi, sncovr, &
sncovr_ice, fice, zorl, hprime, tsfg, tsfa, tisfc, coszen, &
Expand All @@ -62,12 +62,12 @@ subroutine GFS_radiation_surface_run ( &
semisbase, semis, sfcalb, sfc_alb_dif, errmsg, errflg)

use module_radiation_surface, only: f_zero, f_one, &
epsln, NF_ALBD, &
epsln, &
setemis, setalb

implicit none

integer, intent(in) :: im
integer, intent(in) :: im, nf_albd
logical, intent(in) :: frac_grid, lslwr, lsswr, use_cice_alb, cplice
integer, intent(in) :: lsm, lsm_noahmp, lsm_ruc, lndp_type, n_var_lndp
real(kind=kind_phys), intent(in) :: min_seaice, min_lakeice
Expand Down Expand Up @@ -184,7 +184,7 @@ subroutine GFS_radiation_surface_run ( &
alvsf, alnsf, alvwf, alnwf, facsf, facwf, fice, tisfc, &
albdvis_lnd, albdnir_lnd, albivis_lnd, albinir_lnd, &
albdvis_ice, albdnir_ice, albivis_ice, albinir_ice, &
IM, sfc_alb_pert, lndp_alb, fracl, fraco, fraci, icy, & ! --- inputs
im, nf_albd, sfc_alb_pert, lndp_alb, fracl, fraco, fraci, icy, & ! --- inputs
sfcalb ) ! --- outputs

!> -# Approximate mean surface albedo from vis- and nir- diffuse values.
Expand Down
7 changes: 7 additions & 0 deletions physics/GFS_radiation_surface.meta
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,13 @@
dimensions = ()
type = integer
intent = in
[nf_albd]
standard_name = number_of_components_for_surface_albedo
long_name = number of IR/VIS/UV compinents for surface albedo
units = count
dimensions = ()
type = integer
intent = in
[frac_grid]
standard_name = flag_for_fractional_landmask
long_name = flag for fractional grid
Expand Down
7 changes: 4 additions & 3 deletions physics/GFS_rrtmg_pre.F90
Original file line number Diff line number Diff line change
Expand Up @@ -609,11 +609,10 @@ subroutine GFS_rrtmg_pre_run (im, levs, lm, lmk, lmp, lextop, ltp, &

endif ! end_if_ivflip

!> - Call module_radiation_aerosols::setaer(),to setup aerosols
!! property profile for radiation.

!check print *,' in grrad : calling setaer '

!> - Initialize mass mixing ratio of aerosols from NASA GOCART or NASA MERRA-2
if (ntchm>0 .and. iaermdl==2) then
do k=1,levs
do i=1,im
Expand All @@ -637,6 +636,8 @@ subroutine GFS_rrtmg_pre_run (im, levs, lm, lmk, lmp, lextop, ltp, &
endif


!> - Call module_radiation_aerosols::setaer() to setup aerosols
!! property profile for radiation.
call setaer (plvl, plyr, prslk1, tvly, rhly, slmsk, & ! --- inputs
tracer1, aer_nm, xlon, xlat, IM, LMK, LMP,&
lsswr,lslwr, &
Expand All @@ -654,7 +655,7 @@ subroutine GFS_rrtmg_pre_run (im, levs, lm, lmk, lmp, lextop, ltp, &
enddo
enddo

!> Aerosol direct feedback effect by smoke and dust
!> - Add aerosol direct feedback effect by smoke and dust
if(aero_dir_fdb) then ! add smoke/dust extinctions
do k = 1, LMK
do i = 1, IM
Expand Down
2 changes: 1 addition & 1 deletion physics/GFS_rrtmg_setup.F90
Original file line number Diff line number Diff line change
Expand Up @@ -325,7 +325,7 @@ end subroutine GFS_rrtmg_setup_finalize

! Private functions


!>Initialization of radiation calculations.
subroutine radinit( si, NLAY, imp_physics, me, ltp, lextop )
!...................................

Expand Down
63 changes: 33 additions & 30 deletions physics/bl_mynn_common.f90
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@
!! memory. This module is then used again in the MYNN-EDMF. All
!! MYNN-specific constants are declared globally in the main
!! module (module_bl_mynn) further below:

!>\ingroup gp_mynnedmf
!! Define Model-specific constants/parameters
module bl_mynn_common

!------------------------------------------
Expand All @@ -22,22 +25,22 @@ module bl_mynn_common
save

! To be specified from dycore
real(kind=kind_phys):: cp != 7.*r_d/2. (J/kg/K)
real(kind=kind_phys):: cpv != 4.*r_v (J/kg/K) Spec heat H2O gas
real(kind=kind_phys):: cice != 2106. (J/kg/K) Spec heat H2O ice
real(kind=kind_phys):: cliq != 4190. (J/kg/K) Spec heat H2O liq
real(kind=kind_phys):: p608 != R_v/R_d-1.
real(kind=kind_phys):: ep_2 != R_d/R_v
real(kind=kind_phys):: grav != accel due to gravity
real(kind=kind_phys):: karman != von Karman constant
real(kind=kind_phys):: t0c != temperature of water at freezing, 273.15 K
real(kind=kind_phys):: rcp != r_d/cp
real(kind=kind_phys):: r_d != 287. (J/kg/K) gas const dry air
real(kind=kind_phys):: r_v != 461.6 (J/kg/K) gas const water
real(kind=kind_phys):: xlf != 0.35E6 (J/kg) fusion at 0 C
real(kind=kind_phys):: xlv != 2.50E6 (J/kg) vaporization at 0 C
real(kind=kind_phys):: xls != 2.85E6 (J/kg) sublimation
real(kind=kind_phys):: rvovrd != r_v/r_d != 1.608
real(kind=kind_phys):: cp !<= 7.*r_d/2. (J/kg/K)
real(kind=kind_phys):: cpv !<= 4.*r_v (J/kg/K) Spec heat H2O gas
real(kind=kind_phys):: cice !<= 2106. (J/kg/K) Spec heat H2O ice
real(kind=kind_phys):: cliq !<= 4190. (J/kg/K) Spec heat H2O liq
real(kind=kind_phys):: p608 !<= R_v/R_d-1.
real(kind=kind_phys):: ep_2 !<= R_d/R_v
real(kind=kind_phys):: grav !<= accel due to gravity
real(kind=kind_phys):: karman !<= von Karman constant
real(kind=kind_phys):: t0c !<= temperature of water at freezing, 273.15 K
real(kind=kind_phys):: rcp !<= r_d/cp
real(kind=kind_phys):: r_d !<= 287. (J/kg/K) gas const dry air
real(kind=kind_phys):: r_v !<= 461.6 (J/kg/K) gas const water
real(kind=kind_phys):: xlf !<= 0.35E6 (J/kg) fusion at 0 C
real(kind=kind_phys):: xlv !<= 2.50E6 (J/kg) vaporization at 0 C
real(kind=kind_phys):: xls !<= 2.85E6 (J/kg) sublimation
real(kind=kind_phys):: rvovrd !<= r_v/r_d != 1.608

! Specified locally
real(kind=kind_phys),parameter:: zero = 0.0
Expand All @@ -46,22 +49,22 @@ module bl_mynn_common
real(kind=kind_phys),parameter:: two = 2.0
real(kind=kind_phys),parameter:: onethird = 1./3.
real(kind=kind_phys),parameter:: twothirds = 2./3.
real(kind=kind_phys),parameter:: tref = 300.0 ! reference temperature (K)
real(kind=kind_phys),parameter:: TKmin = 253.0 ! for total water conversion, Tripoli and Cotton (1981)
real(kind=kind_phys),parameter:: tref = 300.0 !< reference temperature (K)
real(kind=kind_phys),parameter:: TKmin = 253.0 !< for total water conversion, Tripoli and Cotton (1981)
real(kind=kind_phys),parameter:: p1000mb=100000.0
real(kind=kind_phys),parameter:: svp1 = 0.6112 !(kPa)
real(kind=kind_phys),parameter:: svp2 = 17.67 !(dimensionless)
real(kind=kind_phys),parameter:: svp3 = 29.65 !(K)
real(kind=kind_phys),parameter:: tice = 240.0 !-33 (C), temp at saturation w.r.t. ice
real(kind=kind_phys),parameter:: svp1 = 0.6112 !<(kPa)
real(kind=kind_phys),parameter:: svp2 = 17.67 !<(dimensionless)
real(kind=kind_phys),parameter:: svp3 = 29.65 !<(K)
real(kind=kind_phys),parameter:: tice = 240.0 !<-33 (C), temp at saturation w.r.t. ice

! To be derived in the init routine
real(kind=kind_phys):: ep_3 != 1.-ep_2 != 0.378
real(kind=kind_phys):: gtr != grav/tref
real(kind=kind_phys):: rk != cp/r_d
real(kind=kind_phys):: tv0 != p608*tref
real(kind=kind_phys):: tv1 != (1.+p608)*tref
real(kind=kind_phys):: xlscp != (xlv+xlf)/cp
real(kind=kind_phys):: xlvcp != xlv/cp
real(kind=kind_phys):: g_inv != 1./grav
real(kind=kind_phys):: ep_3 !<= 1.-ep_2 != 0.378
real(kind=kind_phys):: gtr !<= grav/tref
real(kind=kind_phys):: rk !<= cp/r_d
real(kind=kind_phys):: tv0 !<= p608*tref
real(kind=kind_phys):: tv1 !<= (1.+p608)*tref
real(kind=kind_phys):: xlscp !<= (xlv+xlf)/cp
real(kind=kind_phys):: xlvcp !<= xlv/cp
real(kind=kind_phys):: g_inv !<= 1./grav

end module bl_mynn_common
Loading

0 comments on commit 6374c88

Please sign in to comment.