Skip to content

Commit e429fdd

Browse files
authored
Merge branch 'main' into oneapi-broken
2 parents 4adf5aa + a834a27 commit e429fdd

File tree

87 files changed

+905
-423
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

87 files changed

+905
-423
lines changed

.github/CODEOWNERS

Lines changed: 1 addition & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -25,43 +25,4 @@
2525
# These owners will be the default owners for all the files in the
2626
# repository. Unless a later match is found, these owners
2727
# will be requested for a review when a PR is opened.
28-
* @uramirez8707 @bensonr @rem1776 @vithikashah001
29-
30-
# GNU autotools files
31-
Makefile.am @uramirez8707 @rem1776
32-
/configure.ac @uramirez8707 @rem1776
33-
/m4/ @uramirez8707 @rem1776
34-
*.m4 @uramirez8707 @rem1776
35-
36-
# cmake files
37-
CM* @mlee03 @rem1776 @vithikashah001
38-
cmake @mlee03 @rem1776 @vithikashah001
39-
40-
# Files specific to GitHub or GitLab
41-
/.github/ @rem1776 @vithikashah001
42-
43-
# Testing files
44-
/test_fms/ @uramirez8707 @mlee03 @bensonr @rem1776 @vithikashah001
45-
46-
# Specific component directories
47-
/affinity/ @bensonr
48-
/test_fms/affinity/ @bensonr @rem1776
49-
50-
/block_control/ @bensonr
51-
/test_fms/block_control/ @bensonr @rem1776
52-
53-
#/data_override/ Currently no code owner
54-
/test_fms/data_override/ @rem1776
55-
56-
/diag_manager @uramirez8707
57-
/test_fms/diag_manager/ @uramirez8707
58-
59-
/fms/ @uramirez8707 @rem1776
60-
/test_fms/fms/ @uramirez8707 @rem1776
61-
/fms2/ @uramirez8707
62-
/test_fms/fms2/ @uramirez8707
63-
64-
/libFMS/ @uramirez8707 @rem1776
65-
66-
/mpp/ @uramirez8707 @bensonr
67-
/test_fms/mpp/ @uramirez8707 @bensonr @rem1776
28+
* @uramirez8707 @bensonr @rem1776 @vithikashah001

AUTOTOOLS_INSTRUCTIONS.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ something like:
1111

1212
./configure && make check install
1313

14-
The configure step queries the system about many things, and contructs
14+
The configure step queries the system about many things, and constructs
1515
makefiles.
1616

1717
The make step uses the generated Makefiles to build, test, and install
@@ -33,11 +33,11 @@ been added to .gitignore and should never be added to the repo.
3333

3434
Previously, everyone built FMS by checking out code from git. However,
3535
with the new build system, only those who want to contribute to the
36-
code base need check out the code from git.
36+
code base need to check out the code from git.
3737

3838
## As an FMS Developer
3939

40-
All FMS developers will need a reasobably reacent version of tools
40+
All FMS developers will need a reasonably recent version of tools
4141
autoconf, automake, and libtool. These are available on package
4242
management systems. (Ex. yum install automake autoconf libtool).
4343

@@ -51,7 +51,7 @@ The process of building FMS from the repo is:
5151
## As an FMS User
5252

5353
Users start with a tarball, not the git repo. They do not have to have
54-
any of the autotools installed. Thier build process is:
54+
any of the autotools installed. Their build process is:
5555

5656
1. Unpack the tarball and cd into the directory.
5757
2. Run ./configure --prefix=/my/installdir

CHANGELOG.md

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,41 @@ and this project uses `yyyy.rr[.pp]`, where `yyyy` is the year a patch is releas
66
`rr` is a sequential release number (starting from `01`), and an optional two-digit
77
sequential patch number (starting from `01`).
88

9+
## [2025.03] - 2025-06-24
10+
11+
### Known Issues
12+
- INTEL: Oneapi 2025.1 is currently unsupported due to an internal compiler error. The `-check uninit` flag for intel's LLVM compilers(ifx/icx) is also unsupported, see prior release for more information.
13+
- 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 these differences will only be present if `use_modern_diag` is set to true in the `diag_manager_nml`.
14+
- 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.
15+
- 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.
16+
17+
### Added
18+
- LICENSE: added notice about the change to Apache license. (#1685)
19+
- DIAG_MANAGER: added standard name to diag manifest yaml (#1692)
20+
- FMS2_IO: added netcdf chunksizes argument to register_field routines (#1696)
21+
- DIAG_MANAGER: added more robust diag manager tests for when outputting data at every time step (#1688)
22+
- FM2_IO: added a test for collective netcdf mpi io (#1647)
23+
24+
### Changed
25+
- DOCS: style guide update (#1642)
26+
- DOCS: updates to contributing guide to reflect modern FMS practices (#1708)
27+
- DOCS: fixed typos throughout the code (#1703)
28+
- DATA_OVERRIDE: simplify argument lists of subroutines in get_grid_version_mod (#1514)
29+
30+
### Fixed
31+
- DIAG_MANAGER: fixed the time variable in instantaneous outputs from diag_manager in both openmp and non-openmp cases (#1690)
32+
- DIAG_MANAGER: fixed number of time levels in diag manifest yaml for subregional files. (#1698)
33+
- LIBFMS: fixed missed aliases in libFMS file (#1303)
34+
- DIAG_MANAGER: fixed new file and file duration in MODERN_DIAG_MANAGER (#1705)
35+
36+
### Removed
37+
- FMS_IO/MPP_IO: removed fms_io/mpp_io modules (#1669)
38+
- AMIP_INTERP: removed the sst_anom and sst_ncep varaibles (#1695)
39+
40+
### Tag Commit Hashes
41+
- 2025.03-beta1 96e97c0e271167dd42700b5ed28fb1fe85d7ecce
42+
- 2025.03-alpha1 44f182dc459c6a60d3b3f4257cf379c8bd71e797
43+
944
## [2025.02] - 2025-04-28
1045

1146
### Known Issues
@@ -156,7 +191,7 @@ sequential patch number (starting from `01`).
156191
- COUPLER: Adds optional argument to `coupler_types_send_data` routine that contains the return statuses for any calls made to the diag_manager's `send_data` routine. (#1530)
157192
- MPP: Adds a separate error log file `warnfile.<root pe num>.out` that only holds output from any `mpp_error` calls made during a run (#1544)
158193
### Changed
159-
- DIAG_MANAGER: The `diag_field_log.out` output 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)
194+
- DIAG_MANAGER: The `diag_field_log.out` output 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 overwriting the file in cases where the root PE may change. (#1497)
160195

161196
### Fixed
162197
- CMAKE: Fixes real kind flags being overwritten when using the Debug release type (#1532)
@@ -208,7 +243,7 @@ sequential patch number (starting from `01`).
208243
- DIAG_MANAGER: Implements `flush_nc_files` functionality from legacy diag_manager.
209244

210245
### Changed
211-
- FMS2_IO: Changed `register_unlimited_compressed_axis` to use a collective gather rather than send and recieves to improve efficiency when reading in iceberg restarts.
246+
- FMS2_IO: Changed `register_unlimited_compressed_axis` to use a collective gather rather than send and receives to improve efficiency when reading in iceberg restarts.
212247

213248
### Fixed
214249
- DIAG_MANAGER: Fixes 0 day output frequencies causing error stating a time_step was skipped. Also adds checks to crash if averaged fields have -1 or 0 day frequencies or if mixing averaged and non-averaged fields in the same file.

CMakeLists.txt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ cmake_minimum_required(VERSION 3.12 FATAL_ERROR)
2323

2424
# Define the CMake project
2525
project(FMS
26-
VERSION 2025.02.0
26+
VERSION 2025.03.0
2727
DESCRIPTION "GFDL FMS Library"
2828
HOMEPAGE_URL "https://www.gfdl.noaa.gov/fms"
2929
LANGUAGES C Fortran)
@@ -284,6 +284,12 @@ endif()
284284
# Obtain compiler-specific flags
285285
include(fms_compiler_flags)
286286

287+
# If netCDF was not built with HDF5 parallel I/O features, set up the macro -DNO_NC_PARALLEL4
288+
IF(NOT NetCDF_PARALLEL)
289+
MESSAGE(WARNING "netCDF was not build with HDF5 parallel I/O features, so collective netcdf io is not allowed")
290+
list(APPEND fms_defs NO_NC_PARALLEL4)
291+
ENDIF()
292+
287293
foreach(kind ${kinds})
288294

289295
set(libTgt fms_${kind})

CONTRIBUTING.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
Thank you for taking time to contribute.
44

5-
libFMS is a software framework for supporting the efficient development,
5+
libFMS is a software framework for supporting the **seamless** development,
66
construction, execution, and scientific interpretation of atmospheric, oceanic,
7-
and climate system models.
7+
and land models across timescales.
88

99
Contributions to this project are released to the public under the
1010
[projects open source license](LICENSE.md).
@@ -123,7 +123,7 @@ Comments on pull requests should be courteous and constructive, giving useful fe
123123

124124
## Tests
125125

126-
FMS uses TravisCI and gitlab-CI to run build tests for libFMS. Users may create
126+
FMS uses github actons to run build tests for libFMS. Users should create
127127
unit tests, code coverage tests, and regression tests for new and existing code
128128
in yaml (.yml) files. Github provides a guide
129129
(https://help.github.com/en/articles/about-continuous-integration) for
@@ -138,7 +138,8 @@ Code updates should follow the coding style for the project, contained in
138138
Releases will be tagged using the format `yyyy.rr[.pp]`, where `yyyy` is the
139139
4-digit year, `rr` is the 2-digit release number, and `pp` is the 2-digit patch
140140
number. Preliminary releases mean for testing (i.e., code that is still under
141-
development) will be marked `yyyy.rr.alpha.pp` or `yyyy.rr.beta.pp`. Alpha tags
141+
development) will be marked `yyyy.rr-alpha#` or `yyyy.rr-beta#` where `#` is
142+
the incremented number of the testing tag. Alpha tags
142143
mark code updates that are intended for developers to include in their baseline
143144
regression tests to determine whether the code contains bugs not encountered
144145
during baseline testing. Beta tags are intended for a wider audience of

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ FMS will switch to the
44
[Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
55
with the 2025.04 or 2026.01 release. Please refer to
66
[issue 1683 on changing the license](https://github.com/NOAA-GFDL/FMS/issues/1683)
7-
to participate in or follow any dicussion on the topic.
7+
to participate in or follow any discussion on the topic.
88

99
# Modeling Framework: Flexible Modeling System (FMS)
1010

@@ -110,7 +110,7 @@ Compilers used in our Github continuous integration testing are in bold.
110110
Source code documentation for the FMS code base is available at http://noaa-gfdl.github.io/FMS.
111111
The documentation is generated by doxygen and updated upon releases, and a copy of the site
112112
can be obtained through the `gh-pages` branch or generated manually with
113-
`./configure --enable-docs && make -C docs`. For more information on documentating the code
113+
`./configure --enable-docs && make -C docs`. For more information on documenting the code
114114
with doxygen please see the
115115
[documentation style guide](http://noaa-gfdl.github.io/FMS/md_docs_doxygenGuide.html).
116116

TESTING.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ This will compile any code not already compiled and then proceed to run the test
2424
### Debugging Output and Test Options
2525

2626
Setting the environment variable TEST_VERBOSE will direct output to stdout as the test runs, while setting VERBOSE will only output on failure.
27-
Logs are created for each test as well, with the name \<test script name\>.log in it's corresponding test_fms/ directory.
27+
Logs are created for each test as well, with the name \<test script name\>.log in its corresponding test_fms/ directory.
2828

2929
To run an individual test:
3030
```
@@ -43,4 +43,4 @@ for the build system:
4343
If enabled a coverage report can be generated with `make check-code-coverage`
4444
- `--enable-test-input=/path/to/input` turns on test scripts that require input netcdf files (interpolator, xgrid, data_override).
4545
This option is mainly used internally and in automated testing since we do not host the input data publicly.
46-
- `--with-yaml` compile with yaml input and enable it's associated tests
46+
- `--with-yaml` compile with yaml input and enable its associated tests

configure.ac

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ AC_PREREQ([2.69])
2525

2626
# Initialize with name, version, and support email address.
2727
AC_INIT([GFDL FMS Library],
28-
[2025.02-dev],
28+
[2025.03-dev],
2929
3030
[FMS],
3131
[https://www.github.com/NOAA-GFDL/FMS])
@@ -447,6 +447,22 @@ else
447447
AC_MSG_RESULT([no])
448448
fi
449449

450+
AC_MSG_CHECKING([if netCDF was built with HDF5 parallel I/O features])
451+
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[
452+
#include <netcdf_meta.h>
453+
#if !defined(NC_HAS_PARALLEL4) || NC_HAS_PARALLEL4 == 0
454+
choke me
455+
#endif]])], [nc_has_parallel4=yes], [nc_has_parallel4=no])
456+
AC_MSG_RESULT([$nc_has_parallel4])
457+
458+
if test $nc_has_parallel4 = no; then
459+
AC_MSG_WARN(netCDF was not build with HDF5 parallel I/O features, so collective netcdf io is not allowed)
460+
AC_DEFINE([NO_NC_PARALLEL4], [1], [HDF5 parallel I/O features not allowed])
461+
AM_CONDITIONAL([SKIP_PARALLEL_TEST], true)
462+
else
463+
AM_CONDITIONAL([SKIP_PARALLEL_TEST], false)
464+
fi
465+
450466
#####
451467
# Create output variables from various
452468
# shell variables, for use in generating

coupler/atmos_ocean_fluxes.F90

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -737,7 +737,7 @@ subroutine atmos_ocean_fluxes_init(gas_fluxes, gas_fields_atm, gas_fields_ice, v
737737
gas_fields_atm%bc(n)%pass_through_ice = gas_fluxes%bc(n)%pass_through_ice
738738
gas_fields_ice%bc(n)%pass_through_ice = gas_fluxes%bc(n)%pass_through_ice
739739
!! mixed precision support
740-
!! if use_r4_kind is present and true will intialize to the r4_kind type
740+
!! if use_r4_kind is present and true will initialize to the r4_kind type
741741
else
742742
! Save and check the flux_type.
743743
gas_fluxes%bc_r4(n)%flux_type = fm_util_get_string('flux_type', scalar = .true.)

0 commit comments

Comments
 (0)