Skip to content

2024.01

Compare
Choose a tag to compare
@rem1776 rem1776 released this 03 May 18:31
· 61 commits to main since this release
87344ee

[2024.01] - 2024-05-03

Known Issues

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

  • Diag Manager Rewrite:

    • If two empty files are present in the diag_table.yaml file the code will crash with a allocation error (#1506)
    • Setting an output frequency of '0 days' does not work as expected and may cause an error stating a time_step has been skipped (#1502)
    • The flush_nc_files and mix_snapshot_average_fields nml options are not yet functional. The mix_snapshot_average_fields option is planned to be deprecated (for the rewritten diag_manager only).
    • Expected output file changes:
      • If the model run time is less than the output frequency, old diag_manager would write a specific value (9.96921e+36). The new diag_manager will not, so only fill values will be present.
      • A scalar_axis dimension will not be added to scalar variables
      • The average_* variables will no longer be added as they are non-standard conventions
      • Attributes added via diag_field_add_attributes in the old code were saved as NF90_FLOAT regardless of precision, but will now be written as the precision that is passed in
      • Subregional output will have a global attribute is_subregional = True set for non-global history files.
      • The grid_type and grid_tile global attributes will no longer be added for all files, and some differences may be seen in the exact order of the associated_files attribute
  • DIAG_MANAGER: When using the do_diag_field_log nml option, the output log file may be ovewritten if using a multiple root pe's

  • TESTS: test_mpp_gatscat.F90 fails to compile with the Intel Oneapi 2024.01's version of ifort

  • BUILD(HDF5): HDF5 version 1.14.3 generates floating point exceptions, and will cause errors if FMS is built with FPE traps enabled.

Added

  • DIAG_MANAGER: The diag manager has been rewritten with a object oriented design. The old diag_manager code has been kept intact and will be used by default. The rewritten diag manager can be enabled via use_modern_diag = .true. to your diag_manager_nml. The new diag manager also requires a call to diag_send_complete after send_data calls. New features include:
    • Self-describing YAML formatting for diag_tables
    • Allows 4d variables
    • Support defining subregions with indices
    • More flexibility when adding metadata and defining output frequency
    • Updated math and buffer handling for better support when send_data is called in a threaded region
  • FMS2_IO: Adds support for collective parallel reads to improve model startup time. The collective reads are disabled by default and enabled via the use_collective flag in netcdf_io_mod.
  • DATA_OVERRIDE: Adds multifile support for using 3 input netcdf files instead of one. Three keys have been added to the data_table: is_multi_file to be set to true to enable the feature, as well as prev_file_name and next_file_name to set to the names of the additional files. (#1408)
  • INTERPOLATOR: Adds support for yearly/annual data
  • DATA_OVERRIDE: Adds support for monotonically increasing/decreasing arrays (#1388)
  • DOCS: Add documentation for the exchange grid (xgrid_mod) and update the contribution guide to add a section on code reviews
  • MPP: MPI sub-communicators for domains are now accessible via mpp_get_domain_tile_commid and mpp_get_domain_commid in mpp_domains_mod

Changed

  • DATA_OVERRIDE: Changes behavior to crash if both data_table and data_table.yaml are present and adds error checking when reading in yaml files
  • FIELD_MANAGER: Changes behavior to crash if both field_table and field_table.yaml are present as well as adds a namelist flag (use_field_table_yaml) to enable support for the yaml input.

Fixed

  • DATA_OVERRIDE: Fixes allocation error with scalar routine and replaces pointers with allocatables
  • INTERPOLATOR: Increase max string size for file paths
  • AXIS_UTILS: Improves performance of nearest_index routine
  • CMAKE: Fixes macOS linking issues with OpenMP

Tag Commit Hashes