Skip to content
Closed
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
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ src/operators/*.f90
# Executables
*_model
build_tables
build_tables_tempo

# NetCDF Files
*.nc
Expand Down
3 changes: 1 addition & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
MPAS-v8.2.2-2.6

MPAS-v8.2.2-2.11

The Model for Prediction Across Scales (MPAS) is a collaborative project for
developing atmosphere, ocean, and other earth-system simulation components for
Expand Down
16 changes: 15 additions & 1 deletion src/core_atmosphere/Registry.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
<registry model="mpas" core="atmosphere" core_abbrev="atm" version="8.2.2-2.11">

<registry model="mpas" core="atmosphere" core_abbrev="atm" version="8.2.2-2.6">

<!-- **************************************************************************************** -->
<!-- ************************************** Dimensions ************************************** -->
Expand Down Expand Up @@ -1137,6 +1137,8 @@
<var name="maxmf"/>
<var name="maxwidth"/>
<var name="ztop_plume"/>
<var name="excess_h"/>
<var name="excess_q"/>
<var name="hpbl"/>
<var name="cldfrac_cu"/>
<var name="refl10cm_cu"/>
Expand Down Expand Up @@ -2748,6 +2750,10 @@
description="accumulated total grid-scale precipitation"
packages="mp_kessler_in;mp_thompson_in;mp_thompson_aers_in;mp_wsm6_in;mp_nssl2m_in;mp_tempo_in"/>

<var name="frainnc" type="real" dimensions="nCells Time" units="mm"
description="accumulated total grid-scale freezing rain"
packages="mp_tempo_in"/>

<var name="snownc" type="real" dimensions="nCells Time" units="mm"
description="accumulated grid-scale precipitation of snow"
packages="mp_thompson_in;mp_thompson_aers_in;mp_wsm6_in;mp_nssl2m_in;mp_tempo_in"/>
Expand Down Expand Up @@ -3042,6 +3048,14 @@
description="Height of highest penetrating plume"
packages="bl_mynnedmf_in"/>

<var name="excess_h" type="real" dimensions="nCells Time" units="K"
description="Maximum excess heat added to plumes"
packages="bl_mynnedmf_in"/>

<var name="excess_q" type="real" dimensions="nCells Time" units="kg kg^{-1}"
description="Maximum excess moisture added to plumes"
packages="bl_mynnedmf_in"/>

<!-- MYJ PBL SCHEME: -->
<var name="chlowq" type="real" dimensions="nCells Time" units=""
description=""
Expand Down
16 changes: 10 additions & 6 deletions src/core_atmosphere/physics/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ endif

all:
./../tools/manage_externals/checkout_externals --externals ./../Externals.cfg
$(MAKE) lookup_tables core_physics_init core_physics_mmm core_microphysics core_UGWP core_mynnedmf core_physics_wrf core_physics_noahmp core_physics
$(MAKE) lookup_tables core_physics_init core_physics_mmm core_microphysics core_UGWP core_mynnedmf core_physics_wrf core_physics_noahmp core_lsm_ruc core_physics

dummy:
echo "****** compiling physics ******"
Expand Down Expand Up @@ -72,6 +72,9 @@ core_UGWP: core_physics_init
core_mynnedmf: core_physics_init core_physics_mmm
(cd MYNN-EDMF; cp ./MPAS/Makefile .; cp ./MPAS/module_bl_mynnedmf_driver.F90 .; cp ./MPAS/module_bl_mynnedmf_common.F90 .; $(MAKE) all)

core_lsm_ruc: core_physics_init core_physics_mmm
(cd physics_lsm_ruc; cp ./MPAS/Makefile .; cp ./MPAS/module_ruc_land.F90 .; cp ./MPAS/module_ruc_ice.F90 .; cp ./MPAS/module_sf_sfcdiags_ruclsm.F .; $(MAKE) all COREDEF="$(COREDEF)")

core_physics_wrf: core_physics_init core_physics_mmm core_UGWP
(cd physics_wrf; $(MAKE) all COREDEF="$(COREDEF)")

Expand All @@ -82,7 +85,7 @@ core_physics_noahmp:

core_physics_init: $(OBJS_init)

core_physics: core_microphysics core_mynnedmf core_physics_wrf core_physics_noahmp
core_physics: core_microphysics core_mynnedmf core_lsm_ruc core_physics_wrf core_physics_noahmp
($(MAKE) phys_interface COREDEF="$(COREDEF)")
ar -ru libphys.a $(OBJS_init) $(OBJS)
($(MAKE) -C ./physics_mmm -f Makefile.mpas physics_mmm_lib)
Expand Down Expand Up @@ -276,6 +279,7 @@ clean:
( cd physics_noahmp/utility; $(MAKE) clean )
( cd TEMPO; $(MAKE) clean )
( cd UGWP; $(MAKE) clean )
( cd physics_lsm_ruc; $(MAKE) clean )
( cd MYNN-EDMF; cp ./MPAS/Makefile .; $(MAKE) clean )
@# Certain systems with intel compilers generate *.i files
@# This removes them during the clean process
Expand All @@ -285,16 +289,16 @@ clean:
$(RM) $@ $*.mod
ifeq "$(GEN_F90)" "true"
$(CPP) $(CPPFLAGS) $(COREDEF) $(HYDROSTATIC) $(CPPINCLUDES) $< > $*.f90
$(FC) $(FFLAGS) -c $*.f90 $(FCINCLUDES) -I./physics_mmm -I./physics_wrf -I./physics_noahmp -I./physics_noahmp/utility -I./physics_noahmp/drivers/mpas -I./physics_noahmp/src -I./TEMPO -I./UGWP -I./MYNN-EDMF -I.. -I../../framework -I../../external/esmf_time_f90
$(FC) $(FFLAGS) -c $*.f90 $(FCINCLUDES) -I./physics_mmm -I./physics_wrf -I./physics_noahmp -I./physics_noahmp/utility -I./physics_noahmp/drivers/mpas -I./physics_noahmp/src -I./TEMPO -I./UGWP -I./physics_lsm_ruc -I./MYNN-EDMF -I.. -I../../framework -I../../external/esmf_time_f90
else
$(FC) $(CPPFLAGS) $(COREDEF) $(HYDROSATIC) $(FFLAGS) -c $*.F $(CPPINCLUDES) $(FCINCLUDES) -I./physics_mmm -I./physics_wrf -I./physics_noahmp -I./physics_noahmp/utility -I./physics_noahmp/drivers/mpas -I./physics_noahmp/src -I./TEMPO -I./UGWP -I./MYNN-EDMF -I.. -I../../framework -I../../external/esmf_time_f90
$(FC) $(CPPFLAGS) $(COREDEF) $(HYDROSATIC) $(FFLAGS) -c $*.F $(CPPINCLUDES) $(FCINCLUDES) -I./physics_mmm -I./physics_wrf -I./physics_noahmp -I./physics_noahmp/utility -I./physics_noahmp/drivers/mpas -I./physics_noahmp/src -I./TEMPO -I./UGWP -I./physics_lsm_ruc -I./MYNN-EDMF -I.. -I../../framework -I../../external/esmf_time_f90
endif

.F90.o:
$(RM) $@ $*.mod
ifeq "$(GEN_F90)" "true"
$(CPP) $(CPPFLAGS) $(COREDEF) $(HYDROSTATIC) $(CPPINCLUDES) $< > $*.f90
$(FC) $(FFLAGS) -c $*.f90 $(FCINCLUDES) -I./physics_mmm -I./physics_wrf -I./TEMPO -I./UGWP -I./MYNN-EDMF -I.. -I../../framework -I../../external/esmf_time_f90
$(FC) $(FFLAGS) -c $*.f90 $(FCINCLUDES) -I./physics_mmm -I./physics_wrf -I./TEMPO -I./UGWP -I./physics_lsm_ruc -I./MYNN-EDMF -I.. -I../../framework -I../../external/esmf_time_f90
else
$(FC) $(CPPFLAGS) $(COREDEF) $(HYDROSATIC) $(FFLAGS) -c $*.F90 $(CPPINCLUDES) $(FCINCLUDES) -I./physics_mmm -I./physics_wrf -I./TEMPO -I./UGWP -I./MYNN-EDMF -I.. -I../../framework -I../../external/esmf_time_f90
$(FC) $(CPPFLAGS) $(COREDEF) $(HYDROSATIC) $(FFLAGS) -c $*.F90 $(CPPINCLUDES) $(FCINCLUDES) -I./physics_mmm -I./physics_wrf -I./TEMPO -I./UGWP -I./physics_lsm_ruc -I./MYNN-EDMF -I.. -I../../framework -I../../external/esmf_time_f90
endif
5 changes: 3 additions & 2 deletions src/core_atmosphere/physics/mpas_atmphys_driver_lsm.F
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,8 @@ module mpas_atmphys_driver_lsm
logical,parameter:: myj = .false. !true if using Mellor-Yamada PBL scheme.
logical,parameter:: frpcpn = .false.
logical :: rdlai2d = .false.

logical,parameter:: frpcpn_ruc = .true. ! should be true with RUC LSM

!urban physics: MPAS does not plan to run the urban physics option.
integer,parameter:: sf_urban_physics = 0 !activate urban canopy model (=0: no urban canopy)

Expand Down Expand Up @@ -999,7 +1000,7 @@ subroutine driver_lsm(itimestep,configs,mesh,diag_physics,sfc_input,its,ite)
sfcexc = sfcexc_p , sfcevp = sfcevp_p , myjpbl = myjpbl, &
dt = dt_pbl , ktau = itimestep , nsl = num_soils, &
rainbl = rainbl_p , snow = snow_p , snowh = snowh_p, &
snowc = snowc_p , frzfrac = sr_p , frpcpn = frpcpn, &
snowc = snowc_p , frzfrac = sr_p , frpcpn = frpcpn_ruc, &
z3d = dz_p , p8w = pres2_hyd_p , t3d = t_p, &
qv3d = qv_p , qc3d = qc_p , rho3d = rho_p, &
glw = glw_p , gsw = gsw_p , emiss = sfc_emiss_p, &
Expand Down
52 changes: 46 additions & 6 deletions src/core_atmosphere/physics/mpas_atmphys_driver_microphysics.F
Original file line number Diff line number Diff line change
Expand Up @@ -195,6 +195,7 @@ subroutine allocate_microphysics(configs)
if(.not.allocated(nr_p) ) allocate(nr_p(ims:ime,kms:kme,jms:jme))
if(.not.allocated(refl10cm_p) ) allocate(refl10cm_p(ims:ime,kms:kme,jms:jme) )
if(.not.allocated(refl10cm_1km_p) ) allocate(refl10cm_1km_p(ims:ime,jms:jme) )
if(.not.allocated(frainnc_p) ) allocate(frainnc_p(ims:ime,jms:jme) )

! Allocate TEMPO options based on config flags insead of adding more nested select cases
! These flags are associated with appropriate packages in mpas_atmphys_packages.F
Expand Down Expand Up @@ -345,6 +346,7 @@ subroutine deallocate_microphysics(configs)
if(allocated(nr_p) ) deallocate(nr_p )
if(allocated(refl10cm_p) ) deallocate(refl10cm_p )
if(allocated(refl10cm_1km_p)) deallocate(refl10cm_1km_p)
if(allocated(frainnc_p) ) deallocate(frainnc_p)

if (config_tempo_hailaware) then
if(allocated(ng_p) ) deallocate(ng_p )
Expand Down Expand Up @@ -590,7 +592,7 @@ subroutine driver_microphysics(configs,mesh,state,time_lev,diag,diag_physics,ten
re_cloud = recloud_p , re_ice = reice_p , re_snow = resnow_p , &
has_reqc = has_reqc , has_reqi = has_reqi , has_reqs = has_reqs , &
!! ntc = ntc_p , muc = muc_p , &
refl_10cm = refl10cm_p , &
refl_10cm = refl10cm_p , frainnc = frainnc_p , &
ids = ids , ide = ide , jds = jds , jde = jde , kds = kds , kde = kde , &
ims = ims , ime = ime , jms = jms , jme = jme , kms = kms , kme = kme , &
its = its , ite = ite , jts = jts , jte = jte , kts = kts , kte = kte &
Expand All @@ -612,7 +614,7 @@ subroutine driver_microphysics(configs,mesh,state,time_lev,diag,diag_physics,ten
re_cloud = recloud_p , re_ice = reice_p , re_snow = resnow_p , &
has_reqc = has_reqc , has_reqi = has_reqi , has_reqs = has_reqs , &
!! ntc = ntc_p , muc = muc_p , &
refl_10cm = refl10cm_p , &
refl_10cm = refl10cm_p , frainnc = frainnc_p , &
ids = ids , ide = ide , jds = jds , jde = jde , kds = kds , kde = kde , &
ims = ims , ime = ime , jms = jms , jme = jme , kms = kms , kme = kme , &
its = its , ite = ite , jts = jts , jte = jte , kts = kts , kte = kte &
Expand All @@ -633,7 +635,7 @@ subroutine driver_microphysics(configs,mesh,state,time_lev,diag,diag_physics,ten
re_cloud = recloud_p , re_ice = reice_p , re_snow = resnow_p , &
has_reqc = has_reqc , has_reqi = has_reqi , has_reqs = has_reqs , &
!! ntc = ntc_p , muc = muc_p , &
refl_10cm = refl10cm_p , &
refl_10cm = refl10cm_p , frainnc = frainnc_p , &
ids = ids , ide = ide , jds = jds , jde = jde , kds = kds , kde = kde , &
ims = ims , ime = ime , jms = jms , jme = jme , kms = kms , kme = kme , &
its = its , ite = ite , jts = jts , jte = jte , kts = kts , kte = kte &
Expand All @@ -657,7 +659,7 @@ subroutine driver_microphysics(configs,mesh,state,time_lev,diag,diag_physics,ten
re_cloud = recloud_p , re_ice = reice_p , re_snow = resnow_p , &
has_reqc = has_reqc , has_reqi = has_reqi , has_reqs = has_reqs , &
!! ntc = ntc_p , muc = muc_p , &
refl_10cm = refl10cm_p , &
refl_10cm = refl10cm_p , frainnc = frainnc_p , &
ids = ids , ide = ide , jds = jds , jde = jde , kds = kds , kde = kde , &
ims = ims , ime = ime , jms = jms , jme = jme , kms = kms , kme = kme , &
its = its , ite = ite , jts = jts , jte = jte , kts = kts , kte = kte &
Expand Down Expand Up @@ -913,7 +915,25 @@ subroutine precip_from_MPAS(configs,diag_physics,its,ite)
sr(i) = 0._RKIND
enddo

case ("mp_tempo","mp_nssl2m")
case ("mp_tempo")
do j = jts, jte
do i = its, ite
snowncv_p(i,j) = 0._RKIND
graupelncv_p(i,j) = 0._RKIND
snownc_p(i,j) = 0._RKIND
graupelnc_p(i,j) = 0._RKIND
sr_p(i,j) = 0._RKIND
frainnc_p(i,j) = 0._RKIND
enddo
enddo

do i = its,ite
snowncv(i) = 0._RKIND
graupelncv(i) = 0._RKIND
sr(i) = 0._RKIND
enddo

case ("mp_nssl2m")
do j = jts, jte
do i = its, ite
snowncv_p(i,j) = 0._RKIND
Expand Down Expand Up @@ -955,6 +975,7 @@ subroutine precip_to_MPAS(configs,diag_physics,its,ite)
real(kind=RKIND),dimension(:),pointer:: precipw
real(kind=RKIND),dimension(:),pointer:: graupelnc,rainnc,snownc
real(kind=RKIND),dimension(:),pointer:: graupelncv,rainncv,snowncv,sr
real(kind=RKIND),dimension(:),pointer:: frainnc

!local variables and arrays:
integer:: i,j,k
Expand Down Expand Up @@ -1021,7 +1042,26 @@ subroutine precip_to_MPAS(configs,diag_physics,its,ite)
enddo
enddo

case ("mp_tempo","mp_nssl2m")
case ("mp_tempo")
call mpas_pool_get_array(diag_physics,'frainnc',frainnc)

do j = jts,jte
do i = its,ite
!time-step precipitation:
snowncv(i) = snownc_p(i,j)
graupelncv(i) = graupelnc_p(i,j)
sr(i) = (snownc_p(i,j) + graupelnc_p(i,j)) / (rainnc_p(i,j)+1.e-12)

!accumulated precipitation:
snownc(i) = snownc(i) + snowncv(i)
graupelnc(i) = graupelnc(i) + graupelncv(i)

!accumulated freezing rain precipitation:
frainnc(i) = frainnc(i) + frainnc_p(i,j)
enddo
enddo

case ("mp_nssl2m")
do j = jts,jte
do i = its,ite
!time-step precipitation:
Expand Down
Loading