Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[pull] main from NOAA-GFDL:main #114

Merged
merged 178 commits into from
Jun 4, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
178 commits
Select commit Hold shift + click to select a range
1d3570d
Fix : Make interpolator File Path Buffer Bigger (#1469)
menzel-gfdl Mar 7, 2024
1bb706c
chore: add Molly to the code owners file(#1474)
Scitech777 Mar 7, 2024
f5d9892
feat: add support for collective parallel reads in fms2_io (#1477)
dkokron Mar 29, 2024
d328045
CI: mom6 tests on PR's (#1440)
rem1776 Apr 11, 2024
9b05ea1
chore: updates to codeowners (#1488)
thomas-robinson Apr 18, 2024
cb0c48a
fix: data_override failures with scalars and add test case (#1489)
uramirez8707 Apr 18, 2024
ac22da2
CI: update workflow containers and fully migrate to github container …
rem1776 Apr 30, 2024
e429ebd
chore: Update CONTRIBUTING.md with section for code reviews (#1495)
rem1776 Apr 30, 2024
648cbcf
fix: autotools hdf5 compiler check (#1493)
rem1776 Apr 30, 2024
a9a6165
feat: first attempt at adding the fms_diag_object to diag manager
thomas-robinson Oct 6, 2021
26b92b2
feat: Second attempt at adding the fms_diag_object to diag manager
thomas-robinson Oct 6, 2021
bef210d
feat: Adds diag_object to diag_manager folder and compiles.
thomas-robinson Oct 6, 2021
2b5faa6
feat: Adds modern diag namelist variable
thomas-robinson Oct 20, 2021
42a0c6b
feat: setup diag_yaml_object and remove object overrides
thomas-robinson Nov 2, 2021
2b2d70c
feat: Adds all variables to diag object that are registered.
thomas-robinson Oct 22, 2021
b7c350d
fix: setup register routines in diag_object
thomas-robinson Oct 22, 2021
252ef7c
fix: typos in filling in missing value for diag object registration.
thomas-robinson Oct 25, 2021
525b7e3
feat: Initial add of fms_diag_yaml_object.F90
thomas-robinson Nov 3, 2021
b215a38
fix: compile errors in new diag manager related to objects
thomas-robinson Nov 11, 2021
c907b66
feat: updates getter functions in the diag yaml objects
thomas-robinson Nov 29, 2021
0f3db8b
feat: add diag_yaml object (#866)
uramirez8707 Dec 28, 2021
1edbc32
feat: Add the fms_diag_object container. (#867)
ngs333 Jan 4, 2022
2736b35
fix: Changes fms_diag_object to fmsDiagObject_type (#879)
thomas-robinson Jan 10, 2022
93ef8e8
test: Dm update diag_yaml_object_init() tests (#883)
uramirez8707 Jan 12, 2022
b349abf
feat: add getter functions to fms_diag_object (#885)
thomas-robinson Feb 7, 2022
f1c8961
fix: diag_manager container and linked list updates and add test (#888)
ngs333 Feb 7, 2022
fd32093
feat: Moves fms_diag_yaml_obj to fms_diag_yaml and updates test (#887)
uramirez8707 Feb 7, 2022
4175073
fix: diag_yaml object fix frequency and reading reductions (#901)
uramirez8707 Feb 25, 2022
80c887b
feat: add has_* functions for allocatables (#910)
thomas-robinson Feb 25, 2022
9ca540b
feat: update functions to be pure in diag and yaml objects (#923)
thomas-robinson Feb 25, 2022
e77c03f
feat: modern diag add diag_model_subset behaviour for ocean models (#…
uramirez8707 Mar 14, 2022
3a05694
feat: rework logic to ignore non-written files (#936)
uramirez8707 Mar 14, 2022
63ceb68
feat: updates for setting/getting base time variables and add test (#…
uramirez8707 Mar 21, 2022
13cc758
feat: add fms_find_unique to string_utils (#938)
uramirez8707 Mar 21, 2022
10acbe7
chore: Remove use_mpp_io from diag manager (#940)
thomas-robinson Mar 23, 2022
5b80462
feat: Modern diag register_diag_field set up (#939)
uramirez8707 Mar 24, 2022
ca08c77
feat: modern diag init updates to get number of unique fields and err…
uramirez8707 Mar 29, 2022
4dc1dd8
Yaml updates (#942)
uramirez8707 Mar 30, 2022
41e7a0f
fix: modern diag removes realm variables and cleans up white space (#…
uramirez8707 Apr 1, 2022
c795b72
feat: update and add helper routines for register_diag_field (#950)
uramirez8707 Apr 14, 2022
16f1153
feat: Update supported types in diag_manager (#955)
uramirez8707 Apr 14, 2022
d184fe8
feat: add diag axis obj (#966)
uramirez8707 May 11, 2022
b704b46
feat: modern diag add number of diurnal sample and power level to the…
uramirez8707 May 16, 2022
d1c4575
feat: modern diag subregional yaml update (#973)
uramirez8707 May 23, 2022
e3cc260
feat: add diag file object (#943)
thomas-robinson Jun 1, 2022
443ad0e
feat: Diag_axis_init set up (#978)
uramirez8707 Jun 1, 2022
0b90ed2
feat: modern diag add io routines for diag_axis object (#982)
uramirez8707 Jun 3, 2022
6a25b29
feat: finish register diag field routines (#984)
uramirez8707 Jun 15, 2022
07ea894
feat: modern diag allow for variables with the same name, but differe…
uramirez8707 Jun 29, 2022
dbfc95c
feat: add a modern version of add_diag_axis_attribute (#990)
uramirez8707 Jun 29, 2022
dd004c5
feat: modern diag implement register_static_field and move diag_objs …
uramirez8707 Jul 5, 2022
7cb3249
fix: class(*) updates needed for compatibility of dmUpdate with 2022.…
thomas-robinson Jul 26, 2022
6364deb
fix: Compiling dmUpdate post merge of 2022.03-beta1 (#979)
ngs333 Jul 26, 2022
5111889
docs: modern diag uml design update (#1015)
thomas-robinson Aug 5, 2022
06efc24
feat: modern diag add time info to diag file obj (#1002)
uramirez8707 Aug 8, 2022
87a5bee
feat: modern diag add field attributes and implement old getter routi…
uramirez8707 Aug 8, 2022
e0a2cd4
feat: Modern diag_manager use integer parameters instead of strings (…
uramirez8707 Aug 15, 2022
f01730f
feat: redesign objects and add diag field object (#1017)
thomas-robinson Aug 15, 2022
419e5d3
fix: modern diag make type bound procedures private except when throu…
rem1776 Aug 16, 2022
48a1c16
docs: modern diag add class uml diagrams (#1018)
thomas-robinson Aug 16, 2022
3eb9b80
chore: clean up the diag registers (#1023)
uramirez8707 Aug 16, 2022
70d3c52
style: Modifying several classes to use the "this" in type bound proc…
ngs333 Aug 23, 2022
fd3c088
feat: update axis/subaxis types and add controller object (#1024)
uramirez8707 Sep 13, 2022
49da92e
feat: Add fms_diag_time_utils.F90 (#1041)
uramirez8707 Sep 15, 2022
8a39734
feat: modern diag Adds zbounds to the diag_field yaml (#1037)
uramirez8707 Sep 15, 2022
a9ba784
feat: add diag buffer object (#1019)
rem1776 Oct 4, 2022
c50bb00
feat: modern diag_manager add io to open_file (#1044)
uramirez8707 Oct 4, 2022
a02fcfb
feat: add dump routines for diag objects (#1048)
rem1776 Oct 7, 2022
9a26ea8
chore: modern diag ifdef cleanup (#1049)
thomas-robinson Oct 7, 2022
36021b3
test: add failure test for compiling without yaml + skip empty tests …
rem1776 Oct 7, 2022
dd78335
feat: modern diag subaxis setup (#1056)
uramirez8707 Nov 8, 2022
c2bd92f
feat: modern diag add time axis io (#1068)
uramirez8707 Nov 22, 2022
169f094
feat: Add flexible timing feature in modern diag_manager (#1077)
uramirez8707 Dec 16, 2022
eb09d9e
feat: modern diag add diag_accept_data (#1088)
thomas-robinson Jan 25, 2023
4c736d4
feat: modern diag Add some of the io for the field's metadata (#1102)
uramirez8707 Jan 31, 2023
552ae01
feat: modern diag add support for unstructured grid files axis (#1114)
uramirez8707 Feb 1, 2023
59ebadf
docs: modern diag table documentation (#1122)
uramirez8707 Feb 2, 2023
050a32c
fix: modern diag race conditions and add send_data tests (#1130)
uramirez8707 Feb 8, 2023
d559557
fix: modern diag io updates for pack size and setting time to use in …
uramirez8707 Feb 22, 2023
c85d9cb
docs: modern diag add documentation explaining the is_ocean key (#1133)
uramirez8707 Feb 22, 2023
0e4a2a8
feat: Modern diag_manager add diurnal axis (#1138)
uramirez8707 Mar 7, 2023
0c0967a
feat: Modern diag manager add subzaxis (#1148)
uramirez8707 Mar 10, 2023
54f28a7
fix: Adds a variable to the diag_object to store the current model ti…
uramirez8707 Mar 22, 2023
51bb47f
style: modern diag follow the this convention for object procedures (…
uramirez8707 Mar 22, 2023
9e255a6
fix: Modern diag manager check if field is registered (#1151)
uramirez8707 Mar 29, 2023
d860531
fix: modern diag add has routine and fixes some type bound procedure …
ganganoaa Apr 6, 2023
eb51414
fix: bounds typo and change get_buffer to reference its argument inst…
rem1776 Apr 6, 2023
20b9efe
feat: modern diag store a variable that defines if a variable is a sc…
uramirez8707 Apr 6, 2023
707ddab
fix: modern diag rename to add output to buffer names (#1184)
rem1776 Apr 6, 2023
3065a3e
feat: update log_diag_field_info for modern diag (#1090)
rem1776 Apr 21, 2023
1ea7d60
feat: Modern diag_manager write out the cell_measures and cell_method…
uramirez8707 Apr 21, 2023
3dc191b
feat: Modern diag_manager Add a function that determine the type of t…
uramirez8707 Apr 21, 2023
a935cc1
feat: Modern diag_manager add standard_name and coordinates attribute…
uramirez8707 Apr 25, 2023
233099a
feat: add get_diag_field_ids to fms_diag_yaml_mod (#1186)
ganganoaa Apr 25, 2023
719e0df
docs: update modern diag uml diagrams (#1161)
ganganoaa Apr 25, 2023
7e87981
fix: Modern diag_manager fixes related to static and scalar fields (#…
uramirez8707 Apr 26, 2023
9a59b1f
feat: Adds allocate_diag_field_output_buffers() to fms_diag_object_mo…
ganganoaa May 3, 2023
454538e
feat: Adds a function, check_indices_order(), to diag_util_mod (#1203)
ganganoaa May 3, 2023
dde7138
feat: modern diag add real_copy_set to diag_util_mod (#1204)
ganganoaa May 3, 2023
6a07b27
feat: modern diag add routine init_mask_3d() to diag_util_mod (#1201)
ganganoaa May 10, 2023
abeb277
feat: modern diag initializes buffer_ids and buffer_allocated (#1210)
ganganoaa May 31, 2023
78aa657
feat: modern diag add fms_diag_compare_window() to fmsDiagObject_type…
ganganoaa May 31, 2023
0c4f54b
feat: modern diag write global/variable attributes defined in the yam…
uramirez8707 Jun 28, 2023
84558cd
feat: updates function fms_diag_output_buffer_mod::remap_buffer (#1260)
ganganoaa Jun 28, 2023
4a7166b
chore: removed mpp_io_init from test_diag_dlinked_list
thomas-robinson Jul 6, 2023
28f6999
chore: Removes mpp_io from test_diag_object_container
thomas-robinson Jul 6, 2023
9d05891
fix: modern diag incorrect type values and static kind sizes (#1263)
rem1776 Jul 12, 2023
50624ef
feat: modern diag remove redundant fields in yaml object (#1269)
uramirez8707 Jul 13, 2023
116fd08
feat: modern diag add axis ids to the buffer object (#1278)
uramirez8707 Jul 13, 2023
417a146
feat: modern diag adds function recondition_indices to diag_util_mod …
ganganoaa Jul 14, 2023
2429914
test: Add diag_manager testing for openmp (#1281)
uramirez8707 Jul 31, 2023
b1a2fa2
fix: modern diag reproduce old diag_field_not_found behaviour (#1301)
uramirez8707 Jul 31, 2023
9662f18
feat: modern diag write buffer set up (#1311)
uramirez8707 Aug 1, 2023
502dbac
feat: modern diag fix and add calls to allocate_diag_field_output_buf…
uramirez8707 Aug 7, 2023
7d5d942
feat: modern_diag add calls to write_data (#1320)
uramirez8707 Aug 11, 2023
1d79409
feat: modern_diag_manager add fms_diag_do_reduction (#1321)
uramirez8707 Aug 11, 2023
4d36e26
fix: Modern diag manager refactor buffers (#1332)
uramirez8707 Aug 15, 2023
56b48a9
fix: changes all fms2 fileobj instances to fms2io_fileobj (#1333)
mcallic2 Aug 15, 2023
19034cd
test: modern diag manager add reduction method tests (#1335)
uramirez8707 Aug 16, 2023
5c2b0c9
feat: modern diag implement time_none reduction (#1347)
uramirez8707 Aug 24, 2023
86f8ad4
feat: modern_diag_manager update output_buffer_obj (#1354)
uramirez8707 Sep 8, 2023
67a3405
feat: modern diag change type of buffer counter (#1315)
rem1776 Sep 8, 2023
2a6da68
feat: Modern diag manager input buffer obj (#1362)
uramirez8707 Sep 13, 2023
a89540e
feat: Modern_diag_manager add time_min/max reductions (#1367)
uramirez8707 Sep 19, 2023
3335b7d
feat: changes `fileobj` to `yaml_fileobj` (#1334)
mcallic2 Sep 27, 2023
911edb0
feat: modern diag add time_sum reduction (#1375)
rem1776 Oct 11, 2023
35d4e86
fix: diag_send_complete loops and add get_file_ids (#1407)
rem1776 Nov 15, 2023
cb5f8ab
fix: move mask from input buffer object to field object (#1411)
rem1776 Nov 20, 2023
f6816c2
feat: Modern_diag_manager add send data 4d (#1402)
uramirez8707 Nov 20, 2023
d1ec282
fix build issues
Dec 15, 2023
c1ad3a8
fix name used for makefile conditionals in tracer and field manager t…
Dec 15, 2023
2b300a8
fix: add missing imports from update diag code
Dec 15, 2023
1635f3e
fix conditionals in test scripts
Dec 15, 2023
b9f7635
feat: modern diag add time_average reduction method and test (#1421)
rem1776 Dec 27, 2023
180b8c3
fix: Modern_diag_manager Fix error messages + Fixes for opemp (#1432)
uramirez8707 Jan 9, 2024
dbd4db9
docs: Adds the schema for the diag_table YAML (#1441)
thomas-robinson Jan 18, 2024
4996cb8
chore: Removes unused diag manager update files (#1443)
thomas-robinson Jan 18, 2024
799a687
fix: Modern Diag Manager changes for reproducibility (#1435)
uramirez8707 Jan 18, 2024
4243f7c
feat: modern diag add pow and rms reductions (#1439)
rem1776 Jan 18, 2024
5228ba4
feat: modern diag add diurnal reduction (#1438)
rem1776 Jan 18, 2024
a69bbac
fix: remove the lowercase when saving the filename in the sorted list…
uramirez8707 Jan 25, 2024
f11a556
fix: diag_manager multiple subregional diagnostics in the same file (…
uramirez8707 Feb 9, 2024
c1a8df8
fix: correctly adds the associated_files attribute and other reproduc…
uramirez8707 Feb 9, 2024
66934ea
fix: finish diag manager reduction methods at the right time (#1459)
uramirez8707 Feb 13, 2024
6900a7a
fix: diag manager support for multiple z subaxes and for static varia…
uramirez8707 Feb 22, 2024
2202c14
fix: move type declaration and change type for nvhpc (#1463)
rem1776 Feb 22, 2024
8721913
fix: modern diag updates for the mask_variant=.true. case (#1464)
uramirez8707 Feb 29, 2024
409caee
feat!: modern diag manager: remove non-standard time bounds (#1466)
uramirez8707 Feb 29, 2024
52a554b
Fix: Modern Diag Manager Subregional Corner Diagnostics (#1470)
uramirez8707 Mar 5, 2024
92ee40b
Fix: Diag Manager Logic to add extra unlimited dimension (#1472)
uramirez8707 Mar 5, 2024
2cae720
fix: modern diag manager input buffer (#1468)
uramirez8707 Mar 6, 2024
d7314d6
fix: Modern_diag_manager multiple_send_data calls option (#1478)
uramirez8707 Mar 18, 2024
0d0c8ac
fix: diag_manager hack for when starting with 2/29 and outputting yea…
uramirez8707 Mar 18, 2024
a13eb33
Fix: Modern diag manager. Catch missing_values without masks (#1481)
uramirez8707 Mar 19, 2024
b1186aa
Fix: dmUpdate nvhpc compile error (#1473)
rem1776 Mar 19, 2024
fab3204
docs: update diag manager readme and add markdown for yaml format (#…
uramirez8707 Mar 28, 2024
41f5915
fix: modern_diag_manager empty files and non registered fields (#1482)
uramirez8707 Mar 29, 2024
8d1bef6
fix: diag_manager uninitialized return value (#1484)
rem1776 Mar 29, 2024
4b5cd16
fix: modern diag fixes for gcc (#1486)
rem1776 Apr 11, 2024
7a13581
fix: diag manager keep track of time and unlimited dimension at the f…
uramirez8707 Apr 16, 2024
d8bf2db
feat: diag manager output yaml routine (#1080)
rem1776 Apr 18, 2024
65b16d5
chore: delete docs_uml directory and bring over any diffs
May 3, 2024
4faa9a8
Merge branch 'NOAA-GFDL:main' into dmupdate-rebase-pt101
rem1776 May 3, 2024
980cb54
fix: missed changes for test_diag_yaml
May 3, 2024
00f8e36
Merge branch 'dmupdate-rebase-pt101' of github.com:rem1776/FMS into d…
May 3, 2024
b67a685
feat: Merge dmUpdate branch into main (#1505)
rem1776 May 3, 2024
87344ee
chore: 2024.01 changelog and version updates (#1507)
rem1776 May 3, 2024
d42f8ac
chore: append dev to version number after release (#1509)
github-actions[bot] May 6, 2024
c422d44
fix: Modern_diag_manager 0 days frequencies and mix_snapshot_average_…
uramirez8707 May 9, 2024
03a9c74
fix: modern diag manager allocation failures when using two empty fil…
uramirez8707 May 9, 2024
0368711
fix: remove unused legacy function from test_mpp_gatscat.F90 (#1510)
rem1776 May 9, 2024
e2fa28a
fix: modern diag manager correctly use the weight argument from send_…
uramirez8707 May 9, 2024
42f8506
fix: use mpp_gather to improve iceberg restart read times (#1460)
alex-huth May 9, 2024
6933c96
fix: modern diag manager time_bnds issue when running for 1 day and r…
uramirez8707 May 17, 2024
98e2ebd
fix: implement flush_nc_files in the new diag manager and adds a test…
uramirez8707 May 17, 2024
c00367f
fix: modern diag allow mixing static and non-static fields when the f…
uramirez8707 May 21, 2024
460c592
chore: 2024.01.01 release updates (#1535)
rem1776 May 30, 2024
5757c78
chore: append -dev to version number (#1536)
github-actions[bot] May 30, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 9 additions & 13 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
Expand Up @@ -34,15 +34,13 @@ Makefile.am @uramirez8707 @rem1776
*.m4 @uramirez8707 @rem1776

# cmake files
CM* @mlee03 @ngs333
cmake @mlee03 @ngs333
CM* @mlee03
cmake @mlee03

# Files specific to GitHub or GitLab
/.github/ @GFDL-Eric @rem1776
/.gitlab/ @GFDL-Eric @rem1776
/.github/ @rem1776

# Testing files
/.gitlab-ci.yml @uramirez8707 @mlee03 @bensonr @thomas-robinson @rem1776
/test_fms/ @uramirez8707 @mlee03 @bensonr @thomas-robinson @rem1776

# Specific component directories
Expand All @@ -52,18 +50,16 @@ cmake @mlee03 @ngs333
/block_control/ @bensonr
/test_fms/block_control/ @bensonr @rem1776

/data_override/ @GFDL-Eric
/test_fms/data_override/ @GFDL-Eric @rem1776
#/data_override/ Currently no code owner
/test_fms/data_override/ @rem1776

/diag_manager @thomas-robinson @ngs333
/test_fms/diag_manager/ @thomas-robinson @ngs333

/fv3gfs/ @bensonr
/diag_manager @thomas-robinson
/test_fms/diag_manager/ @thomas-robinson

/fms/ @thomas-robinson @rem1776
/test_fms/fms/ @thomas-robinson @rem1776
/fms2/ @uramirez8707 @GFDL-Eric
/test_fms/fms2/ @uramirez8707 @GFDL-Eric
/fms2/ @uramirez8707
/test_fms/fms2/ @uramirez8707

/libFMS/ @thomas-robinson @rem1776

Expand Down
68 changes: 0 additions & 68 deletions .github/workflows/Dockerfile.gnu

This file was deleted.

6 changes: 3 additions & 3 deletions .github/workflows/github_autotools_gnu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,17 +14,17 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
conf-flag: [ --disable-openmp, --disable-setting-flags, --with-mpi=no, --disable-r8-defaults]
conf-flag: [ --disable-openmp, --disable-setting-flags, --with-mpi=no, --disable-r8-default]
input-flag: [--with-yaml, --enable-test-input=/home/unit_tests_input]
exclude:
- conf-flag: --with-mpi=no
input-flag: --enable-test-input=/home/unit_tests_input
container:
image: noaagfdl/fms-ci-rocky-gnu:12.3.0
image: ghcr.io/noaa-gfdl/fms/fms-ci-rocky-gnu:13.2.0
env:
TEST_VERBOSE: 1
DISTCHECK_CONFIGURE_FLAGS: "${{ matrix.conf-flag }} ${{ matrix.input-flag }} ${{ matrix.io-flag }}"
SKIP_TESTS: "test_yaml_parser.5" # temporary till fixes are in
SKIP_TESTS: "test_horiz_interp2.[23-24]" # TODO (couldn't reproduce outside CI)
steps:
- name: Checkout code
uses: actions/checkout@v4
Expand Down
5 changes: 1 addition & 4 deletions .github/workflows/github_cmake_gnu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,7 @@ jobs:
libyaml-flag: [ "", -DWITH_YAML=on ]
io-flag: [ "", -DUSE_DEPRECATED_IO=on ]
container:
image: ghcr.io/noaa-gfdl/fms/fms-ci-rocky-gnu:12.3.0
credentials:
username: ${{ github.actor }}
password: ${{ secrets.github_token }}
image: ghcr.io/noaa-gfdl/fms/fms-ci-rocky-gnu:13.2.0
env:
CMAKE_FLAGS: "${{ matrix.omp-flags }} ${{ matrix.io-flag }} ${{ matrix.libyaml-flag }} -D64BIT=on"
steps:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/github_coupler_gnu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:
coupler-build:
runs-on: ubuntu-latest
container:
image: ghcr.io/noaa-gfdl/fms/fms-ci-rocky-gnu:12.3.0
image: ghcr.io/noaa-gfdl/fms/fms-ci-rocky-gnu:13.2.0
credentials:
username: ${{ github.actor }}
password: ${{ secrets.github_token }}
Expand Down
32 changes: 32 additions & 0 deletions .github/workflows/github_mom_gnu.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Run MOM6 test suite

# runs on PR's or when manually triggered
on: [workflow_dispatch, pull_request]

# cancel running jobs if theres a newer push
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
build:
runs-on: ubuntu-latest
container:
image: ghcr.io/noaa-gfdl/fms/fms-ci-rocky-gnu:13.2.0
credentials:
username: ${{ github.actor }}
password: ${{ secrets.github_token }}
steps:
- name: Checkout MOM6 repository
uses: actions/checkout@v4
with:
repository: 'NOAA-GFDL/MOM6'
submodules: recursive
- name: Checkout FMS into MOM build
uses: actions/checkout@v4
with:
path: .testing/deps/fms/src
- name: Build FMS and MOM test suite
run: make -C .testing -j
- name: Run MOM tests
run: make -C .testing -j test
17 changes: 0 additions & 17 deletions .github/workflows/spack.env

This file was deleted.

93 changes: 93 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,99 @@ 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`).

## [2024.01.01] - 2024-05-30

### Known Issues
- Diag Manager Rewrite:
- 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
- BUILD(HDF5): HDF5 version 1.14.3 generates floating point exceptions, and will cause errors if FMS is built with FPE traps enabled.
- 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
- DIAG_MANAGER: Implements `flush_nc_files` functionality from legacy diag_manager.

### Changed
- 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.

### Fixed
- 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.
- DIAG_MANAGER: Fixes issue with the weight argument not getting passed through to reduction methods.
- DIAG_MANAGER: Allocation errors when using two empty files.
- DIAG_MANAGER: `time` and `time_bnds` being larger than expected when running for 1 day and using daily data.
- DIAG_MANAGER: Allows for mixing static and non-static fields when frequency is 0 days.
- TESTS: Fixes compile failure with ifort 2024.01 from test_mpp_gatscat.F90.

### Removed
- DIAG_MANAGER: The `mix_snapshot_average_fields` option is deprecated for the rewritten diag_manager only.

### Tag Commit Hashes
- 2024.01.01-beta2 c00367fa810960e87610162f0f012c5da724c5a9
- 2024.01.01-beta1 42f8506512e1b5b43982320f5b9d4ca1ca9cbebd

## [2024.01] - 2024-05-03

### Known Issues
- 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`. New features include:
- Self-describing YAML formatting for diag_table's
- Allows 4d variables
- Support defining subregions with indices
- More flexibility when adding metadata and defining output frequency
- 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 option to use multiple data files for one field within data_override in order to use annual data files in yearly runs without having to append/prepend timesteps from previous and next year. With the legacy data_table, filenames can be set in order and separated with `:` ie. `prev_year.nc:curr_year.nc:next_year.nc`. With the data_table.yaml format, the key `is_multi_file` enables the functionality and `prev_file_name` and `next_file_name` sets the file paths.

- INTERPOLATOR: Adds support for yearly/annual data
- DATA_OVERRIDE: Adds support for monotonically decreasing arrays for `nearest_index`, `axis_edges`, `horiz_interp`(bilinear), and `data_override` (#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
- 2024.01-beta5 d3bab5a84b6a51eddd46ab6fb65eaa532830c6c7
- 2024.01-beta4 ac363ddfd3075637cecae30ddfbae7a78751197b
- 2024.01-alpha6 2ace94564a08aec4d7ab7eca0e57c0289e52d5b1
- 2024.01-alpha5 5ed0bd373cc59a9681052fa837cb83a67169d102
- 2024.01-alpha4 8dd90d72b58f0de3632dc62920f8adfb996b2265
- 2024.01-beta3 f71405a075102aef42f5811dc09e239ddd002637
- 2024.01-beta2 bb6de937f70a08a440f5e63b8553b047c1921509
- 2024.01-beta1 913f8aaecca374d5e10280056de862d5e4a7a668
- 2024.01-alpha3 085c6bfc945a6f1c586b842ca6268fca442884d8
- 2024.01-alpha2 38bfde30e1cb8bf5222410a9c37e71529567bf69
- 2024.01-alpha1 ac0d086296ea8b9196552463655cb9a848db39fe

## [2023.04] - 2023-12-04
### Known Issues
- GCC 9 and below as well as GCC 11.1.0 are unsupported due to compilation issues. See prior releases for more details.
Expand Down
11 changes: 10 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ set(CMAKE_Fortran_FLAGS_DEBUG)

# Define the CMake project
project(FMS
VERSION 2023.04.0
VERSION 2024.01.01
DESCRIPTION "GFDL FMS Library"
HOMEPAGE_URL "https://www.gfdl.noaa.gov/fms"
LANGUAGES C Fortran)
Expand Down Expand Up @@ -125,11 +125,20 @@ list(APPEND fms_fortran_src_files
diag_manager/diag_output.F90
diag_manager/diag_table.F90
diag_manager/diag_util.F90
diag_manager/fms_diag_time_utils.F90
diag_manager/fms_diag_object.F90
diag_manager/fms_diag_yaml.F90
diag_manager/fms_diag_file_object.F90
diag_manager/fms_diag_field_object.F90
diag_manager/fms_diag_axis_object.F90
diag_manager/fms_diag_output_buffer.F90
diag_manager/fms_diag_input_buffer.F90
diag_manager/fms_diag_time_reduction.F90
diag_manager/fms_diag_outfield.F90
diag_manager/fms_diag_elem_weight_procs.F90
diag_manager/fms_diag_fieldbuff_update.F90
diag_manager/fms_diag_bbox.F90
diag_manager/fms_diag_reduction_methods.F90
drifters/cloud_interpolator.F90
drifters/drifters.F90
drifters/drifters_comm.F90
Expand Down
27 changes: 27 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,33 @@ long-term, portability, and the scope of the impact on the code base. Therefore,
Modeling Systems does not guarantee that all pull requests will be accepted,
even if the changes pass the initial testing phases, and are otherwise correct.

## Reviewing Pull Requests

When reviewing a pull request, members of MSD should look for the following:

- Design
- Does the code change belong in the FMS library or does it better belong elsewhere such as a component repository or the FMScoupler?
- Could existing routines/modules be utilized to reduce redundancy?
- Temporary changes/fixes meant to be removed should be avoided whenever possible
- Functionality
- Does this PR do what is intended (and stated)
- Are the changes good for both end-users and developers?
- Will the code change impact existing end-users needlessly?
- Complexity
- Are the changes easily understood by the reader / reviewer?
- Testing
- Code changes should include a test program or a modification to a test program to ensure the code is covered by the test suite
- Comments
- Inline comments for complex code segments or intricacies to make the purpose of the code reasonably clear
- Style and Consistency
- Code should follow the syle guide in general, but should also be consistent to the file the change is made in
- Documentation
- If a PR changes the behaviour or instructions, accompanying documentation should also change
- Thoroughness
- Reviews should be done line by line, and the surrounding context/file should be taken into account

Comments on pull requests should be courteous and constructive, giving useful feedback and explanations for why changes should be made. See the [code of conduct](CODE_OF_CONDUCT.md) for more information.

## Tests

FMS uses TravisCI and gitlab-CI to run build tests for libFMS. Users may create
Expand Down
5 changes: 3 additions & 2 deletions Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ SUBDIRS = \
mosaic2 \
fms \
parser \
string_utils \
affinity \
mosaic \
time_manager \
Expand Down Expand Up @@ -125,10 +126,10 @@ check-code-coverage: check
.PHONY: check-code-coverage

clean-local:
-rm -rf .mods coverage-data coverage-report
-rm -rf .mods coverage-data coverage-report test.nc
else
clean-local:
-rm -rf .mods
-rm -rf .mods test.nc
endif

install-data-hook:
Expand Down
Loading
Loading