FMS Coupler
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/FMScoupler
Category: Climate Change
Sub Category: Earth and Climate Modeling
Keywords from Contributors
climate-model climate gfdl fms fre numerical-modeling fv3 model-component physics ocean-circulation
Last synced: 11 minutes ago
JSON representation
Repository metadata
- Host: GitHub
- URL: https://github.com/NOAA-GFDL/FMScoupler
- Owner: NOAA-GFDL
- License: other
- Created: 2015-06-02T02:02:23.000Z (almost 10 years ago)
- Default Branch: main
- Last Pushed: 2025-04-08T16:48:36.000Z (19 days ago)
- Last Synced: 2025-04-18T05:41:10.078Z (10 days ago)
- Language: Fortran
- Size: 3.64 MB
- Stars: 13
- Watchers: 10
- Forks: 62
- Open Issues: 17
- Releases: 26
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
- Code of conduct: CODE_OF_CONDUCT.md
README.md
Flexible Modeling System (FMS) Coupler
Instructions for contribuing to this project can be found in the
Contribution Guidelines. Contributing to the FMScoupler involves a higher
level of scrutiny and justification.
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.
This repository contains the FMS Coupler, meant for use alongside FMS and other component models,
such as the MOM6 ocean model and the AM4 atmosphere model. More technical information for coupling
models is available below.
For additional information on FMS, please see the FMS github repository.
Coupling Models with FMS Coupler
FMS Coupler provides the capability to couple component models (atmosphere, land, sea ice, and ocean
) on different logically rectangular grids. Presently, the atmosphere and land models are
constrained to be on standard longitude/latitude grids (not necessarily the same) and the ocean and
sea-ice are constrained to be on the same grid which need only be logically rectangular.
A logically rectangular grid has an array-like set of areas, each of which border one other area in
each of the pseudo-north, -south, -east, and -west directions, except at the poles.
The coupling between the models is designed to conserve fluxes. For coupled models, a grid
specification file is used to initialize the model grids and perform exchanges between the models.
The next sections describe how this file and associated grids are used in the coupler.
Grid Specification Files
At runtime, the coupled model sets up its grid using a given grid_spec.nc
file that it reads from
the INPUT subdirectory. This NetCDF file contains grid information for all of the component models
as well as exchange grid information for the coupler to use.
For more information on generating the necessary files for coupled runs, please see the
FRE-NCtools repository for information on grid file
generation tools.
In the coupled model, ocean, sea ice, and land models will read their grids from the grid_spec.nc
file. The land model areas must be read from grid_spec.nc rather than calculated because the
grid_spec.nc land areas have been modified in the grid generation process to remove overlaps with
the ocean/sea-ice grid cells. The land mask is set to true where this modified area is positive.
The land model areas are used for conserving runoff on the land grid. The ocean and sea-ice grids
are the same by virtue of initializing from the same fields of grid_spec.nc. Additionally, the sea
ice model uses this grid information to rotate vectors between the longitude/latitude atmosphere
grid and the general ocean/sea-ice grids.
Exchange Grids
The coupler uses grid_spec.nc to initialize its exchange grids. An exchange grid between two
component model grids is the grid formed with the union of the bounding lines of the component
model grids. The exchange grid is, therefore, the coarsest grid that is a refinement of each of the
component model grids. The coupler uses exchange grids for two purposes:
- conservative interpolation of fields between models uses the exchange grid cell areas as weights and
- the surface flux calculation takes place on the exchange grid thereby using the finest scale data available.
The coupler has two exchange grids. The first is for surface fluxes with the atmosphere on one side
and the land and sea ice on the other. Under FMS the sea ice model serves as the interface to the
ocean model — the atmosphere model never exchanges directly with the ocean model. The second
exchange grid is between the land and the sea ice for runoff. No fluxes are computed on this
exchange grid; it is used solely for conservation.
The coupler’s utility for interfacing to the grid_spec.nc file and performing exchange grid
operations is xgrid_mod (from the FMS repository). Xgrid_mod uses the mpp_domains domain of each of
the models along with information it reads from the grid specification file to determine grid and
processor connectivities. The coupler’s fortran call to initialize the surface exchange grid
(xmap_sfc) is:
call setup_xmap(xmap_sfc, (/ 'ATM', 'OCN', 'LND' /), &
(/ Atm%Domain, Ice%Domain, Land%Domain /), &
"INPUT/grid_spec.nc" )
Xgrid_mod reads the exchange grids from grid_spec.nc as a sequence of quintuples: the i/j indices of
the intersecting cells of the two participating grids and their areal overlap. The names of the five
fields are generated automatically from the three character ids of the participating grids that
appear in the above initialization call. For example, for atmosphere/sea ice exchange on the
coupler’s surface exchange grid, the following fields are read by xgrid_mod: I_ATM_ATMxOCN, J_ATM_ATMxOCN, I_OCN_ATMxOCN, J_OCN_ATMxOCN, and AREA_ATMxOCN. These fields were placed in grid_spec.nc by the make_xgrids utility.
Source Code Documentation
A publicly available version of this repository's doxygen-generated source documentation is
available at https://noaa-gfdl.github.io/FMScoupler. It is updated upon every release.
Alternatively, documentation can be generated manually by running doxygen
in the top level of your
cloned repository.
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
- Name: NOAA - Geophysical Fluid Dynamics Laboratory
- Login: NOAA-GFDL
- Email: [email protected]
- Kind: organization
- Description: U.S Department of Commerce, National Oceanic and Atmospheric Administration
- Website: www.gfdl.noaa.gov
- Location: Princeton, New Jersey
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/11219395?v=4
- Repositories: 47
- Last ynced at: 2023-08-13T13:41:07.559Z
- Profile URL: https://github.com/NOAA-GFDL
GitHub Events
Total
- Create event: 7
- Issues event: 1
- Release event: 1
- Issue comment event: 18
- Push event: 8
- Pull request review event: 14
- Pull request review comment event: 11
- Pull request event: 9
- Fork event: 8
Last Year
- Create event: 7
- Issues event: 1
- Release event: 1
- Issue comment event: 18
- Push event: 8
- Pull request review event: 14
- Pull request review comment event: 11
- Pull request event: 9
- Fork event: 8
Committers metadata
Last synced: 7 days ago
Total Commits: 333
Total Committers: 47
Avg Commits per committer: 7.085
Development Distribution Score (DDS): 0.892
Commits in past year: 37
Committers in past year: 10
Avg Commits per committer in past year: 3.7
Development Distribution Score (DDS) in past year: 0.595
Name | Commits | |
---|---|---|
Flexible Modeling System | F****m@n****v | 36 |
Robert Hallberg | R****g@n****v | 36 |
Zhi Liang | Z****g@n****v | 34 |
Seth Underwood | S****d@n****v | 31 |
Ryan Mulhall | 3****6 | 30 |
MiKyung Lee | 5****3 | 15 |
Niki Zadeh | N****h@n****v | 14 |
Rusty Benson | R****n@n****v | 13 |
rem1776 | R****l@l****v | 12 |
Thomas Robinson | T****n@n****v | 12 |
Bruce Wyman | B****n@n****v | 10 |
Fabien Paulot | F****t@n****v | 9 |
Uriel Ramirez | u****z@n****v | 8 |
Ryan Mulhall | r****l@l****v | 7 |
Sergey Malyshev | S****v@n****v | 6 |
Raphael Dussin | r****n@g****m | 5 |
rem1776 | R****l@l****v | 4 |
Eric Stofferahn | 7****c | 4 |
Raymond Menzel | R****l@n****v | 4 |
Joseph.Mouallem | J****m@n****v | 4 |
Chris Golaz | c****z@n****v | 3 |
Levi.Silvers | L****s@n****v | 3 |
colingladueNOAA | 6****A | 3 |
Huan Guo | H****o@n****v | 2 |
Garrett.Wright | G****t@n****v | 2 |
William Cooke | W****e@n****v | 2 |
Lauren Chilutti | 6****i | 2 |
Jeffrey Durachta | J****a@n****v | 2 |
kaiyuan-cheng | 7****g | 2 |
Eric Stofferahn | E****n@n****v | 1 |
and 17 more... |
Committer domains:
- noaa.gov: 25
- lrdpub03-p.gfdl.noaa.gov: 1
- rab.(none): 1
- gaea7.ncrc.gov: 1
- lscsky50-d.gfdl.noaa.gov: 1
- llt-4421743.ad.gfdl.noaa.gov: 1
- lscamd50-d.gfdl.noaa.gov: 1
Issue and Pull Request metadata
Last synced: 1 day ago
Total issues: 43
Total pull requests: 131
Average time to close issues: 4 months
Average time to close pull requests: about 1 month
Total issue authors: 22
Total pull request authors: 33
Average comments per issue: 1.77
Average comments per pull request: 1.3
Merged pull request: 108
Bot issues: 0
Bot pull requests: 0
Past year issues: 9
Past year pull requests: 46
Past year average time to close issues: 16 days
Past year average time to close pull requests: 12 days
Past year issue authors: 4
Past year pull request authors: 12
Past year average comments per issue: 0.33
Past year average comments per pull request: 0.78
Past year merged pull request: 34
Past year bot issues: 0
Past year bot pull requests: 0
Top Issue Authors
- mlee03 (8)
- thomas-robinson (6)
- underwoo (4)
- uramirez8707 (3)
- bensonr (2)
- adcroft (2)
- theresa-morrison (2)
- rem1776 (2)
- nikizadehgfdl (1)
- zhihong-tan (1)
- dougiesquire (1)
- ceblanton (1)
- StevePny (1)
- edwardhartnett (1)
- laurenchilutti (1)
Top Pull Request Authors
- rem1776 (42)
- mlee03 (18)
- thomas-robinson (9)
- uramirez8707 (6)
- bensonr (5)
- kaiyuan-cheng (4)
- GFDL-Eric (4)
- nikizadehgfdl (3)
- Scitech777 (3)
- JosephMouallem (3)
- baoqiang80 (3)
- colingladueNOAA (3)
- wrongkindofdoctor (3)
- laurenchilutti (2)
- theresa-morrison (2)
Top Issue Labels
- enhancement (3)
- bug (3)
- documentation (1)
- maintenance (1)
Top Pull Request Labels
- maintenance (3)
- enhancement (3)
- documentation (3)
- bug fix (2)
Dependencies
- actions/checkout v2 composite
- actions/checkout v2 composite
- peaceiris/actions-gh-pages v3 composite
- NOAA-GFDL/simple_lint v2 composite
- actions/checkout v2 composite
Score: 7.2513449833722134