The Coupler performs crucial scientific calculations which, by design of the hub-and-spoke system, are not or can not be handled by the component models but are essential to the coupled integration. This section provides a description of these calculations.
The Coupler is responsible for mapping (also called interpolation or regridding)
data from one model's grid to another. The Coupler implements this mapping as
a matrix-vector multiply which in case of mapping atmosphere data to the ocean
grid would be:
The mapping weights in are stored in files and pre-calculated using the Spherical Coordinate Remapping and Interpolation Package (SCRIP). See http://climate.lanl.gov/Software/SCRIP/. Two methods for calculating the weights are used in the Coupler. All state data is mapped with weights calculated using SCRIP's bilinear interpolation scheme while all fluxes are mapped with weights calculated using SCRIP's second-order conservative remapping scheme.
Given the assumptions of only 3 grids (Sec. 9.2), there are 5 sets of mapping weights read in by the Coupler: bilinear and conservative mappings for atmosphere to ocean grids, bilinear and conservative mappings for ocean to atmosphere and a conservative remapping for the river to the ocean grid (ocean to river is obviously not needed).
Note that the grid point numbering scheme mentioned in Section 10.2 is also present in the calculation of the mapping weights: the number of a model's grid point corresponds to the number of the row or column of that point in the mapping matrix .
The Coupler calculates the fluxes between the atmosphere and ocean for the following reasons: By convention, fluxes between two models with different resolutions are calculated on the grid with the higher resolution. The atmosphere model can not calculate the fluxes since that would require it to know the ocean's grid. The ocean only communicates with the Coupler once per day so to update the fluxes as often sub-diurnally, the fluxes are calculated in the Coupler. The Coupler receives ocean state data and holds it constant while calculating new fluxes with each receive of new atmosphere data. The new fluxes are mapped back to the atmosphere grid and sent to the atmosphere. The Coupler also keeps a running sum of the fluxes and sends the time average to the ocean. The atmosphere-ocean fluxes are calculated using the formulas below.
The fluxes across the interface are calculated from bulk formulae and general expressions are
where the turbulent velocity scales are given by
where is atmospheric surface density, is the specific heat, W/m/K is the Stefan-Boltzmann constant, is the emissivity of the interface, and is the surface albedo for incident longwave radiation, . In (16.2) the differences , and are defined at each interface in accord with the convention of fluxes being positive down. The reflected downward incident longwave radiation is simply accounted for by assuming an emissivity, , and the water surface albedo for incident longwave radiation, .
The transfer coefficients in (16.2), shifted to a height, , and considering the appropriate stability parameter, , are :
where is von Karman's constant and the integrated flux profiles, for momentum and for scalars, are functions of the stability parameter, . These functions as used in the coupler are:
Above the atmospheric interfaces and
the stability parameter
In addition to surface fluxes, the atmospheric model requires effective surface albedos for both direct , and diffuse, , radiation at each wavelength. They are used in a single call to the computationally demanding atmospheric radiation routines. This call gives downward atmospheric albedo for diffuse radiation, (). If direct and diffuse albedos, () and () for different surfaces below an atmospheric grid cell are known, the multiple scattering coefficients, are computed, and with the fractional coverage of each surface type, then the albedos are given by
Use of these albedos ensures that the solar radiation exiting the bottom of the atmosphere is identical to the sum of radiation calculations, each using an and . At present, however, the albedo calculations are greatly simplified by assuming , such that . This albedo then does not need to be passed from the atmosphere to the coupler, and the coupler simply computes the effective albedos to be passed to the atmosphere as
In general the partition of radiation among the surfaces is a function of , , and , and hence of wavelength. Hence, correct partitioning would need to be performed for each wavelength band within the radiation transfer code of the atmospheric model. This procedure is greatly simplified by partitioning the net solar radiation within the Coupler.
At the atmosphere-ocean interface the near-surface air is also assumed
to be saturated,
where the surface current, , is presently assumed to be negligible.
The roughness length for momentum, in meters, is a function
of the atmospheric wind at 10 meters height, :
Since is itself a function of the turbulent scales (16.2),
and hence the fluxes, an iterative procedure is generally required to
First, is set incrementally greater than zero
when the air-sea temperature difference suggests stable
stratification, otherwise it is set to zero. In either case,
, and the initial transfer coefficients are then found from
the roughness lengths at this and . As with
sea-ice, these coefficients are used to approximate the initial flux scales
(16.2) and the first iteration begins with an updated
and calculations of and . The wind speed, , is
then shifted to its equivalent neutral value at 10m height :
For the ice, land, and ocean components there are four surface albedos that are used by the atmosphere component to compute four corresponding components of downward shortwave. Subsequently, the four albedos, together with the four downward shortwave fields, are used to compute net absorbed shortwave flux from the atmosphere to the surface components:
where corresponds to near-infrared/diffuse, visible/diffuse, near-infrared/direct, and visible/direct shortwave components.
The ice and land components each compute their own surface albedos and, given the downward shortwave fields, compute their own net absorbed shortwave radiation. For the ocean component, it is the Coupler that computes the ocean surface albedo and computes net absorbed shortwave radiation. The Coupler then sends the net absorbed shortwave field to the ocean component.
The land surface albedos are computed by the land component and passed on to the atmosphere component. These albedos are not altered by the Coupler in any way. Note that the atmosphere component may be an active model computing downward shortwave once per hour, or it may be a data model feeding the Coupler a daily average downward shortwave. It is the user's responsibility to ensure that the albedos the land model sends are appropriate considering what type of downward shortwave fields the atmosphere component is providing.
The ice surface albedos are computed by the ice component and passed through the Coupler and on to the atmosphere component. These albedos are ``60 degree reference albedos'' that have no diurnal cycle. Based on an input namelist variable, flx_albav (see the Section 4 of the User's Guide), the Coupler will either pass these albedos on to the atmosphere component unaltered (in which case they are considered daily average albedos), or impose a diurnal cycle on the albedos (in which case they are considered instantaneous albedos). When the Coupler does add a diurnal cycle to the ice albedo, this consists of merely setting the albedos to 1.0 on the dark side of the earth.
Unlike the ice and land components, the Coupler computes the ocean component's surface albedo. There are two ways the Coupler can compute the ocean albedo: with a diurnal cycle (instantaneous) or without a diurnal cycle (daily average). An input namelist variable (the flx_albav namelist variable) selects which option the Coupler implements.
If the albedos are computed as daily average albedos, then all four ocean albedos are set to 0.06 everywhere, regardless of time of day or time of year.
If the albedos are computed as instantaneous albedos, then all four ocean will be set to 1.0 on the dark side of the earth, and where the solar angle is greater than zero, the albedos are set to a value which has both an annual and a diurnal cycle. Ocean albedo distinguishes between direct and diffuse radiation. The direct albedo is solar zenith angle dependent, while the diffuse is not. There is no spectral dependence of the albedo, nor dependence on surface wind speed. The expressions for both direct and diffuse albedo are taken from Briegleb et al. (1986), based on fits to observations of ocean albedo, good to within . The albedo expressions are valid for open ocean, and do not include the effects of suspended hydrosols in near-surface waters.
For complete details see Briegleb, B.P., P.Minnis, V.Ramanathan, and E.Harrison, 1986. ``Comparison of regional clear-sky albedos inferred from satellite observations and model comparisons.'' Journal of Climate and Applied Meteorology, Vol. 25, pp.214-226.
Area normalizing is done in the Coupler to correct for slight differences between
the total area of the sphere assumed by a model and the SCRIP program (Sec. 16.1).
SCRIP calculates area weights for each grid as well as the mapping weights between two grids.
However each model may have its own method for calculating the area of a grid cell.
Thus when the conservative remapping is performed to interpolate a flux from one grid to another,
it preserves the total flux over the sphere but the sphere may have
a slightly different total area in the Coupler compared to each model. This will in turn effect
global conservation of fluxed quantities. To correct for this effect, the Coupler multiplies all
received fluxes by the ratio of the two areas immediately after receiving fluxes from a component:
The Coupler receives from each model during the CONTRACT initialization (Sec. 10.2) and stores it in a DOMAIN (Sec. 8.1) under the ``area'' attribute while is read from the SCRIP mapping weight files during the MAP initialization and stored in the DOMAIN under the ``aream'' attribute. The area fractions are calculated using the areafact_init method from areafact_mod.F90. Before calculated or mapped fluxes are sent to a model from the Coupler, they are multiplied by .
When two or more model's supply input to another model, the input field
is formed by merging the two outputs. An example is the atmosphere
where a atmosphere grid cell may overly both open ocean and sea ice covered
ocean. In that case in CCSM3, the atmosphere-ice flux is calculated by the
ice model while the atmosphere-ocean flux is calculated by the Coupler. Before
sending to the atmosphere, these fluxes must be merged:
The Coupler calculates all the time-invariant surface fractions using frac_init and updates the ice surface fractions to account for the time-varying extent of sea ice after each receive of data from the sea ice model using frac_set. Both methods are in frac_mod.F90.