Previous Next Contents

6. Output Format

Each modeling group must provide their output in the standard OCMIP-2 format which is the same as that chosen for GOSAC. Model output that does not follow these formatting conventions cannot be included for analysis during GOSAC. Model groups must use the standard routines that we have developed specifically for writing output in standard form for GOSAC.

6.1 Spatial information

If this is the first OCMIP-2 simulation you have made, you will need to recuperate the routine write_nc_MaskAreaBathy.f to write out characteristics of your model grid, mask, and bathymetry using the standard OCMIP-2 format. Use of this routine is detailed in the CFC HOWTO ( section 5.1).

Otherwise if you have submitted OCMIP-2 model output previously, you will only need to resubmit the output file produced by write_nc_MaskAreaBathy.f under two conditions:

  1. either your model's grid, mask, or bathymetry have changed; or
  2. you have been notified by the OCMIP-2 analysis center at IPSL that your output file from this subroutine did not pass the routine integrity tests.

6.2 Output routines

Each modeling group must use the routines listed in the following table to store results in standard OCMIP-2 format for the Injection Output.

Input to these routines consists of your model's output and characteristics. The routines (write_nc_Inject_year_3D.f write_nc_Inject_year_2D.f) must be called for the appropriate output years of the runs (see previous section Output type and frequency); conversely the routine write_nc_Inject_year_0D.f is called only once, after builiding a 1-D time series of global mean information. The fourth and final routine write_nc_Inject_TS_year.f should be called only once for offline models; for online models, it should also be called a second time, in the year 2499.

Routine                          Input                                       Units    Comments

write_nc_Inject_year_3D.f        1-10)  Conc. of Tracer[1-10]                mol/m^3        

write_nc_Inject_year_2D.f        1-10)  Surf. ocean pCO2 (Tracer[1-10])      uatm
                                 11-20) Delta dpCO2 (Tracer[1-10])           uatm
                                 21-30) Gas Exch.  Flux of Tracer[1-10]      mol/(m^2*s) 
                                 31-40) Virtual Flux of Tracer[1-10]         mol/(m^2*s)
                                 41-50) Cum. Gas   Flux of Tracer[1-10]      mol/m^2     1765->
                                 51-60) Cum. virtual Flux of Tracer[1-10]    mol/m^2     1765->

write_nc_Inject_year_0D.f        1-3)   Glob_mean (Gm) pCO2atm for B(1)-B(3) uatm
                                 4-10)  Storage gain G of site[1-7]          mol/(m^2)
                                 11-20) Gm Gas Ex. Flux of Tracer[1-10]      mol/(m^2*s)
                                 21-30) Gm Virtual Flux of Tracer[1-10]      mol/(m^2*s)
                                 31-40) Gm Tracer                            mol/m^3
                                 41-50) Gm Surface Tracer[1-10]              mol/m^3
                                 51-60) Gm pCO2surf                          uatm
                                 61-70) Gm Delta pCO2 (dpCO2)                uatm
                                 71-80) Gm Cum. Gas Flux of DIC              mol/m^2     1765->
                                 81-90) Gm Cum. Virt. Flux of DIC            mol/m^2     1765->
                                 91-93) Fossil emissions E for B(1)-B(3)     GT C/yr 

6.3 Downloading the output routines

The output routines can be transferred to your machine by clicking on the links below, while holding down the Shift key.

You will also need to transfer the subroutine handle_errors.f to properly deal with errors while you are writing your netCDF files.

6.4 Compiling the output routines

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 \

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

6.5 Using the output routines

The Injection-run output routines store your model results following the naming and output conventions (netCDF, GDT version 1.2) 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 compatibility with the Abiotic simulations, we separately store 3-D, 2-D, and 0-D data. For your 3-D model output for the Injection run, use:

        call write_nc_Inject_year_3D("IPSL","NL46_SI","C1500",
     &  imt, jmt, kmt, nt,
     &  2010, 60*60*24*365, 1200,
     &  TRAN)

By line, the arguments include

  1. the OCMIP-2 model code, your own model version indicator, AND the simulation indicator (C1500, C3000, C800, or E1500).
  2. three spatial dimensions and one temporal dimension nt (here, nt=1 for annual means);
  3. the year, the number of seconds per year (in your model), and the number of timesteps per year;
  4. the annual mean concentrations of 3-D Tracers 1-10 [mol/m^3].

For your 2-D output, use

        call write_nc_Inject_year_2D("IPSL","NL46_SI","E1500",
     &  imt, jmt, nt,
     &  2020, 60*60*24*365, 1200,
     &  MpCO2surf,MdpCO2surf,
     &  MF,MFv,
     &  CF_F,CF_Fv)

For 2-D output, we no longer need the dimension kmt, formerly in line 2. The 2-D Injection output also includes

Cumulative fluxes (line 6 above) must be initialized as outlined in Section 4.1, and integrated with respect to time (i.e., each time step).

When do I call the above 2-D and 3-D Injection output routines? They should be called, with nt=1, at the end of each of the following years: 2010, 2020, 2040, 2060, 2080, 2099, 2120, 2140, 2160, 2180, 2200, 2300, 2400, 2499.

For 0-D (1-D with time) Injection output, use

        call write_nc_Inject_year_0D("IPSL","NL46_SI","C3000",
     &  nrec, times, 
     &  Gm_pCO2atm, 
     &  G,  
     &  Gm_F,
     &  Gm_Fv,
     &  Gm_DIC,
     &  Gm_DICs,
     &  Gm_pCO2surf, Gm_dpCO2,
     &  Gm_CF_F,
     &  Gm_CF_Fv,
     &  E)

By line, the arguments include

  1. the OCMIP-2 model code, your own model version indicator, AND the simulation indicator;
  2. the number of records saved and the array of the times (in decimal years) at which they were saved;
  3. the history of the global mean atmospheric pCO2atm for 3 atmospheric boxes B(1), B(2), and B(3) (in uatm). The pCO2atm(i) (i=1,2,3) is specified a priori for the C runs, but calculated for Run E1500 via equation (6)---see subsection E and d(MCO2atm)/dt);
  4. the history of the Gain G for each of the seven injection sites (mol/m^2);
  5. the history of the global sea-to-air flux F for Tracers 1-10 (mol/(m^2*s));
  6. the history of the global mean virtual flux Fv for Tracers 1-10 (mol/m^2*s, see Abiotic HOWTO);
  7. the history of the global mean concentrations of Tracers 1-10 (mol/m^3)
  8. ;
  9. the history of the global mean surface concentration of Tracers 1-10 (mol/m^3);
  10. the history of global mean surface ocean pCO2 (pCO2surf, in uatm), and the global mean sea-air pCO2 difference (dpCO2, in uatm) for Tracers 1-10;
  11. the history of the global mean cumulative fluxes F for Tracers 1-10 (in mol/m^2, integrated since 1765.0) at the end of each year, with each year indicated by its mid-year time given in line 2; and
  12. the history of the global mean fossil fuel emissions E (in GtC/yr) for each atmospheric box B(1), B(2), and B(3). E(i) (i=1,2,3) is specified a priori for Run E1500, but it must be calculated for the C runs via equation (6)---see subsection E and d(MCO2atm)/dt.

When do I call the above 0-D output routine? It should be called only once, after constructing 1-D (in time) arrays from all of your model output. The time storage frequency is regular: this routine should be called, using annuals means, for every year during the last 500 years of the run (i.e., all years 2000-2499, inclusive). Thus modelers must use nrec = 500, and fill the 1-D temporal array times with the appropriate values (i.e., 2000.5, 2001.5, 2002.5 ..., 2498.5, 2499.5).

All arguments of the Abiotic routines are input; none are output. With the arguments as listed in the nine routines above, the corresponding output netCDF files are

These files along with all others produced by the Abiotic routines should be transferred to IPSL. Filenames should NOT be changed. Subsequently, at IPSL, files will be (1) tested for consistency, (2) included in the OCMIP-2 data base, and (3) processed for base analysis.

6.6 Need more details?

See 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, or

Previous Next Contents