Releases: MPAS-Dev/MPAS-Model
MPAS Version 8.4.0
This release of MPAS introduces new capabilities and improvements in the
MPAS-Atmosphere model and its supporting software infrastructure, and it is the
first release to provide the foundation for CheMPAS-A, a chemistry capability
for MPAS-Atmosphere. Notable changes are listed below.
MPAS-Atmosphere Initialization:
-
Fix an issue in snow initialization over areas covered by seaice. (PR #1438)
-
Introduce namelist control over the vertical coordinate configuration for
real-data case initialization. Two new namelist options may now be specified
in the&vertical_gridnamelist group in thenamelist.init_atmospherefile:config_hybrid_coordinate(default: true)
Whether to employ a hybrid vertical coordinateconfig_hybrid_top_z(default: 30000 m)
Height at which coordinate surfaces become constant height surfaces
Additionally, the smoothing coefficient formula for the hybrid coordinate now
uses the transition height instead of the model top height. (PR #1382) -
Add computation of the
edgeNormalVectors,cellTangentPlane, and
localVerticalUnitVectorsfields for MPAS-A initialization case 13 (CAM-MPAS
3-d grid) to better support alternative initialization workflows for
CAM-MPAS. (PR #1351)
MPAS-Atmosphere Dynamics:
-
Implement an initial Large-Eddy Simulation (LES) capability. Similar to WRF,
it contains two subgrid turbulence models -- a diagnostic Turbulent Kinetic
Energy (TKE) formulation based on a 3-d Smagorinsky formulation, and a
1.5-order prognostic TKE formulation. These formulations generally follow
the implementation in WRF (see the WRF Technical Note Version 4, sections
4.2.3 and 4.2.4 for a description of the formulations). (PR #1404) -
Generalize the epssm parameter, allowing level-dependent values to be
specified through four new namelist options:config_epssm_minimum(default value: 0.1)config_epssm_maximum(default value: 0.5)config_epssm_transition_bottom_z(default value: 30000.0)config_epssm_transition_top_z(default value: 50000.0)
The epssm parameter is an off-centering coefficient for the vertically
semi-implicit acoustic / gravity-wave integration, and it was previously
specified as a single, constant value using theconfig_epssmnamelist option.
(PR #1381) -
Add the capability to turn off microphysics tendencies above a specified
height with a new namelist option,config_microphysics_top, in the&physics
namelist group. Ignoring tendencies from the microphysics at upper levels has
been found to alleviate some instabilities in deep-domain (i.e., model tops
above the stratopause) MPAS-Atmosphere simulations. (PR #1380) -
Optimize OpenACC data movement throughout the MPAS-A dycore, so that the
majority of fields are transferred to the device at the start of a dynamics
step and from the device at the end of a dynamics step. (PR #1315) -
Remove the scaling of the gravity-wave absorbing layer coefficient (
dss) by
the local mesh size. Previously, the absorbing layer coefficient was scaled
by dx/dx_fine, and for large values of dx/dx_fine, instabilities have been
encountered associated with this scaling of the absorbing layer coefficient.
(PR #1379)
MPAS-Atmosphere Physics:
-
Correct an issue with high q2 values over urban cells in Noah-MP. (PR #1383)
-
Fix crashes when using the CAM SW radiation scheme. (PR #1391)
-
Fix an indexing typo in
mpas_atmphys_interface.F, whereevapprod(k,k)was
used instead ofevapprod(k,i). The fix corrects diagnostic output, but should
not affect the model state or simulation results. (PR #1396) -
Correct the units designations of the gravity wave drag diagnostics variables
dusfcg,dvsfcg,dtaux3d, anddtauy3din the atmosphere core's Registry.xml
file. (PR #1378)
MPAS-Atmosphere Misc.:
-
Remove PV diagnostic fields from the default "output" stream for
MPAS-Atmosphere, reducing the size of the default "history" netCDF files by
~20%. (PR #1428) -
Modify the MPAS-Atmosphere CMake build system to use
manage_externalsto
obtain specific tags from the https://github.com/NCAR/MMM-physics.git and
https://github.com/NOAA-GSL/UGWP.git repositories, rather than simply
obtaining theHEADof the default branch. This modification corrects build
failures when using CMake. (PR #1421)
CheMPAS-A:
-
Enable linking with the MUSICA-Fortran library to support development of
chemistry capabilities based on MICM and TUV-x. (PR #1309) -
Add a new namelist group,
&musica, with a single option,config_micm_file, to
control the MICM configuration in MPAS-Atmosphere. The new namelist group is
only included in the namelist.atmosphere file (and therefore, only
recognized) when MPAS is compiled with support for the MUSICA library.
(PR #1376) -
Introduce directory structure and stub modules for MUSICA, and more broadly,
for chemistry options in the atmosphere core. (PR #1360)New directories and modules include:
src/
core_atmosphere/
chemistry/ <--|
mpas_atm_chemistry.F <--|
musica/ <--| new in this release
mpas_musica.F <--|
Infrastructure:
-
Introduce the ability to partition meshes "online" at model startup using the
PT-Scotch library. (PR #1364) -
Enable execution of halo exchanges directly on GPU-resident fields when MPAS
is linked with an MPI library that is GPU-aware. To enable GPU-aware halo
exchanges, a new namelist option,config_gpu_aware_mpi, in the&development
namelist group must be set totrueat runtime. (PR #1355) -
Improve support for using an external ESMF library through a new build
option,MPAS_ESMF. (PR #1405) -
Set the default PnetCDF header alignment to 128 KiB when creating new output
files with SMIOL. This has been found to fix I/O issues when overwriting
existing model output files under certain conditions. (PR #1386) -
Fix an issue with macro expansion with newer Intel oneAPI compilers by adding
a flag for theintelbuild target to change the order of macro expansion in
the Fortran pre-processor. This change in macro expansion order fixes an
issue with some nested macro use in MPAS. (PR #1392) -
Fix a buffer overflow in the
streaminfo_queryfunction in the
mpas_stream_inquirymodule , where the local arrayc_attnamewas allocated
without space for a C null character. (PR #1352)
Known Issues:
-
MPAS-Atmosphere results using different OpenMP thread counts are not
reproducible. -
Bit-reproducible restarts and bit-reproducible results using different MPI
task counts require reduced optimization with the GNU and Intel oneAPI
compilers (-O1appears to work). -
With
config_les_model = '3d_smagorinky', turning off all compiler
optimizations appears to be necessary for bit-reproducibility. -
MPAS-Atmosphere results differ when using an external ESMF library.
Acknowledgements: Thanks to Dan Rosen (@danrosen25), Zhe Zhang (@CharlesZheZhang),
Mike Toy (@mdtoyNOAA), @Yi-ChuanLO, David Fillmore (@dwfncar), and Matt Dawson (@mattldawson)
for their contributions to this release.
MPAS Version 8.3.1
This bugfix release corrects two issues in the MPAS-Atmosphere model:
-
Fix a bug in the vertical interpolation of humidity for LBCs when first-guess
levels are given in top-to-bottom order. Incorrect logic in the
init_atm_case_lbcroutine previously assumed that first-guess levels would be
given in bottom-to-top order when attempting to vertically extrapolate to
model levels below the lowest first-guess level, resulting in a copy of the
vertically interpolated relative humidity at levelk+1to levelkif levels
were given in top-to-bottom order. This bug resulted in an unreasonably low
water vapor mixing ratio field (lbc_qv) in LBC files. (PR #1335)NB: This bug is present in most older releases of MPAS, and it should be
possible to cherry-pick the fix onto any branch or release based on MPAS
v7.0 or later. -
Fix an issue with .F90 files in the
src/core_atmosphere/physics/physics_mmm/
directory not being re-compiled by updating the MMM-physics external tag to
acquire a newMakefile.mpasfile for MMM-physics. With the updated tag,
compiling the atmosphere core, then making changes to any of the.F90files
insrc/core_atmosphere/physics/physics_mmm/, then runningmakeagain (without
first cleaning) leads to the modified.F90files being correctly re-compiled.
(PR #1337)
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 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)
Acknowledgements: Thanks to Max H. Balsmeier (@MHBalsmeier),
Michael Barlage (@barlage), Tanya Smirnova (@tanyasmirnova), and
Michael Toy (@mdtoyNOAA) for their contributions to this release.
MPAS Version 8.2.3
This bugfix release addresses several issues in the MPAS-Atmosphere model
and in the MPAS infrastructure. Specific changes include:
-
Correction of the pool from which
lbc_scalarconstituent indices are obtained
in theinit_atm_thompson_aerosols_lbcroutine. Rather than obtaining
index_nifaandindex_nwfafrom thestatepool, the indices oflbc_nifaand
lbc_nwfashould be obtained from thelbc_statepool. (PR #1249) -
Correction to the computation of the soil temperature (TSLB) in the Noah-MP
land surface scheme through the addition of initialization of the soil liquid
water (SH2O) in thenoahmp_initsubroutine in module
mpas_atmphys_lsm_noahmpinit.Fprior to callingNoahmpInitMain. (PR #1244) -
Correction of the units of the fields
greenfrac,shdmin,shdmax,
vegfra, andalbedo12mfrom "unitless" to "percent" in the
init_atmosphere and atmosphere coreRegistry.xmlfiles. Also, a correction to
the spelling of "greenness" in several places. (PR #1248) -
Removal of a duplicate allocation of
indexToEdgeID % arrayin the
mpas_io_setup_edge_block_fieldsroutine that was the source of a memory leak.
(PR #1258) -
Fix for a memory leak in
mpas_block_creator_build_cell_halosby deallocating
thecellLimitFieldfield before the routine returns. (PR #1264) -
Fix for a bug in the logic for determining when decompositions can be reused
by the SMIOL library. In almost any practical situation, however, this bug
created no issues. (PR #1288) -
Changes in the init_atmosphere core to provide more reliable error messages
in caseconfig_nfglevelsis not set to a value that is at least as large as
the number of vertical levels in the first-guess intermediate file. (PR #1291) -
Correction of the loop for Noah-MP snow initialization, capping snow water
equivalent maximum at 2000 mm. (PR #1300) -
Fix for a bug in the horizontal 2nd-order filter for the CAM upper absorbing
layer, where the wrong level in thekdifffield was being used when enforcing
a lower-bound onkdiff. This absorbing layer is active only when
config_mpas_cam_coef > 0.0. (PR #1302) -
Fix in the mountain wave idealized test case initialization when multiple MPI
tasks are used. Thexcvariable, which represents the center-point location
of the mountain, was previously computed based on the maximumxCellvalues
local to an MPI task, leading to inconsistent values on each MPI rank. By
finding the maximum ofxCellover all MPI ranks and ensuring that all MPI
ranks use this global maximum, the terrain field is computed consistently
between serial and parallel runs of theinit_atmosphere_modelprogram for the
mountain wave test case (config_init_case = 6). (PR #1312) -
Correction to the calculation of the 2-meter diagnostics (T2M, TH2M, and Q2)
when using the Noah-MP land surface scheme. While the computation of 2-meter
diagnostics is the same for Noah and Noah-MP over oceans, it is different
between the two land surface schemes over land. In Noah-MP, the 2-meter
diagnostics are weighted as functions of their respective diagnostics over
bare soil and over vegetation. The updated diagnostics for Noah and Noah-MP
are now computed in the new filempas_atmphys_sfc_diagnostics.F. (PR #1242) -
Fix to provide consistency in the ringing behavior of recurring alarms after
their reference time has been adjusted with a call to
mpas_adjust_alarm_to_reference_time. Now, adjusting the reference time for an
alarm will always leave that alarm in a state such that it is considered by
thempas_is_alarm_ringingroutine to be ringing at the current time. With
this fix, limited-area simulations can be restarted at times between LBC
updates, provided thereference_timeattribute for the'lbc_in'stream is set
to the simulation initial time in thestreams.atmospherefile. (PR #1290). -
Correction of an indexing error for
rvcutenin code blocks specific to the
Grell-Freitas scheme in the convection driver. Specifically, in the
convection_from_MPASandconvection_to_MPASroutines,rvcutenused(k,k)as
indexing in a loop, where(k,i)is needed. Since the Grell-Freitas scheme
does not provide momentum tendencies, the changes in this merge have no
impact on results. (PR #1283)
Acknowledgements: Thanks to Max H. Balsmeier (@MHBalsmeier), Zhe Zhang
(@CharlesZheZhang), and @lo-y-wni for identifying issues and providing fixes
in this release.
MPAS Version 8.2.2
This bugfix release addresses several issues in the MPAS-Atmosphere model
and in the MPAS infrastructure. Specific changes include:
-
Fix to a portability issue in the MPAS registry 'parse' tool, which caused
files in thesrc/core_<CORE>/incdirectory to not be generated correctly at
build time on some systems (PR #1229). -
Addition of two fields,
brtempandcldmask, that are needed by MPAS-JEDI.
Although not needed by stand-alone MPAS-Atmosphere, these fields are
associated with thejedi_dapackage and therefore have no effect when
MPAS-Atmosphere is run without settingconfig_jedi_da = true(PR #1232). -
Removal of a redundant query of the
nCellsSolvedimension in the
physics_run_initroutine. The extra query had no impact on results, and its
removal can be considered clean-up (PR #1236).
Acknowledgements: Thanks to Ted Mansell (NOAA NSSL) and Michael Toy (NOAA GSL)
for identifying issues that have been addressed in this release.
MPAS Version 8.2.1
This bugfix release addresses several issues in the MPAS-Atmosphere model
and in the MPAS infrastructure. Notable changes include:
-
Improved detection of an 'mpi_f08' module (PR #1202), as well as improved
detection of netCDF and PnetCDF library paths (PR #1203), in the top-level
Makefile. -
The addition of a missing dependency in the physics Makefile to correct
parallel build issues (PR #1204). -
Fixes to the CMake build files used by MPAS-JEDI (PR #1205).
-
Fixes to double-precision builds of MPAS-Atmosphere (PR #1207, PR #1208).
-
Correction of the calculation of height AGL used in the computation of 1-km
radar reflectivity fields (PR #1213). -
Correction of an issue that prevented the MYNN PBL scheme from being used
without also using the Thompson aerosol-aware microphysics (PR #1215). -
Fixes to allow MPAS-Atmosphere to be built without physics (i.e., dynamics-
only builds) (PR #1221). -
Various code cleanup and minor corrections (PR #1206, PR #1212, PR #1224,
PR #1226).
Acknowledgements: Thanks to Michael Toy (NOAA GSL) for first identifying the error
in the calculation of the height AGL array that affect the 1 km radar reflectivity fields.
MPAS Version 8.2.0
This release of MPAS introduces several significant changes to MPAS-Atmosphere.
New physics
-
The Noah-MP v5.0.1 land-surface model is now available by setting
config_lsm_scheme = 'sf_noahmp'in the&physicsnamelist group.- New static files that include the
soilcomp,soilcl1,soilcl2,
soilcl3, andsoilcl4fields are required when activating Noah-MP in
the model.
- New static files that include the
-
The aerosol-aware Thompson microphysics (as in WRF v4.1.4) is available by
settingconfig_microp_scheme = 'mp_thompson_aerosols'in the&physics
namelist group.- An aerosol climatology file (QNWFA_QNIFA_SIGMA_MONTHLY.dat) is used when
running theinit_atmosphere_modelprogram to produce initial and lateral
boundary conditions fornifaandnwfa.
- An aerosol climatology file (QNWFA_QNIFA_SIGMA_MONTHLY.dat) is used when
Physics changes
-
Physics schemes in the
physics_mmmdirectory are now obtained from a
separate, shared MMM-physics repository at compile time using the
manage_externalstool. -
The revised Monin-Obukhov scheme replaces the Monin-Obukhov scheme in the
'mesoscale_reference'suite.
GPU capabilities
-
The scalar transport code has been ported to GPUs using OpenACC directives.
- The atmosphere core must be compiled with
OPENACC=true. - Additional timers in the log file capture host-device data transfer times.
- The atmosphere core must be compiled with
Infrastructure
- The build system no longer requires an intermediate clean step when compiling
one core before another.
MPAS Version 8.1.0
This release of MPAS introduces several updates and new capabilities for MPAS-Atmosphere, most notably:
-
The MYNN Surface Layer and Planetary Boundary Layer (PBL) schemes have been updated. The PBL scheme includes the options needed to run the Eddy Diffusivity Mass Flux (EDMF) scheme.
-
A separate driver for the parameterization of surface processes over sea-ice points has been added.
-
The build system now tests for the availability of the modern
mpi_f08module in the MPI library. If detected, thempi_f08module interface to Fortran MPI routines will be used in favor of the oldermpimodule interface. -
The atmosphere core now supports the storage and retrieval of time-invariant fields in a separate I/O stream, offering significant disk space savings, especially in cases where large ensembles or cycled simulations are being run. See Section 8.3 of the User's Guide for more details.
-
The top-level Makefile provides a new
intelbuild target for the Intel oneAPI Fortran, C, and C++ compiler suite. -
To support real-data simulations on meshes with grid distances approaching 1 km or less, the init_atmosphere core provides an option,
config_30s_supersample_factor, for super-sampling of the 30 arc-second terrestrial fields (terrain, land use, soil category, and MODIS FPAR monthly vegetation fraction). -
When compiling,
PRECISION=singleis now the default, and double-precision builds must be specified withPRECISION=double.
MPAS Version 8.0.2
This bugfix release addresses several issues in the MPAS-Atmosphere model:
-
Generalize the
mpas_sphere_anglefunction to provide correct results for non-unit-radius spheres. This generalization fixes problems in remapping static fields to the outermost layer of specified-zone cells in limited-area meshes. (PR #1148) -
Initialize
mvd_randmvd_cbefore first use in the Thompson microphysics scheme to prevent the potential use of uninitialized memory, which could lead to floating-point exceptions. (PR #1152) -
Correct the units for the grid scale input field to the Thompson cloud fraction scheme. (PR #1153)
Acknowledgements: Thanks are due to Brett Wilt (The Weather Company) for first identifying the bug in the units of dx_p in the call to the Thompson cloud fraction scheme.
MPAS Version 8.0.1
This bugfix release addresses several issues in MPAS-Atmosphere, specifically:
-
Fix an OpenMP error in the deallocation of an array (rthdynten) when neither
the Grell-Freitas nor the Tiedtke/nTiedtke cumulus schemes are used. (PR #1099) -
Fix a compilation issue due to a missing include path for the physics_mmm
directory when certain Fortran compilers are used. (PR #1096) -
Fix an issue in reading real-valued global attributes from input files with
SMIOL when the input file is of a different precision than the compiled
precision of MPAS. (PR #1091) -
Fix a memory leak for the recloud_p, reice_p, and resnow_p arrays in the
deallocate_microphysics routine. (PR #1090) -
Correct the units and description for the rt_diabatic_tend, pv_vertex,
pv_edge, and pv_cell variables in the atmosphere core's Registry.xml file. (PRs #1089 and #1092)