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

Implemented the Noah-MP Land Surface Model #1161

Merged
merged 27 commits into from
Jun 13, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
148dc18
* Initial implementation of the Noah-MP land surface scheme (LSM):
ldfowler58 Mar 3, 2024
3ed206a
* In ./src/core_atmosphere/physics and ./src/core_atmosphere/physics/…
ldfowler58 Mar 4, 2024
71e837a
* In ./src/core_atmosphere/Makefile, now link ./physics/physics_noahm…
ldfowler58 Mar 4, 2024
6a49799
* In ./src/core_atmosphere/physics:
ldfowler58 Mar 4, 2024
98040ef
* In ./src/core_atmosphere/physics/physics_noahmp/drivers/mpas, remov…
ldfowler58 Mar 4, 2024
f89e111
* In ./src/core_atmosphere/physics/physics_noahmp/drivers/mpas, added…
ldfowler58 Mar 4, 2024
d4a1c7f
* In ./src/core_init_atmosphere, added the initialization of the stat…
ldfowler58 Mar 4, 2024
607e23f
* In ./src/core_atmosphere, starting the first modifications to run t…
ldfowler58 Mar 5, 2024
57b2e9b
* In ./src/core_atmosphere/physics/physics_noahmp/drivers/mpas/Noahmp…
ldfowler58 Apr 4, 2024
6375190
* In ./src/core_atmosphere/physics/physics_noahmp/drivers/mpas/Noahmp…
ldfowler58 Apr 4, 2024
07976a3
* In ./src/core_atmosphere/physics/physics_noahmp/drivers/mpas/Noahmp…
ldfowler58 Apr 4, 2024
5be8e1f
* In ./src/core_atmosphere:
ldfowler58 Apr 4, 2024
a52a8f0
* In ./src/core_atmosphere/physics:
ldfowler58 Apr 4, 2024
ab192ea
* In ./src/core_atmosphere/physics:
ldfowler58 Apr 4, 2024
74e553f
* In ./src/core_atmosphere/physics/Registry_noahmp.xml, added the arg…
ldfowler58 Apr 8, 2024
8fb2b52
* In ./src/core_atmosphere/physics/mpas_atmphys_lsm_noahmpinit.F, rem…
ldfowler58 Apr 8, 2024
cd075a3
* In ./src/core_atmosphere/physics/mpas_atmphys_driver_lsm_noahmp.F, …
ldfowler58 Apr 8, 2024
99ba47f
* In src/core_atmosphere/physics/physics_noahmp/drivers/mpas:
ldfowler58 Apr 13, 2024
52d40ca
* In ./src/core_atmosphere/physics/mpas_atmphys_driver_lsm_noahmp.F, …
ldfowler58 Apr 13, 2024
ca68747
* In ./src/core_atmosphere/physics/Registry_noahmp.xml, corrected the…
ldfowler58 Apr 13, 2024
afc482d
* In ./src/core_atmosphere/physics, deallocate all Noah-MP arrays nee…
ldfowler58 May 28, 2024
6e2f2c5
* In Makefile, removed the option "-fp-model precise" for the ifort o…
ldfowler58 May 30, 2024
76a8a3d
* In ./src/core_atmosphere/Registry.xml:
ldfowler58 May 30, 2024
6cafc95
* In ./src/core_atmosphere/physics:
ldfowler58 Jun 6, 2024
6e23176
* In src/core_atmosphere/Registry.xml, removed the static fields need…
ldfowler58 Jun 6, 2024
5bebea3
* In ./src/core_atmosphere/physics/mpas_atmphys_lsm_noahmpinit.F, com…
ldfowler58 Jun 6, 2024
1b4a479
* In ./src/core_atmosphere/physics/mpas_atmphys_lsm_noahmpinit.F, rem…
ldfowler58 Jun 12, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
1 change: 1 addition & 0 deletions src/core_atmosphere/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ physcore: mpas_atm_dimensions.o
( mkdir libphys; cd libphys; ar -x ../physics/libphys.a )
( cd ../..; ln -sf ./src/core_atmosphere/physics/physics_wrf/files/*TBL .)
( cd ../..; ln -sf ./src/core_atmosphere/physics/physics_wrf/files/*DATA* .)
( cd ../..; ln -sf ./src/core_atmosphere/physics/physics_noahmp/parameters/*TBL .)

dycore: mpas_atm_dimensions.o $(PHYSCORE)
( cd dynamics; $(MAKE) all PHYSICS="$(PHYSICS)" )
Expand Down
13 changes: 13 additions & 0 deletions src/core_atmosphere/Registry.xml
Original file line number Diff line number Diff line change
Expand Up @@ -403,6 +403,7 @@
<package name="cu_ntiedtke_in" description="parameterization of Tiedtke convection."/>
<package name="bl_ysu_in" description="parameterization of YSU Planetary Boundary Layer."/>
<package name="bl_mynn_in" description="parameterization of MYNN Planetary Boundary Layer."/>
<package name="sf_noahmp_in" description="parameterization of NOAH-MP land surface scheme."/>

<package name="iau" description="Incremental Analysis Update"/>
<package name="limited_area" description="Limited-area simulations, which have lateral boundaries"/>
Expand Down Expand Up @@ -512,6 +513,11 @@
<var name="ol2"/>
<var name="ol3"/>
<var name="ol4"/>
<var name="soilcomp"/>
<var name="soilcl1"/>
<var name="soilcl2"/>
<var name="soilcl3"/>
<var name="soilcl4"/>
#endif

</stream>
Expand Down Expand Up @@ -818,6 +824,7 @@
<var name="h_oml_initial"/>
<var name="hu_oml"/>
<var name="hv_oml"/>
<var_struct name="diag_physics_noahmp"/>
#endif
</stream>

Expand Down Expand Up @@ -2037,6 +2044,11 @@
description="logical for turning on/off top-down, radiation_driven mixing"
possible_values=".true. to turn on top-down radiation_driven mixing; .false. otherwise"/>

<nml_option name="config_urban_physics" type="logical" default_value="false" in_defaults="false"
units="-"
description="logical for turn on/off the urban physics parameterization"
possible_values=".true. to turn on the urban physics; .false. otherwise"/>

<nml_option name="config_n_microp" type="integer" default_value="1" in_defaults="false"
units="-"
description="number of microphysics time-steps per physics time-steps"
Expand Down Expand Up @@ -3421,5 +3433,6 @@
<!-- **************************************************************************************** -->

#include "diagnostics/Registry_diagnostics.xml"
#include "physics/Registry_noahmp.xml"

</registry>
6 changes: 5 additions & 1 deletion src/core_atmosphere/mpas_atm_core.F
Original file line number Diff line number Diff line change
Expand Up @@ -392,7 +392,9 @@ subroutine atm_mpas_init_block(dminfo, stream_manager, block, mesh, dt)
type (mpas_pool_type), pointer :: tend
type (mpas_pool_type), pointer :: sfc_input
type (mpas_pool_type), pointer :: diag_physics
type (mpas_pool_type), pointer :: diag_physics_noahmp
type (mpas_pool_type), pointer :: atm_input
type (mpas_pool_type), pointer :: output_noahmp

integer :: iCell,iEdge,iVertex

Expand Down Expand Up @@ -551,14 +553,16 @@ subroutine atm_mpas_init_block(dminfo, stream_manager, block, mesh, dt)
!initialization of some input variables in registry:
call mpas_pool_get_subpool(block % structs, 'tend', tend)
call mpas_pool_get_subpool(block % structs, 'diag_physics', diag_physics)
call mpas_pool_get_subpool(block % structs, 'diag_physics_noahmp', diag_physics_noahmp)
call mpas_pool_get_subpool(block % structs, 'atm_input', atm_input)
call mpas_pool_get_subpool(block % structs, 'output_noahmp', output_noahmp)
call physics_tables_init(dminfo, block % configs)
call physics_registry_init(mesh, block % configs, sfc_input)
call physics_run_init(block % configs, mesh, state, clock, stream_manager)

!initialization of all physics:
call physics_init(dminfo, clock, block % configs, mesh, diag, tend, state, 1, diag_physics, &
atm_input, sfc_input)
diag_physics_noahmp, atm_input, sfc_input, output_noahmp)
endif
#endif

Expand Down
41 changes: 33 additions & 8 deletions src/core_atmosphere/physics/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ ifeq ($(CORE),atmosphere)
COREDEF = -Dmpas
endif

all: lookup_tables core_physics_init core_physics_mmm core_physics_wrf core_physics
all: lookup_tables core_physics_init core_physics_mmm core_physics_wrf core_physics_noahmp core_physics

dummy:
echo "****** compiling physics ******"
Expand All @@ -24,6 +24,7 @@ OBJS = \
mpas_atmphys_driver_convection.o \
mpas_atmphys_driver_gwdo.o \
mpas_atmphys_driver_lsm.o \
mpas_atmphys_driver_lsm_noahmp.o \
mpas_atmphys_driver_microphysics.o \
mpas_atmphys_driver_oml.o \
mpas_atmphys_driver_pbl.o \
Expand All @@ -37,6 +38,8 @@ OBJS = \
mpas_atmphys_interface.o \
mpas_atmphys_landuse.o \
mpas_atmphys_lsm_noahinit.o \
mpas_atmphys_lsm_noahmpinit.o \
mpas_atmphys_lsm_noahmpfinalize.o \
mpas_atmphys_lsm_shared.o \
mpas_atmphys_manager.o \
mpas_atmphys_o3climatology.o \
Expand All @@ -57,6 +60,11 @@ core_physics_mmm: core_physics_init
core_physics_wrf: core_physics_init core_physics_mmm
(cd physics_wrf; $(MAKE) all COREDEF="$(COREDEF)")

core_physics_noahmp:
(cd physics_noahmp/utility; $(MAKE) all COREDEF="$(COREDEF)")
(cd physics_noahmp/src; $(MAKE) all COREDEF="$(COREDEF)")
(cd physics_noahmp/drivers/mpas; $(MAKE) all COREDEF="$(COREDEF)")

core_physics_init: $(OBJS_init)
ar -ru libphys.a $(OBJS_init)

Expand All @@ -80,6 +88,7 @@ mpas_atmphys_driver.o: \
mpas_atmphys_driver_convection.o \
mpas_atmphys_driver_gwdo.o \
mpas_atmphys_driver_lsm.o \
mpas_atmphys_driver_lsm_noahmp.o \
mpas_atmphys_driver_pbl.o \
mpas_atmphys_driver_radiation_lw.o \
mpas_atmphys_driver_radiation_sw.o \
Expand Down Expand Up @@ -109,6 +118,11 @@ mpas_atmphys_driver_lsm.o: \
mpas_atmphys_lsm_noahinit.o \
mpas_atmphys_vars.o

mpas_atmphys_driver_lsm_noahmp.o: \
mpas_atmphys_constants.o \
mpas_atmphys_manager.o \
mpas_atmphys_vars.o

mpas_atmphys_driver_microphysics.o: \
mpas_atmphys_constants.o \
mpas_atmphys_init_microphysics.o \
Expand Down Expand Up @@ -139,10 +153,18 @@ mpas_atmphys_driver_radiation_sw.o: \
mpas_atmphys_rrtmg_swinit.o \
mpas_atmphys_vars.o

mpas_atmphys_driver_seaice.o: \
mpas_atmphys_constants.o \
mpas_atmphys_lsm_shared.o \
mpas_atmphys_vars.o

mpas_atmphys_driver_sfclayer.o: \
mpas_atmphys_constants.o \
mpas_atmphys_vars.o

mpas_atmphys_finalize.o: \
mpas_atmphys_lsm_noahmpfinalize.o

mpas_atmphys_init.o: \
mpas_atmphys_driver_convection.o \
mpas_atmphys_driver_lsm.o \
Expand All @@ -151,6 +173,7 @@ mpas_atmphys_init.o: \
mpas_atmphys_driver_radiation_lw.o \
mpas_atmphys_driver_radiation_sw.o \
mpas_atmphys_driver_sfclayer.o \
mpas_atmphys_lsm_noahmpinit.o \
mpas_atmphys_landuse.o \
mpas_atmphys_o3climatology.o \
mpas_atmphys_vars.o
Expand All @@ -167,6 +190,10 @@ mpas_atmphys_lsm_noahinit.o: \
mpas_atmphys_constants.o \
mpas_atmphys_utilities.o

mpas_atmphys_lsm_noahmpinit.o: \
mpas_atmphys_utilities.o \
mpas_atmphys_vars.o

mpas_atmphys_manager.o: \
mpas_atmphys_constants.o \
mpas_atmphys_o3climatology.o \
Expand All @@ -187,11 +214,6 @@ mpas_atmphys_rrtmg_swinit.o: \
mpas_atmphys_constants.o \
mpas_atmphys_utilities.o

mpas_atmphys_driver_seaice.o: \
mpas_atmphys_constants.o \
mpas_atmphys_lsm_shared.o \
mpas_atmphys_vars.o

mpas_atmphys_todynamics.o: \
mpas_atmphys_constants.o \
mpas_atmphys_vars.o
Expand All @@ -209,6 +231,9 @@ clean:
$(RM) *.o *.mod *.f90 libphys.a
( cd physics_wrf; $(MAKE) clean )
( cd physics_mmm; $(MAKE) clean )
( cd physics_noahmp/drivers/mpas; $(MAKE) clean )
( cd physics_noahmp/src; $(MAKE) clean )
( cd physics_noahmp/utility; $(MAKE) clean )
@# Certain systems with intel compilers generate *.i files
@# This removes them during the clean process
$(RM) *.i
Expand All @@ -217,7 +242,7 @@ 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.. -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.. -I../../framework -I../../external/esmf_time_f90
else
$(FC) $(CPPFLAGS) $(COREDEF) $(HYDROSATIC) $(FFLAGS) -c $*.F $(CPPINCLUDES) $(FCINCLUDES) -I./physics_mmm -I./physics_wrf -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.. -I../../framework -I../../external/esmf_time_f90
endif