-
Notifications
You must be signed in to change notification settings - Fork 383
Make Noah-MP-only static fields optional in the init_atmosphere core #1239
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
Make Noah-MP-only static fields optional in the init_atmosphere core #1239
Conversation
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.
|
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. |
|
@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 We could make the new |
|
Tested this with the |
|
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 Regarding the generalization of static field selection, how would we specify that we want both Noah-MP and PX static fields? |
|
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.
|
@ldfowler58 Thanks again for your comments on this PR. I'd like to proceed by simply making 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 |
|
Re-ran some tests and it looks good. |
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)
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)
This PR introduces changes that make Noah-MP static fields optional in the
init_atmospherecore.Previously, the
soilcompandsoilcl{1,2,3,4}fields needed only by the Noah-MP scheme were required in all static files read by theinit_atmospherecore. In cases where the Noah-MP scheme will not be used when running theatmospherecore, it would be desirable to not require these Noah-MP-only fields.Now, a new namelist option and package in the
init_atmospherecore permit the generation and the use of static files that do not containsoilcompandsoilcl{1,2,3,4}.The new
config_noahmp_staticnamelist option in the&data_sourcesnamelist group determines whether the Noah-MP-only static fields will be allocated, read, computed, and written in theinit_atmospherecore. This namelist option defaults totrue, yielding the default behavior of theinit_atmosphere_modelprogram prior to this commit.The new
noahmppackage, which is active if and only ifconfig_noahmp_staticistrue, controls the allocation, reading, and writing of the Noah-MP-only static fields.In the
init_atm_staticroutine, which is called whenconfig_static_interpistrue, thesoilcompandsoilcl{1,2,3,4}fields are computed only ifconfig_noahmp_staticis true.