Skip to content

Tags: MPAS-Dev/MPAS-Model

Tags

v8.4.2

Toggle v8.4.2's commit message
MPAS Version 8.4.2

This bug fix release addresses several issues in the MPAS-Atmosphere model and
in the MPAS infrastructure. Specific changes include:

 * Fix an issue with the naming of MPAS's internal ESMF time-keeping library in
   CMake builds of MPAS. (PR #1506)

 * Fix an issue with restart runs in MPAS-Atmosphere on GPUs. (PR #1503)

 * Address a lack of TKE in MPAS-Atmosphere with the 1.5-order prognostic TKE
   option when there is no TKE in the initial conditions (for example, in
   real-data cases). (PR #1499)

 * Correct the ordering of the 'lbc_ni' and 'lbc_nr' scalars in the atmosphere
   core's Registry.xml file. Note that unless LBCs are provided for 'ni' and
   'nr', the previously incorrect order of 'lbc_ni' and 'lbc_nr' would not
   affect results, as both fields would be filled with zero values. (PR #1498)

 * Change the default value of the config_number_of_sub_steps namelist option
   from 2 to 4 in the atmosphere core's Registry.xml file to address an issue in
   convection-permitting simulations where noise can sometimes appear in the jet
   streams using the previous default value of 2. The noise, when present, also
   produces unphysical features in horizontal kinetic energy spectra at high
   wavenumbers. (PR #1496)

   Note: Increasing the number of sub-steps from 2 to 4 can be expected to
   increase the computational cost of the dynamics by ~10% and the
   computational cost of a full-physics simulation by ~5%.

 * Work around an issue with continuation lines in instances of the
   PACKAGE_LOGIC_PRINT macro that prevented successful compilation of
   MPAS-Atmosphere with the 'nvfortran' compiler. (PR #1495)

v8.4.1

Toggle v8.4.1's commit message
MPAS Version 8.4.1

This bug fix release addresses several issues in the MPAS-Atmosphere model
and in the MPAS infrastructure. Specific changes include:

 * Fix crashes in the atm_srk3 routine when MPAS-A is compiled without defining
   DO_PHYSICS, as is done when the MPAS-A dynamical core is used in, e.g., CAM
   or CAM-SIMA. (PR #1448)

 * Limit the saturation vapor pressure, e_s, used in the Kessler microphysics to
   a value at or below 99% of the full pressure. Prior to this change, the
   saturation vapor pressure formula in Kessler could produce unphysically large
   values of e_s at very low pressures (high model tops) and cause the model to
   blow up. (PR #1452)

 * Fix an issue with multiple occurrences of the same namelist option in the
   specification for the optional active_when attribute for a Registry-defined
   package. With this fix, an active_when attribute may contain logic that uses
   a given namelist option more than once. (PR #1461)

 * Fix a bug that occurs when the number of soil layers in Noah-MP is not the
   default (4 layers), resulting in the model not conserving water. (PR #1459)

 * Fix broken builds with GEN_F90=true by adding missing include paths to the
   Makefile recipes that are used when MPAS is compiled with GEN_F90=true.
   (PR #1465)

 * Switch the allocation of surface arrays to be based on the choice of surface
   layer scheme rather than on the choice of PBL scheme. This change allows
   model simulations that use a surface layer scheme but no PBL scheme to run
   correctly, for example, real-data simulations that use LES options in MPAS-A.
   (PR #1460)

v8.4.0

Toggle v8.4.0's commit message
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_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)

v8.3.1

Toggle v8.3.1's commit message
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_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)

v8.3.0

Toggle v8.3.0's commit message
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)

v8.2.3

Toggle v8.2.3's commit message
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_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.

v8.2.2

Toggle v8.2.2's commit message
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 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).

v8.2.1

Toggle v8.2.1's commit message
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).

v8.2.0

Toggle v8.2.0's commit message
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 &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.

v8.1.0

Toggle v8.1.0's commit message
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_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.

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