FMS Coupler  2022.03
FMS Coupler Documentation

FMS Coupler provides the capability to couple component models (atmosphere, land, sea ice, and ocean) on different logically rectangular grids. This repository holds 3 separate directories with driver programs for different usages along with modules with routines for common operations.

There are currently 3 coupler_main driver programs, each with their own directory:

  • the original 'full' coupler_main
  • a slimmed down 'simple' version
  • a SHiELD version for use with the model

Additionally, files in the 'shared' directory holds modules used by multiple drivers. The information below is provided for the full coupler, but there is considerable overlap between the other versions. Documentation on all programs and modules is available through the files tab.

Author
Bruce Wyman Bruce.nosp@m..Wym.nosp@m.an@no.nosp@m.aa.g.nosp@m.ov
V. Balaji V.Bal.nosp@m.aji@.nosp@m.noaa..nosp@m.gov

coupler_main.F90 couples component models for atmosphere, ocean, land and sea ice on independent grids. It also controls the time integration.

This version couples model components representing atmosphere, ocean, land and sea ice on independent grids. Each model component is represented by a data type giving the instantaneous model state.

The component models are coupled to allow implicit vertical diffusion of heat and moisture at the interfaces of the atmosphere, land, and ice models. As a result, the atmosphere, land, and ice models all use the same time step. The atmospheric model has been separated into down and up calls that correspond to the down and up sweeps of the standard tridiagonal elimination.

The ocean interface uses explicit mixing. Fluxes to and from the ocean must be passed through the ice model. This includes atmospheric fluxes as well as fluxes from the land to the ocean (runoff).

This program contains the model's main time loop. Each iteration of the main time loop is one coupled (slow) time step. Within this slow time step loop is a fast time step loop, using the atmospheric time step, where the tridiagonal vertical diffusion equations are solved. Exchange between sea ice and ocean occurs once every slow timestep.

Namelists

The three components of coupler: coupler_main , flux_exchange_mod, and surface_flux_mod are configured through three namelists

Note
  1. If no value is set for current_date, start_date, or calendar (or default value specified) then the value from restart file "INPUT/coupler.res" will be used. If neither a namelist value or restart file value exist the program will fail.
  2. The actual run length will be the sum of months, days, hours, minutes, and seconds. A run length of zero is not a valid option.
  3. The run length must be an intergal multiple of the coupling timestep dt_cpld.

Program Example

Below is some pseudo-code to illustrate the runtime loop of the coupler_main drivers.

DO slow time steps(ocean)
call flux_ocean_to_ice
call set_ice_surface_fields
DO fast time steps(atmos)
call flux_calculation
call atmos_down
call flux_down_from_atmos
call land_fast
call ice_fast
call flux_up_to_atmos
call atmos_up
ENDDO
call ice_slow
call flux_ice_to_ocean
call ocean
enddo