Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Conversation

@mgduda
Copy link
Contributor

@mgduda mgduda commented Oct 18, 2024

This PR introduces changes that make Noah-MP static fields optional in the init_atmosphere core.

Previously, the soilcomp and soilcl{1,2,3,4} fields needed only by the Noah-MP scheme were required in all static files read by the init_atmosphere core. In cases where the Noah-MP scheme will not be used when running the atmosphere core, it would be desirable to not require these Noah-MP-only fields.

Now, a new namelist option and package in the init_atmosphere core permit the generation and the use of static files that do not contain soilcomp and soilcl{1,2,3,4}.

  1. The new config_noahmp_static namelist option in the &data_sources namelist group determines whether the Noah-MP-only static fields will be allocated, read, computed, and written in the init_atmosphere core. This namelist option defaults to true, yielding the default behavior of the init_atmosphere_model program prior to this commit.

  2. The new noahmp package, which is active if and only if config_noahmp_static is true, controls the allocation, reading, and writing of the Noah-MP-only static fields.

  3. In the init_atm_static routine, which is called when config_static_interp is true, the soilcomp and soilcl{1,2,3,4} fields are computed only if config_noahmp_static is true.

Prior to this commit, the soilcomp and soilcl{1,2,3,4} fields needed only by the
Noah-MP scheme were required in all static files read by the init_atmosphere
core. In cases where the Noah-MP scheme will not be used when running the
atmosphere core, it would be desirable to not require these Noah-MP-only fields.

This commit introduces a new namelist option and package in the init_atmosphere
core to permit the use of static files that do not contain soilcomp and
soilcl{1,2,3,4}.

1) The new config_noahmp_static namelist option in the &data_sources namelist
group now determines whether the Noah-MP-only static fields will be allocated,
read, computed, and written in the init_atmosphere core. This namelist option
defaults to true, yielding the default behavior of the init_atmosphere_model
program prior to this commit.

2) The new noahmp package, which is active if and only if config_noahmp_static
is true, controls the allocation, reading, and writing of the Noah-MP-only
static fields.

3) In the init_atm_static routine, which is called when config_static_interp is
true, the soilcomp and soilcl{1,2,3,4} fields are computed only if
config_noahmp_static is true.
@ldfowler58
Copy link
Contributor

The down point of adding the option config_noahmp_static is the need to recompute the static fields if we want to use the Noah-MP or Noah land surface schemes. What was the motivation for the PR? Thanks.

@mgduda
Copy link
Contributor Author

mgduda commented Oct 23, 2024

@ldfowler58 There is at least one group that is using their own software (as I understand it) to produce static files, which they would then like to use with the init_atmosphere core to produce real-data ICs. Their software for producing static files doesn't handle the new Noah-MP fields, and since they aren't currently interested in using the Noah-MP scheme, this PR would allow them to avoid modifying their code.

We could make the new config_noahmp_static option hidden by default.

@abishekg7
Copy link
Collaborator

Tested this with the config_noahmp_static nml option set to true and false, and unset. Seems to work as intended. However, I have some further questions about noahmp package, which I will ask in person before approving.

@ldfowler58
Copy link
Contributor

Thanks to abishek for testing the config_noahmp_static nml option. Can we rename the package noahmp to sf_noahmp_in for consistency with the package name in ./core_atmosphere/Registry.xml?

As Michael knows, I am in the midst of reviewing the implementation of the EPA PX land surface scheme which requires additional static fields which are not needed with Noah or Noah-MP. I was wondering if we could, fro the get go, have a more generic way to do this so that we do not multiply the config_*_static options? For instance, we could have something like

config_lsm_static = "sf_noahmp" or config_lsm_static = "sf_px" and move the relevant sourcecode using CASE(' ')? Would this make sense? Thanks.

@mgduda
Copy link
Contributor Author

mgduda commented Oct 25, 2024

Thanks to abishek for testing the config_noahmp_static nml option. Can we rename the package noahmp to sf_noahmp_in for consistency with the package name in ./core_atmosphere/Registry.xml?

As Michael knows, I am in the midst of reviewing the implementation of the EPA PX land surface scheme which requires additional static fields which are not needed with Noah or Noah-MP. I was wondering if we could, fro the get go, have a more generic way to do this so that we do not multiply the config_*_static options? For instance, we could have something like

config_lsm_static = "sf_noahmp" or config_lsm_static = "sf_px" and move the relevant sourcecode using CASE(' ')? Would this make sense? Thanks.

For the sf_noahmp_in package, what is the _in suffix meant to signify? In my opinion, the sf_ prefix isn't necessary, as there is only one category of parameterization scheme with the name "noahmp".

Regarding the generalization of static field selection, how would we specify that we want both Noah-MP and PX static fields?

@ldfowler58
Copy link
Contributor

The "sf_" prefix refers to all the parameterizations dealing with surface processes (land surface schemes, surface layer schemes). I was simply advocating for consistency in the name of packages between those used in core_init_atmosphere and core_atmosphere.

In response to "Regarding the generalization of static field selection, how would we specify that we want both Noah-MP and PX static fields?", and to date, the specific fields required to run Noah-MP (soilcomp, etc...) are not used in the PX-LSM. And vice versa, the specific fields required to run PX (soiltypef, lai12m, etc...) are not used in the Noah LSM.

Just suggestions, of course.

… file

Since the 'config_noahmp_static' option may not be used in typical workflows,
rather than having it appear in the default generated namelist.init_atmosphere
file, this option is now hidden by adding the in_defaults="false" attribute to
its entry in the init_atmosphere core's Registry.xml file.
@mgduda
Copy link
Contributor Author

mgduda commented Nov 27, 2024

@ldfowler58 Thanks again for your comments on this PR. I'd like to proceed by simply making config_noahmp_static hidden by default and to otherwise keep the changes in the PR as they are.

When the PX LSM work is nearer to completion, I think we can have discussion about how best to enable or disable the processing of specific static datasets in the init_atmosphere core.

@abishekg7
Copy link
Collaborator

Re-ran some tests and it looks good.

@mgduda mgduda merged commit ce4d670 into MPAS-Dev:develop Dec 5, 2024
mgduda added a commit that referenced this pull request Jun 3, 2025
MPAS Version 8.3.0

This release of MPAS introduces new capabilities and improvements in the
MPAS-Atmosphere model and its supporting software infrastructure. Notable
changes are listed below.

Initialization:

 * Addition of support for 30" BNU soil category dataset. The 30" BNU soil
   category dataset can be selected by setting the new namelist option
   config_soilcat_data to 'BNU' in the &data_sources namelist group. Use of this
   dataset requires a separate static dataset download. (PR #1322)

 * Addition of support for 15" MODIS land use dataset. The 15" MODIS land use
   dataset may be selected by setting the existing namelist option
   config_landuse_data to 'MODIFIED_IGBP_MODIS_NOAH_15s' in the &data_sources
   namelist group. Use of this dataset requires a separate static dataset
   download.  (PR #1322)

 * Introduction of a new namelist option, config_lu_supersample_factor, to
   control the super-sampling of land use data, which may now be on either a 30"
   or a 15" grid, depending on the choice of dataset. The existing namelist
   option config_30s_supersample_factor now controls the super-sampling for 30"
   terrain, soil category, and MODIS FPAR monthly vegetation fraction data only.
   (PR #1322)

 * A change in the horizontal interpolation from a four-point bilinear
   interpolation to a sixteen-point overlapping parabolic interpolation for both
   initial conditions and lateral boundary conditions. (PR #1303)

 * Ability to use ICON soil moisture and soil temperature fields. (PR #1298)

 * Addition of an option to skip processing of Noah-MP-only static fields in the
   init_atmosphere core. Setting the new config_noahmp_static namelist option to
   false in the &data_sources namelist group prevents the Noah-MP static fields
   from being processed when config_static_interp = true in the
   namelist.init_atmosphere file; this also permits existing static files that
   lack the Noah-MP fields 'soilcomp', 'soilcl1', 'soilcl2', 'soilcl3', and
   'soilcl4' to be used by the init_atmosphere_model program. (PR #1239)

 * Memory scaling improvements to the gravity wave drag (GWD) static field
   processing in the init_atmosphere core (when 'config_native_gwd_static =
   true') to reduce memory usage when multiple MPI ranks are used. In many
   cases, these changes eliminate the need to undersubscribe computing
   resources, which was previously required in order to work around lack of
   memory scaling in the GWD static field processing. (PR #1235)

Physics:

 * Update of the RRTMG LW and SW schemes, most notably with the addition of the
   exponential and exponential_random cloud overlap assumptions. The cloud
   overlap assumption and decorrelation length are now available as namelist
   options (config_radt_cld_overlap and config_radt_cld_dcorrlen, respectively).
   (PR #1296 and PR #1297)

 * The incorporation of NOAA's Unified Forecast System (UFS) Unified Gravity
   Wave Physics (UGWP) suite of physics parameterizations. This physics package
   is the "NOAA/GSL" orographic gravity wave drag (GWD) suite introduced in WRF
   Version 4.3 (activated by WRF namelist option 'gwd_opt=3'), but with the
   addition of a non-stationary GWD parameterization that represents gravity
   wave sources such as deep convection and frontal instability. The use of the
   UGWP suite requires additional static field downloads. (PR #1276)

Dynamics:

 * Complete port of all routines in the dynamical core to GPUs using OpenACC
   directives, including routines used by limited-area simulations. Not included
   in this release, though, is the optimization of data movement between the CPU
   and GPU memory, and the profiling and optimization of the computational
   kernels.

 * A change in the zero-gradient LBC for w to a constant value of w=0 in the
   specified zone. For limited-area configurations, the change from a
   zero-gradient boundary condition for the vertical velocity, w, to a setting
   of the vertical velocity to zero in the specified region alleviates spurious
   streamers and instabilities that appeared near the boundaries in regions of
   strong inflow.  (PR #1304)

Infrastructure:

 * Implementation of a new capability to automatically generate package logic
   code, which determines when a package is active. This package logic is
   generated by the registry at build time through the use of a new XML
   attribute, active_when, for <package> elements. (PR #1321)

Other:

 * Addition of a new Python script for setting up MPAS-Atmosphere run
   directories.  (PR #1326)

 * Addition of 3-d 10 cm radar reflectivity (refl10cm) to the 'da_state' stream,
   useful for radar DA and radar obs comparison purposes. (PR #1323)
HingOng added a commit to HingOng/MPAS-Model that referenced this pull request Jul 7, 2025
MPAS Version 8.3.0

This release of MPAS introduces new capabilities and improvements in the
MPAS-Atmosphere model and its supporting software infrastructure. Notable
changes are listed below.

Initialization:

 * Addition of support for 30" BNU soil category dataset. The 30" BNU soil
   category dataset can be selected by setting the new namelist option
   config_soilcat_data to 'BNU' in the &data_sources namelist group. Use of this
   dataset requires a separate static dataset download. (PR MPAS-Dev#1322)

 * Addition of support for 15" MODIS land use dataset. The 15" MODIS land use
   dataset may be selected by setting the existing namelist option
   config_landuse_data to 'MODIFIED_IGBP_MODIS_NOAH_15s' in the &data_sources
   namelist group. Use of this dataset requires a separate static dataset
   download.  (PR MPAS-Dev#1322)

 * Introduction of a new namelist option, config_lu_supersample_factor, to
   control the super-sampling of land use data, which may now be on either a 30"
   or a 15" grid, depending on the choice of dataset. The existing namelist
   option config_30s_supersample_factor now controls the super-sampling for 30"
   terrain, soil category, and MODIS FPAR monthly vegetation fraction data only.
   (PR MPAS-Dev#1322)

 * A change in the horizontal interpolation from a four-point bilinear
   interpolation to a sixteen-point overlapping parabolic interpolation for both
   initial conditions and lateral boundary conditions. (PR MPAS-Dev#1303)

 * Ability to use ICON soil moisture and soil temperature fields. (PR MPAS-Dev#1298)

 * Addition of an option to skip processing of Noah-MP-only static fields in the
   init_atmosphere core. Setting the new config_noahmp_static namelist option to
   false in the &data_sources namelist group prevents the Noah-MP static fields
   from being processed when config_static_interp = true in the
   namelist.init_atmosphere file; this also permits existing static files that
   lack the Noah-MP fields 'soilcomp', 'soilcl1', 'soilcl2', 'soilcl3', and
   'soilcl4' to be used by the init_atmosphere_model program. (PR MPAS-Dev#1239)

 * Memory scaling improvements to the gravity wave drag (GWD) static field
   processing in the init_atmosphere core (when 'config_native_gwd_static =
   true') to reduce memory usage when multiple MPI ranks are used. In many
   cases, these changes eliminate the need to undersubscribe computing
   resources, which was previously required in order to work around lack of
   memory scaling in the GWD static field processing. (PR MPAS-Dev#1235)

Physics:

 * Update of the RRTMG LW and SW schemes, most notably with the addition of the
   exponential and exponential_random cloud overlap assumptions. The cloud
   overlap assumption and decorrelation length are now available as namelist
   options (config_radt_cld_overlap and config_radt_cld_dcorrlen, respectively).
   (PR MPAS-Dev#1296 and PR MPAS-Dev#1297)

 * The incorporation of NOAA's Unified Forecast System (UFS) Unified Gravity
   Wave Physics (UGWP) suite of physics parameterizations. This physics package
   is the "NOAA/GSL" orographic gravity wave drag (GWD) suite introduced in WRF
   Version 4.3 (activated by WRF namelist option 'gwd_opt=3'), but with the
   addition of a non-stationary GWD parameterization that represents gravity
   wave sources such as deep convection and frontal instability. The use of the
   UGWP suite requires additional static field downloads. (PR MPAS-Dev#1276)

Dynamics:

 * Complete port of all routines in the dynamical core to GPUs using OpenACC
   directives, including routines used by limited-area simulations. Not included
   in this release, though, is the optimization of data movement between the CPU
   and GPU memory, and the profiling and optimization of the computational
   kernels.

 * A change in the zero-gradient LBC for w to a constant value of w=0 in the
   specified zone. For limited-area configurations, the change from a
   zero-gradient boundary condition for the vertical velocity, w, to a setting
   of the vertical velocity to zero in the specified region alleviates spurious
   streamers and instabilities that appeared near the boundaries in regions of
   strong inflow.  (PR MPAS-Dev#1304)

Infrastructure:

 * Implementation of a new capability to automatically generate package logic
   code, which determines when a package is active. This package logic is
   generated by the registry at build time through the use of a new XML
   attribute, active_when, for <package> elements. (PR MPAS-Dev#1321)

Other:

 * Addition of a new Python script for setting up MPAS-Atmosphere run
   directories.  (PR MPAS-Dev#1326)

 * Addition of 3-d 10 cm radar reflectivity (refl10cm) to the 'da_state' stream,
   useful for radar DA and radar obs comparison purposes. (PR MPAS-Dev#1323)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

Morty Proxy This is a proxified and sanitized view of the page, visit original site.