F. Louanchi has created a monthly climatology of phosphate in the upper ocean that is to be used to nudge the model towards observations in the upper 75 m. These data are on a 2 x 2 degree grid for the six following depth levels: 0, 10, 20, 30, 50 and 75 m. The data are in the file po4mapnew.dat.gz. See the files README.po4maps, readmap.f, and nutrient-doc for further information. All modelers are required to linearly interpolate the phosphate maps spatially and temporally to their model grid. Units of the phosphate maps are mmol/m^3 and these will have to be converted by each group to model units of mol/m^3.

There are five tracers carried in this run: phosphate (PO4), dissolved organic phosphorus (DOP), oxygen (O2), dissolved inorganic carbon (DIC) and alkalinity (Alk). The corresponding conservation equations are

(1a) **d[PO4]/dt = L([PO4]) + JbPO4**

(1b) **d[DOP]/dt = L([DOP]) + JbDOP**

(1c) **d[O2]/dt = L([O2]) + JbO2 + JgO2**

(1d) **d[DIC]/dt = L([DIC]) + JbDIC + JgDIC + JvDIC**

(1e) **d[Alk]/dt = L([Alk]) + JbAlk + JvAlk**

where

**L**is the 3-D transport operator, which represents effects due to advection, diffusion, and convection;**[]**or "square brackets" indicate concentrations in moles/m^3 (or eq/m^3 for Alk);**JbX**is the biological source sink term for X;**JvDIC**and**JvAlk**are the "virtual" source-sink terms for changes in surfaceDIC andAlk , respectively, due to evaporation and precipitation; and**JgDIC**and**JgO2**are the source-sink terms due to air-sea exchange of CO2 and O2, respectively.

The source-sink terms **JvDIC**, **JvAlk**, **JgDIC**, and
**JgO2** are added only as surface boundary conditions. That is they
are equal to zero in all subsurface layers. These source-sink terms
are equivalent to the fluxes, described below, divided by the surface
layer thickness **dz1**.

** JvDIC= FvDIC/dz1**

** JvAlk = FvAlk/dz1**

** JgDIC = FgDIC/dz1**

** JgO2 = FgO2/dz1**

The **Jb** terms are rather detailed and are described in the
OCMIP-2 simulation design document; they are not repeated
here. We have supplied some Fortran code, found in the files
bio.h,
bio.f, and
jbio.f.
This code should be used to compute the Jb terms. However, this code
serves only as a template, which must be modified by each group to
suit their particular model.

In models where surface salinity is restored to observed values, this results in a surface flux of salt, not a surface flux of water as in the real world. Such surface salt fluxes are typically found in models with a rigid lid, and even in some models with a free surface (e.g., the OGCM from Louvain-la-Neuve). For simplicity, we categorize both classes of models as "rigid-lid-like". Conversely, non-rigid-lid-like models have a free surface and restore surface salinity by an equivalent flux of water leading to dilution or concentration (e.g., the MPI LSG model). Salinity in the latter type of free-surface model is conserved; E-P fluxes are taken into account by the velocity fields and thus do not need to be explicitly formulated in the transport model.

Yet for all rigid-lid-like models, we must explicitly take into
account the concentration-dilution effect of E-P (Evaporation minus
Precipitation), which changes surface **[DIC]** and
**[Alk]**. Thus we add the virtual flux to the surface
layer, each time step according to

(2a) **FvDIC = DICg * (E-P)**

(2b) **FvAlk = Alkg * (E-P)**

where DICg and Alkg are the model's globally averaged surface concentrations of DIC and Alk, respectively. Both global averages must be computed at least every five years. For rigid-lid-like models with only salinity restoring, we suggest that (P - E) be computed as

(3) **P - E = (S - S')/ Sg * dz1 /Tau **

where **S'** is the observed local salinity to which modeled local
salinity **S** is being restored, **Sg** is the model's globally
averaged surface salinity, **dz1** is the top layer thickness, and
**Tau** is the restoring time scale for salinity. For rigid-lid
models (or free surface models) which in addition include explicit P -
E water fluxes, that term must of course also be added to eq (3).

* IMPORTANT:* It is critical that the virtual fluxes do not result
in a net flux of alkalinity to or from the model. There are at least
two ways of getting around this. One possibility is to insure that the
global mean of E -P used in equations (2a) and (2b) is equal to
zero. This could be achieved by subtracting off the global mean E - P
before computing the virtual flux. A second possibility is to update
the inventory of alkalinity periodically so that the inventory of
alkalinity + 16*phosphate is at its initial value. See also Section 3.

For simulations of DIC and O2, OCMIP-2 simulations will directly model
the finite air-sea fluxes **FgDIC** and **FgO2**,
respectively. Modelers must use the formulation for the standard
OCMIP-2 air-to-sea flux:

(4a) **FgDIC = KwCO2 (CO2sat - CO2surf)**

(4b) **FgO2 = KwO2 (O2sat - O2surf)**

with

(5a) **CO2sat = alphaC*pCO2atm *P/Po**

(5b) **O2sat = O2sato*P/Po**

where

**KwCO2**and**KwO2**are the CO2 and O2 gas transfer (piston) velocities [m/s], respectively;**CO2surf**is the surface aqueous CO2 concentration [mol/m^3], which is computed from the model's surface [DIC], T, S, [Alk], and [PO4]; (see section 2.6);**O2surf**is the surface O2 concentration [mol/m^3] computed by the model;**alphaC**is the CO2 solubility for water-vapor saturated air [mol/(m^3 * uatm)];**pCO2atm**is the partial pressure of CO2 in dry air at one atmosphere total pressure [in uatm], which is the same as the dry air mixing ratio of CO2 multiplied by 10^6 ;**O2sato**is the O2 saturation concentration at one atmosphere total pressure for water saturated air [mol/m^3];**P**is the total air pressure at sea level [atm], locally; and**Po**is 1 atm.

For simulations of DIC and O2, modelers must use the standard OCMIP-2
formulation for the piston velocities of CO2 (**KwCO2**) and O2
(**KwO2**). The monthly climatologies of **KwCO2** and **KwO2** are
to be interpolated linearly in time by each modeling group. They are
computed with the following equations adapted from Wannikhof (1992,
eq. 3):

(6a) ** Kw = (1 - Fice) [Xconv * a *(u2 + v)] (ScCO2/660)**-1/2**

(6b) ** Kw = (1 - Fice) [Xconv * a *(u2 + v)] (ScO2/660)**-1/2**

where

**Fice**is the fraction of the sea surface covered with ice, which varies from 0.0 to 1.0, and is given as monthly averages from the Walsh (1978) and Zwally et al. (1983) climatology (OCMIP-2 modelers must reset**Fice**values less than 0.2 to zero, after interpolation to their model grid)**u2**is the instantaneous SSMI wind speed, averaged for each month, then squared, and subsequently averaged over the same month of all years to give the monthly climatology. (see the OCMIP-1 README.satdat for further details);**v**is the variance of the instantaneous SSMI wind speed computed over one month temporal resolution and 2.5 degree spatial resolution, and subsequently averaged over the same month of all years to give the monthly climatology. Again, see the OCMIP-1 README.satdat for further details.**a**is the coefficient of 0.337, consistent with a piston velocity in cm/hr. We adjusted the coefficient**a**for OCMIP-2, in order to obtain Broecker et al.'s (1986) radiocarbon-calibrated, global CO2 gas exchange of 0.061 mol CO2 /(m^2 * yr * uatm), when using the satellite SSMI wind information (**u2 + v**) from Boutin and Etcheto (pers. comm.). Our computed value for**a**is similar to that determined by Wanninkhof (**a**= 0.31), who used a different wind speed data set and assumptions about wind speed variance; we use the observed variance.**Xconv**= 1/3.6e+05, is a constant factor to convert the piston velocity from [cm/hr] to [m/s]. This conversion factor is already included in the forcing field**xKw,**provided below.**ScCO2**and**ScO2**are the Schmidt numbers for CO2 and O2, respectively. They are to be computed using the formulation of Wannikhof (1992) for CO2 and Keeling et al. (1998) for O2. The corresponding Fortran functions are scco2.f and sco2.f. Both**ScCO2**and**ScO2**are unitless.

Practically speaking, to use equations (4) and (6), each group will interpolate the OCMIP-2 standard information to their own model grid. The standard information is provided by IPSL/LSCE as a monthly climatology on the 1 x 1 degree grid of Levitus (1982) in netCDF format (in file gasx_ocmip2.nc). Gridded variables in that file include

- the variable
**Fice**, - the second term,
**[Xconv * a * (u2 + v)]**, denoted as**xKw**[m/s] - the mask
**Tmask**(1 if ocean; 0 if land), - the total atmospheric pressure
at sea level
**P**[atm] - the longitude
**Lon**at the center of each 1 x 1 degree grid box, - the latitude
**Lat**at the center of each 1 x 1 degree grid box.

For the variables **Fice** and **xKw**,
continents on the 1 x 1 degree standard grid have been
flooded with adjacent ocean values. Such an approach avoids
discontinuities at land-sea boundaries during interpolation. See the
Fortran program
rgasx_ocmip2.f
for an example of how to read the information in
`gasx_ocmip2.nc`

into your interpolation routines. After compilation, to link and
use `rgasx_ocmip2.f`

, one must have already installed netCDF.

http://www.unidata.ucar.edu/packages/netcdf/

The file `gasx_ocmip2.nc`

may also be inspected with software that uses netCDF format, such as ncdump
or Ferret. Ferret will be used for some of the analysis during OCMIP-2.
We encourage participants to become familiar with Ferret now.

http://ferret.wrc.noaa.gov/Ferret/

After installation, one can visualize maps of the standard information in gasx_ocmip2.nc, by using the Ferret script vgasx_ocmip2.jnl.

After launching Ferret, simply issue the following command (at Ferret's "yes?" prompt)

yes? go vgasx_ocmip2.jnl

Apart from Kw, there are other terms that require further development to simulate air-sea gas exchange.

The oceanic term **CO2surf** [in mol/m^3] is not carried as
a tracer, so it must be computed each timestep to determine gas
exchange.

**CO2surf** is the surface [CO2] concentration, which is
computed from the model's surface **[DIC]**,
**[Alk]**, **T**, **S**, and **[PO4]**
through the equations and constants found in the subroutine
co2calc.f. Silicate is also needed as
an input, as it affects the equilibria; for that, we use its global
mean surface value of 7.5 umol/kg.

** IMPORTANT:** The carbonate chemistry subroutine
co2calc.f was originally
designed to require tracer input (

The atmospheric components **CO2sat** and **O2sat** in equations
(4a) and (4b) are specified *a priori* via four remaining
terms:

**alphaC**: The CO2 solubility**alphaC**is to be computed using modeled SST and SSS, both of which vary in time at each grid point. For OCMIP-2 we use the solubility formulation of Weiss (1974), corrected for the contribution of water vapor to the total pressure (Weiss and Price, 1980, Table IV for solubility in [mol/(l * atm)]). The solubility**alphaC**is calculated within the routine co2calc.f.**pCO2atm**: This is held constant at 278 ppm. For the OCMIP-2 simulations, modelers should pass**pCO2atm**as one of the the input arguments (xco2) to co2flux.f in units of ppm. This in turn is passed to co2calc.f.**O2sato**: This is computed from the model T and S in units of mol/m^3, using the formulation of Garcia and Gordon (1992). The subroutine o2sato.f performs this function.**P**: Is the total atmospheric pressure [atm] from the monthly mean climatology of Esbensen and Kushnir (1981). The latter, was given originally on a 4 x 5 degree grid (latitude x longitude) in bars. We converted**P**to atm by multiplying it by (1/1.101325). Land and sea ice values in the original data set were filled with average values from adjacent ocean points. These monthly mean arrays were then linearly interpolated to the 1 x 1 degree grid of Levitus (see netCDF file gasx_ocmip2.nc). The atmospheric pressure, is passed as an input argument, in atm, to both co2flux.f and o2flux.f.