Skip to content

Commit

Permalink
Merge pull request #1043 from grantfirl/ufs-dev-PR110
Browse files Browse the repository at this point in the history
UFS-dev PR#110
  • Loading branch information
grantfirl committed Feb 7, 2024
2 parents 867eff4 + 8e45bbd commit 0339aa9
Show file tree
Hide file tree
Showing 14 changed files with 5,357 additions and 854 deletions.
8 changes: 5 additions & 3 deletions physics/GFS_DCNV_generic_post.F90
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ subroutine GFS_DCNV_generic_post_run (im, levs, lssav, ldiag3d, qdiag3d, ras, &
index_of_temperature, index_of_x_wind, index_of_y_wind, ntqv, gq0, save_q, &
cnvw, cnvc, cnvw_phy_f3d, cnvc_phy_f3d, flag_for_dcnv_generic_tend, &
ntcw,ntiw,ntclamt,ntrw,ntsw,ntrnc,ntsnc,ntgl, &
ntgnc, nthl, nthnc, nthv, ntgv, ntsigma, ntrac,clw, &
ntgnc, nthl, nthnc, nthv, ntgv, ntrz, ntgz, nthz, ntsigma, ntrac,clw, &
satmedmf, trans_trac, errmsg, errflg)


Expand Down Expand Up @@ -44,8 +44,9 @@ subroutine GFS_DCNV_generic_post_run (im, levs, lssav, ldiag3d, qdiag3d, ras, &
real(kind=kind_phys), dimension(:,:,:), intent(inout) :: dtend
integer, intent(in) :: dtidx(:,:), index_of_process_dcnv, index_of_temperature, &
index_of_x_wind, index_of_y_wind, ntqv
integer, intent(in) :: ntcw,ntiw,ntclamt,ntrw,ntsw,ntrnc,ntsnc,ntgl, &
ntgnc, nthl, nthnc, nthv, ntgv, ntsigma, ntrac
integer, intent(in) :: ntcw,ntiw,ntclamt,ntrw,ntsw,ntrnc,ntsnc,ntgl, &
ntgnc, nthl, nthnc, nthv, ntgv, ntrz, ntgz, nthz, &
ntsigma, ntrac
real(kind=kind_phys), dimension(:,:,:), intent(in) :: clw


Expand Down Expand Up @@ -112,6 +113,7 @@ subroutine GFS_DCNV_generic_post_run (im, levs, lssav, ldiag3d, qdiag3d, ras, &
n /= ntrw .and. n /= ntsw .and. n /= ntrnc .and. &
n /= ntsnc .and. n /= ntgl .and. n /= ntgnc .and. &
n /= nthl .and. n /= nthnc .and. n /= nthv .and. &
n /= ntrz .and. n /= ntgz .and. n /= nthz .and. &
n /= ntgv .and. n /= ntsigma) then
tracers = tracers + 1
idtend = dtidx(100+n,index_of_process_dcnv)
Expand Down
21 changes: 21 additions & 0 deletions physics/GFS_DCNV_generic_post.meta
Original file line number Diff line number Diff line change
Expand Up @@ -454,6 +454,27 @@
dimensions = ()
type = integer
intent = in
[ntrz]
standard_name = index_of_reflectivity_of_rain_in_tracer_concentration_array
long_name = tracer index for rain reflectivity
units = index
dimensions = ()
type = integer
intent = in
[ntgz]
standard_name = index_of_reflectivity_of_graupel_in_tracer_concentration_array
long_name = tracer index for graupel reflectivity
units = index
dimensions = ()
type = integer
intent = in
[nthz]
standard_name = index_of_reflectivity_of_hail_in_tracer_concentration_array
long_name = tracer index for hail reflectivity
units = index
dimensions = ()
type = integer
intent = in
[clw]
standard_name = convective_transportable_tracers
long_name = array to contain cloud water and other convective trans. tracers
Expand Down
7 changes: 5 additions & 2 deletions physics/GFS_DCNV_generic_pre.F90
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ subroutine GFS_DCNV_generic_pre_run (im, levs, ldiag3d, qdiag3d, do_cnvgwd, cplc
gu0, gv0, gt0, gq0, nsamftrac, ntqv, &
save_u, save_v, save_t, save_q, clw, &
ntcw,ntiw,ntclamt,ntrw,ntsw,ntrnc,ntsnc,ntgl, &
ntgnc, nthl, nthnc, nthv, ntgv,ntsigma, &
ntgnc, nthl, nthnc, nthv, ntgv, &
ntrz, ntgz, nthz, ntsigma, &
cscnv, satmedmf, trans_trac, ras, ntrac, &
dtidx, index_of_process_dcnv, errmsg, errflg)

Expand All @@ -22,7 +23,8 @@ subroutine GFS_DCNV_generic_pre_run (im, levs, ldiag3d, qdiag3d, do_cnvgwd, cplc
implicit none

integer, intent(in) :: im, levs, nsamftrac, ntqv, index_of_process_dcnv, dtidx(:,:), &
ntcw,ntiw,ntclamt,ntrw,ntsw,ntrnc,ntsnc,ntgl,ntrac,ntgnc,nthl,nthnc,nthv,ntgv,ntsigma
ntcw,ntiw,ntclamt,ntrw,ntsw,ntrnc,ntsnc,ntgl,ntrac,ntgnc,nthl,nthnc,nthv,ntgv, &
ntrz, ntgz, nthz, ntsigma
logical, intent(in) :: ldiag3d, qdiag3d, do_cnvgwd, cplchm
real(kind=kind_phys), dimension(:,:), intent(in) :: gu0
real(kind=kind_phys), dimension(:,:), intent(in) :: gv0
Expand Down Expand Up @@ -68,6 +70,7 @@ subroutine GFS_DCNV_generic_pre_run (im, levs, ldiag3d, qdiag3d, do_cnvgwd, cplc
n /= ntrw .and. n /= ntsw .and. n /= ntrnc .and. &
n /= ntsnc .and. n /= ntgl .and. n /= ntgnc .and. &
n /= nthl .and. n /= nthnc .and. n /= nthv .and. &
n /= ntrz .and. n /= ntgz .and. n /= nthz .and. &
n /= ntgv .and. n/= ntsigma) then
tracers = tracers + 1
if(dtidx(100+n,index_of_process_dcnv)>0) then
Expand Down
21 changes: 21 additions & 0 deletions physics/GFS_DCNV_generic_pre.meta
Original file line number Diff line number Diff line change
Expand Up @@ -267,6 +267,27 @@
dimensions = ()
type = integer
intent = in
[ntrz]
standard_name = index_of_reflectivity_of_rain_in_tracer_concentration_array
long_name = tracer index for rain reflectivity
units = index
dimensions = ()
type = integer
intent = in
[ntgz]
standard_name = index_of_reflectivity_of_graupel_in_tracer_concentration_array
long_name = tracer index for graupel reflectivity
units = index
dimensions = ()
type = integer
intent = in
[nthz]
standard_name = index_of_reflectivity_of_hail_in_tracer_concentration_array
long_name = tracer index for hail reflectivity
units = index
dimensions = ()
type = integer
intent = in
[clw]
standard_name = convective_transportable_tracers
long_name = array to contain cloud water and other convective trans. tracers
Expand Down
29 changes: 22 additions & 7 deletions physics/GFS_PBL_generic_post.F90
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ module GFS_PBL_generic_post
!!
subroutine GFS_PBL_generic_post_run (im, levs, nvdiff, ntrac, &
ntqv, ntcw, ntiw, ntrw, ntsw, ntlnc, ntinc, ntrnc, ntsnc, ntgnc, ntwa, ntia, ntgl, ntoz, ntke, ntkev,nqrimef, &
trans_aero, ntchs, ntchm, ntccn, nthl, nthnc, ntgv, nthv, &
trans_aero, ntchs, ntchm, ntccn, nthl, nthnc, ntgv, nthv, ntrz, ntgz, nthz, &
imp_physics, imp_physics_gfdl, imp_physics_thompson, imp_physics_wsm6, imp_physics_zhao_carr, imp_physics_mg, &
imp_physics_fer_hires, imp_physics_nssl, nssl_ccn_on, ltaerosol, mraerosol, nssl_hail_on, &
imp_physics_fer_hires, imp_physics_nssl, nssl_ccn_on, ltaerosol, mraerosol, nssl_hail_on, nssl_3moment, &
cplflx, cplaqm, cplchm, lssav, flag_for_pbl_generic_tend, ldiag3d, lsidea, hybedmf, do_shoc, satmedmf, &
shinhong, do_ysu, dvdftra, dusfc1, dvsfc1, dtsfc1, dqsfc1, dtf, dudt, dvdt, dtdt, htrsw, htrlw, xmu, &
dqdt, dusfc_cpl, dvsfc_cpl, dtsfc_cpl, dtend, dtidx, index_of_temperature, index_of_x_wind, index_of_y_wind, &
Expand All @@ -30,12 +30,12 @@ subroutine GFS_PBL_generic_post_run (im, levs, nvdiff, ntrac,
integer, parameter :: kp = kind_phys
integer, intent(in) :: im, levs, nvdiff, ntrac, ntchs, ntchm, kdt
integer, intent(in) :: ntqv, ntcw, ntiw, ntrw, ntsw, ntlnc, ntinc, ntrnc, ntsnc, ntgnc, ntwa, ntia, ntgl, ntoz, ntke, ntkev, nqrimef
integer, intent(in) :: ntccn, nthl, nthnc, ntgv, nthv
integer, intent(in) :: ntccn, nthl, nthnc, ntgv, nthv, ntrz, ntgz, nthz
logical, intent(in) :: trans_aero
integer, intent(in) :: imp_physics, imp_physics_gfdl, imp_physics_thompson, imp_physics_wsm6
integer, intent(in) :: imp_physics_zhao_carr, imp_physics_mg, imp_physics_fer_hires
integer, intent(in) :: imp_physics_nssl
logical, intent(in) :: nssl_ccn_on, nssl_hail_on
logical, intent(in) :: nssl_ccn_on, nssl_hail_on, nssl_3moment
logical, intent(in) :: ltaerosol, cplflx, cplaqm, cplchm, lssav, ldiag3d, lsidea, use_med_flux, mraerosol
logical, intent(in) :: hybedmf, do_shoc, satmedmf, shinhong, do_ysu

Expand Down Expand Up @@ -270,8 +270,16 @@ subroutine GFS_PBL_generic_post_run (im, levs, nvdiff, ntrac,
dqdt(i,k,ntgv) = dvdftra(i,k,14)
dqdt(i,k,nthv) = dvdftra(i,k,15)
dqdt(i,k,ntoz) = dvdftra(i,k,16)
n = 16
IF ( nssl_ccn_on ) THEN
dqdt(i,k,ntccn) = dvdftra(i,k,17)
dqdt(i,k,ntccn) = dvdftra(i,k,n+1)
n = n+1
ENDIF
IF ( nssl_3moment ) THEN
dqdt(i,k,ntrz) = dvdftra(i,k,n+1)
dqdt(i,k,ntgz) = dvdftra(i,k,n+2)
dqdt(i,k,nthz) = dvdftra(i,k,n+3)
n = n+3
ENDIF
enddo
enddo
Expand All @@ -292,9 +300,16 @@ subroutine GFS_PBL_generic_post_run (im, levs, nvdiff, ntrac,
dqdt(i,k,ntsnc) = dvdftra(i,k,10)
dqdt(i,k,ntgnc) = dvdftra(i,k,11)
dqdt(i,k,ntgv) = dvdftra(i,k,12)
dqdt(i,k,ntoz) = dvdftra(i,k,13)
dqdt(i,k,ntoz) = dvdftra(i,k,13)
n = 13
IF ( nssl_ccn_on ) THEN
dqdt(i,k,ntccn) = dvdftra(i,k,14)
dqdt(i,k,ntccn) = dvdftra(i,k,n+1)
n = n+1
ENDIF
IF ( nssl_3moment ) THEN
dqdt(i,k,ntrz) = dvdftra(i,k,n+1)
dqdt(i,k,ntgz) = dvdftra(i,k,n+2)
n = n+2
ENDIF
enddo
enddo
Expand Down
28 changes: 28 additions & 0 deletions physics/GFS_PBL_generic_post.meta
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,27 @@
dimensions = ()
type = integer
intent = in
[ntrz]
standard_name = index_of_reflectivity_of_rain_in_tracer_concentration_array
long_name = tracer index for rain reflectivity
units = index
dimensions = ()
type = integer
intent = in
[ntgz]
standard_name = index_of_reflectivity_of_graupel_in_tracer_concentration_array
long_name = tracer index for graupel reflectivity
units = index
dimensions = ()
type = integer
intent = in
[nthz]
standard_name = index_of_reflectivity_of_hail_in_tracer_concentration_array
long_name = tracer index for hail reflectivity
units = index
dimensions = ()
type = integer
intent = in
[imp_physics]
standard_name = control_for_microphysics_scheme
long_name = choice of microphysics scheme
Expand Down Expand Up @@ -295,6 +316,13 @@
dimensions = ()
type = logical
intent = in
[nssl_3moment]
standard_name = nssl_3moment
long_name = 3-moment activation flag in NSSL microphysics scheme
units = flag
dimensions = ()
type = logical
intent = in
[cplflx]
standard_name = flag_for_surface_flux_coupling
long_name = flag controlling cplflx collection (default off)
Expand Down
49 changes: 32 additions & 17 deletions physics/GFS_PBL_generic_pre.F90
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@ module GFS_PBL_generic_pre
subroutine GFS_PBL_generic_pre_run (im, levs, nvdiff, ntrac, rtg_ozone_index, &
ntqv, ntcw, ntiw, ntrw, ntsw, ntlnc, ntinc, ntrnc, ntsnc, ntgnc, &
ntwa, ntia, ntgl, ntoz, ntke, ntkev, nqrimef, trans_aero, ntchs, ntchm, &
ntccn, nthl, nthnc, ntgv, nthv, &
ntccn, nthl, nthnc, ntgv, nthv, ntrz, ntgz, nthz, &
imp_physics, imp_physics_gfdl, imp_physics_thompson, imp_physics_wsm6, &
imp_physics_zhao_carr, imp_physics_mg, imp_physics_fer_hires, imp_physics_nssl, &
ltaerosol, mraerosol, nssl_ccn_on, nssl_hail_on, &
ltaerosol, mraerosol, nssl_ccn_on, nssl_hail_on, nssl_3moment, &
hybedmf, do_shoc, satmedmf, qgrs, vdftra, save_u, save_v, save_t, save_q, &
flag_for_pbl_generic_tend, ldiag3d, qdiag3d, lssav, ugrs, vgrs, tgrs, errmsg, errflg)

Expand All @@ -29,13 +29,13 @@ subroutine GFS_PBL_generic_pre_run (im, levs, nvdiff, ntrac, rtg_ozone_index,
integer, intent(in) :: im, levs, nvdiff, ntrac
integer, intent(in) :: ntqv, ntcw, ntiw, ntrw, ntsw, ntlnc, ntinc, ntrnc, ntsnc, ntgnc
integer, intent(in) :: ntwa, ntia, ntgl, ntoz, ntke, ntkev, nqrimef,ntchs, ntchm
integer, intent(in) :: ntccn, nthl, nthnc, ntgv, nthv
integer, intent(in) :: ntccn, nthl, nthnc, ntgv, nthv, ntrz, ntgz, nthz
logical, intent(in) :: trans_aero, ldiag3d, qdiag3d, lssav
integer, intent(in) :: imp_physics, imp_physics_gfdl, imp_physics_thompson, imp_physics_wsm6
integer, intent(in) :: imp_physics_zhao_carr, imp_physics_mg, imp_physics_fer_hires
logical, intent(in) :: ltaerosol, hybedmf, do_shoc, satmedmf, flag_for_pbl_generic_tend, mraerosol
integer, intent(in) :: imp_physics_nssl
logical, intent(in) :: nssl_hail_on, nssl_ccn_on
logical, intent(in) :: nssl_hail_on, nssl_ccn_on, nssl_3moment

real(kind=kind_phys), dimension(:,:,:), intent(in) :: qgrs
real(kind=kind_phys), dimension(:,:), intent(in) :: ugrs, vgrs, tgrs
Expand Down Expand Up @@ -215,15 +215,23 @@ subroutine GFS_PBL_generic_pre_run (im, levs, nvdiff, ntrac, rtg_ozone_index,
vdftra(i,k,7) = qgrs(i,k,nthl)
vdftra(i,k,8) = qgrs(i,k,ntlnc)
vdftra(i,k,9) = qgrs(i,k,ntinc)
vdftra(i,k,10) = qgrs(i,k,ntrnc)
vdftra(i,k,11) = qgrs(i,k,ntsnc)
vdftra(i,k,12) = qgrs(i,k,ntgnc)
vdftra(i,k,13) = qgrs(i,k,nthnc)
vdftra(i,k,14) = qgrs(i,k,ntgv)
vdftra(i,k,15) = qgrs(i,k,nthv)
vdftra(i,k,16) = qgrs(i,k,ntoz)
vdftra(i,k,10) = qgrs(i,k,ntrnc)
vdftra(i,k,11) = qgrs(i,k,ntsnc)
vdftra(i,k,12) = qgrs(i,k,ntgnc)
vdftra(i,k,13) = qgrs(i,k,nthnc)
vdftra(i,k,14) = qgrs(i,k,ntgv)
vdftra(i,k,15) = qgrs(i,k,nthv)
vdftra(i,k,16) = qgrs(i,k,ntoz)
n = 16
IF ( nssl_ccn_on ) THEN
vdftra(i,k,17) = qgrs(i,k,ntccn)
vdftra(i,k,n+1) = qgrs(i,k,ntccn)
n = n+1
ENDIF
IF ( nssl_3moment ) THEN
vdftra(i,k,n+1) = qgrs(i,k,ntrz)
vdftra(i,k,n+2) = qgrs(i,k,ntgz)
vdftra(i,k,n+3) = qgrs(i,k,nthz)
n = n+3
ENDIF
enddo
enddo
Expand All @@ -241,12 +249,19 @@ subroutine GFS_PBL_generic_pre_run (im, levs, nvdiff, ntrac, rtg_ozone_index,
vdftra(i,k,7) = qgrs(i,k,ntlnc)
vdftra(i,k,8) = qgrs(i,k,ntinc)
vdftra(i,k,9) = qgrs(i,k,ntrnc)
vdftra(i,k,10) = qgrs(i,k,ntsnc)
vdftra(i,k,11) = qgrs(i,k,ntgnc)
vdftra(i,k,12) = qgrs(i,k,ntgv)
vdftra(i,k,13) = qgrs(i,k,ntoz)
vdftra(i,k,10) = qgrs(i,k,ntsnc)
vdftra(i,k,11) = qgrs(i,k,ntgnc)
vdftra(i,k,12) = qgrs(i,k,ntgv)
vdftra(i,k,13) = qgrs(i,k,ntoz)
n = 13
IF ( nssl_ccn_on ) THEN
vdftra(i,k,14) = qgrs(i,k,ntccn)
vdftra(i,k,n+1) = qgrs(i,k,ntccn)
n = n+1
ENDIF
IF ( nssl_3moment ) THEN
vdftra(i,k,n+1) = qgrs(i,k,ntrz)
vdftra(i,k,n+2) = qgrs(i,k,ntgz)
n = n+2
ENDIF
enddo
enddo
Expand Down
28 changes: 28 additions & 0 deletions physics/GFS_PBL_generic_pre.meta
Original file line number Diff line number Diff line change
Expand Up @@ -217,6 +217,27 @@
dimensions = ()
type = integer
intent = in
[ntrz]
standard_name = index_of_reflectivity_of_rain_in_tracer_concentration_array
long_name = tracer index for rain reflectivity
units = index
dimensions = ()
type = integer
intent = in
[ntgz]
standard_name = index_of_reflectivity_of_graupel_in_tracer_concentration_array
long_name = tracer index for graupel reflectivity
units = index
dimensions = ()
type = integer
intent = in
[nthz]
standard_name = index_of_reflectivity_of_hail_in_tracer_concentration_array
long_name = tracer index for hail reflectivity
units = index
dimensions = ()
type = integer
intent = in
[imp_physics]
standard_name = control_for_microphysics_scheme
long_name = choice of microphysics scheme
Expand Down Expand Up @@ -301,6 +322,13 @@
dimensions = ()
type = logical
intent = in
[nssl_3moment]
standard_name = nssl_3moment
long_name = 3-moment activation flag in NSSL microphysics scheme
units = flag
dimensions = ()
type = logical
intent = in
[hybedmf]
standard_name = flag_for_hybrid_edmf_pbl_scheme
long_name = flag for hybrid edmf pbl scheme (moninedmf)
Expand Down
17 changes: 11 additions & 6 deletions physics/docs/library.bib
Original file line number Diff line number Diff line change
Expand Up @@ -3760,8 +3760,6 @@ @inproceedings{yudin_et_al_2019

@article{mansell_2013,
author = {Edward R. Mansell and Conrad L. Ziegler},
date-added = {2015-02-26 22:32:59 +0000},
date-modified = {2020-02-10 23:06:41 +0000},
doi = {10.1175/JAS-D-12-0264.1},
journal = {Journal of the Atmospheric Sciences},
keywords = {storm electrification, microphysics 2-moment},
Expand All @@ -3774,8 +3772,6 @@ @article{mansell_2013

@article{mansell_2010,
author = {Edward R. Mansell},
date-added = {2011-02-22 10:34:11 -0600},
date-modified = {2011-02-22 10:35:34 -0600},
doi = {10.1175/2010JAS3341.1},
journal = {Journal of the Atmospheric Sciences},
keywords = {advection, microphysics 2-moment},
Expand All @@ -3787,8 +3783,6 @@ @article{mansell_2010

@article{mansell_etal_2010,
author = {E. R. Mansell and C. L. Ziegler and E. C. Bruning},
date-added = {2007-08-20 15:44:13 -0500},
date-modified = {2010-04-13 16:55:16 -0500},
doi = {10.1175/2009JAS2965.1},
journal = {Journal of the Atmospheric Sciences},
keywords = {storm electrification, microphysics 2-moment},
Expand All @@ -3798,6 +3792,17 @@ @article{mansell_etal_2010
year = {2010},
bdsk-url-1 = {https://doi.org/10.1175/2009JAS2965.1}}

@article{mansell:2020,
Author = {Edward R. Mansell and Dawson, II, Daniel T. and Jerry M. Straka},
Doi = {10.1175/JAS-D-19-0268.1},
Journal = jas,
Keywords = {microphysics 3-moment},
Pages = {3361-3385},
Title = {Bin-emulating Hail Melting in 3-moment bulk microphysics},
Volume = {77},
Year = {2020},
Bdsk-Url-1 = {https://dx.doi.org/10.1175/JAS-D-12-0264.1},

@inproceedings{yudin_et_al_2020,
author = {Yudin, V. A. and Yang, F. and Karol, S. I. and Fuller-Rowell T. J. and Kubaryk, A. and Juang, H. and Kar, S. and Alpert, J. C. and Li, Z.},
booktitle = {1st UFS Users' Workshop},
Expand Down
Loading

0 comments on commit 0339aa9

Please sign in to comment.