From 63859a0e44b6befd19a025078aa896e8a88c26f8 Mon Sep 17 00:00:00 2001 From: rem1776 Date: Wed, 29 Jan 2025 18:06:47 -0500 Subject: [PATCH 1/2] change log and version updates for 2025.01 --- CHANGELOG.md | 48 ++++++++++++++++++++++++++++++++++++++++++++++ CMakeLists.txt | 2 +- configure.ac | 2 +- libFMS/Makefile.am | 2 +- 4 files changed, 51 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b98cc7dc2..8fd55120f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,54 @@ and this project uses `yyyy.rr[.pp]`, where `yyyy` is the year a patch is releas `rr` is a sequential release number (starting from `01`), and an optional two-digit sequential patch number (starting from `01`). +## [2025.01] - 2025-01-30 + +### Known Issues +- Diag Manager Rewrite: See [below](#20240102---2024-06-14) 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_diag` is set to true in the `diag_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 uninit` flag for the Intel Oneapi Fortran compiler (ifx) is unsupported due to a bug causing false positives when using external libraries. If using the `-check all` flag, `-check all,nouninit` should 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](diag_manager/README.md) and [data_override](data_override/README.MD) README files (#1585) +- BUILD: Adds options to set `PORTABLE_KINDS` macro 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 `newunit` support. (#1561) +- BUILD(cmake): Adds CMake functionality to generate a pkgconfig file (#1565) +- FMS2_IO: Modfies `diag_field_add_attribute` to 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_io` flag via the build systems. Usage of these modules will be deprecated in the next release. +- 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 `mosaic` directory has been refactored and is now called `grid_utils`. (#1626) As part of these updates: + - The `create_xgrid.c/h` files have been moved to the `horiz_interp/include` directory + - Any any unused `.c`/`.h` files or functions from `mosaic` have been removed + - C functions have been moved between the `grid_utils.c`, `tree_utils.c` and `create_xgrid.c` files depending on the functions usage + +### Fixed +- DIAG_MANAGER: Fixes functionality of the `new_file_freq`, `start_time`, and `file_duration` keys in the diag_manager. (#1633) +- MOSAIC2: Fixes argument intent for `calc_mosaic_grid_area` and 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 `lib` directory path (#1589) +- HORIZ_INTERP: Adds allocation checks before checking fields for `horiz_interp_type_eq` (#1584) +- BUILD: Fixed syntax error in `column_diagnostics` Makefile.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_string` routine to libFMS.F90 (#1601) +- BUILD(autotools): Fixes false `./configure` failures when using intel compilers and the `-warn` flag (#1583) +- BLOCK_CONTROL: Updates non-uniform block size warning to only output on the root pe (#1588) +- DIAG_MANAGER: Changes `fms_diag_accept_data` from a function to an arugment (#1610) +- 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.h` includes with `platform_mod` in mpp unit tests (#1616) +- TESTS: Add workaround for ifx failures in `diag_integral` and `topography` tests (#1606) + +### Tag Commit Hashes +- 2025.01-beta1 15ec0c735cba2780d3da37f4e1e3b5d4a969b4ff +- 2025.01-alpha1 95c02333387e673c33ec66e9e78042ef4772cf3a + ## [2024.03] - 2024-08-22 ### Known Issues diff --git a/CMakeLists.txt b/CMakeLists.txt index 17db1a462..d1872501b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -23,7 +23,7 @@ cmake_minimum_required(VERSION 3.12 FATAL_ERROR) # Define the CMake project project(FMS - VERSION 2024.03.0 + VERSION 2025.01.0 DESCRIPTION "GFDL FMS Library" HOMEPAGE_URL "https://www.gfdl.noaa.gov/fms" LANGUAGES C Fortran) diff --git a/configure.ac b/configure.ac index 7079b9c45..401f6a224 100644 --- a/configure.ac +++ b/configure.ac @@ -25,7 +25,7 @@ AC_PREREQ([2.69]) # Initialize with name, version, and support email address. AC_INIT([GFDL FMS Library], - [2024.03-dev], + [2025.01], [gfdl.climate.model.info@noaa.gov], [FMS], [https://www.github.com/NOAA-GFDL/FMS]) diff --git a/libFMS/Makefile.am b/libFMS/Makefile.am index f508b6c9f..c9f9def19 100644 --- a/libFMS/Makefile.am +++ b/libFMS/Makefile.am @@ -28,7 +28,7 @@ lib_LTLIBRARIES = libFMS.la # These linker flags specify libtool version info. # See http://www.gnu.org/software/libtool/manual/libtool.html#Libtool-versioning # for information regarding incrementing `-version-info`. -libFMS_la_LDFLAGS = -version-info 21:0:0 +libFMS_la_LDFLAGS = -version-info 22:0:0 # Add the convenience libraries to the FMS library. libFMS_la_LIBADD = $(top_builddir)/platform/libplatform.la From e33c46b84d177865da27ee817dc692185adad540 Mon Sep 17 00:00:00 2001 From: Ryan Mulhall <35538242+rem1776@users.noreply.github.com> Date: Thu, 30 Jan 2025 09:26:49 -0500 Subject: [PATCH 2/2] fix typos from review comments --- CHANGELOG.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8fd55120f..262e7f2c3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,15 +19,16 @@ sequential patch number (starting from `01`). - BUILD: Adds options to set `PORTABLE_KINDS` macro 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 `newunit` support. (#1561) - BUILD(cmake): Adds CMake functionality to generate a pkgconfig file (#1565) -- FMS2_IO: Modfies `diag_field_add_attribute` to accept both r4 and r8 values (#1625) +- DIAG_MANAGER: Modifies `diag_field_add_attribute` to 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_io` flag via the build systems. Usage of these modules will be deprecated in the next release. +- MPP_IO/FMS_IO: A deprecation warning will now be output when using these modules or enabling the `-Duse_deprecated_io` flag 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 `mosaic` directory has been refactored and is now called `grid_utils`. (#1626) As part of these updates: - The `create_xgrid.c/h` files have been moved to the `horiz_interp/include` directory - Any any unused `.c`/`.h` files or functions from `mosaic` have been removed - C functions have been moved between the `grid_utils.c`, `tree_utils.c` and `create_xgrid.c` files depending on the functions usage +- DIAG_MANAGER: Changes `fms_diag_accept_data` from a function to a subroutine (#1610) ### Fixed - DIAG_MANAGER: Fixes functionality of the `new_file_freq`, `start_time`, and `file_duration` keys in the diag_manager. (#1633) @@ -40,7 +41,6 @@ sequential patch number (starting from `01`). - LIBFMS: Adds missed `f2c_string` routine to libFMS.F90 (#1601) - BUILD(autotools): Fixes false `./configure` failures when using intel compilers and the `-warn` flag (#1583) - BLOCK_CONTROL: Updates non-uniform block size warning to only output on the root pe (#1588) -- DIAG_MANAGER: Changes `fms_diag_accept_data` from a function to an arugment (#1610) - 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)