A curated list of open technology projects to sustain a stable climate, energy supply, biodiversity and natural resources.

The Flexible Modeling System

A software framework for supporting the efficient development, construction, execution, and scientific interpretation of atmospheric, oceanic, and climate system models.
https://github.com/NOAA-GFDL/FMS

Category: Climate Change
Sub Category: Earth and Climate Modeling

Keywords

climate climate-model fms fortran gfdl infrastructure netcdf

Keywords from Contributors

numerical-modeling fre ocean-circulation climate-modeling ocean-circulation-models physics fv3 model-component build make

Last synced: about 16 hours ago
JSON representation

Repository metadata

GFDL's Flexible Modeling System

README.md

\page rm General Project Information

Modeling Framework: Flexible Modeling System (FMS)

Today’s climate models simulate highly complex systems. In response to
increasingly complex models, the climate community has developed tools and
methodologies to facilitate the modeling process and many common tasks (e.g.,
calendar management, grid generation, I/O). Such frameworks come with a number
of advantages, including decreased model development time and increased
compatibility of interfaces.

The Flexible Modeling System (FMS) is a software environment that supports the
efficient development, construction, execution, and scientific interpretation of
atmospheric, oceanic, and climate system models. This framework allows
algorithms to be expressed on a variety of high-end computing architectures
using common and easy-to-use expressions of the underlying platforms, spanning
distributed and shared memory, as well as high-performance architectures.
Scientific groups at GFDL can develop new physics and new algorithms
concurrently, and coordinate periodically through this framework.

FMS Framework

Modeling frameworks for the construction of coupled models, made from
independent model components, are now prevalent across this field. FMS was one
of the first frameworks to be developed — since the advent of the Cray T3E in
1998 — and is still in use and under development today, using new architectures
and new algorithms.

What is FMS

The Flexible Modeling System (FMS) is a software framework for supporting the
efficient development, construction, execution, and scientific interpretation of
atmospheric, oceanic, and climate system models. FMS consists of the
following:

  1. A software infrastructure for constructing and running atmospheric, oceanic,
    and climate system models. This infrastructure includes software to handle
    parallelization, input and output, data exchange between various model grids,
    orchestration of the time stepping, makefiles, and simple sample run scripts.
    This infrastructure should largely insulate FMS users from machine-specific
    details.
  2. A standardization of the interfaces between various component models
    including software for standardizing, coordinating, and improving diagnostic
    calculations of FMS-based models, and input data preparation for such models.
    Common preprocessing and post-processing software are included to the extent
    that the needed functionality cannot be adequately provided by available
    third-party software.
  3. Contributed component models that are subjected to a rigorous software
    quality review and improvement process. The development and initial testing of
    these component models is largely a scientific question, and would not fall
    under FMS. The quality review and improvement process includes consideration of
    (A) compliance with FMS interface and documentation standards to ensure
    portability and inter-operability, (B) understandability (clarity and
    consistency of documentation, comments, interfaces, and code), and (C) general
    computational efficiency without algorithmic changes.
  4. A standardized technique for version control and dissemination of the
    software and documentation.

FMS does not include the determination of model configurations, parameter
settings, or the choice amongst various options. These decisions require
scientific research. Similarly, the development of new component models is a
scientific concern that is outside of the direct purview of FMS. Nonetheless,
infrastructural changes to enable such developments are within the scope of FMS.
The collaborative software review process of contributed models is therefore an
essential facet of FMS.

Dependencies and installation

The following external libraries are required when building libFMS

  • NetCDF C and Fortran (77/90) headers and libraries
  • Fortran 2003 standard compiler
  • Fortran compiler that supports Cray Pointer
  • MPI C and Fortran headers and libraries (optional)
  • Libyaml header and libraries (optional)
  • Linux or Unix style system

Please see the Build and Installation page
for more information on building with each build system.

Compiler Support

For most production environments and large scale regression testing, FMS is currently compiled with the
Intel classic compiler (ifort) but will be transitioning to the llvm-based ifx intel compiler when it is
available for production.

Below shows the status of our compiler support for various compilers and versions. Testing was done on
CentOS 8, with additional testing using a larger cray SLES system. MPICH is used as the MPI library
except for the intel compilers, which use intel's mpi library.
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

Documentation

Source code documentation for the FMS code base is available at http://noaa-gfdl.github.io/FMS.
The documentation is generated by doxygen and updated upon releases, and a copy of the site
can be obtained through the gh-pages branch or generated manually with
./configure --enable-docs && make -C docs. For more information on documentating the code
with doxygen please see the
documentation style guide.

Disclaimer

The United States Department of Commerce (DOC) GitHub project code is provided
on an 'as is' basis and the user assumes responsibility for its use. DOC has
relinquished control of the information and no longer has responsibility to
protect the integrity, confidentiality, or availability of the information. Any
claims against the Department of Commerce stemming from the use of its GitHub
project will be governed by all applicable Federal law. Any reference to
specific commercial products, processes, or services by service mark,
trademark, manufacturer, or otherwise, does not constitute or imply their
endorsement, recommendation or favoring by the Department of Commerce. The
Department of Commerce seal and logo, or the seal and logo of a DOC bureau,
shall not be used in any manner to imply endorsement of any commercial product
or activity by DOC or the United States Government.

This project code is made available through GitHub but is managed by NOAA-GFDL
at https://gitlab.gfdl.noaa.gov.


Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: 7 days ago

Total Commits: 2,448
Total Committers: 94
Avg Commits per committer: 26.043
Development Distribution Score (DDS): 0.874

Commits in past year: 258
Committers in past year: 21
Avg Commits per committer in past year: 12.286
Development Distribution Score (DDS) in past year: 0.574

Name Email Commits
colingladueNOAA 6****A 309
Uriel Ramirez u****7@g****m 291
Seth Underwood S****d@n****v 273
Thomas Robinson t****n@n****v 191
Ryan Mulhall 3****6 179
Rusty Benson r****n@n****v 97
Zhi Liang Z****g@n****v 88
Uriel Ramirez u****z@n****v 88
Ed Hartnett e****t@g****m 80
mlee03 M****e@n****v 64
Ryan Mulhall r****l@l****v 55
Garrett.Wright G****t@n****v 52
Edward Hartnett E****t@n****v 50
rem1776 R****l@l****v 48
Flexible Modeling System F****m@n****v 44
rem1776 R****l@l****v 43
Raymond Menzel R****l@n****v 40
Jess 2****r 39
Eric Stofferahn 7****c 33
Eric Stofferahn E****n@n****v 31
ngs333 m****a@a****m 30
Jesse Lentz 4****z 26
Niki Zadeh N****h@n****v 23
Sergey Malyshev S****v@n****v 18
Lauren Chilutti 6****i 17
ganganoaa 1****a 14
Robert Hallberg R****g@n****v 14
Rahul Mahajan a****l 14
raymond Menzel R****l@l****v 13
Fabien Paulot F****t@n****v 11
and 64 more...

Committer domains:


Issue and Pull Request metadata

Last synced: 1 day ago

Total issues: 599
Total pull requests: 1,106
Average time to close issues: 4 months
Average time to close pull requests: 29 days
Total issue authors: 64
Total pull request authors: 57
Average comments per issue: 1.94
Average comments per pull request: 1.29
Merged pull request: 905
Bot issues: 0
Bot pull requests: 16

Past year issues: 78
Past year pull requests: 132
Past year average time to close issues: about 1 month
Past year average time to close pull requests: 16 days
Past year issue authors: 18
Past year pull request authors: 17
Past year average comments per issue: 0.92
Past year average comments per pull request: 0.55
Past year merged pull request: 103
Past year bot issues: 0
Past year bot pull requests: 9

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/NOAA-GFDL/FMS

Top Issue Authors

  • uramirez8707 (110)
  • thomas-robinson (59)
  • underwoo (40)
  • edwardhartnett (39)
  • rem1776 (38)
  • mlee03 (35)
  • nikizadehgfdl (29)
  • wrongkindofdoctor (22)
  • edhartnett (21)
  • laurenchilutti (20)
  • colingladueNOAA (18)
  • bensonr (17)
  • GFDL-Eric (16)
  • marshallward (15)
  • mathomp4 (13)

Top Pull Request Authors

  • uramirez8707 (239)
  • rem1776 (235)
  • thomas-robinson (102)
  • underwoo (59)
  • mlee03 (58)
  • J-Lentz (40)
  • colingladueNOAA (34)
  • GFDL-Eric (33)
  • edwardhartnett (32)
  • ganganoaa (32)
  • wrongkindofdoctor (29)
  • mcallic2 (25)
  • bensonr (25)
  • ngs333 (16)
  • github-actions[bot] (16)

Top Issue Labels

  • enhancement (222)
  • bug (88)
  • question (26)
  • help wanted (24)
  • new fms io (21)
  • feature request (14)
  • suggestion (12)
  • wontfix (6)
  • development (6)
  • documentation (6)
  • support (5)
  • good first issue (4)
  • duplicate (2)
  • invalid (1)

Top Pull Request Labels

  • enhancement (79)
  • bug (74)
  • development (52)
  • new fms io (22)
  • feature request (21)
  • documentation (19)
  • suggestion (4)
  • support (2)
  • duplicate (1)

Package metadata

spack.io: fms

GFDL's Flexible Modeling System (FMS) is a software environment that supports the efficient development, construction, execution, and scientific interpretation of atmospheric, oceanic, and climate system models.

  • Homepage: https://github.com/NOAA-GFDL/FMS
  • Licenses: []
  • Latest release: 2025.01 (published 3 months ago)
  • Last Synced: 2025-04-25T14:07:52.338Z (1 day ago)
  • Versions: 24
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Rankings:
    • Dependent repos count: 0.0%
    • Forks count: 9.796%
    • Stargazers count: 19.842%
    • Average: 21.728%
    • Dependent packages count: 57.274%
  • Maintainers (5)

Dependencies

.github/workflows/version.yml actions
  • actions/checkout v3 composite
  • peter-evans/create-pull-request v4 composite
.github/workflows/github_autotools_gnu.yml actions
  • actions/checkout v2 composite
.github/workflows/github_autotools_intel.yml actions
  • actions/cache v3 composite
  • actions/checkout v2 composite
.github/workflows/github_cmake_gnu.yml actions
  • actions/checkout v2 composite
.github/workflows/github_coupler_gnu.yml actions
  • actions/checkout v2 composite
.github/workflows/github_doc_site.yml actions
  • actions/checkout v2 composite
  • actions/deploy-pages v1 composite
  • actions/upload-pages-artifact v1 composite
.github/workflows/github_linter.yml actions
  • NOAA-GFDL/simple_lint f5aa1fe976bd4c231db0536ba00cbfdc26708253 composite
  • actions/checkout v2 composite
.github/workflows/parallelworks_am4_intel.yml actions

Score: 11.36766845231309