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

UFS-dev PR#14 #978

Merged
merged 18 commits into from
Nov 15, 2022
Merged
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/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