Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
10 changes: 5 additions & 5 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@ enough information so someone can reproduce your tests.
- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] Any dependent changes have been merged and published in downstream modules
- [ ] New check tests, if applicable, are included
- [ ] `make distcheck` passes
- [ ] I have made corresponding changes to the inline documentation (see STYLE_GUIDE.md for more info)
- [ ] My changes generate no new compiler warnings
- [ ] All added code is tested by a unit test, either by modifying an existing test or creating a new one
- [ ] Code compiles with both build systems (cmake and autotools)
- [ ] `make distcheck` is able to compile, test, and package the library

54 changes: 34 additions & 20 deletions CI.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,20 @@ Required CI for pull requests are listed first.

## Pull Request CI and checks

### Build libFMS with autotools
### Build libFMS with autotools using GCC

Required GNU build test for all pull requests/pushes.
Runs `make distcheck` after configuring via GNU autotools.

Runs on a container image with spack installed dependencies, on top a rocky linux base.

Dockerfile for image is stored at .github/workflows/Dockerfile.gnu for more specific information on the CI environment.
Dockerfile for image is stored in the [HPC-ME repository](github.com/noaa-gfdl/hpc-me).

Container environment:
gcc v12.3.0
gcc v13.2.0
mpich v4.0.2
netcdf v4.9.0
netcdf-fortran v4.6.0
netcdf-c v4.9.2
netcdf-fortran v4.6.1
autoconf v2.69
libyaml v0.2.5

Expand All @@ -33,25 +33,39 @@ libyaml v0.2.5
- `--enable-test-input=/home/unit_tests_input`


### Build libfms with cmake
### Build libfms with cmake using GCC
Required GNU build test for all pull requests/pushes.
Runs `make` after configuring via cmake.

Container environment:
gcc v7.3.0
mpich v3.3a2
netcdf v4.6.0
netcdf-fortran v4.4.4
cmake v3.22.0

container hosted at [noaagfdl/ubuntu_libfms_gnu:latest](https://hub.docker.com/r/noaagfdl/ubuntu_libfms_gnu)

cmake flags:
- `-DOPENMP=on`
- `-DOPENMP=on`
- `-DWITH_YAML=on`
- `-D64BIT=on`


### Build libfms with autotools using Intel Oneapi Compilers

Required build test for all pull requests. Workflow will build hdf5, netcdf, and libyaml and cache them for reuse. Cache can be used for a week before clearing.

Test Environment:
intel-oneapi v2025.3.0
hdf5 v1.14.6
netcdf-c v4.9.3
netcdf-fortran v4.6.2
libyaml v0.2.5

### Build libfms with autotools using Intel Classic Compilers

This test is triggered weekly on Sundays @ midnight and uses the intel 2023.1 classic compilers (ie. ifort/icc).

Test Environment:
intel-oneapi v2025.3.0
hdf5 v1.12.2
netcdf-c v4.8.1
netcdf-fortran v4.6.0
libyaml v0.2.5

### libFMS lint tests
Required test for all pull requests.
Checks code for line lengths, tabs, and trailing whitespace in accordance with
Expand All @@ -60,9 +74,9 @@ The action is hosted on github [here](https://github.com/NOAA-GFDL/simple_lint).

## Parallelworks CI
The following CI workflows run on self-hosted runners through the parallelworks platform.
### Pull Request CI libFMS with intel
Optional(does not need to pass to merge) intel build test hosted on the parallelworks platform.
Runs `make check` with intel 18 and 21 compilers for all pull requests.

### Tag CI libFMS with AM4 regression
On alpha or beta tag creation, compiles and runs full AM4 model regression testing using the new FMS tag on parallelworks.
### AM5 testing

On all pull requests, a full scale model test is compiled using the `c96L65_am5f11d12r0_amip` experiment from AM5 and run on a parallelworks cluster.

This test will compile with debug flags and openmp enabled for a basic regression test.
2 changes: 0 additions & 2 deletions INSTALL.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,8 +76,6 @@ For more information on building with autotools and build options please see

To build using CMake, follow the instructions in
[CMAKE_INSTRUCTIONS.mk](https://github.com/NOAA-GFDL/FMS/blob/main/CMAKE_INSTRUCTIONS.md).
Currently the CMake configuration is the most restrictive build option as the
compiler flags are immutable.

### GFDL MKMF

Expand Down
22 changes: 7 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,3 @@
# License Announcement

FMS will switch to the
[Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt)
with the 2025.04 release scheduled for September 2025. Please refer to
[issue 1683 on changing the license](https://github.com/NOAA-GFDL/FMS/issues/1683)
to participate in or follow any discussion on the topic.

# Modeling Framework: Flexible Modeling System (FMS)

Today’s climate models simulate highly complex systems. In response to
Expand Down Expand Up @@ -97,13 +89,13 @@ Compilers used in our Github continuous integration testing are in bold.

|Compiler | Version |Builds Successfully | Unit Testing |
|------------------------|---------|---------------------------|---------------------|
|**intel classic(ifort)**| 2021.6.0| yes | passes |
|**GNU (gfortran)** | 9.3.0 | yes | passes |
|intel oneapi (ifx) | 2021.6.0| yes | passes |
|GNU (gfortran) | 11.2.0 | yes | passes |
|HP/Cray (cce) | 9.1.1 | yes | not passing |
|Nvidia/PGI(nvfortran) | 22.9 | no | not passing |
|AMD (aocc) | 3.2.0 | no(compiles,fails to link)| not passing |
|**intel oneapi(ifx)** | 2025.3.0| yes | passes |
|**intel classic(ifort)**| 2023.2.0| yes | passes |
|**GNU (gfortran)** | 13.2.0 | yes | passes |
|GNU (gfortran) | 15.3.0 | yes | not all passing |
|HP/Cray (cce) | 9.1.1 | yes | not all passing |
|Nvidia(nvfortran) | 24.9 | no | n/a |
|AMD (aocc) | 3.2.0 | no(compiles,fails to link)| n/a |

## Documentation

Expand Down
Loading