Releases: NOAA-GFDL/FMS
Releases · NOAA-GFDL/FMS
2026.01
[2026.01] - 2026-01-29
Known Issues
- INTEL: Oneapi 2025.1 is currently unsupported due to an internal compiler error. The
-check uninitflag for intel's LLVM compilers(ifx/icx) is also unsupported, see prior release for more information. - Diag Manager Rewrite: See below for known output file differences regarding the new diag manager. The new diag_manager is disabled by default, so these differences will only be present if
use_modern_diagis set to true in thediag_manager_nml. - BUILD(HDF5): HDF5 version 1.14.3 generates floating point exceptions, and will cause errors if FMS is built with FPE traps enabled. FPE traps are turned on when using the debug target in mkmf.
- GCC: version 14.1.0 is unsupported due to a bug with strings that has come up previously in earlier versions. This will be caught by the configure script, but will cause compilation errors if using other build systems.
Added
- Modifed and added tests for future generalized indices updates (#1763)
- OFFLOAD: Added a prototype for offloading io to a smaller set of PE's
offloading_io_mod(#1774)
Changed
- Legacy field_table and data_table ASCII formats are now deprecated and will output a warning if used (#1802)
- MPP: Replaced point-to-point communication with collective mode in
mpp_gatherroutines (#1775) - FMS2_IO: Refactored API for enabling MPI-IO support (#1789)
- DIAG_MANAGER: The updated diag manager will now add the experiment title as a global attribute (#1817)
Fixed
- Fixed multiple compiler warnings raised from GCC 15 (#1765)
- Fixed GNU warnings with the -DPORTABLE_KINDS flag (#1792)
- DIAG_MANAGER: Fixed issue with not getting correct output name when adding the cell_measure attribute (#1815)
- DIAG_MANAGER: Fixed error when setting zbounds for more than one variable (#1813)
- CMAKE: Fixed handling of libyaml dependency when using a r4/r8 option (#1822)
Removed
- EXCHANGE: Removed cray pointer usage from
xgrid.F90(#1778)
Tag Commit Hashes
- 2026.01-alpha1 3d4ac8c
2025.04
[2025.04] - 2025-09-29
Known Issues
- INTEL: Oneapi 2025.1 is currently unsupported due to an internal compiler error. The
-check uninitflag for intel's LLVM compilers(ifx/icx) is also unsupported, see prior release for more information. - Diag Manager Rewrite: See below for known output file differences regarding the new diag manager. The new diag_manager is disabled by default, so these differences will only be present if
use_modern_diagis set to true in thediag_manager_nml. - BUILD(HDF5): HDF5 version 1.14.3 generates floating point exceptions, and will cause errors if FMS is built with FPE traps enabled. FPE traps are turned on when using the debug target in mkmf.
- GCC: version 14.1.0 is unsupported due to a bug with strings that has come up previously in earlier versions. This will be caught by the configure script, but will cause compilation errors if using other build systems.
Added
- TIME_INTERP: Add conservative support in time_interp_external (#1773)
- CMAKE: add unit testing information for cmake (#1772)
- TIME_INTERP: 1D time_interp_external and time_interp_external_bridge (#1758)
- FMS2_IO: Feature/mpp-gather-io-write-2d-3d (#1750)
- DIAG_INTEGRAL: set the init time to a value in diag_integral test (#1730)
- TEST_FMS: add fms_end call to test_grid2 (#1728)
- FMS2_IO: add fms2_io generalized indices test (#1734)
- ONEAPI: add checks for oneapi bug (#1712)
- FMS2_IO: Add collective writes (#1733)
- DATA_OVERRIDE: add a test to test the multi-file capability in data_override (#1745)
Changed
- CMAKE: update cmake build for testing, build types and mixed precision (#1694)
- LICENSE: update (#1721)
- DIAG_MANAGER: Collective IO in modern diag manager (#1756)
- MODERN_DIAG_MANAGER: Improvements to the diag_table.yaml format (#1731)
- DOCS: update FMS codeowners to be default owners only (#1722)
- DOCS: append dev to version number post-release (#1726)
- DOCS: updates README for license update. (#1744)
- FIELD_MANAGER: move the parse.inc in field_manager to include directory (#1740)
Fixed
- CMAKE: builds for some stuff that broke with the cmake updates on Alpha tag(#1759)
- HORIZ_INTERP: fixes the r4 tests to build properly(#1736)
- DIAG_MANAGER: modern diag manager errors when looping through number of variables (#1761)
Removed
- TIME_MANAGER: tests with set/get_date_gregorian_old (#1748)
- FIELD_MANAGER: removed the path length variable (#1702)
- INTERPOLATOR: remove fms2io_interpolator init (#1723)
- DIAG_MANAGER: array bounds error in the old diag manager (#1751)
- MOSAIC2: Grid2 mod Initialization Fix (#1742)
Tag Commit Hashes
2025.03
[2025.03] - 2025-06-24
Known Issues
- INTEL: Oneapi 2025.1 is currently unsupported due to an internal compiler error. The
-check uninitflag for intel's LLVM compilers(ifx/icx) is also unsupported, see prior release for more information. - Diag Manager Rewrite: See below for known output file differences regarding the new diag manager. The new diag_manager is disabled by default, so these differences will only be present if
use_modern_diagis set to true in thediag_manager_nml. - BUILD(HDF5): HDF5 version 1.14.3 generates floating point exceptions, and will cause errors if FMS is built with FPE traps enabled. FPE traps are turned on when using the debug target in mkmf.
- GCC: version 14.1.0 is unsupported due to a bug with strings that has come up previously in earlier versions. This will be caught by the configure script, but will cause compilation errors if using other build systems.
Added
- LICENSE: added notice about the change to Apache license. (#1685)
- DIAG_MANAGER: added standard name to diag manifest yaml (#1692)
- FMS2_IO: added netcdf chunksizes argument to register_field routines (#1696)
- DIAG_MANAGER: added more robust diag manager tests for when outputting data at every time step (#1688)
- FM2_IO: added a test for collective netcdf mpi io (#1647)
Changed
- DOCS: style guide update (#1642)
- DOCS: updates to contributing guide to reflect modern FMS practices (#1708)
- DOCS: fixed typos throughout the code (#1703)
- DATA_OVERRIDE: simplify argument lists of subroutines in get_grid_version_mod (#1514)
Fixed
- DIAG_MANAGER: fixed the time variable in instantaneous outputs from diag_manager in both openmp and non-openmp cases (#1690)
- DIAG_MANAGER: fixed number of time levels in diag manifest yaml for subregional files. (#1698)
- LIBFMS: fixed missed aliases in libFMS file (#1303)
- DIAG_MANAGER: fixed new file and file duration in MODERN_DIAG_MANAGER (#1705)
Removed
- FMS_IO/MPP_IO: removed fms_io/mpp_io modules (#1669)
- AMIP_INTERP: removed the sst_anom and sst_ncep varaibles (#1695)
Tag Commit Hashes
2025.02.01
[2025.02.01] - 2025-05-13
Known Issues
- DIAG_MANAGER(legacy): When attempting to use 0 days frequency in the legacy diag manager and the data is send to diag manager from an openmp region, the Time dimension will not be correct.
- INTEL: Oneapi 2025.1 is currently unsupported due to an internal compiler error. The
-check uninitflag for intel's LLVM compilers(ifx/icx) is also unsupported, see prior release for more information. - Diag Manager Rewrite: See below for known output file differences regarding the new diag manager. The new diag_manager is disabled by default, so these differences will only be present if
use_modern_diagis set to true in thediag_manager_nml. - BUILD(HDF5): HDF5 version 1.14.3 generates floating point exceptions, and will cause errors if FMS is built with FPE traps enabled. FPE traps are turned on when using the debug target in mkmf.
- GCC: version 14.1.0 is unsupported due to a bug with strings that has come up previously in earlier versions. This will be caught by the configure script, but will cause compilation errors if using other build systems.
Fixed
- DIAG_MANAGER: add standard name to diag manifest and fix for subregional time levels (#1699)
2025.02
[2025.02] - 2025-04-28
Known Issues
- DIAG_MANAGER(legacy): When attempting to use 0 days frequency in the legacy diag manager and the data is send to diag manager from an openmp region, the Time dimension will not be correct.
- INTEL: Oneapi 2025.1 is currently unsupported due to an internal compiler error (#1680). The
-check uninitflag for intel's LLVM compilers(ifx/icx) is also unsupported, see prior release for more information. - Diag Manager Rewrite: See below for known output file differences regarding the new diag manager. The new diag_manager is disabled by default, so these differences will only be present if
use_modern_diagis set to true in thediag_manager_nml. - BUILD(HDF5): HDF5 version 1.14.3 generates floating point exceptions, and will cause errors if FMS is built with FPE traps enabled. FPE traps are turned on when using the debug target in mkmf.
- GCC: version 14.1.0 is unsupported due to a bug with strings that has come up previously in earlier versions. This will be caught by the configure script, but will cause compilation errors if using other build systems.
Added
- YAML SUPPORT: Messages indicating which table format being used (yaml or legacy) will now be output by the
diag_manager,field_manager, anddata_overridemodules. (#1676) - DIAG_MANAGER: Adds the number of tiles, number of distributed files, and number of time levels written for a given file to the output diag manifest yaml file. (#1661) + (#1648)
- GENERIC_EXCHANGE: Adds a new "gex" module to the
couplersubdirectory to provide a generic interface to pass (non-tracer) diagnostic fields across components. (#1637)
Changed
- MPP: Optimized
mpp_gatherandmpp_scatterinterfaces by leveraging native MPI collectives inmpp_pelist_scatterandmpp_gather_1D(_V)routines. (#1655) - DIAG_MANAGER:
diag_out.yamloutput file has been renamed todiag_manifestand will include the root PE number and ensemble number. ie:diag_manifest.yaml.0ordiag_manager.ens_01.yaml.0when using an ensemble. (#1661) (#1654) (#1646) - EXCHANGE: Increased max number of fields for exchange grid from 80 to 100 (#1637)
- DATA_OVERRIDE: Initializes both r4 and r8 versions of the module by default if no
modeargument is given to specialize a specific real size.(#1638)
Fixed
- MPP: Errors from unallocated data on non-root pes in mpp_scatter/gather routines. (#1672)
- DIAG_MANAGER: Issue causing an extra unlimited dimension to be written out in history files when mixing static and non-static variables.(#1668)
- CMAKE BUILD: Fixes missing "C" component for OpenMP libraries in FMS export configuration file (#1663)
Removed
- FIELD_MANAGER: Removed public declarations for routines that are already included in public interfaces. (#1317)
Tag Commit Hashes
2025.01.02
[2025.01.02] - 2025-03-06
Known Issues
- Diag Manager Rewrite: See the changelog for known output file differences regarding the new diag manager. The new diag_manager is disabled by default, so this differences will only be present if
use_modern_diagis set to true in thediag_manager_nml. - BUILD(HDF5): HDF5 version 1.14.3 generates floating point exceptions, and will cause errors if FMS is built with FPE traps enabled. FPE traps are turned on when using the debug target in mkmf.
- GCC: version 14.1.0 is unsupported due to a bug with strings that has come up previously in earlier versions. This will be caught by the configure script, but will cause compilation errors if using other build systems.
- INTEL: The
-check uninitflag for the Intel Oneapi Fortran compiler (ifx) is unsupported due to a bug causing false positives when using external libraries. If using the-check allflag,-check all,nouninitshould be used instead.
Changed
- DIAG_MANAGER: Change name of yaml output file to include the root PE number at the end in order to prevent overwrites (#1654)
2025.01.01
[2025.01.01] - 2025-02-26
Known Issues
- Diag Manager Rewrite: See the changelog for known output file differences regarding the new diag manager. The new diag_manager is disabled by default, so these differences will only be present if
use_modern_diagis set to true in thediag_manager_nml. - BUILD(HDF5): HDF5 version 1.14.3 generates floating point exceptions, and will cause errors if FMS is built with FPE traps enabled. FPE traps are turned on when using the debug target in mkmf.
- GCC: version 14.1.0 is unsupported due to a bug with strings that has come up previously in earlier versions. This will be caught by the configure script, but will cause compilation errors if using other build systems.
- INTEL: The
-check uninitflag for the Intel Oneapi Fortran compiler (ifx) is unsupported due to a bug causing false positives when using external libraries. If using the-check allflag,-check all,nouninitshould be used instead.
Changed
- DIAG_MANAGER: Changed the name of the yaml output file from "diag_out.yaml" to "diag_manifest.yaml" (#1646)
Added
- DIAG_MANAGER: Added field to the yaml output file to specify the number of time levels written to a given file (#1648)
2025.01
[2025.01] - 2025-01-30
Known Issues
- Diag Manager Rewrite: See the changelog for known output file differences regarding the new diag manager. The new diag_manager is disabled by default, so these differences will only be present if
use_modern_diagis set to true in thediag_manager_nml. - BUILD(HDF5): HDF5 version 1.14.3 generates floating point exceptions, and will cause errors if FMS is built with FPE traps enabled. FPE traps are turned on when using the debug target in mkmf.
- GCC: version 14.1.0 is unsupported due to a bug with strings that has come up previously in earlier versions. This will be caught by the configure script, but will cause compilation errors if using other build systems.
- INTEL: The
-check uninitflag for the Intel Oneapi Fortran compiler (ifx) is unsupported due to a bug causing false positives when using external libraries. If using the-check allflag,-check all,nouninitshould be used instead.
Added
- ENSEMBLE YAML SUPPORT: Adds functionality to the diag_manager, field_manager, and data_override to support unique yaml tables for each member of an ensemble or nest. More information can be found in in the diag_manager and data_override README files (#1585)
- BUILD: Adds options to set
PORTABLE_KINDSmacro in CMake and autotools builds (#1572) - BUILD(autotools): Adds check for cray compiler .mod file capitalization and will now run a previously added, but unused, m4 check for
newunitsupport. (#1561) - BUILD(cmake): Adds CMake functionality to generate a pkgconfig file (#1565)
- DIAG_MANAGER: Modifies
diag_field_add_attributeto accept both r4 and r8 values (#1625)
Changed
- MPP_IO/FMS_IO: A deprecation warning will now be output when using these modules or enabling the
-Duse_deprecated_ioflag via the build systems. Usage of these modules will be deprecated in the next release. (#1609) - DIAG_MANAGER: Made changes to the reduction routine to improve performance of loop and to reduce unnecessary calls if there isn't any new data to process (#1634)
- MOSAIC/GRID_UTILS: The
mosaicdirectory has been refactored and is now calledgrid_utils. (#1626) As part of these updates:- The
create_xgrid.c/hfiles have been moved to thehoriz_interp/includedirectory - Any any unused
.c/.hfiles or functions frommosaichave been removed - C functions have been moved between the
grid_utils.c,tree_utils.candcreate_xgrid.cfiles depending on the functions usage
- The
- DIAG_MANAGER: Changes
fms_diag_accept_datafrom a function to a subroutine (#1610)
Fixed
- DIAG_MANAGER: Fixes functionality of the
new_file_freq,start_time, andfile_durationkeys in the diag_manager. (#1633) - MOSAIC2: Fixes argument intent for
calc_mosaic_grid_areaand makes changes to the test to avoid divide-by-zero errors (#1597) - YAML_PARSER: Fixes incorrect argument type in c-binding causing type mismatch errors with the cray compiler (#1580)
- BUILD(CMake): Removes usage of hardcoded
libdirectory path (#1589) - HORIZ_INTERP: Adds allocation checks before checking fields for
horiz_interp_type_eq(#1584) - BUILD: Fixed syntax error in
column_diagnosticsMakefile.am (#1598) - DIAG_MANAGER: Adds a workaround for a cray compiler bug where the
NULL()intrinsic causes a type mismatch when passed in as an argument (#1560) - LIBFMS: Adds missed
f2c_stringroutine to libFMS.F90 (#1601) - BUILD(autotools): Fixes false
./configurefailures when using intel compilers and the-warnflag (#1583) - BLOCK_CONTROL: Updates non-uniform block size warning to only output on the root pe (#1588)
- FMS2_IO: Fixes z-axis domain reads when edge lengths and corners are specified (#1620)
- MPP: Fixes temporary array compiler warning during
mpp_init(#1628) - SAT_VAPOR_PRES: Fixes bad temperature output not printing on non-root pe's (#1619)
- ASTRONOMY: Adds allocation checks for module variables before being deallocated in
astronomy_end(#1629) - TESTS: Fixes multiple unit test failures, including any failing tests when compiled with GNU debug flags (#1575, #1595, #1579, #1607, #1622)
- TESTS: Fixes multiple compilation and runtime errors from the unit tests when compiled with the cray compiler (#1599, #1602, #1603, #1604, #1605)
- TESTS: Replaces usage of
fms_platform.hincludes withplatform_modin mpp unit tests (#1616) - TESTS: Add workaround for ifx failures in
diag_integralandtopographytests (#1606)
Tag Commit Hashes
2024.03
[2024.03] - 2024-08-22
Known Issues
- Diag Manager Rewrite: See the previous releases for known output file differences regarding the new diag manager. The new diag_manager is disabled by default, so these differences will only be present if
use_modern_diagis set to true in thediag_manager_nml. - BUILD(HDF5): HDF5 version 1.14.3 generates floating point exceptions, and will cause errors if FMS is built with FPE traps enabled. FPE traps are turned on when using the debug target in mkmf.
- GCC: version 14.1.0 is unsupported due to a bug with strings that has come up previously in earlier versions. This will be caught by the configure script, but will cause compilation errors if using other build systems.
- INTEL: The
-check uninitflag for the Intel Oneapi Fortran compiler (ifx) is unsupported due to a bug causing false positives when using external libraries. If using the-check allflag,-check all,nouninitshould be used instead.
Added
- DATA_OVERRIDE: Adds a namelist flag
use_center_grid_pointswhich, if true, enables reading the centroid values from the grid spec for ocean and ice models. This fixes issues with grid files that have longitudes ranges from 0:180 and then -180:0, but will cause answer changes if enabled. (#1566) - DATA_OVERRIDE: Adds support for reading external weight files. Currently only supported for fregrid generated files while using the bilinear interpolation method. Documentation for this feature can be found in
data_override/README.md. (#1556) - PLATFORM: Adds two constants
FMS_PATH_LENandFMS_FILE_LENand uses it across the code for any file path or file name character strings. They default to 1024 and 255 but can also be set by theFMS_MAX_PATH_LENandFMS_MAX_FILE_LENCPP macros. (#1567) - CMAKE: Adds Cmake option to support building shared libraries (#1559)
Changed
- DIAG_MANAGER: Simplifies the diag_table.yaml format by allowing
module,reduction, andkindto be set on a file level, with the ability to override for a specific field. (#1545) - FIELD_MANAGER: Updated and refactored the
fm_yaml_modmodule for a new table format to remove thesubparamskey. (#1547) - DATA_OVERRIDE: Updates the yaml format to be improve readablity and to be more consistent in key names. Additional documentation for the new format can be found in
data_override/README.md. (#1556)
Fixed
- PARSER: Adds error code checks to the yaml parser to prevent code from hanging on invalid yamls (#1563)
- PARSER: Adds ability to read in generic blocks to support
field_managerupdates. (#1519) - CRAY COMPILER SUPPORT: Updated any multi-line string literals to be compatible with the cray compiler. (#1554)
Removed
- DIAG_MANAGER: Removed diag_table schemas from FMS and moved them to the
gfdl_msd_schemasrepository, and updates thediag_managerdocumentation markdowns. (#1543)
Tag Commit Hashes
- 2024.03-beta1 a5de6a5
2024.02
[2024.02] - 2024-07-11
Known Issues
- Diag Manager Rewrite: See 2024.01.02 for known output file differences regarding the new diag manager. The new diag_manager is disabled by default, so these differences will only be present if
use_modern_diagis set to true in thediag_manager_nml. - BUILD(HDF5): HDF5 version 1.14.3 generates floating point exceptions, and will cause errors if FMS is built with FPE traps enabled. FPE traps are turned on when using the debug target in mkmf.
- GCC: version 14.1.0 is unsupported due to a bug with strings that has come up previously in earlier versions. This will be caught by the configure script, but will cause compilation errors if using other build systems.
Added
- TIME_INTERP: Enables use of
verboseoption intime_interp_external2calls fromdata_override. The option is enabled indata_override_nmlby settingdebug_data_overrideto true. (#1516) - COUPLER: Adds optional argument to
coupler_types_send_dataroutine that contains the return statuses for any calls made to the diag_manager'ssend_dataroutine. (#1530) - MPP: Adds a separate error log file
warnfile.<root pe num>.outthat only holds output from anympp_errorcalls made during a run (#1544)
Changed
- DIAG_MANAGER: The
diag_field_log.outoutput file of all registered fields will now include the PE number of the root PE at the time of writing (ie. diag_field_log.out.0). This is to prevent overwritting the file in cases where the root PE may change. (#1497)
Fixed
- CMAKE: Fixes real kind flags being overwritten when using the Debug release type (#1532)
- HORIZ_INTERP: Fixes allocation issues when using method-specific horiz_interp_new routines (such as
horiz_interp_bilinear_new) by settingis_allocatedand themethod_typeduring initialization for each method. (#1538)