Skip to content

Releases: MPAS-Dev/MPAS-Model

MPAS Version 8.4.0

16 Apr 00:48

Choose a tag to compare

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_grid namelist group in the namelist.init_atmosphere file:

    • config_hybrid_coordinate (default: true)
      Whether to employ a hybrid vertical coordinate
    • config_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
    localVerticalUnitVectors fields 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 the config_epssm namelist 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, where evapprod(k,k) was
    used instead of evapprod(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, and dtauy3d in 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_externals to
    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 the HEAD of 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 to true at 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 the intel build 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_query function in the
    mpas_stream_inquiry module , where the local array c_attname was 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 (-O1 appears 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

18 Jun 01:25

Choose a tag to compare

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_lbc routine 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 level k+1 to level k if 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 new Makefile.mpas file for MMM-physics. With the updated tag,
    compiling the atmosphere core, then making changes to any of the .F90 files
    in src/core_atmosphere/physics/physics_mmm/, then running make again (without
    first cleaning) leads to the modified .F90 files being correctly re-compiled.
    (PR #1337)

MPAS Version 8.3.0

03 Jun 01:56

Choose a tag to compare

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

23 May 01:34

Choose a tag to compare

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_scalar constituent indices are obtained
    in the init_atm_thompson_aerosols_lbc routine. Rather than obtaining
    index_nifa and index_nwfa from the state pool, the indices of lbc_nifa and
    lbc_nwfa should be obtained from the lbc_state pool. (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 the noahmp_init subroutine in module
    mpas_atmphys_lsm_noahmpinit.F prior to calling NoahmpInitMain. (PR #1244)

  • Correction of the units of the fields greenfrac, shdmin, shdmax,
    vegfra, and albedo12m from "unitless" to "percent" in the
    init_atmosphere and atmosphere core Registry.xml files. Also, a correction to
    the spelling of "greenness" in several places. (PR #1248)

  • Removal of a duplicate allocation of indexToEdgeID % array in the
    mpas_io_setup_edge_block_fields routine that was the source of a memory leak.
    (PR #1258)

  • Fix for a memory leak in mpas_block_creator_build_cell_halos by deallocating
    the cellLimitField field 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 case config_nfglevels is 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 the kdiff field was being used when enforcing
    a lower-bound on kdiff. 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. The xc variable, which represents the center-point location
    of the mountain, was previously computed based on the maximum xCell values
    local to an MPI task, leading to inconsistent values on each MPI rank. By
    finding the maximum of xCell over 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 the init_atmosphere_model program 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 file mpas_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
    the mpas_is_alarm_ringing routine to be ringing at the current time. With
    this fix, limited-area simulations can be restarted at times between LBC
    updates, provided the reference_time attribute for the 'lbc_in' stream is set
    to the simulation initial time in the streams.atmosphere file. (PR #1290).

  • Correction of an indexing error for rvcuten in code blocks specific to the
    Grell-Freitas scheme in the convection driver. Specifically, in the
    convection_from_MPAS and convection_to_MPAS routines, rvcuten used (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

20 Sep 20:13

Choose a tag to compare

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 the src/core_<CORE>/inc directory to not be generated correctly at
    build time on some systems (PR #1229).

  • Addition of two fields, brtemp and cldmask, that are needed by MPAS-JEDI.
    Although not needed by stand-alone MPAS-Atmosphere, these fields are
    associated with the jedi_da package and therefore have no effect when
    MPAS-Atmosphere is run without setting config_jedi_da = true (PR #1232).

  • Removal of a redundant query of the nCellsSolve dimension in the
    physics_run_init routine. 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

07 Aug 22:46

Choose a tag to compare

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

28 Jun 04:55

Choose a tag to compare

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 &physics namelist group.

    • New static files that include the soilcomp, soilcl1, soilcl2,
      soilcl3, and soilcl4 fields are required when activating Noah-MP in
      the model.
  • The aerosol-aware Thompson microphysics (as in WRF v4.1.4) is available by
    setting config_microp_scheme = 'mp_thompson_aerosols' in the &physics
    namelist group.

    • An aerosol climatology file (QNWFA_QNIFA_SIGMA_MONTHLY.dat) is used when
      running the init_atmosphere_model program to produce initial and lateral
      boundary conditions for nifa and nwfa.

Physics changes

  • Physics schemes in the physics_mmm directory are now obtained from a
    separate, shared MMM-physics repository at compile time using the
    manage_externals tool.

  • 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.

Infrastructure

  • The build system no longer requires an intermediate clean step when compiling
    one core before another.

MPAS Version 8.1.0

18 Apr 22:14

Choose a tag to compare

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_f08 module in the MPI library. If detected, the mpi_f08 module interface to Fortran MPI routines will be used in favor of the older mpi module 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 intel build 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=single is now the default, and double-precision builds must be specified with PRECISION=double.

MPAS Version 8.0.2

26 Mar 20:51

Choose a tag to compare

This bugfix release addresses several issues in the MPAS-Atmosphere model:

  • Generalize the mpas_sphere_angle function 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_r and mvd_c before 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

07 Jul 00:06

Choose a tag to compare

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)