FMS

GFDL's Flexible Modeling System

https://github.com/NOAA-GFDL/FMS

Science Score: 36.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    66 of 121 committers (54.5%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.8%) to scientific vocabulary

Keywords

climate climate-model fms fortran gfdl infrastructure netcdf

Keywords from Contributors

earth-system-model radiuss build-tools hpsf spack stochastic-processes bioinformatics diffusion unidata netcdf-fortran
Last synced: 5 months ago · JSON representation

Repository

GFDL's Flexible Modeling System

Basic Info
  • Host: GitHub
  • Owner: NOAA-GFDL
  • License: apache-2.0
  • Language: Fortran
  • Default Branch: main
  • Size: 67.6 MB
Statistics
  • Stars: 115
  • Watchers: 18
  • Forks: 152
  • Open Issues: 74
  • Releases: 42
Topics
climate climate-model fms fortran gfdl infrastructure netcdf
Created almost 12 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog Contributing License Code of conduct Codeowners Support

README.md

License Announcement

FMS will switch to the Apache License, Version 2.0 with the 2025.04 release scheduled for September 2025. Please refer to issue 1683 on changing the license 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 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 documenting 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

  • Name: NOAA - Geophysical Fluid Dynamics Laboratory
  • Login: NOAA-GFDL
  • Kind: organization
  • Email: gfdl.climate.model.info@noaa.gov
  • Location: Princeton, New Jersey

U.S Department of Commerce, National Oceanic and Atmospheric Administration

GitHub Events

Total
  • Create event: 23
  • Release event: 4
  • Issues event: 82
  • Watch event: 21
  • Delete event: 7
  • Issue comment event: 101
  • Push event: 79
  • Pull request review comment event: 75
  • Pull request review event: 217
  • Pull request event: 180
  • Fork event: 11
Last Year
  • Create event: 23
  • Release event: 4
  • Issues event: 82
  • Watch event: 21
  • Delete event: 7
  • Issue comment event: 101
  • Push event: 79
  • Pull request review comment event: 77
  • Pull request review event: 219
  • Pull request event: 180
  • Fork event: 11

Committers

Last synced: 6 months ago

All Time
  • Total Commits: 2,492
  • Total Committers: 121
  • Avg Commits per committer: 20.595
  • Development Distribution Score (DDS): 0.879
Past Year
  • Commits: 103
  • Committers: 16
  • Avg Commits per committer: 6.438
  • Development Distribution Score (DDS): 0.738
Top Committers
Name Email Commits
colingladueNOAA 6****A@u****m 302
Seth Underwood S****d@n****v 251
Ryan Mulhall 3****6@u****m 187
uramirez8707 4****7@u****m 153
Uriel Ramirez u****7@g****m 148
Thomas Robinson t****n@n****v 92
Uriel Ramirez u****z@n****v 88
Zhi Liang Z****g@n****v 88
Ed Hartnett e****t@g****m 80
Rusty Benson r****n@n****v 71
Thomas Robinson T****n@n****v 68
Ryan Mulhall r****l@l****v 55
rem1776 R****l@l****v 48
Flexible Modeling System F****m@n****v 44
mlee03 M****e@n****v 44
Edward Hartnett E****t@n****v 43
rem1776 R****l@l****v 43
Jess 2****r@u****m 39
Tom Robinson 3****n@u****m 37
Raymond Menzel R****l@n****v 34
Garrett.Wright G****t@n****v 33
Eric Stofferahn 7****c@u****m 33
Eric Stofferahn E****n@n****v 31
Jesse Lentz 4****z@u****m 31
MiKyung Lee 5****3@u****m 23
Garrett Wright g****t@n****v 19
Rusty Benson R****n@n****v 18
Sergey Malyshev S****v@n****v 18
ngs333 m****a@a****m 17
Niki Zadeh N****h@n****v 15
and 91 more...

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 610
  • Total pull requests: 1,289
  • Average time to close issues: 5 months
  • Average time to close pull requests: about 1 month
  • Total issue authors: 66
  • Total pull request authors: 61
  • Average comments per issue: 1.83
  • Average comments per pull request: 1.18
  • Merged pull requests: 1,037
  • Bot issues: 0
  • Bot pull requests: 25
Past Year
  • Issues: 65
  • Pull requests: 182
  • Average time to close issues: 19 days
  • Average time to close pull requests: 12 days
  • Issue authors: 19
  • Pull request authors: 18
  • Average comments per issue: 0.23
  • Average comments per pull request: 0.28
  • Merged pull requests: 125
  • Bot issues: 0
  • Bot pull requests: 12
Top Authors
Issue Authors
  • uramirez8707 (110)
  • thomas-robinson (62)
  • rem1776 (42)
  • underwoo (40)
  • edwardhartnett (39)
  • mlee03 (37)
  • nikizadehgfdl (29)
  • wrongkindofdoctor (22)
  • edhartnett (21)
  • laurenchilutti (20)
  • colingladueNOAA (18)
  • bensonr (17)
  • GFDL-Eric (16)
  • marshallward (15)
  • mathomp4 (14)
Pull Request Authors
  • uramirez8707 (288)
  • rem1776 (288)
  • thomas-robinson (115)
  • mlee03 (68)
  • underwoo (59)
  • J-Lentz (54)
  • ganganoaa (35)
  • colingladueNOAA (34)
  • GFDL-Eric (33)
  • edwardhartnett (32)
  • wrongkindofdoctor (29)
  • bensonr (26)
  • mcallic2 (25)
  • github-actions[bot] (25)
  • laurenchilutti (18)
Top Labels
Issue Labels
enhancement (225) bug (86) question (26) new fms io (21) help wanted (20) feature request (14) suggestion (12) development (6) documentation (5) support (5) wontfix (4) good first issue (4) duplicate (2) invalid (1)
Pull Request Labels
enhancement (79) bug (74) development (52) feature request (22) new fms io (22) documentation (19) suggestion (4) support (2) duplicate (1)

Packages

  • Total packages: 1
  • Total downloads: unknown
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 30
  • Total maintainers: 5
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.

  • Versions: 30
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 0.0%
Forks count: 9.8%
Stargazers count: 19.8%
Average: 21.7%
Dependent packages count: 57.3%
Last synced: 6 months ago

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