- 16.1 Mapping
- 16.2 Atmosphere/Ocean Surface Fluxes

- 16.3 Surface Albedo and Net Absorbed Solar Radiation

- 16.4 Area normalizing
- 16.5 Merging and Fractional Weights

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.

16.1 Mapping

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 1x matrix contains all of the atmosphere grid points in a 2D horizontal plane unrolled into a single vector while the x1 matrix contains all the points in a 2D horizontal slice of the ocean grid. For a T42 atmosphere and x1 ocean grid, the matrix would contain rows and columns! Luckily most of the elements of are zero and this is really a

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 .

16.2 Atmosphere/Ocean Surface Fluxes

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

where virtual potential temperature is computed as , and are the lowest level atmospheric humidity, and potential temperature, respectively, and .

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 sea surface temperature is , kg/m and K, and the factor 0.98 accounts for the salinity of the ocean. The differences (16.2) become

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, :

where m/s, and ms. The corresponding drag coefficient at 10m height and neutral stability is

The roughness length for heat, , is a function of stability, and for evaporation, , is a different constant:

Since is itself a function of the turbulent scales (16.2),
and hence the fluxes, an iterative procedure is generally required to
solve (16.1).
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 :

This wind speed is used to update the transfer coefficients and hence the flux scales. The second and final iteration begins with another update of . The final flux scales then give the fluxes calculated by (16.1).

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.

16.3.2 Ice Surface Albedo

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.

16.3.3 Ocean Surface Albedos

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.

16.4 Area normalizing

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 corrected flux, is then used within the coupler for mapping and any other calculations.

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
.

16.5 Merging and Fractional Weights

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:

where

is the total flux into the atmosphere, is the

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`.