Each modeling group must provide their output in the standard OCMIP-2 format. Model output that does not follow these formatting conventions cannot be included for analysis during OCMIP-2. Model groups must use the standard routines that we have developed specifically for writing output in standard form for OCMIP-2.
Some of the models participating in OCMIP-2 are Irregular, which means that one 1-D array in latitude and one 1-D array in longitude are insufficient to describe the position of all grid points. Models with an irregular grid require a 2-D array in latitude and a 2-D array in longitude to describe the horizontal positioning of grid points. During OCMIP-2, regularly spaced models (those for which 1-D arrays in latitude and longitude are sufficient), will still write their output in the same irregular format. This will allow consistency between models for analysis, although at the price of somewhat larger output files.
Following the GDT conventions, all OCMIP-2 models will provide latitude and longitude information at the center of each tracer grid box and on all four corners (lower left, lower right, upper left and upper right) that are associated with each tracer grid point. Here is an example of a 2-D array in longitude and its corresponding boundary array (both with indices at their maximum values):
lon(imt,jmt) bounds_lon(imt,jmt,2,2)
where
bounds_lon(i,j,1,1) is the longitude of the lower
left corner of the grid box i,j, where the meanings of
lower and left are obvious for rectangular grids;
for curvilinear grids, those terms correspond to the direction from
grid boxes with smaller j and smaller i, respectively;bounds_lon(i,j,2,1) is the lower right corner;bounds_lon(i,j,1,2) is the upper left corner; andbounds_lon(i,j,2,2) is the upper right corner.For
Early Output
and
Late Output
each modeling group must use the three routines listed in the
following table. Input to these routines consists of your model's
output and characteristics. The first routine
write_nc_MaskAreaBathy.f must be called only once (for the 1st
output year--1940). The second routine write_nc_CFC_year.f must
be called for every output year (see previous section
Output type and frequency). The third routine
write_nc_SurfTS_year.f must also be called for every output year
for online models, but only once (the first output year) for offline
models.
-------------------------------------------------------------------------------
Routine Input Units Comments
-------------------------------------------------------------------------------
write_nc_MaskAreaBathy.f Tracer Mask Land=0/Ocean=1 (1)
Surface Area m^2
Bathymetry m
write_nc_CFC_year.f Conc. of CFC-11 mol/m^3
Conc. of CFC-12 mol/m^3
Mean Flux of CFC-11 mol/(m^2*s)
Mean Flux of CFC-12 mol/(m^2*s)
Cum. Flux of CFC-11 mol/m^2
Cum. Flux of CFC-12 mol/m^2
write_nc_SurfTS_year.f Sea Surf. Temp. degrees C (2)
Sea Surf. Salinity psu
-------------------------------------------------------------------------------
(1) Also includes other input arguments, as necessary to define
position of grid boxes (latitude, longitude, and depth specifications)
(2) For online models, monthly SST and SSS should be saved each year
for which other output is written (with write_nc_CFC_year.f);
for offline models, monthly SST and SSS may be saved for just one year,
since there is no year-to-year variation.
Please send e-mail now ( orr@cea.fr) concerning whether you have an offline or online model.
Conventions
The output routines for your model class can be found in http://www.ipsl.jussieu.fr/OCMIP/phase2/simulations/CFC/distrib/ or, in the HTML version of this document, by clicking on the three links below, while holding down the Shift key.
Routines for writing out results for Transport Output and Equilibrium Output will be made available soon.
You will also need to transfer the subroutine handle_errors.f to properly deal with errors while you are writing your netCDF files.
Here is a an example of how you would compile one of the output routines:
f77 -c -O -L/usr/local/lib -lnetcdf -I/usr/local/include \
write_nc_MaskAreaBathy.f
Because we have made these routines F77 compatible, you may need a function len_trim.f (from F90), which we also provide and which returns the length of a character string (after neglecting trailing blanks).
These routines write out your model results following the naming and output conventions (netCDF, COARDS, GDT) chosen for OCMIP-2. The output filename is constructed automatically within each routine from three of the arguments: the tracer name, the year, and the standard model code used during OCMIP-2 to identify your group.
For example, after compiling and linking the OCMIP-2 output routines, we add the following code to the IPSL routines to store output in standard OCMIP-2 form
call write_nc_CFC_year("IPSL","NGL46_SI",
& imt, jmt, kmt,
& 1985, 60*60*24*365, 1200,
& CFC11, CFC12,
& MF_CFC11, MF_CFC12,
& CF_CFC11, CF_CFC12)
By line, the arguments include
All arguments are input. The only output is the final netCDF file,
("IPSL_CFC_1985.nc"), which contains the information for
analyzing the IPSL results for 1985. This file along with all others
from the 3 routines above should be
transferred to IPSL. Filenames should NOT be changed. At
IPSL, files will subsequently be (1) tested for consistency, (2)
included in the OCMIP-2 data base, and (3) processed for base
analysis.
See http://www.ipsl.jussieu.fr/OCMIP/tech. for additional information about the format netCDF and other conventions (COARDS, GDT) chosen for storing OCMIP-2 model output.
If you have other questions, please contact Patrick.Brockmann@ipsl.jussieu.fr, or orr@cea.fr