Previous Next Contents

2. Model runs

2.1 Surface phosphate restoring

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.

2.2 Conservation equations

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


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.

2.3 Virtual fluxes (FvDIC and FvAlk)

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.

2.4 Air-sea gas exchange fluxes (FgDIC and FgO2)

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)


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

(5b)   O2sat = O2sato*P/Po


2.5 The Piston Velocities (KwCO2 and KwO2)

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


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 Gridded variables in that file include

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 into your interpolation routines. After compilation, to link and use rgasx_ocmip2.f, one must have already installed netCDF.

The file 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.

After installation, one can visualize maps of the standard information in, 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

2.6 Oceanic and Atmospheric Components

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 ([DIC], [Alk], [PO4], and [SiO2]) on a per mass basis (umol/kg); however, for OCMIP-2 co2calc.f has been modified to pass tracer concentrations on a per volume basis (mol/m^3), as carried in ocean models. To do so, we use the mean surface density of the ocean (1024.5 kg/m^3) as a constant conversion factor; we do NOT use model-predicted densities. Output arguments co2star (CO2surf) and dco2star (CO2sat - CO2surf) are also returned in mol/m^3.


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

  1. 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.
  2. 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.
  3. 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.
  4. 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 The atmospheric pressure, is passed as an input argument, in atm, to both co2flux.f and o2flux.f.

Previous Next Contents