[cmor-tables] 28/83: removing libmcor related files, leaving only table related stuff

Alastair McKinstry mckinstry at moszumanska.debian.org
Sun Aug 30 08:06:07 UTC 2015


This is an automated email from the git hooks/post-receive script.

mckinstry pushed a commit to branch master
in repository cmor-tables.

commit 184fe42548d685f686df27c13c0624d5e3a9e97b
Author: Charles Doutriaux <doutriaux1 at llnl.gov>
Date:   Wed Jun 9 18:27:58 2010 -0700

    removing libmcor related files, leaving only table related stuff
---
 Doc/IPCC_output_requirements.htm                   |  3381 ----
 Doc/IPCC_output_requirements.pdf                   |   Bin 111256 -> 0 bytes
 Doc/cmor_users_guide.doc                           |   Bin 358912 -> 0 bytes
 Doc/cmor_users_guide.htm                           | 16371 -------------------
 Doc/cmor_users_guide.pdf                           |   Bin 551997 -> 0 bytes
 Doc/cmor_users_guide_files/filelist.xml            |     5 -
 Doc/cmor_users_guide_files/header.htm              |   122 -
 Doc/standard_output.html                           |  5561 -------
 Doc/standard_output.pdf                            |   Bin 107820 -> 0 bytes
 Doc/standard_output_updates.htm                    |   256 -
 INSTALL                                            |   105 -
 Lib/__init__.py                                    |     9 -
 Lib/check_CMOR_compliant.py                        |  1622 --
 Lib/cmor_const.py                                  |    41 -
 Lib/git2svn.py                                     |    31 -
 Lib/pywrapper.py                                   |   904 -
 Makefile.in                                        |   225 -
 Src/_cmormodule.c                                  |   771 -
 Src/cdTime/Makefile.in                             |    98 -
 Src/cdTime/cdRegTrfm.c                             |   139 -
 Src/cdTime/cdTimeConv.c                            |  1110 --
 Src/cdTime/cdUtil.c                                |    46 -
 Src/cdTime/fcdTimeConv.c                           |   118 -
 Src/cdTime/reg_trfm.c                              |   962 --
 Src/cdTime/timeArith.c                             |   179 -
 Src/cdTime/timeConv.c                              |   396 -
 Src/cmor.c                                         |  3812 -----
 Src/cmor_axes.c                                    |  1554 --
 Src/cmor_cfortran_interface.c                      |   481 -
 Src/cmor_fortran_interface.f90                     |  7805 ---------
 Src/cmor_grids.c                                   |   733 -
 Src/cmor_md5.c                                     |   309 -
 Src/cmor_tables.c                                  |   409 -
 Src/cmor_variables.c                               |  1658 --
 Test/3D_txy.input                                  |     1 -
 Test/3D_txy_split_lon.input                        |     1 -
 Test/3D_xty_split_lon.input                        |     1 -
 Test/CMIP5_Amon_YYYYMMDDHH                         |  2080 ---
 Test/CMIP5_Amons                                   | 10929 -------------
 Test/CMIP5_cf3hr.txt                               |   230 -
 Test/CMIP5_cf3hr_0.txt                             |   185 -
 Test/CMIP5_cf3hr_1.txt                             |   185 -
 Test/CMOR_SAMPLE_TABLE                             |   860 -
 Test/Curts_table                                   |   761 -
 Test/IPCC_table_A1                                 |  2364 ---
 Test/IPCC_table_A3                                 |   545 -
 Test/IPCC_test_table_A                             |  1023 --
 Test/IPCC_test_table_As                            | 14624 -----------------
 Test/IPCC_test_table_Grids                         |   192 -
 Test/IPCC_test_table_O                             |   287 -
 Test/IPCC_test_table_S                             |   691 -
 Test/Sophie_Table                                  |  1021 --
 Test/alejandro.txt                                 |     1 -
 Test/alejandro_1.txt                               |     1 -
 Test/alejandro_2.txt                               |     1 -
 Test/check_results.py                              |    51 -
 Test/climatology_test_code.f90                     |   371 -
 Test/climatology_test_table_A                      |   296 -
 Test/cmor_speed_and_compression.py                 |   161 -
 Test/cmor_speed_and_compression_01.py              |   151 -
 Test/cmor_speed_and_compression_02.py              |   184 -
 Test/in_files.py                                   |    31 -
 Test/ipcc_test_code.c                              |   384 -
 Test/ipcc_test_code.f90                            |   523 -
 Test/jamie_hybrid_height.py                        |    68 -
 Test/jamie_positive.py                             |    55 -
 Test/karls_test.f90                                |   563 -
 Test/main_prog.f90                                 |   454 -
 Test/mytest.f90                                    |   182 -
 Test/mytest_3d_i_2.f90                             |   194 -
 Test/mytest_3d_r.f90                               |   182 -
 Test/mytest_3d_r_2.f90                             |   196 -
 Test/mytest_4d_d_big_array_2.f90                   |   207 -
 Test/mytest_4d_d_big_array_3.f90                   |   207 -
 Test/mytest_4d_d_big_array_4.f90                   |   206 -
 Test/mytest_4d_d_big_array_5.f90                   |   204 -
 Test/mytest_4d_r.f90                               |   189 -
 Test/mytest_4d_r_big_array.f90                     |   204 -
 Test/nc2asc.py                                     |    84 -
 Test/noinput                                       |     2 -
 Test/old_cmor_tables/climatology_test_code.f90     |   355 -
 Test/old_cmor_tables/ipcc_test_code.f90            |   550 -
 Test/old_cmor_tables/karls_test.f90                |   604 -
 Test/old_cmor_tables/main_prog.f90                 |   472 -
 Test/old_cmor_tables/mytest.f90                    |   182 -
 Test/old_cmor_tables/mytest_3d_i_2.f90             |   194 -
 Test/old_cmor_tables/mytest_3d_r.f90               |   182 -
 Test/old_cmor_tables/mytest_3d_r_2.f90             |   196 -
 Test/old_cmor_tables/mytest_4d_d_big_array_2.f90   |   204 -
 Test/old_cmor_tables/mytest_4d_d_big_array_3.f90   |   204 -
 Test/old_cmor_tables/mytest_4d_d_big_array_4.f90   |   203 -
 Test/old_cmor_tables/mytest_4d_d_big_array_5.f90   |   201 -
 Test/old_cmor_tables/mytest_4d_r.f90               |   185 -
 Test/old_cmor_tables/mytest_4d_r_big_array.f90     |   202 -
 Test/old_cmor_tables/rewrite_harvardf_data.f90     |   113 -
 Test/old_cmor_tables/test1.f90                     |   473 -
 Test/old_cmor_tables/test2.f90                     |   477 -
 Test/old_cmor_tables/test3.f90                     |   481 -
 Test/old_cmor_tables/test4.f90                     |   475 -
 Test/old_cmor_tables/test_3h.f90                   |   580 -
 Test/old_cmor_tables/test_any_from_asc.f90         |   348 -
 Test/old_cmor_tables/test_any_from_asc_d.f90       |   348 -
 Test/old_cmor_tables/test_any_from_asc_i.f90       |   348 -
 Test/old_cmor_tables/test_cmor_grid_alejandro.f90  |   166 -
 Test/old_cmor_tables/test_dimensionless.f90        |   549 -
 Test/old_cmor_tables/test_fortran_example_00.f90   |   481 -
 Test/old_cmor_tables/test_fortran_example_01.f90   |   334 -
 Test/old_cmor_tables/test_fortran_example_02.f90   |   376 -
 Test/old_cmor_tables/test_lots_of_variables.f90    |   343 -
 Test/old_cmor_tables/test_region.f90               |   335 -
 .../test_shrt_exp_nm_set_att_initi.f90             |   343 -
 Test/old_cmor_tables/test_sigma.f90                |   551 -
 Test/old_cmor_tables/test_singleton.f90            |   594 -
 Test/old_cmor_tables/test_sophie.f90               |   483 -
 Test/old_cmor_tables/test_station_data.f90         |   380 -
 Test/old_cmor_tables/wegner_test.f90               |   447 -
 Test/omonxyztst.f90                                |   473 -
 Test/out_files.py                                  |   493 -
 Test/python_test_table_A                           |  2388 ---
 Test/reader_2D_3D.f90                              |   133 -
 Test/reader_2D_3D.h                                |    85 -
 Test/rewrite_harvardf_data.f90                     |   125 -
 Test/speed_test_table_A                            |  2131 ---
 Test/ta_3D_r_2.asc                                 |    22 -
 Test/ta_4D_r.asc                                   |    23 -
 Test/tas.asc                                       |    17 -
 Test/tas_3D_noreorder.input                        |     1 -
 Test/tas_3D_xty_-180_180.asc                       |    19 -
 Test/tas_3d_r.asc                                  |    17 -
 Test/tas_harvardf.txt                              |  4385 -----
 Test/tas_mytest_3d_i.asc                           |    19 -
 Test/tas_mytest_3d_i.input                         |     1 -
 Test/tas_mytest_noreorder.asc                      |    19 -
 Test/tas_mytest_reorder.asc                        |    19 -
 Test/tas_mytest_reorder_split_lon.asc              |    19 -
 Test/test1.f90                                     |   454 -
 Test/test2.f90                                     |   454 -
 Test/test3.f90                                     |   454 -
 Test/test4.f90                                     |   470 -
 Test/test_3h.f90                                   |   515 -
 Test/test_any_from_asc.f90                         |   352 -
 Test/test_any_from_asc_d.f90                       |   352 -
 Test/test_any_from_asc_i.f90                       |   350 -
 Test/test_checker_works.py                         |  1767 --
 Test/test_cmor_grid_alejandro.f90                  |   167 -
 Test/test_compression.py                           |    63 -
 Test/test_dimensionless.f90                        |   519 -
 Test/test_fortran_example_00.f90                   |   447 -
 Test/test_fortran_example_01.f90                   |   265 -
 Test/test_fortran_example_02.f90                   |   376 -
 Test/test_grid.c                                   |   179 -
 Test/test_lots_of_variables.c                      |   350 -
 Test/test_lots_of_variables.f90                    |   344 -
 Test/test_python_1D_var.py                         |    36 -
 Test/test_python_2Gb_file.py                       |    48 -
 Test/test_python_2Gb_slice.py                      |    51 -
 Test/test_python_YYYMMDDHH_exp_fmt.py              |    38 -
 Test/test_python_appending.py                      |    92 -
 Test/test_python_bounds_request.py                 |    59 -
 Test/test_python_common.py                         |   164 -
 Test/test_python_direct_calls.py                   |   120 -
 Test/test_python_fx.py                             |    46 -
 Test/test_python_grid_and_ocn_sigma.py             |   159 -
 Test/test_python_index_coord.py                    |    44 -
 Test/test_python_jamie.py                          |    39 -
 Test/test_python_jamie_2.py                        |    43 -
 Test/test_python_jamie_3.py                        |    46 -
 Test/test_python_jamie_3hr.py                      |    51 -
 Test/test_python_jamie_4.py                        |    48 -
 Test/test_python_jamie_6.py                        |   169 -
 Test/test_python_jamie_7.py                        |    87 -
 Test/test_python_joerg_1.py                        |   106 -
 Test/test_python_joerg_2.py                        |    83 -
 Test/test_python_joerg_3.py                        |   149 -
 Test/test_python_max_variables.py                  |    90 -
 Test/test_python_max_variables_2.py                |    96 -
 Test/test_python_memory_check.py                   |   131 -
 Test/test_python_new_tables.py                     |    41 -
 Test/test_python_open_close_cmor_multiple.py       |    59 -
 Test/test_python_region.py                         |    33 -
 Test/test_python_reverted_lats.py                  |    63 -
 Test/test_python_user_interface_00.py              |   131 -
 Test/test_python_user_interface_01.py              |    95 -
 Test/test_python_user_interface_03.py              |   104 -
 Test/test_region.f90                               |   311 -
 Test/test_shrt_exp_nm_set_att_initi.f90            |   317 -
 Test/test_sigma.f90                                |   514 -
 Test/test_singleton.f90                            |   560 -
 Test/test_sophie.f90                               |   441 -
 Test/test_station_data.f90                         |   330 -
 Test/wegner_test.f90                               |   447 -
 compile_line.txt.in                                |     5 -
 config.guess                                       |  1463 --
 config.sub                                         |  1579 --
 configure                                          |  5760 -------
 configure.ac                                       |   368 -
 data/tas_sample.nc                                 |   Bin 403952 -> 0 bytes
 get_git_version.sh                                 |     7 -
 include/cdTime/cddrs.h                             |   151 -
 include/cdTime/cddrsint.h                          |   107 -
 include/cdTime/cdms.h                              |   319 -
 include/cdTime/cdms.inc                            |    57 -
 include/cdTime/cdmsint.h                           |   588 -
 include/cdTime/cdmsint_new.h                       |  1063 --
 include/cdTime/cdrra.h                             |    43 -
 include/cdTime/cdunif.h                            |   175 -
 include/cdTime/cdunifint.h                         |   383 -
 include/cdTime/cdunifpp/cdunifpp.h                 |  1086 --
 include/cdTime/cdunifpp/cdunifpp_frename.h         |    68 -
 include/cdTime/cdunifpp/crayio.h                   |   396 -
 include/cdTime/cdunifpp/util.h                     |   251 -
 include/cdTime/cdunifpp/vardef.h                   |    67 -
 include/cdTime/cfortran.h                          |  2369 ---
 include/cdTime/drscdf.h                            |   272 -
 include/cdTime/drsdef.h                            |   203 -
 include/cdTime/fcddrs.h                            |   219 -
 include/cdTime/gaussLats.h                         |   232 -
 include/cdTime/grads.h                             |  1100 --
 include/cdTime/gx.h                                |   442 -
 include/cdTime/isdb.h                              |   104 -
 include/cmor.h                                     |   288 -
 include/cmor_func_def.h                            |   102 -
 include/cmor_md5.h                                 |    30 -
 install-sh                                         |   323 -
 setup.py.in                                        |    67 -
 show_git.c                                         |    11 -
 226 files changed, 146910 deletions(-)

diff --git a/Doc/IPCC_output_requirements.htm b/Doc/IPCC_output_requirements.htm
deleted file mode 100644
index 68a36b2..0000000
--- a/Doc/IPCC_output_requirements.htm
+++ /dev/null
@@ -1,3381 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=Generator content="Microsoft FrontPage 5.0">
-<title>IPCC Model Output Requirements</title>
-
-<style>
-<!--
- /* Font Definitions */
- @font-face
-	{font-family:Wingdings;
-	panose-1:5 0 0 0 0 0 0 0 0 0;}
- at font-face
-	{font-family:StarSymbol;}
- /* Style Definitions */
- p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{margin:0in;
-	margin-bottom:.0001pt;
-	font-size:12.0pt;
-	font-family:"Times New Roman";}
-p.MsoFootnoteText, li.MsoFootnoteText, div.MsoFootnoteText
-	{margin:0in;
-	margin-bottom:.0001pt;
-	font-size:10.0pt;
-	font-family:"Times New Roman";}
-span.MsoFootnoteReference
-	{vertical-align:super;}
-span.MsoEndnoteReference
-	{vertical-align:super;}
-a:link, span.MsoHyperlink
-	{color:blue;
-	text-decoration:underline;}
-a:visited, span.MsoHyperlinkFollowed
-	{color:purple;
-	text-decoration:underline;}
-p
-	{margin-right:0in;
-	margin-left:0in;
-	font-size:12.0pt;
-	font-family:"Times New Roman";}
-span.FootnoteCharacters
-	{vertical-align:super;}
-span.WW8Num3z0
-	{font-family:Symbol;}
-span.WW8Num3z1
-	{font-family:"Courier New";}
-span.WW8Num3z2
-	{font-family:Wingdings;}
-span.WW8Num4z0
-	{font-family:Symbol;}
-span.WW8Num4z1
-	{font-family:"Courier New";}
-span.WW8Num4z2
-	{font-family:Wingdings;}
-span.WW8Num6z0
-	{font-family:Symbol;}
-span.WW8Num6z1
-	{font-family:"Courier New";}
-span.WW8Num6z2
-	{font-family:Wingdings;}
-span.WW8Num7z0
-	{font-family:Symbol;}
-span.WW8Num7z1
-	{font-family:"Courier New";}
-span.WW8Num7z2
-	{font-family:Wingdings;}
-span.WW8Num9z0
-	{font-family:Symbol;}
-span.WW8Num9z1
-	{font-family:"Courier New";}
-span.WW8Num9z2
-	{font-family:Wingdings;}
-span.WW8Num10z0
-	{font-family:Symbol;}
-span.WW8Num10z1
-	{font-family:"Courier New";}
-span.WW8Num10z2
-	{font-family:Wingdings;}
-span.WW8Num12z0
-	{font-family:Symbol;}
-span.WW8Num12z1
-	{font-family:"Courier New";}
-span.WW8Num12z2
-	{font-family:Wingdings;}
-span.WW8Num13z0
-	{font-family:Symbol;}
-span.WW8Num13z1
-	{font-family:"Courier New";}
-span.WW8Num13z2
-	{font-family:Wingdings;}
-span.WW8Num14z0
-	{font-family:Symbol;}
-span.WW8Num14z1
-	{font-family:"Courier New";}
-span.WW8Num14z2
-	{font-family:Wingdings;}
-span.WW8Num15z0
-	{font-family:Symbol;}
-span.WW8Num15z1
-	{font-family:"Courier New";}
-span.WW8Num15z2
-	{font-family:Wingdings;}
-span.WW8Num16z0
-	{font-family:Symbol;}
-span.WW8Num16z1
-	{font-family:"Courier New";}
-span.WW8Num16z2
-	{font-family:Wingdings;}
-span.WW8Num17z0
-	{font-family:Symbol;}
-span.WW8Num17z1
-	{font-family:"Courier New";}
-span.WW8Num17z2
-	{font-family:Wingdings;}
-span.WW8Num18z0
-	{font-family:Symbol;}
-span.WW8Num18z1
-	{font-family:"Courier New";}
-span.WW8Num18z2
-	{font-family:Wingdings;}
-span.WW8Num19z0
-	{font-family:Symbol;}
-span.WW8Num19z1
-	{font-family:"Courier New";}
-span.WW8Num19z2
-	{font-family:Wingdings;}
-span.WW8Num23z0
-	{font-family:Symbol;}
-span.WW8Num23z1
-	{font-family:"Courier New";}
-span.WW8Num23z2
-	{font-family:Wingdings;}
-span.BulletSymbols
-	{font-family:StarSymbol;}
- at page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.2in 1.0in 1.25in;}
-div.Section1
-	{page:Section1;}
- /* List Definitions */
- ol
-	{margin-bottom:0in;}
-ul
-	{margin-bottom:0in;}
--->
-</style>
-
-</head>
-
-<body lang=EN-US link=blue vlink=purple>
-
-<div class=Section1>
-
-<p class=MsoNormal align=center style='text-align:center'><b><span
-style='font-size:16.0pt'>Requirements for</span></b></p>
-
-<p class=MsoNormal align=center style='text-align:center'><b><span
-style='font-size:16.0pt'>IPCC Standard Output Contributed to the PCMDI Archive</span></b></p>
-
-<p class=MsoNormal align=center style='text-align:center'><b><span
-style='font-size:16.0pt'> </span></b></p>
-
-<p class=MsoNormal align=center style='text-align:center'><span style='font-size:14.0pt'>15 September 2005</span></p>
-
-<p class=MsoNormal><b><span style='font-size:14.0pt'> </span></b></p>
-
-<p class=MsoNormal align=center style='text-align:center'><span
-style='font-size:14.0pt'>(Send questions/comments/suggestions to <span
-class=MsoHyperlink><span style='color:blue'><a href="mailto:taylor13 at llnl.gov">taylor13 at llnl.gov</a></span></span>)</span></p>
-
-<p class=MsoNormal><span style='font-size:16.0pt;color:red'> </span></p>
-
-<p class=MsoNormal align=center style='text-align:center'><span
-style='font-size:16.0pt;color:red'>Click <i><a
-href="http://www-pcmdi.llnl.gov/ipcc/IPCC_output_requirements.pdf">here</a></i>
-to obtain a pdf version of this document.</span></p>
-
-<p class=MsoNormal><span style='font-size:16.0pt;color:red'> </span></p>
-
-<p class=MsoNormal align=center style='text-align:center'><span
-style='font-size:16.0pt'>Recent changes to this document are summarized in the
-last section <a href="#updates">below</a>.</span></p>
-
-<p class=MsoNormal><span style='font-size:16.0pt'> </span></p>
-
-<p class=MsoNormal><b><span style='font-size:14.0pt'>������������������������������������ ���������������������������������� </span></b></p>
-
-<p class=MsoNormal><b><span style='font-size:14.0pt'>Overview</span></b></p>
-
-<p class=MsoNormal style='text-align:justify'> </p>
-
-<p class=MsoNormal style='text-align:justify'>Much of the output from coupled
-ocean-atmosphere GCM simulations performed as part of the IPCC process will be
-archived at PCMDI and then distributed for analysis to IPCC WG1 under policies
-developed by IPCC and the WGCM.� The user community will expect to be able to
-extract the data both efficiently and in a uniform way across all models.� This
-imposes rather restrictive constraints on how the data should be organized.�
-With currently available resources, the effort to write the data in a uniform
-structure and format falls on the modeling centers contributing the data.� In
-this document we provide the specifications for writing this model output.� There
-is considerable community support for imposing these same requirements on
-output contributed as part of various model intercomparison projects (e.g.,
-CMIP, AMIP, CFMIP, APE, PMIP, etc.), so the effort required to prepare data for
-IPCC will likely have longer term payoffs as model output is prepared for these
-other projects. </p>
-
-<p class=MsoNormal style='text-align:justify'> </p>
-
-<p class=MsoNormal style='text-align:justify'>A FORTRAN 90 code,
-<a href="http://www-pcmdi.llnl.gov/software-portal/cmor">CMOR</a><a
-href="#_ftn1" name="_ftnref1" title=""><span class=MsoFootnoteReference><span style='font-size:12.0pt;font-family:"Times New Roman"'>[1]</span></span></a>
-(pronounced "see more") has been written to output data that conforms
-to these requirements. <a
-href="http://www-pcmdi.llnl.gov/software/cmor/cmor_users_guide.pdf">Documentation</a><a
-href="#_ftn2" name="_ftnref2" title=""><span class=MsoFootnoteReference><span
-class=MsoFootnoteReference><span style='font-size:12.0pt;font-family:"Times New Roman"'>[2]</span></span></span></a>
-for this code explains how it can substantially reduce the burden placed on the
-modeling centers preparing IPCC model output.  For those groups choosing
-not to use this output code, the following requirements should be strictly
-adhered to.</p>
-
-<p class=MsoNormal style='text-align:justify'> </p>
-
-<p class=MsoNormal style='text-align:justify'>The data archived at PCMDI will
-be made available to the community via the <a href="http://esg.llnl.gov/portal">ESG
-</a><a href="#_ftn3" name="_ftnref3" title=""><span class=MsoFootnoteReference><span
-class=MsoFootnoteReference><span style='font-size:12.0pt;font-family:"Times New Roman"'>[3]</span></span></span></a>(Earth
-System Grid), which will include a variety of methods for accessing the data
-(e.g., GridFTP).� Password protection will be used to limit access to those
-granted permission according to IPCC and WGCM policies.</p>
-
-<p class=MsoNormal style='text-align:justify'> </p>
-
-<p class=MsoNormal style='text-align:justify'>The requirements for data
-contributed to the archive are listed in four sections below, the first specifying
-the general structure and format of the data, the second the constraints
-imposed on the variables, the third the metadata required for describing the
-coordinates, and the last setting down the required and recommended
-"global attributes".� </p>
-
-<p class=MsoNormal style='text-align:justify'> </p>
-
-<p class=MsoNormal style='text-align:justify;page-break-after:avoid'><b><span
-style='font-size:14.0pt'>Data format, data structure, and file composition
-requirements:</span></b></p>
-
-<p class=MsoNormal style='text-align:justify;page-break-after:avoid'> </p>
-
-<p class=MsoNormal style='margin-left:.55in;text-align:justify;text-indent:
--.3in'><span style='font-family:"Courier New"'>▪ </span>Data must be
-written through the <a
-href="http://my.unidata.ucar.edu/content/software/netcdf/">netCDF</a><a
-href="#_ftn4" name="_ftnref4" title=""><span class=FootnoteCharacters><span
-class=FootnoteCharacters><span style='font-size:12.0pt;font-family:"Times New Roman"'>[4]</span></span></span></a>
-API (application program interface) and conform to the <a
-href="http://www.cgd.ucar.edu/cms/eaton/cf-metadata">CF metadata standards</a><a
-href="#_ftn5" name="_ftnref5" title=""><span class=FootnoteCharacters><span
-class=FootnoteCharacters><span style='font-size:12.0pt;font-family:"Times New Roman"'>[5]</span></span></span></a>.
-</p>
-
-<p class=MsoNormal style='margin-left:.55in;text-align:justify;text-indent:
--.3in'><span style='font-family:"Courier New"'>▪ </span>Each file must
-contain only a single output field from a single simulation (i.e., a single
-run).� Each file will also include coordinate variables, attributes and other
-metadata as specified below.� If the field is a function of time, more than one
-time sample (but not necessarily all time samples) may be included in a single
-file.� File size should never exceed 2 gigabytes; we recommend that for long
-time-series typical of many coupled model simulations, the data should not be
-parsed to finely: a few large files is preferred to many small files (within
-the 2 gigabyte limit).� (Monthly data, for example, might be divided into multi-decade
-chunks.)</p>
-
-<p class=MsoNormal style='margin-left:.55in;text-align:justify;text-indent:
--.3in'><span style='font-family:"Courier New"'>▪ </span>For data that are
-a function of longitude and latitude, only grids representable as a Cartesian
-product of longitude and latitude axes are allowed.� Model output on other
-grids, such as "thin" grids, grids with rotated poles, and irregular
-grids, must be mapped to a longitude-latitude Cartesian grid before being
-stored.</p>
-
-<p class=MsoNormal style='margin-left:.55in;text-align:justify;text-indent:
--.3in'><span style='font-family:"Courier New"'>▪ </span>Most atmospheric
-fields that are functions of the vertical coordinate must be interpolated to
-standard pressure levels (as specified in the <a
-href="http://www-pcmdi.llnl.gov/ipcc/standard_output.html">IPCC Standard Output</a><a
-href="#_ftn6" name="_ftnref6" title=""><sup><sup><span style='font-size:12.0pt;
-font-family:"Times New Roman"'>[6]</span></sup></sup></a> list of variables),
-but one field (the 3-d cloud fraction) will reside on the original model
-levels.� There are different metadata and attribute requirements specified
-below for these two types of "3-d" fields.� </p>
-
-<p class=MsoNormal style='margin-left:.55in;text-align:justify;text-indent:
--.3in'><span style='font-family:"Courier New"'>▪ </span>Oceanic fields
-that are a function of the vertical coordinate must be reported on depth levels
-and it is recommended, but not required, that they be interpolated �to standard
-depth levels (as specified in the <a
-href="http://www-pcmdi.llnl.gov/ipcc/standard_output.html">IPCC Standard Output</a><a
-href="#_ftn7" name="_ftnref7" title=""><sup><sup><span style='font-size:12.0pt;
-font-family:"Times New Roman"'>[7]</span></sup></sup></a>).</p>
-
-<p class=MsoNormal style='margin-left:.55in;text-align:justify;text-indent:
--.3in'><span style='font-family:"Courier New"'>▪ </span>The IPCC database
-will comprise output from many different models, at least 11 experiments,
-perhaps several ensemble members, which have been sampled (or averaged) at 5
-different frequencies (time-independent, annually, monthly, daily, and 3-hourly).
-��A separate directory should be created containing all the variables in each
-model/experiment/standard_output_table/ensemble_member category (e.g., CSIRO/20C3M/A1/run1).�
-This will ensure that filenames (discussed next) within each directory are
-unique.� For uniformity, it is suggested that the trailing lower case letter on
-tables should be dropped (e.g., 'A1', not A1a) and it is suggested that the
-experiments be abbreviated as follows:</p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.25in'><span style='font-family:"Courier New"'>→ </span>PIcntrl (i.e.,
-the pre-industrial control experiment)</p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.25in'><span style='font-family:"Courier New"'>→ </span>PDcntrl (i.e.,
-the present-day control experiment)</p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.25in'><a name="OLE_LINK1"><span style='font-family:"Courier New"'>→ </span>20C3M
-(i.e., the climate of the 20th Century experiment (20C3M))</a></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.25in'><span style='font-family:"Courier New"'>→ </span>Commit (i.e.,
-the committed climate change experiment)</p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.25in'><span style='font-family:"Courier New"'>→ </span>SRESA2 (i.e.,
-the SRES A2 experiment)</p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.25in'><span style='font-family:"Courier New"'>→ </span>SRESA1B (i.e.,
-the 720 ppm stabilization experiment (SRES A1B))</p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.25in'><span style='font-family:"Courier New"'>→ </span>SRESB1 (i.e.,
-the 550 ppm stabilization experiment (SRES B1))</p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.25in'><span style='font-family:"Courier New"'>→ </span>1%_to2x (i.e.,
-the 1%/year CO2 increase experiment (to doubling))</p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.25in'><span style='font-family:"Courier New"'>→ </span>1%_to4x (i.e.,
-the 1%/year CO2 increase experiment (to quadrupling))</p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.25in'><span style='font-family:"Courier New"'>→ </span>Slabcntl (i.e.,
-the slab ocean control experiment)</p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.25in'><span style='font-family:"Courier New"'>→ </span>2xCO2 (i.e., the
-2xCO2 equilibrium experiment)</p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.25in'><span style='font-family:"Courier New"'>→ </span>AMIP (i.e., the
-AMIP experiment)</p>
-
-<p class=MsoNormal style='margin-left:.25in;text-align:justify'> </p>
-
-<p class=MsoNormal style='margin-left:.55in;text-align:justify;text-indent:
--.3in'><span style='font-family:"Courier New"'>▪ </span>The names of
-output netCDF files must begin with the 'output variable name' listed in the <a
-href="http://www-pcmdi.llnl.gov/ipcc/standard_output.html">IPCC Standard Output</a><a
-href="#_ftn8" name="_ftnref8" title=""><sup><sup><span style='font-size:12.0pt;
-font-family:"Times New Roman"'>[8]</span></sup></sup></a> list of variables,
-followed by an underscore and then the table number (e.g., tas_O1, psl_A1, tas_A4,
-etc.; note that the lower case letter suffix on the tables may be omitted:
-psl_A1a may be written psl_A1).� Following this prefix, the user is free to
-complete the name in any reasonable way. �Recall that the time samples from a
-single variable may be separated into contiguous groups and stored in separate
-files.� The user must make sure that the names of the series of files are
-unique.� If, for example, each file contains 50 years of data, the user might
-simply label the files by 50-year chunks (e.g., tas_O1_1.nc, tas_O1_2.nc, tas_O1_3.nc,
-etc.), but more explicit information could also be included in the file names
-(e.g., tas_O1_1900-1949.nc, tas_O1950-1999.nc, tas_O1_2000-2049.nc, etc.)</p>
-
-<p class=MsoNormal style='margin-left:.25in;text-align:justify'> </p>
-
-<p class=MsoNormal style='text-align:justify;page-break-after:avoid'><b><span
-style='font-size:14.0pt'>Requirements for output variables:</span></b></p>
-
-<p class=MsoNormal style='text-align:justify;page-break-after:avoid'> </p>
-
-<p class=MsoNormal style='margin-left:.55in;text-align:justify;text-indent:
--.3in'><span style='font-family:"Courier New"'>▪ </span>All output fields
-must be written as single precision floating point numbers (netCDF type
-"float").</p>
-
-<p class=MsoNormal style='margin-left:.55in;text-align:justify;text-indent:
--.3in'><span style='font-family:"Courier New"'>▪ </span>The variable
-names (in the netCDF file) must be the names ("output variable
-names") specified in the <a
-href="http://www-pcmdi.llnl.gov/ipcc/standard_output.html">IPCC Standard Output</a><a
-href="#_ftn9" name="_ftnref9" title=""><sup><sup><span style='font-size:12.0pt;
-font-family:"Times New Roman"'>[9]</span></sup></sup></a> table (e.g., surface
-air temperature data will be stored in a variable named "tas").</p>
-
-<p class=MsoNormal style='margin-left:.55in;text-align:justify;text-indent:
--.3in'><span style='font-family:"Courier New"'>▪ </span>The units
-required for the output fields are given in the <a
-href="http://www-pcmdi.llnl.gov/ipcc/standard_output.html">IPCC Standard Output</a><a
-href="#_ftn10" name="_ftnref10" title=""><sup><sup><span style='font-size:12.0pt;
-font-family:"Times New Roman"'>[10]</span></sup></sup></a> tables.</p>
-
-<p class=MsoNormal style='margin-left:.55in;text-align:justify;text-indent:
--.3in'><span style='font-family:"Courier New"'>▪ </span>The positive
-direction of vertical fluxes must be consistent with that specified in the <a
-href="http://www-pcmdi.llnl.gov/ipcc/standard_output.html">IPCC Standard Output</a><a
-href="#_ftn11" name="_ftnref11" title=""><sup><sup><span style='font-size:12.0pt;
-font-family:"Times New Roman"'>[11]</span></sup></sup></a> table "CF
-standard name".� For example, the positive direction for vertical heat
-fluxes (e.g., "surface_upward_latent_heat_flux") and momentum fluxes
-(e.g., "surface_downward_eastward_stress") are implied by the
-standard name.</p>
-
-<p class=MsoNormal style='margin-left:.55in;text-align:justify;text-indent:
--.3in'><span style='font-family:"Courier New"'>▪ </span>The order of
-array dimensions must be:� time, level, latitude, longitude.� For fields of
-lesser rank, one or more coordinate will be omitted, but the ordering must be
-preserved.� The above order assumes the C language convention (opposite the
-FORTRAN convention) in which the last coordinate varies most rapidly.� In the
-few cases where an additional dimension is required (e.g., the
-"region" dimension used to distinguish different ocean basins), that
-dimension should appear just after the "time" dimension.</p>
-
-<p class=MsoNormal style='margin-left:.55in;text-align:justify;text-indent:
--.3in'><span style='font-family:"Courier New"'>▪ </span>If longitude is a
-coordinate, data must be stored west to east (in degrees), starting with the
-first grid point greater than or equal to 0 degrees east.� All coordinate
-locations must be unique (e.g., don't include both 0 and 360 degrees east).</p>
-
-<p class=MsoNormal style='margin-left:.55in;text-align:justify;text-indent:
--.3in'><span style='font-family:"Courier New"'>▪ </span>If latitude is a
-coordinate, data must be stored south to north (in degrees).</p>
-
-<p class=MsoNormal style='margin-left:.55in;text-align:justify;text-indent:
--.3in'><span style='font-family:"Courier New"'>▪ </span>If there is a
-vertical coordinate, data must be stored starting with the grid point nearest
-the surface. </p>
-
-<p class=MsoNormal style='margin-left:.55in;text-align:justify;text-indent:
--.3in'><span style='font-family:"Courier New"'>▪ </span>If there is a
-time dimension, data must be stored with time increasing.</p>
-
-<p class=MsoNormal style='margin-left:.55in;text-align:justify;text-indent:
--.3in'><span style='font-family:"Courier New"'>▪ </span>If there is a
-"region" coordinate, used to distinguish ocean basins, the data
-should be stored in the order: Atlantic, Indian, Pacific, global.</p>
-
-<p class=MsoNormal style='margin-left:.55in;text-align:justify;text-indent:
--.3in'><span style='font-family:"Courier New"'>▪ </span>All "missing
-data"<a href="#_ftn12" name="_ftnref12" title=""><sup><sup><span
-style='font-size:12.0pt;font-family:"Times New Roman"'>[12]</span></sup></sup></a>
-must be assigned the single precision floating point value of 1.e20</p>
-
-<p class=MsoNormal style='margin-left:.55in;text-align:justify;text-indent:
--.3in'><span style='font-family:"Courier New"'>▪ </span>For ocean heat
-flux and stream function data, an extra dimension must be included to identify
-the basin � Atlantic, Indian, Pacific, or global oceans. (See <a
-href="#example_4">example 4</a> �below.)</p>
-
-<p class=MsoNormal style='margin-left:.55in;text-align:justify;text-indent:
--.3in'><span style='font-family:"Courier New"'>▪ </span>Required
-attributes:</p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.25in'><span style='font-family:"Courier New"'>→ </span>standard_name =
-a character string containing a CF standard name that can be found in the <a
-href="http://www-pcmdi.llnl.gov/ipcc/standard_output.html">IPCC Standard Output</a><a
-href="#_ftn13" name="_ftnref13" title=""><sup><sup><span style='font-size:12.0pt;
-font-family:"Times New Roman"'>[13]</span></sup></sup></a> tables.� Although
-usually required, for a few fields the standard_name is omitted from the table,
-and for these variables the standard_name should be omitted as an attribute. </p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.25in'><span style='font-family:"Courier New"'>→ </span>units = a
-character string containing the units given in the <a
-href="http://www-pcmdi.llnl.gov/ipcc/standard_output.html">IPCC Standard Output</a><a
-href="#_ftn14" name="_ftnref14" title=""><sup><sup><span style='font-size:12.0pt;
-font-family:"Times New Roman"'>[14]</span></sup></sup></a> tables, which must
-be in a form recognizable by <a
-href="http://my.unidata.ucar.edu/content/software/udunits/">UNIDATA's Udunits
-package</a><a href="#_ftn15" name="_ftnref15" title=""><span
-class=MsoFootnoteReference><span class=MsoFootnoteReference><span
-style='font-size:12.0pt;font-family:"Times New Roman"'>[15]</span></span></span></a>
-(e.g., "W m-2".) </p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.25in'><span style='font-family:"Courier New"'>→ </span>If the variable
-has any "missing values", then define _FillValue = 1.e20, and assign
-that value to data that are "missing".</p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.25in'><span style='font-family:"Courier New"'>→ </span>When an output
-field has a coordinate that is single-valued (e.g., surface wind may have a
-vertical coordinate value of 10 meters), a "coordinates" attribute must
-be defined and the scalar value must be stored in the file.� The following
-variables require singleton dimension information: tas, tasmin, tasmax, mrsos,
-mrros, uas, vas, and huss. �For each of these variables, an <a
-href="http://www-pcmdi.llnl.gov/ipcc/standard_output.html">IPCC Standard Output</a><a
-href="#_ftn16" name="_ftnref16" title=""><sup><sup><span style='font-size:12.0pt;
-font-family:"Times New Roman"'>[16]</span></sup></sup></a> table indicates what
-the value of the singleton dimension should be. �As illustrated by<a
-href="#example_3"> example 3</a> below, the "bounds" attribute is
-required on the singleton dimension associated with mrsos and mrros.� See <a
-href="http://www.cgd.ucar.edu/cms/eaton/cf-metadata/CF-1.0.html#scalar_coords">section
-5.7 of the CF-conventions</a><a href="#_ftn17" name="_ftnref17" title=""><span
-class=MsoFootnoteReference><span class=MsoFootnoteReference><span
-style='font-size:12.0pt;font-family:"Times New Roman"'>[17]</span></span></span></a>
-for more information.</p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.25in'><span style='font-family:"Courier New"'>→ </span>If the variable
-contains a time-mean, then the �cell_methods� attribute must be defined with
-the value �time: mean� or if you want to indicate that the interval between
-samples contributing to the mean is 3 hours, then cell_methods='time: mean
-(interval: 3 hours)'.� If the variable is accumulated across an ocean basin
-then the cell_methods attribute must include the string �longitude: sum�.� If
-the variable is both a time-mean and zonally accumulated, then cell_methods =
-'time: mean� longitude: sum').</p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.25in'><span style='font-family:"Courier New"'>→ </span>When a field is
-stored by ocean basin (e.g., northward ocean heat transport in the Atlantic,
-Indian, and Pacific basins, as well as the global transport), a
-"coordinates" attribute must be defined with the value
-"geo_region". See<a href="#example_4"> example 4</a> below and <a
-href="http://www.cgd.ucar.edu/cms/eaton/cf-metadata/CF-1.0.html#region">section
-6.1.1 of the CF-conventions</a><a href="#_ftn18" name="_ftnref18" title=""><span
-class=MsoFootnoteReference><span class=MsoFootnoteReference><span
-style='font-size:12.0pt;font-family:"Times New Roman"'>[18]</span></span></span></a>
-for more information.</p>
-
-<p class=MsoNormal style='margin-left:.75in;text-align:justify'> </p>
-
-<p class=MsoNormal style='margin-left:.55in;text-align:justify;text-indent:
--.3in'><span style='font-family:"Courier New"'>▪ </span>Recommended attributes:</p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.25in'><span style='font-family:"Courier New"'>→ </span>If the variable
-has any "missing values", then define missing_value = 1.e20� Note
-that although this attribute seems to be redundant with _FillValue, some
-software that reads netCDF files expects the missing_value attribute, while
-other software expects the _FillValue attribute, so including both is
-recommended.</p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.25in'><span style='font-family:"Courier New"'>→ </span>original_name =
-the name of the variable as it is commonly known at the user's modeling
-institute.� If the variable being written was computed in some simple way from
-two or more original fields (e.g., subtracting the upwelling and downwelling
-fluxes to get a net flux, or multiplying by a scalar or changing the sign),
-then it is recommended that this be indicated in the "original_name"
-(e.g., "irup � irdown", where "irup" and "irdown"
-are the names of the original fields that were subtracted).� If more
-complicated processing is required, attribute would likely be omitted and the information
-would more naturally be included in a "history" attribute for this
-variable, described next.</p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.25in'><span style='font-family:"Courier New"'>→ </span>history = how
-the variable was processed before outputting (e.g., give name(s) of the file(s)
-from which the data were read and indicate what calculations were performed,
-such as interpolating to standard pressure levels or changing the unit).� This
-information should allow someone at the user's institute to reproduce the
-procedure that created the output.� Note that this history attribute is
-variable-specific, whereas the global history attribute defined below (see
-"Recommended attributes" under "Requirements for global
-attributes") provides information concerning the model simulation itself
-or refers to processing procedures common to all variables.� </p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.25in'><span style='font-family:"Courier New"'>→ </span>original_units =
-a character string indicating the original units of the data before it has been
-processed to be consistent with the units appearing in the <a
-href="http://www-pcmdi.llnl.gov/ipcc/standard_output.html">IPCC Standard Output</a><a
-href="#_ftn19" name="_ftnref19" title=""><sup><sup><span style='font-size:12.0pt;
-font-family:"Times New Roman"'>[19]</span></sup></sup></a> tables. </p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.25in'><span style='font-family:"Courier New"'>→ </span>long_name = a
-character string that might serve as a title for the variable on plots (e.g.,
-"Surface Air Temperature").</p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.25in'><span style='font-family:"Courier New"'>→ </span>comment = a
-character string providing further information concerning the variable (e.g.,
-if the variable is mrso � soil_moisture_content �, the comment might read
-"includes subsurface frozen water but not surface snow and ice").</p>
-
-<p class=MsoNormal style='text-align:justify'> </p>
-
-<p class=MsoNormal style='text-align:justify;page-break-after:avoid'><b><span
-style='font-size:14.0pt'>Requirements for coordinate variables:</span></b></p>
-
-<p class=MsoNormal style='text-align:justify;page-break-after:avoid'><b><span
-style='font-size:14.0pt'> </span></b></p>
-
-<p class=MsoNormal style='margin-left:.55in;text-align:justify;text-indent:
--.3in'><span style='font-family:"Courier New"'>▪ </span>All coordinate
-variables must be written as double precision floating point numbers (netCDF
-type "double").</p>
-
-<p class=MsoNormal style='margin-left:.55in;text-align:justify;text-indent:
--.3in'><span style='font-family:"Courier New"'>▪ </span>A longitude
-coordinate must be named either "longitude" or, �preferably, "lon",
-its CF standard name is "longitude", and its units must be
-"degrees_east".� The values should be store west to east starting
-with the first longitude greater than or equal to 0 degrees.</p>
-
-<p class=MsoNormal style='margin-left:.55in;text-align:justify;text-indent:
--.3in'><span style='font-family:"Courier New"'>▪ </span>A latitude
-coordinate must be named either "latitude" or, preferably,
-"lat", its CF standard name is "latitude", and its units
-must be "degrees_north".� The values should be stored south to north.</p>
-
-<p class=MsoNormal style='margin-left:.55in;text-align:justify;text-indent:
--.3in'><span style='font-family:"Courier New"'>▪ </span>A time coordinate
-must be named "time", its CF standard name is "time", and
-its units must be "days since [basetime]", where [basetime] can be
-specified by the user, typically in the form year-month-day� (e.g., "days
-since 1800-1-1").� The same 'base time' should apply to all time samples
-in a single simulation (i.e., when creating a series of files containing model
-output for a single run, don't change the units or basetime from one file to
-the next; in the above example 1800-1-1 is the 'base time').� For time-mean
-data, it is recommended that the coordinate value be defined as the mid-point
-of the interval over which the average is computed.� (More generally, this same
-recommendation applies whenever time-bounds are included: the time coordinate
-value should be the mean of the two time bounds.)</p>
-
-<p class=MsoNormal style='margin-left:.55in;text-align:justify;text-indent:
--.3in'><span style='font-family:"Courier New"'>▪ </span>An atmospheric
-pressure coordinate must be named "plev", its CF standard name is
-"air_pressure" and its units must be "Pa" (Pascal).� The values
-should be stored in order of decreasing pressure.</p>
-
-<p class=MsoNormal style='margin-left:.55in;text-align:justify;text-indent:
--.3in'><span style='font-family:"Courier New"'>▪ </span>An atmospheric
-height coordinate must be named "height", its CF standard name is
-"height" and its units must be "m" (meters).� The values
-should be stored in order of increasing height. </p>
-
-<p class=MsoNormal style='margin-left:.55in;text-align:justify;text-indent:
--.3in'><span style='font-family:"Courier New"'>▪ </span>An atmospheric or
-ocean dimensionless vertical coordinate (indicating model level) must be named
-"lev" and its CF standard name can be found in <a
-href="http://www.cgd.ucar.edu/cms/eaton/cf-metadata/CF-1.0.html#vrt_app">Appendix
-D</a><a href="#_ftn20" name="_ftnref20" title=""><sup><sup><span
-style='font-size:12.0pt;font-family:"Times New Roman"'>[20]</span></sup></sup></a>
-of the CF-conventions.� The values should be stored starting with the
-coordinate nearest the earth's surface.</p>
-
-<p class=MsoNormal style='margin-left:.55in;text-align:justify;text-indent:
--.3in'><span style='font-family:"Courier New"'>▪ </span>An ocean depth
-coordinate must be named "depth", its CF standard name is
-"depth", its units must be "m" (meters), and it must
-increase with increasing depth (i.e., positive-down). �The values should be
-stored in order of increasing depth (surface down). </p>
-
-<p class=MsoNormal style='margin-left:.55in;text-align:justify;text-indent:
--.3in'><span style='font-family:"Courier New"'>▪ </span>With some
-exceptions (indicated immediately below), the bounds on coordinate variables
-must be included in the file.� For longitude and latitude, the bounds must
-always be included.� For time, the bounds must be included if the data
-represent a time-mean (e.g., monthly mean).� For model-level data, the cell
-bounds should be included, indicating the interfaces between model levels (see <a
-href="#example_5">example 5</a> below).� For data that has been interpolated to
-pressure surfaces, there should be no �bounds� attribute attached to the
-pressure coordinate (see <a href="#example_2">example 2</a> below). The same is
-true for ocean depth coordinate data that has been interpolated from model
-levels. For data that represent a �snap-shot� in time (e.g., the values at a
-single model time-step), the time coordinate should have no �bounds�
-attribute.� A "region" dimension will not require bounds (see <a
-href="#example_5">example 5</a> below).� Note that CF requires cell bounds for
-1-dimensional coordinates be stored in 2-dimensional arrays as described in <a
-href="http://www.cgd.ucar.edu/cms/eaton/cf-metadata/CF-1.0.html#bnds">section
-7.1 of the CF-conventions</a><a href="#_ftn21" name="_ftnref21" title=""><sup><sup><span
-style='font-size:12.0pt;font-family:"Times New Roman"'>[21]</span></sup></sup></a>
-and as shown in the examples below.</p>
-
-<p class=MsoNormal style='margin-left:.55in;text-align:justify;text-indent:
--.3in'><span style='font-family:"Courier New"'>▪ </span>For dimensionless
-vertical coordinates, the user must include in the file all the information
-needed to positively and uniquely indicate the location of the data.� In this
-case the "formula_terms" attribute must be defined and additional
-variables or parameters will need to be stored in the file (e.g., surface
-pressure and pressure at the top of the model for an atmospheric-sigma
-coordinate system).� See� <a href="#example_5">example 5</a> below, and <a
-href="http://www.cgd.ucar.edu/cms/eaton/cf-metadata/CF-1.0.html#vdim">section
-4.3.2 of the CF-conventions</a><a href="#_ftn22" name="_ftnref22" title=""><sup><sup><span
-style='font-size:12.0pt;font-family:"Times New Roman"'>[22]</span></sup></sup></a>
-and <a href="http://www.cgd.ucar.edu/cms/eaton/cf-metadata/CF-1.0.html#vrt_app">Appendix
-D</a><a href="#_ftn23" name="_ftnref23" title=""><sup><sup><span
-style='font-size:12.0pt;font-family:"Times New Roman"'>[23]</span></sup></sup></a>
-of the CF-conventions.</p>
-
-<p class=MsoNormal style='margin-left:.55in;text-align:justify;text-indent:
--.3in'><span style='font-family:"Courier New"'>▪ </span>Variables that
-are stored by basin must include a dimension corresponding with the geographic
-region.� The "region" dimension is a simple index (no coordinate
-values) with the name "region".� A character variable (netCDF type
-"char") by the name of "geo_region" must also be defined
-with dimensions (region, strlen), where region is again the simple index and�
-strlen is the maximum string length.� A "standard_name" attribute
-with the value "region" must be attached to "geo_region".�
-The values of the labels stored in geo_region which identify the basins, are
-taken from the list of <a
-href="http://www.cgd.ucar.edu/cms/eaton/cf-metadata/region.html">valid region names</a><a
-href="#_ftn24" name="_ftnref24" title=""><sup><sup><span style='font-size:12.0pt;
-font-family:"Times New Roman"'>[24]</span></sup></sup></a> (e.g.,
-"atlantic_ocean", "indian_ocean",
-"pacific_ocean", and "global_ocean").� See <a
-href="#example_4">example 4</a> below and <a
-href="http://www.cgd.ucar.edu/cms/eaton/cf-metadata/CF-1.0.html#region">section
-6.1.1 of the CF-conventions</a><a href="#_ftn25" name="_ftnref25" title=""><sup><sup><span
-style='font-size:12.0pt;font-family:"Times New Roman"'>[25]</span></sup></sup></a>
-for more information.</p>
-
-<p class=MsoNormal style='margin-left:.55in;text-align:justify;text-indent:
--.3in'><span style='font-family:"Courier New"'>▪ </span>Required
-attributes:</p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.25in'><span style='font-family:"Courier New"'>→ </span>standard_name =
-a character string containing the standard name (see coordinate standard names
-given above).</p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.25in'><span style='font-family:"Courier New"'>→ </span>units = a
-character string containing the units (see allowable coordinate units given
-above).�� Note that in the case of a dimensionless vertical coordinate, this
-attribute may be omitted.</p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.25in'><span style='font-family:"Courier New"'>→ </span>axis =
-"X", "Y", "Z", or "T" as appropriate
-(see <a href="http://www.cgd.ucar.edu/cms/eaton/cf-metadata/CF-1.0.html#ctype">section
-4 of the CF-conventions</a><a href="#_ftn26" name="_ftnref26" title=""><span
-class=MsoFootnoteReference><span class=MsoFootnoteReference><span
-style='font-size:12.0pt;font-family:"Times New Roman"'>[26]</span></span></span></a>).�
-In the few cases where an additional dimension is required (e.g., the
-"region" dimension used to distinguish different ocean basins), this
-attribute should be omitted (for this additional dimension).</p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.25in'><span style='font-family:"Courier New"'>→ </span>bounds = a
-character string containing the name of the variable where the cell bounds are
-stored.� </p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.25in'><span style='font-family:"Courier New"'>→ </span>For time
-coordinates, the �calendar� attribute must be included as described in <a
-href="http://www.cgd.ucar.edu/cms/eaton/cf-metadata/CF-1.0.html#cal">section
-4.4.1 of the CF-conventions</a><a href="#_ftn27" name="_ftnref27" title=""><span
-class=MsoFootnoteReference><span class=MsoFootnoteReference><span
-style='font-size:12.0pt;font-family:"Times New Roman"'>[27]</span></span></span></a>.�
-Note that if a model has a gregorian calendar and the base time is defined to
-be prior to 1582, then the user should specify 'proleptic_gregorian', rather
-than 'gregorian' for the calendar attribute.</p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.25in'><span style='font-family:"Courier New"'>→ </span>For
-dimensionless vertical coordinates the �positive� attribute must be included
-and should be set to either �down� or �up�, as appropriate.</p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.25in'><span style='font-family:"Courier New"'>→ </span>For
-dimensionless vertical coordinates, the �formula_terms� attribute must be
-defined as described in <a
-href="http://www.cgd.ucar.edu/cms/eaton/cf-metadata/CF-1.0.html#vnum">section
-4.3.2 of the CF-conventions</a><a href="#_ftn28" name="_ftnref28" title=""><span
-class=MsoFootnoteReference><span class=MsoFootnoteReference><span
-style='font-size:12.0pt;font-family:"Times New Roman"'>[28]</span></span></span></a>
-and as illustrated in <a href="#example_5">example 5</a> below. Further
-information can be found in <a
-href="http://www.cgd.ucar.edu/cms/eaton/cf-metadata/CF-1.0.html#vrt_app">Appendix
-D</a><a href="#_ftn29" name="_ftnref29" title=""><span
-class=MsoFootnoteReference><span class=MsoFootnoteReference><span
-style='font-size:12.0pt;font-family:"Times New Roman"'>[29]</span></span></span></a>
-of the CF-conventions.</p>
-
-<p class=MsoNormal style='margin-left:.55in;text-align:justify;text-indent:
--.3in'><span style='font-family:"Courier New"'>▪ </span>Recommended
-attributes:</p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.25in'><span style='font-family:"Courier New"'>→ </span>For dimensionless
-vertical coordinates the �positive� attribute is required, and for all other
-vertical coordinates it is recommended that it be defined.</p>
-
-<p class=MsoNormal style='text-align:justify'> </p>
-
-<p class=MsoNormal style='text-align:justify;page-break-after:avoid'><b><span
-style='font-size:14.0pt'>Requirements for global attributes:</span></b></p>
-
-<p class=MsoNormal style='text-align:justify;page-break-after:avoid'><b><span
-style='font-size:14.0pt'> </span></b></p>
-
-<p class=MsoNormal style='margin-left:.55in;text-align:justify;text-indent:
--.3in'><span style='font-family:"Courier New"'>▪ </span>Required
-attributes:</p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.25in'><span style='font-family:"Courier New"'>→ </span>institution = a
-character string containing an abbreviated name or acronym of the institution
-that performed the model simulation, followed in parentheses by the fully
-spelled-out name and location (e.g., 'GFDL (Geophysical Fluid Dynamics
-Laboratory, Princeton, NJ, USA)')</p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.25in'><span style='font-family:"Courier New"'>→ </span>source = a
-character string identifying the model version as it should be identified by
-the IPCC (although the IPCC may in many cases choose to identify models only by
-the institution's acronym).� Additionally, this attribute must include the year
-(i.e., model vintage) when this model version was first used in a scientific
-application.� Finally it should include information concerning the component
-models.� The following template should be used in constructing this string: '<i>[coupled_model_name]
-</i>(<i>[year]</i>):<i> </i>atmosphere: <i>[model_name] </i>(<i>[technical_name],
-[resolution_and_levels]</i>); ocean: <i>[model_name] </i>(<i>[technical_name], [resolution_and_levels]</i>);
-sea ice: <i>[model_name] </i>(<i>[technical_name])</i>; land: <i>[model_name] </i>(<i>[technical_name])'</i>'�
-As an example, "source" might contain the string: 'CCSM2 (2002):
-atmosphere: CAM2 (cam2_0_brnchT_itea_2, T42L26); ocean: �POP (pop2_0_ver_1.4.3,
-2x3L15); sea ice: CSIM4; land: CLM2.0'.� Additional explanatory information may
-follow the required information.</p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.25in'><span style='font-family:"Courier New"'>→ </span>project_id = "IPCC
-Fourth Assessment"</p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.25in'><span style='font-family:"Courier New"'>→ </span>table_id =
-should be assigned a character string identifying the <a
-href="http://www-pcmdi.llnl.gov/ipcc/standard_output.html">IPCC Standard Output</a><a
-href="#_ftn30" name="_ftnref30" title=""><sup><sup><span style='font-size:12.0pt;
-font-family:"Times New Roman"'>[30]</span></sup></sup></a> table where this variable
-appears (e.g., Table A1).� The trailing lower case letter may be omitted (e.g.,
-'Table A1a' may be written 'Table A1').</p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.25in'><span style='font-family:"Courier New"'>→ </span>realization = an
-integer identifying the ensemble member from which the data were obtained
-(e.g., 1, 2, 3, etc.; this attribute should be set to 1 if only a single
-simulation was performed).</p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.25in'><span style='font-family:"Courier New"'>→ </span>experiment_id =
-the appropriate character string, identifying the experiment, �taken from the
-following list:</p>
-
-<p class=MsoNormal style='margin-left:1.25in;text-align:justify'>'pre-industrial
-control experiment' </p>
-
-<p class=MsoNormal style='margin-left:1.25in;text-align:justify'>'present-day
-control experiment' </p>
-
-<p class=MsoNormal style='margin-left:1.25in;text-align:justify'>'climate of
-the 20th Century experiment (20C3M)' </p>
-
-<p class=MsoNormal style='margin-left:1.25in;text-align:justify'>'committed
-climate change experiment' </p>
-
-<p class=MsoNormal style='margin-left:1.25in;text-align:justify'>'SRES A2
-experiment' </p>
-
-<p class=MsoNormal style='margin-left:1.25in;text-align:justify'>'720 ppm
-stabilization experiment (SRES A1B)' </p>
-
-<p class=MsoNormal style='margin-left:1.25in;text-align:justify'>'550 ppm
-stabilization experiment (SRES B1)' </p>
-
-<p class=MsoNormal style='margin-left:1.25in;text-align:justify'>'1%/year CO2
-increase experiment (to doubling)' </p>
-
-<p class=MsoNormal style='margin-left:1.25in;text-align:justify'>'1%/year CO2
-increase experiment (to quadrupling)' </p>
-
-<p class=MsoNormal style='margin-left:1.25in;text-align:justify'>'slab ocean
-control experiment' </p>
-
-<p class=MsoNormal style='margin-left:1.25in;text-align:justify'>'2xCO2
-equilibrium experiment' </p>
-
-<p class=MsoNormal style='margin-left:1.25in;text-align:justify'>'AMIP
-experiment' </p>
-
-<p class=MsoNormal style='text-align:justify'> </p>
-
-<p class=MsoNormal style='margin-left:.55in;text-align:justify;text-indent:
--.3in'><span style='font-family:"Courier New"'>▪ </span>Recommended
-attributes:</p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.25in'><span style='font-family:"Courier New"'>→ </span>Conventions =
-'CF-1.0'</p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.25in'><span style='font-family:"Courier New"'>→ </span>contact = name
-and contact information (e.g., email, address, phone number) of person who
-should be contacted for more information about the data.</p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.25in'><span style='font-family:"Courier New"'>→ </span>history = A
-character string containing an audit trail for modifications to the original
-data.� Each modification is typically preceded by a "timestamp".��
-The "history" attribute provided here will be a global one that
-should not depend on which variable is contained in the file.� A
-variable-specific "history" can also be included as an attribute
-attached to the output variable.</p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.25in'><span style='font-family:"Courier New"'>→ </span>comment = A
-character string containing additional information about the data or methods
-used to produce it.� The user may include, for example, a description of how
-the initial conditions for a simulation were specified and how the model was
-spun-up (including the length of the spin-up period).� If the run was initiated
-from a "control" run, it would be appropriate to indicate which
-control run was used and what time in that run provided the initial conditions
-(e.g. "This simulation was initiated from the end of control run
-eulT42cntrl").� Also please specify which forcing agents are included in
-the historical runs (e.g., greenhouse gases, sulfate aerosol direct effects,
-volcanoes, solar forcing, etc.)</p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.25in'><span style='font-family:"Courier New"'>→ </span>references = A
-character string containing a list of published or web-based references that
-describe the data or the methods used to produce it.� Typically, the user
-should provide references describing the model formulation here.</p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.25in'><span style='font-family:"Courier New"'>→ </span>title = "<i>[institute_name]</i>
-model output prepared for IPCC Fourth Assessment Report <i>[experiment_id]</i>"
-where <i>[institute_name]</i> should be replaced by the contributing
-institution's acronym or name (e.g., "GFDL", "CCCma",
-"Hadley Centre",� etc.) and <i>[experiment_id]</i> should be replaced
-by one of the following strings:</p>
-
-<p class=MsoNormal style='margin-left:1.25in;text-align:justify'>'pre-industrial
-control experiment' </p>
-
-<p class=MsoNormal style='margin-left:1.25in;text-align:justify'>'present-day
-control experiment' </p>
-
-<p class=MsoNormal style='margin-left:1.25in;text-align:justify'>'climate of
-the 20th Century experiment (20C3M)' </p>
-
-<p class=MsoNormal style='margin-left:1.25in;text-align:justify'>'committed
-climate change experiment' </p>
-
-<p class=MsoNormal style='margin-left:1.25in;text-align:justify'>'SRES A2
-experiment' </p>
-
-<p class=MsoNormal style='margin-left:1.25in;text-align:justify'>'720 ppm
-stabilization experiment (SRES A1B)' </p>
-
-<p class=MsoNormal style='margin-left:1.25in;text-align:justify'>'550 ppm
-stabilization experiment (SRES B1)' </p>
-
-<p class=MsoNormal style='margin-left:1.25in;text-align:justify'>'1%/year CO2
-increase experiment (to doubling)' </p>
-
-<p class=MsoNormal style='margin-left:1.25in;text-align:justify'>'1%/year CO2
-increase experiment (to quadrupling)' </p>
-
-<p class=MsoNormal style='margin-left:1.25in;text-align:justify'>'slab ocean
-control experiment' </p>
-
-<p class=MsoNormal style='margin-left:1.25in;text-align:justify'>'2xCO2
-equilibrium experiment' </p>
-
-<p class=MsoNormal style='margin-left:1.25in;text-align:justify'>'AMIP
-experiment' </p>
-
-<p class=MsoNormal style='text-align:justify'> </p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify'>A sample title
-is: 'GFDL model output prepared for IPCC Fourth Assessment 1%/year CO2 increase
-experiment'</p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify'> </p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify'> </p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify'> </p>
-
-<p class=MsoNormal style='page-break-after:avoid'><a name=updates><b><span
-style='font-size:14.0pt'>Recent Changes to this Document:</span></b></a></p>
-
-<p class=MsoNormal style='page-break-after:avoid'><b><span style='font-size:
-14.0pt'> </span></b></p>
-
-<p><b>15 September 2005</b><b>:</b></p>
-
-<p class=MsoNormal style='margin-left:.55in;text-align:justify;text-indent:
--.3in'><span style='font-family:"Courier New"'>▪ </span>Edited in minor
-ways for increased clarity.</p>
-
-<p><b>25 January 2005</b><b>:</b></p>
-
-<p class=MsoNormal style='margin-left:.55in;text-align:justify;text-indent:
--.3in'><span style='font-family:"Courier New"'>▪ </span>Corrected
-specified order of "region" coordinate to be: Atlantic, Indian,
-Pacific, global (was Atlantic, Pacific, Indian, global).</p>
-
-<p class=MsoNormal style='margin-left:.25in;text-align:justify'> </p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify;text-indent:-.5in'><b>17�
-November 2004:</b></p>
-
-<p class=MsoNormal style='margin-left:.55in;text-align:justify;text-indent:
--.3in'><span style='font-family:"Courier New"'>▪ </span>Recommended that
-long time-series not be subdivided into too many files; within the 2 gigabyte
-limit, store relatively few large files.</p>
-
-<p class=MsoNormal style='margin-left:.25in;text-align:justify'><b>�</b></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify;text-indent:-.5in'><b>15 September 2004</b><b>: </b></p>
-
-<p class=MsoNormal style='margin-left:.55in;text-align:justify;text-indent:
--.3in'><span style='font-family:"Courier New"'>▪ </span>Noted that ocean
-data data may be reported on depth levels that are not standard.</p>
-
-<p class=MsoNormal style='margin-left:.55in;text-align:justify;text-indent:
--.3in'><span style='font-family:"Courier New"'>▪ </span>The recommended
-directory structure for storing output fields was altered.� </p>
-
-<p class=MsoNormal style='margin-left:.55in;text-align:justify;text-indent:
--.3in'><span style='font-family:"Courier New"'>▪ </span>Noted that unique
-longitudes should be stored (i.e., don't duplicate, for example, a grid cell
-located at 0 degree with one stored at 360 degree longitude).� </p>
-
-<p class=MsoNormal style='margin-left:.55in;text-align:justify;text-indent:
--.3in'><span style='font-family:"Courier New"'>▪ </span>Noted that the
-'base time' in the time units attribute should be the same for all files for a
-single model run.� </p>
-
-<p class=MsoNormal style='margin-left:.55in;text-align:justify;text-indent:
--.3in'><span style='font-family:"Courier New"'>▪ </span>Noted that when a
-model uses a gregorian calendar and the "base time" preceeds
-year1582, then 'proleptic_gregorian', rather than 'gregorian' should be
-specified as the calendar attribute.</p>
-
-<p class=MsoNormal style='margin-left:.55in;text-align:justify;text-indent:
--.3in'><span style='font-family:"Courier New"'>▪ </span>Provided further
-explanation of the table_id global attribute.</p>
-
-<p class=MsoNormal style='margin-left:.55in;text-align:justify;text-indent:
--.3in'><span style='font-family:"Courier New"'>▪ </span>Removed option of
-not specifying the "realization" global attribute.� (It should be set
-to the integer 1, if only a single realization was performed).</p>
-
-<p class=MsoNormal style='margin-left:.55in;text-align:justify;text-indent:
--.3in'><span style='font-family:"Courier New"'>▪ </span>Noted that
-cell_bounds attribute should be omitted if ocean data has been interpolated to
-standard depth levels.</p>
-
-<p class=MsoNormal style='margin-left:.55in;text-align:justify;text-indent:
--.3in'><span style='font-family:"Courier New"'>▪ </span>Several web page
-links were corrected.</p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify;text-indent:-.5in'> </p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify;text-indent:-.5in'><b>4 September 2004</b><b>: </b>Web addresses changed to be consistent with the new PCMDI
-web site.</p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify;text-indent:-.5in'><b> </b></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify;text-indent:-.5in'><b>29 July 2004</b><b>: </b>A recommendation was added to specify in the global
-"comment" attribute which forcing agents are included in the 20C3M
-simulations. </p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify;text-indent:-.5in'> </p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify;text-indent:-.5in'><b>20 July 2004</b><b>: </b>A recommendation was added that when time-bounds are included
-in the file, the time-coordinate values should always be the mean of the two
-associated time-bounds.� For example, it is recommended that the time
-coordinate value of a time-mean should be defined as the mid-point of the
-averaging interval.</p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify;text-indent:-.5in'> </p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify;text-indent:-.5in'><b>19 July 2004</b><b>: </b>�One more official experiment name was changed to be more
-consistent with the others: 'climate of the 20th Century experiment (20C3M)'
-was previously referred to as 'climate of the 20th Century (20C3M)' </p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify;text-indent:-.5in'><b> </b></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify;text-indent:-.5in'><b>15 July 2004</b><b>: </b>�Three of the official experiment names were changed; these
-were the names of the control experiments, which now read: 1) 'pre-industrial
-control experiment', 'present-day control experiment', and 'slab ocean control
-experiment'.� Also, 'AMIP experiment' was added as an official IPCC experiment.</p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify;text-indent:-.5in'> </p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify;text-indent:-.5in'><b>6 June 2004</b><b>:</b>� Initial document version released.</p>
-
-<p class=MsoNormal style='text-align:justify'> </p>
-
-<p class=MsoNormal style='page-break-after:avoid'> </p>
-
-<span style='font-size:12.0pt;font-family:"Times New Roman"'><br clear=all
-style='page-break-before:always'>
-</span>
-
-<p class=MsoNormal align=center style='text-align:center'><a name="example_1"><span
-style='font-size:14.0pt'>Example 1</span></a><span style='font-size:14.0pt'>:
-Surface latent heat flux</span></p>
-
-<p class=MsoNormal align=center style='text-align:center'><span
-style='font-size:14.0pt'>(a function of longitude, latitude, month)</span></p>
-
-<p class=MsoNormal style='text-align:justify'> </p>
-
-<p class=MsoNormal style='text-align:justify'> </p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>netcdf hfls_A1 {</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>dimensions:</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� lon = 4 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� lat = 3 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� time = UNLIMITED ; // (2 currently)</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� bnds = 2 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>variables:</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� double lon(lon) ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� lon:standard_name =
-"longitude" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� lon:long_name = "longitude" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� lon:units = "degrees_east" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� lon:axis = "X" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� lon:bounds = "lon_bnds" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� double lon_bnds(lon, bnds) ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� double lat(lat) ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� lat:standard_name = "latitude"
-;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� lat:long_name = "latitude" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� lat:units = "degrees_north" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� lat:axis = "Y" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� lat:bounds = "lat_bnds" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� double lat_bnds(lat, bnds) ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� double time(time) ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� time:standard_name = "time" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� time:long_name = "time" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� time:units = "days since
-2030-1-1" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� time:axis = "T" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� time:calendar = "360_day" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� time:bounds = "time_bnds" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� double time_bnds(time, bnds) ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� float hfls(time, lat, lon) ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� hfls:standard_name =
-"surface_upward_latent_heat_flux" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� hfls:long_name = "Surface Latent
-Heat Flux" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� hfls:units = "W m-2" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� hfls:cell_methods = "time: mean
-(interval: 20 minutes)" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� hfls:_FillValue = 1.e+20f ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� hfls:missing_value = 1.e+20f ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� hfls:original_name = "LATENT"
-;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>hfls:history =
-" At�� 17:54:19 on 06/07/2004: CMOR altered the data in the following
-ways: replaced missing value flag (1.00000E+28) with standard missing value
-(1.00000E+20); multiplied by -1.00000E+00 to yield output units;" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>// global attributes:</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>:title =
-"GICC� model output prepared for IPCC Fourth Assessment 2xCO2 equilibrium
-experiment" ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>:institution =
-"GICC (</span><span style='font-size:10.0pt;font-family:"Courier New"'>Generic</span><span
- style='font-size:10.0pt;font-family:"Courier New"'> </span><span
-  style='font-size:10.0pt;font-family:"Courier New"'>International</span><span
- style='font-size:10.0pt;font-family:"Courier New"'> </span><span
-  style='font-size:10.0pt;font-family:"Courier New"'>Climate</span><span
- style='font-size:10.0pt;font-family:"Courier New"'> </span><span
-  style='font-size:10.0pt;font-family:"Courier New"'>Center</span><span
-style='font-size:10.0pt;font-family:"Courier New"'>, </span><span
-  style='font-size:10.0pt;font-family:"Courier New"'>Geneva</span><span
- style='font-size:10.0pt;font-family:"Courier New"'>, </span><span
-  style='font-size:10.0pt;font-family:"Courier New"'>Switzerland</span><span
-style='font-size:10.0pt;font-family:"Courier New"'>)" ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>:source =
-"GICCM1 (2002): atmosphere:� GICAM3 (gicam_0_brnchT_itea_2, T63L32);
-ocean: MOM (mom3_ver_3.5.2, 2x3L15); sea ice: GISIM4; land: GILSM2.5" ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>:contact =
-"Rusty Koder (koder at middle_earth.net)" ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>:project_id =
-"IPCC Fourth Assessment" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� :table_id = "Table A1 (</span><span style='font-size:10.0pt;font-family:"Courier New"'>7 April 2004</span><span
-style='font-size:10.0pt;font-family:"Courier New"'>)" ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>:experiment_id =
-"2xCO2 equilibrium experiment" ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>:realization = 1
-;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>:Conventions =
-"CF-1.0" ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>:history =
-"Output from archive/giccm_03_std_2xCO2_2256.� At </span><span style='font-size:10.0pt;font-family:"Courier New"'>17:54:19</span><span
-style='font-size:10.0pt;font-family:"Courier New"'> on </span><span style='font-size:10.0pt;font-family:"Courier New"'>06/07/2004</span><span
-style='font-size:10.0pt;font-family:"Courier New"'>, CMOR rewrote data to
-comply with CF standards and IPCC Fourth Assessment requirements" ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>:references =
-"Model described by Koder and Tolkien (J. Geophys. Res., 2001, 576-591).�
-Also see http://www.GICC.su/giccm/doc/index.html� 2XCO2 simulation described in
-Dorkey et al. (Clim. Dyn., 2003, 323-357.)" ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>:comment =
-"Equilibrium reached after 30-year spin-up after which data were output
-starting with nominal date of January 2030" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>data:</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>�lon = 0, 90, 180, 270 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>�lon_bnds =</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� -45, 45,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 45, 135,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 135, 225,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 225, 315 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>�lat = 10, 20, 30 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>�lat_bnds =</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 5, 15,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 15, 25,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 25, 35 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>�time = 15, 45 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>�time_bnds =</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 0, 30,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 30, 60 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>�hfls =</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 19, 15, 11, 7,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 3, -1, -5, -9,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� -13, -17, -21, -25,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 18, 14, 10, 6,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 2, -2, -6, -10,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� -14, -18, -22, -26 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>}</span></p>
-
-<span style='font-size:10.0pt;font-family:"Courier New"'><br clear=all
-style='page-break-before:always'>
-</span>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal align=center style='text-align:center'><a name="example_2"><span
-style='font-size:14.0pt'>Example 2</span></a><span style='font-size:14.0pt'>: Air
-temperature</span></p>
-
-<p class=MsoNormal align=center style='text-align:center'><span
-style='font-size:14.0pt'>(a function of longitude, latitude, pressure, month)</span></p>
-
-<p class=MsoNormal style='text-align:justify'> </p>
-
-<p class=MsoNormal style='text-align:justify'> </p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>netcdf ta_A1 {</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>dimensions:</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� lon = 4 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� lat = 3 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� plev = 5 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� time = UNLIMITED ; // (2 currently)</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� bnds = 2 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>variables:</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� double lon(lon) ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� lon:standard_name = "longitude"
-;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� lon:long_name = "longitude" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� lon:units = "degrees_east" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� lon:axis = "X" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� lon:bounds = "lon_bnds" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� double lon_bnds(lon, bnds) ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� double lat(lat) ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� lat:standard_name = "latitude"
-;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� lat:long_name = "latitude" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� lat:units = "degrees_north" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� lat:axis = "Y" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� lat:bounds = "lat_bnds" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� double lat_bnds(lat, bnds) ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� double plev(plev) ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� plev:standard_name =
-"air_pressure" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� plev:long_name = "pressure" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� plev:units = "Pa" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� plev:axis = "Z" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� plev:positive = "down" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� double time(time) ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� time:standard_name = "time" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� time:long_name = "time" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� time:units = "days since
-2030-1-1" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� time:axis = "T" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� time:calendar = "360_day" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� time:bounds = "time_bnds" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� double time_bnds(time, bnds) ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� float ta(time, plev, lat, lon) ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� ta:standard_name =
-"air_temperature" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� ta:long_name = "Temperature" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� ta:units = "K" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� ta:cell_methods = "time: mean
-(interval: 20 minutes)" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� ta:_FillValue = 1.e+20f ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� ta:missing_value = 1.e+20f ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� ta:original_name = "T" ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>ta:history =
-" At�� </span><span style='font-size:10.0pt;font-family:"Courier New"'>17:54:19</span><span
-style='font-size:10.0pt;font-family:"Courier New"'> on </span><span style='font-size:10.0pt;font-family:"Courier New"'>06/07/2004</span><span
-style='font-size:10.0pt;font-family:"Courier New"'>: CMOR altered the data in
-the following ways: replaced missing value flag (1.00000E+28) with standard
-missing value (1.00000E+20);" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>// global attributes:</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>:title =
-"GICC� model output prepared for IPCC Fourth Assessment 2xCO2 equilibrium
-experiment" ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>:institution =
-"GICC (</span><span style='font-size:10.0pt;font-family:"Courier New"'>Generic</span><span
- style='font-size:10.0pt;font-family:"Courier New"'> </span><span
-  style='font-size:10.0pt;font-family:"Courier New"'>International</span><span
- style='font-size:10.0pt;font-family:"Courier New"'> </span><span
-  style='font-size:10.0pt;font-family:"Courier New"'>Climate</span><span
- style='font-size:10.0pt;font-family:"Courier New"'> </span><span
-  style='font-size:10.0pt;font-family:"Courier New"'>Center</span><span
-style='font-size:10.0pt;font-family:"Courier New"'>, </span><span
-  style='font-size:10.0pt;font-family:"Courier New"'>Geneva</span><span
- style='font-size:10.0pt;font-family:"Courier New"'>, </span><span
-  style='font-size:10.0pt;font-family:"Courier New"'>Switzerland</span><span
-style='font-size:10.0pt;font-family:"Courier New"'>)" ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>:source =
-"GICCM1 (2002): atmosphere:� GICAM3 (gicam_0_brnchT_itea_2, T63L32);
-ocean: MOM (mom3_ver_3.5.2, 2x3L15); sea ice: GISIM4; land: GILSM2.5" ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>:contact =
-"Rusty Koder (koder at middle_earth.net)" ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>:project_id =
-"IPCC Fourth Assessment" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� :table_id = "Table A1 (</span><span style='font-size:10.0pt;font-family:"Courier New"'>7 April 2004</span><span
-style='font-size:10.0pt;font-family:"Courier New"'>)" ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>:experiment_id =
-"2xCO2 equilibrium experiment" ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>:realization = 1
-;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>:Conventions =
-"CF-1.0" ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>:history =
-"Output from archive/giccm_03_std_2xCO2_2256.� At </span><span style='font-size:10.0pt;font-family:"Courier New"'>17:54:19</span><span
-style='font-size:10.0pt;font-family:"Courier New"'> on </span><span style='font-size:10.0pt;font-family:"Courier New"'>06/07/2004</span><span
-style='font-size:10.0pt;font-family:"Courier New"'>, CMOR rewrote data to
-comply with CF standards and IPCC Fourth Assessment requirements" ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>:references =
-"Model described by Koder and Tolkien (J. Geophys. Res., 2001, 576-591).�
-Also see http://www.GICC.su/giccm/doc/index.html� 2XCO2 simulation described in
-Dorkey et al. (Clim. Dyn., 2003, 323-357.)" ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>:comment =
-"Equilibrium reached after 30-year spin-up after which data were output
-starting with nominal date of January 2030" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>data:</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>�lon = 0, 90, 180, 270 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>�lon_bnds =</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� -45, 45,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 45, 135,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 135, 225,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 225, 315 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>�lat = 10, 20, 30 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>�lat_bnds =</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 5, 15,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 15, 25,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 25, 35 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>�plev = 10000, 20000, 30000, 40000, 50000 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>�time = 15, 45 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>�time_bnds =</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 0, 30,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 30, 60 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>�ta =</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 150.5, 152.5, 154.5, 156.5,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 158.5, 160.5, 162.5, 164.5,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 166.5, 168.5, 170.5, 172.5,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 182.5, 184.5, 186.5, 188.5,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 190.5, 192.5, 194.5, 196.5,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 198.5, 200.5, 202.5, 204.5,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 214.5, 216.5, 218.5, 220.5,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 222.5, 224.5, 226.5, 228.5,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 230.5, 232.5, 234.5, 236.5,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 246.5, 248.5, 250.5, 252.5,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 254.5, 256.5, 258.5, 260.5,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 262.5, 264.5, 266.5, 268.5,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 278.5, 280.5, 282.5, 284.5,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 286.5, 288.5, 290.5, 292.5,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 294.5, 296.5, 298.5, 300.5,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 151, 153, 155, 157,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 159, 161, 163, 165,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 167, 169, 171, 173,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 183, 185, 187, 189,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 191, 193, 195, 197,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 199, 201, 203, 205,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 215, 217, 219, 221,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 223, 225, 227, 229,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 231, 233, 235, 237,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 247, 249, 251, 253,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 255, 257, 259, 261,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 263, 265, 267, 269,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 279, 281, 283, 285,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 287, 289, 291, 293,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 295, 297, 299, 301 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>}</span></p>
-
-<span style='font-size:10.0pt;font-family:"Courier New"'><br clear=all
-style='page-break-before:always'>
-</span>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal align=center style='text-align:center'><a name="example_3"><span
-style='font-size:14.0pt'>Example 3</span></a><span style='font-size:14.0pt'>: Treatment
-of a scalar (i.e., singleton) dimension</span></p>
-
-<p class=MsoNormal align=center style='text-align:center'><span
-style='font-size:14.0pt'>Moisture in upper 0.1 m of soil column</span></p>
-
-<p class=MsoNormal align=center style='text-align:center'><span
-style='font-size:14.0pt'>(a function of longitude, latitude, month)</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>netcdf mrsos_A1 {</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>dimensions:</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� lon = 4 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� lat = 3 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� time = UNLIMITED ; // (2 currently)</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� bnds = 2 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>variables:</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� double lon(lon) ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� lon:standard_name =
-"longitude" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� lon:long_name = "longitude" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� lon:units = "degrees_east" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� lon:axis = "X" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� lon:bounds = "lon_bnds" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� double lon_bnds(lon, bnds) ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� double lat(lat) ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� lat:standard_name = "latitude"
-;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� lat:long_name = "latitude" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� lat:units = "degrees_north" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� lat:axis = "Y" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� lat:bounds = "lat_bnds" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� double lat_bnds(lat, bnds) ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� double time(time) ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� time:standard_name = "time" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� time:long_name = "time" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� time:units = "days since 2030-1-1"
-;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� time:axis = "T" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� time:calendar = "360_day" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� time:bounds = "time_bnds" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� double time_bnds(time, bnds) ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� double depth ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� depth:standard_name = "depth"
-;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� depth:long_name = "depth" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� depth:units = "m" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� depth:axis = "Z" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� depth:positive = "down" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� depth:bounds = "depth_bnds" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� double depth_bnds(bnds) ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� float mrsos(time, lat, lon) ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� mrsos:standard_name =
-"moisture_content_of_soil_layer" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� mrsos:long_name = "Moisture in
-Upper 0.1 m of Soil Column" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� mrsos:units = "kg m-2" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� mrsos:cell_methods = "time: mean
-(interval: 20 minutes)" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� mrsos:coordinates = "depth" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� mrsos:_FillValue = 1.e+20f ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� mrsos:missing_value = 1.e+20f ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� mrsos:original_name =
-"SOIL_WET" ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>mrsos:comment =
-"includes subsurface frozen water but not surface snow and ice" ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>mrsos:history =
-" At�� </span><span style='font-size:10.0pt;font-family:"Courier New"'>17:54:19</span><span
-style='font-size:10.0pt;font-family:"Courier New"'> on </span><span style='font-size:10.0pt;font-family:"Courier New"'>06/07/2004</span><span
-style='font-size:10.0pt;font-family:"Courier New"'>: CMOR altered the data in
-the following ways: replaced missing value flag (1.00000E+28) with standard
-missing value (1.00000E+20);" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>// global attributes:</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>:title =
-"GICC� model output prepared for IPCC Fourth Assessment 2xCO2 equilibrium
-experiment" ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>:institution =
-"GICC (</span><span style='font-size:10.0pt;font-family:"Courier New"'>Generic</span><span
- style='font-size:10.0pt;font-family:"Courier New"'> </span><span
-  style='font-size:10.0pt;font-family:"Courier New"'>International</span><span
- style='font-size:10.0pt;font-family:"Courier New"'> </span><span
-  style='font-size:10.0pt;font-family:"Courier New"'>Climate</span><span
- style='font-size:10.0pt;font-family:"Courier New"'> </span><span
-  style='font-size:10.0pt;font-family:"Courier New"'>Center</span><span
-style='font-size:10.0pt;font-family:"Courier New"'>, </span><span
-  style='font-size:10.0pt;font-family:"Courier New"'>Geneva</span><span
- style='font-size:10.0pt;font-family:"Courier New"'>, </span><span
-  style='font-size:10.0pt;font-family:"Courier New"'>Switzerland</span><span
-style='font-size:10.0pt;font-family:"Courier New"'>)" ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>:source =
-"GICCM1 (2002): atmosphere:� GICAM3 (gicam_0_brnchT_itea_2, T63L32);
-ocean: MOM (mom3_ver_3.5.2, 2x3L15); sea ice: GISIM4; land: GILSM2.5" ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>:contact =
-"Rusty Koder (koder at middle_earth.net)" ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>:project_id =
-"IPCC Fourth Assessment" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� :table_id = "Table A1 (</span><span style='font-size:10.0pt;font-family:"Courier New"'>7 April 2004</span><span
-style='font-size:10.0pt;font-family:"Courier New"'>)" ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>:experiment_id =
-"2xCO2 equilibrium experiment" ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>:realization = 1
-;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>:Conventions =
-"CF-1.0" ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>:history =
-"Output from archive/giccm_03_std_2xCO2_2256.� At </span><span style='font-size:10.0pt;font-family:"Courier New"'>17:54:19</span><span
-style='font-size:10.0pt;font-family:"Courier New"'> on </span><span style='font-size:10.0pt;font-family:"Courier New"'>06/07/2004</span><span
-style='font-size:10.0pt;font-family:"Courier New"'>, CMOR rewrote data to
-comply with CF standards and IPCC Fourth Assessment requirements" ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>:references =
-"Model described by Koder and Tolkien (J. Geophys. Res., 2001, 576-591).�
-Also see http://www.GICC.su/giccm/doc/index.html� 2XCO2 simulation described in
-Dorkey et al. (Clim. Dyn., 2003, 323-357.)" ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>:comment =
-"Equilibrium reached after 30-year spin-up after which data were output
-starting with nominal date of January 2030" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>data:</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>�lon = 0, 90, 180, 270 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>�lon_bnds =</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� -45, 45,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 45, 135,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 135, 225,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 225, 315 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>�lat = 10, 20, 30 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>�lat_bnds =</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 5, 15,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 15, 25,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 25, 35 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>�time = 15, 45 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>�time_bnds =</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 0, 30,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 30, 60 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>�depth = 0.05 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>�depth_bnds = 0, 0.1 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>�mrsos =</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 10, 50, 90, 130,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 170, 210, 250, 290,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 330, 370, 410, 450,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 20, 60, 100, 140,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 180, 220, 260, 300,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 340, 380, 420, 460 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>}</span></p>
-
-<span style='font-size:10.0pt;font-family:"Courier New"'><br clear=all
-style='page-break-before:always'>
-</span>
-
-<p class=MsoNormal align=center style='text-align:center;text-autospace:none'><a
-name="example_4"><span style='font-size:14.0pt'>Example 4</span></a><span
-style='font-size:14.0pt'>: Treatment of a ocean basin labels</span></p>
-
-<p class=MsoNormal align=center style='text-align:center'><span
-style='font-size:14.0pt'>Northward ocean heat transport</span></p>
-
-<p class=MsoNormal align=center style='text-align:center'><span
-style='font-size:14.0pt'>(a function of latitude, ocean basin, month)</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>netcdf hfogo_O1 {</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>dimensions:</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� lat = 3 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� region = 4 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� time = UNLIMITED ; // (2 currently)</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� bnds = 2 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� strlen = 14 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>variables:</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� double lat(lat) ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� lat:standard_name = "latitude"
-;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� lat:long_name = "latitude" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� lat:units = "degrees_north" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� lat:axis = "Y" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� lat:bounds = "lat_bnds" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� double lat_bnds(lat, bnds) ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� char geo_region(region, strlen) ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� geo_region:standard_name = "region"
-;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� geo_region:long_name = "</span><span
-  style='font-size:10.0pt;font-family:"Courier New"'>Ocean</span><span
- style='font-size:10.0pt;font-family:"Courier New"'> </span><span
-  style='font-size:10.0pt;font-family:"Courier New"'>Basin</span><span
-style='font-size:10.0pt;font-family:"Courier New"'>" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� double time(time) ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� time:standard_name = "time" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� time:long_name = "time" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� time:units = "days since
-2030-1-1" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� time:axis = "T" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� time:calendar = "360_day" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� time:bounds = "time_bnds" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� double time_bnds(time, bnds) ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� float hfogo(time, region, lat) ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� hfogo:standard_name =
-"northward_ocean_heat_transport" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� hfogo:long_name = "Northward Ocean
-Heat Transport" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� hfogo:units = "W" ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>hfogo:cell_methods
-= "time: mean (interval: 20 minutes)�� longitude: sum" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� hfogo:coordinates =
-"geo_region" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� hfogo:_FillValue = 1.e+20f ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� hfogo:missing_value = 1.e+20f ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� hfogo:original_name = "OFLUX"
-;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>hfogo:history =
-" At�� </span><span style='font-size:10.0pt;font-family:"Courier New"'>18:06:56</span><span
-style='font-size:10.0pt;font-family:"Courier New"'> on </span><span style='font-size:10.0pt;font-family:"Courier New"'>06/07/2004</span><span
-style='font-size:10.0pt;font-family:"Courier New"'>: CMOR altered the data in
-the following ways: replaced missing value flag (1.00000E+28) with standard
-missing value (1.00000E+20);" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>// global attributes:</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>:title =
-"GICC� model output prepared for IPCC Fourth Assessment 2xCO2 equilibrium
-experiment" ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>:institution =
-"GICC (</span><span style='font-size:10.0pt;font-family:"Courier New"'>Generic</span><span
- style='font-size:10.0pt;font-family:"Courier New"'> </span><span
-  style='font-size:10.0pt;font-family:"Courier New"'>International</span><span
- style='font-size:10.0pt;font-family:"Courier New"'> </span><span
-  style='font-size:10.0pt;font-family:"Courier New"'>Climate</span><span
- style='font-size:10.0pt;font-family:"Courier New"'> </span><span
-  style='font-size:10.0pt;font-family:"Courier New"'>Center</span><span
-style='font-size:10.0pt;font-family:"Courier New"'>, </span><span
-  style='font-size:10.0pt;font-family:"Courier New"'>Geneva</span><span
- style='font-size:10.0pt;font-family:"Courier New"'>, </span><span
-  style='font-size:10.0pt;font-family:"Courier New"'>Switzerland</span><span
-style='font-size:10.0pt;font-family:"Courier New"'>)" ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>:source =
-"GICCM1 (2002): atmosphere:� GICAM3 (gicam_0_brnchT_itea_2, T63L32);
-ocean: MOM (mom3_ver_3.5.2, 2x3L15); sea ice: GISIM4; land: GILSM2.5" ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>:contact =
-"Rusty Koder (koder at middle_earth.net)" ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>:project_id =
-"IPCC Fourth Assessment" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� :table_id = "Table O1 (</span><span style='font-size:10.0pt;font-family:"Courier New"'>4 June 2004</span><span
-style='font-size:10.0pt;font-family:"Courier New"'>)" ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>:experiment_id =
-"2xCO2 equilibrium experiment" ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>:realization = 1
-;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>:Conventions =
-"CF-1.0" ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>:history =
-"Output from archive/giccm_03_std_2xCO2_2256.� At </span><span style='font-size:10.0pt;font-family:"Courier New"'>18:06:56</span><span
-style='font-size:10.0pt;font-family:"Courier New"'> on </span><span style='font-size:10.0pt;font-family:"Courier New"'>06/07/2004</span><span
-style='font-size:10.0pt;font-family:"Courier New"'>, CMOR rewrote data to
-comply with CF standards and IPCC Fourth Assessment requirements" ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>:references =
-"Model described by Koder and Tolkien (J. Geophys. Res., 2001, 576-591).�
-Also see http://www.GICC.su/giccm/doc/index.html� 2XCO2 simulation described in
-Dorkey et al. (Clim. Dyn., 2003, 323-357.)" ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>:comment =
-"Equilibrium reached after 30-year spin-up after which data were output
-starting with nominal date of January 2030" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>data:</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>�lat = 10, 20, 30 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>�lat_bnds =</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 5, 15,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 15, 25,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 25, 35 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>�geo_region =</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� "atlantic_ocean",</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� "indian_ocean� ",</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� "pacific_ocean ",</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� "global_ocean� " ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>�time = 15, 45 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>�time_bnds =</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 0, 30,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 30, 60 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>�hfogo =</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� -1.9e+15, -1.5e+15, -1.1e+15,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� -3e+14, 1e+14, 5e+14,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 1.3e+15, 1.7e+15, 2.1e+15,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 2.9e+15, 3.3e+15, 3.7e+15,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� -1.8e+15, -1.4e+15, -1e+15,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� -2e+14, 2e+14, 6e+14,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 1.4e+15, 1.8e+15, 2.2e+15,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 3e+15, 3.4e+15, 3.8e+15 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>}</span></p>
-
-<span style='font-size:14.0pt;font-family:"Times New Roman"'><br clear=all
-style='page-break-before:always'>
-</span>
-
-<p class=MsoNormal align=center style='text-align:center;text-autospace:none'><a
-name="example_5"><span style='font-size:14.0pt'>Example 5</span></a><span
-style='font-size:14.0pt'>: Treatment of model level data</span></p>
-
-<p class=MsoNormal align=center style='text-align:center'><span
-style='font-size:14.0pt'>Cloud fraction</span></p>
-
-<p class=MsoNormal align=center style='text-align:center'><span
-style='font-size:14.0pt'>(a function of longitude, latitude, model level, month)</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>netcdf cl_A1 {</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>dimensions:</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� lon = 4 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� lat = 3 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� lev = 5 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� time = UNLIMITED ; // (2 currently)</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� bnds = 2 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>variables:</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� double lon(lon) ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� lon:standard_name =
-"longitude" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� lon:long_name = "longitude" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� lon:units = "degrees_east" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� lon:axis = "X" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� lon:bounds = "lon_bnds" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� double lon_bnds(lon, bnds) ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� double lat(lat) ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� lat:standard_name = "latitude"
-;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� lat:long_name = "latitude" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� lat:units = "degrees_north" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� lat:axis = "Y" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� lat:bounds = "lat_bnds" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� double lat_bnds(lat, bnds) ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� double lev(lev) ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>lev:standard_name
-= "atmosphere_hybrid_sigma_pressure_coordinate" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� lev:long_name = "hybrid sigma
-pressure coordinate" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� lev:units = "1" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� lev:axis = "Z" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� lev:positive = "down" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� lev:bounds = "lev_bnds" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� lev:formula = "p(n,k,j,i) = a(k)*p0
-+ b(k)*ps(n,j,i)" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� lev:formula_terms = "p0: p0 a: a b:
-b ps: ps" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� double lev_bnds(lev, bnds) ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>lev_bnds:standard_name
-= "atmosphere_hybrid_sigma_pressure_coordinate" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� lev_bnds:formula = "p(n,k,j,i) =
-a(k)*p0 + b(k)*ps(n,j,i)" ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>lev_bnds:formula_terms
-= "p0: p0 a: a_bnds b: b_bnds ps: ps" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� double time(time) ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� time:standard_name = "time" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� time:long_name = "time" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� time:units = "days since
-2030-1-1" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� time:axis = "T" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� time:calendar = "360_day" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� time:bounds = "time_bnds" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� double time_bnds(time, bnds) ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� double a_bnds(lev, bnds) ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>a_bnds:long_name
-= "hybrid sigma coordinate A coefficient for layer bounds" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� double b_bnds(lev, bnds) ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>b_bnds:long_name
-= "hybrid sigma coordinate B coefficient for layer bounds" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� float p0 ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>p0:long_name =
-"reference pressure for hybrid sigma coordinate" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� p0:units = "Pa" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� double a(lev) ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>a:long_name =
-"hybrid sigma coordinate A coefficient for layer" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� double b(lev) ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>b:long_name =
-"hybrid sigma coordinate B coefficient for layer" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� float ps(time, lat, lon) ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� ps:long_name = "Surface
-Pressure" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� ps:units = "Pa" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����� float cl(time, lev, lat, lon) ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� cl:standard_name = "cloud_area_fraction"
-;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� cl:long_name = "Total Cloud
-Fraction" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� cl:units = "%" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� cl:cell_methods = "time: mean
-(interval: 20 minutes)" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� cl:_FillValue = 1.e+20f ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� cl:missing_value = 1.e+20f ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� cl:original_name = "CLOUD" ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>cl:history =
-" At�� </span><span style='font-size:10.0pt;font-family:"Courier New"'>17:54:19</span><span
-style='font-size:10.0pt;font-family:"Courier New"'> on </span><span style='font-size:10.0pt;font-family:"Courier New"'>06/07/2004</span><span
-style='font-size:10.0pt;font-family:"Courier New"'>: CMOR altered the data in
-the following ways: replaced missing value flag (1.00000E+28) with standard
-missing value (1.00000E+20);" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>// global attributes:</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>:title =
-"GICC� model output prepared for IPCC Fourth Assessment 2xCO2 equilibrium
-experiment" ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>:institution =
-"GICC (</span><span style='font-size:10.0pt;font-family:"Courier New"'>Generic</span><span
- style='font-size:10.0pt;font-family:"Courier New"'> </span><span
-  style='font-size:10.0pt;font-family:"Courier New"'>International</span><span
- style='font-size:10.0pt;font-family:"Courier New"'> </span><span
-  style='font-size:10.0pt;font-family:"Courier New"'>Climate</span><span
- style='font-size:10.0pt;font-family:"Courier New"'> </span><span
-  style='font-size:10.0pt;font-family:"Courier New"'>Center</span><span
-style='font-size:10.0pt;font-family:"Courier New"'>, </span><span
-  style='font-size:10.0pt;font-family:"Courier New"'>Geneva</span><span
- style='font-size:10.0pt;font-family:"Courier New"'>, </span><span
-  style='font-size:10.0pt;font-family:"Courier New"'>Switzerland</span><span
-style='font-size:10.0pt;font-family:"Courier New"'>)" ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>:source =
-"GICCM1 (2002): atmosphere:� GICAM3 (gicam_0_brnchT_itea_2, T63L32);
-ocean: MOM (mom3_ver_3.5.2, 2x3L15); sea ice: GISIM4; land: GILSM2.5" ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>:contact =
-"Rusty Koder (koder at middle_earth.net)" ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>:project_id =
-"IPCC Fourth Assessment" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>����������� :table_id = "Table A1 (</span><span style='font-size:10.0pt;font-family:"Courier New"'>7 April 2004</span><span
-style='font-size:10.0pt;font-family:"Courier New"'>)" ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>:experiment_id =
-"2xCO2 equilibrium experiment" ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>:realization = 1
-;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>:Conventions =
-"CF-1.0" ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>:history =
-"Output from archive/giccm_03_std_2xCO2_2256.� At </span><span style='font-size:10.0pt;font-family:"Courier New"'>17:54:19</span><span
-style='font-size:10.0pt;font-family:"Courier New"'> on </span><span style='font-size:10.0pt;font-family:"Courier New"'>06/07/2004</span><span
-style='font-size:10.0pt;font-family:"Courier New"'>, CMOR rewrote data to
-comply with CF standards and IPCC Fourth Assessment requirements" ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>:references =
-"Model described by Koder and Tolkien (J. Geophys. Res., 2001, 576-591).�
-Also see http://www.GICC.su/giccm/doc/index.html� 2XCO2 simulation described in
-Dorkey et al. (Clim. Dyn., 2003, 323-357.)" ;</span></p>
-
-<p class=MsoNormal style='margin-left:1.3in;text-indent:-.3in;text-autospace:
-none'><span style='font-size:10.0pt;font-family:"Courier New"'>:comment =
-"Equilibrium reached after 30-year spin-up after which data were output
-starting with nominal date of January 2030" ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>data:</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>�lon = 0, 90, 180, 270 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>�lon_bnds =</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� -45, 45,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 45, 135,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 135, 225,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 225, 315 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>�lat = 10, 20, 30 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>�lat_bnds =</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 5, 15,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 15, 25,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 25, 35 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>�lev = 0.100000001490116, 0.300000004470348,
-0.500000014901161, </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>��� 0.700000002980232, 0.900000013411045 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>�lev_bnds =</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 0, 0.200000006705523,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 0.200000006705523, 0.400000005960464,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 0.400000005960464, 0.599999994039536,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 0.599999994039536, 0.799999982118607,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 0.799999982118607, 1 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>�time = 15, 45 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>�time_bnds =</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 0, 30,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 30, 60 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>�a_bnds =</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 0, 0.150000005960464,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 0.150000005960464, 0.25,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 0.25, 0.25,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 0.25, 0.150000005960464,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 0.150000005960464, 0 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>�b_bnds =</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 0, 0.0500000007450581,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 0.0500000007450581, 0.150000005960464,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 0.150000005960464, 0.349999994039536,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 0.349999994039536, 0.649999976158142,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 0.649999976158142, 1 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>�p0 = 100000 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>�a = 0.100000001490116, 0.200000002980232,
-0.300000011920929, </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>��� 0.200000002980232, 0.100000001490116 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>�b = 0, 0.100000001490116, 0.200000002980232, 0.5, 0.800000011920929
-;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>�ps =</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 97100, 97500, 97900, 98300,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 98700, 99100, 99500, 99900,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 100300, 100700, 101100, 101500,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 97200, 97600, 98000, 98400,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 98800, 99200, 99600, 100000,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 100400, 100800, 101200, 101600 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>�cl =</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 50.1, 50.5, 50.9, 51.3,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 51.7, 52.1, 52.5, 52.9,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 53.3, 53.7, 54.1, 54.5,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 56.5, 56.9, 57.3, 57.7,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>��58.1, 58.5, 58.9, 59.3,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 59.7, 60.1, 60.5, 60.9,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 62.9, 63.3, 63.7, 64.1,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 64.5, 64.9, 65.3, 65.7,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 66.1, 66.5, 66.9, 67.3,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 69.3, 69.7, 70.1, 70.5,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 70.9, 71.3, 71.7, 72.1,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 72.5, 72.9, 73.3, 73.7,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 75.7, 76.1, 76.5, 76.9,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 77.3, 77.7, 78.1, 78.5,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 78.9, 79.3, 79.7, 80.1,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 50.2, 50.6, 51, 51.4,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 51.8, 52.2, 52.6, 53,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 53.4, 53.8, 54.2, 54.6,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 56.6, 57, 57.4, 57.8,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 58.2, 58.6, 59, 59.4,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 59.8, 60.2, 60.6, 61,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 63, 63.4, 63.8, 64.2,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 64.6, 65, 65.4, 65.8,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 66.2, 66.6, 67, 67.4,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 69.4, 69.8, 70.2, 70.6,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 71, 71.4, 71.8, 72.2,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 72.6, 73, 73.4, 73.8,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 75.8, 76.2, 76.6, 77,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 77.4, 77.8, 78.2, 78.6,</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>� 79, 79.4, 79.8, 80.2 ;</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'>}</span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-<p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;
-font-family:"Courier New"'> </span></p>
-
-</div>
-
-<div><br clear=all>
-
-<hr align=left size=1 width="33%">
-
-<div id=ftn1>
-
-<p class=MsoFootnoteText><a href="#_ftnref1" name="_ftn1" title=""><span
-class=MsoFootnoteReference><span class=MsoFootnoteReference><span
-style='font-size:10.0pt;font-family:"Times New Roman"'>[1]</span></span></span></a>
-See <a href="http://www-pcmdi.llnl.gov/software-portal/cmor">http://www-pcmdi.llnl.gov/software-portal/cmor</a></p>
-
-</div>
-
-<div id=ftn2>
-
-<p class=MsoFootnoteText><a href="#_ftnref2" name="_ftn2" title=""><span
-class=MsoFootnoteReference><span class=MsoFootnoteReference><span
-style='font-size:10.0pt;font-family:"Times New Roman"'>[2]</span></span></span></a>
-See <a href="http://www-pcmdi.llnl.gov/software/cmor/cmor_users_guide.pdf">�http://www-pcmdi.llnl.gov/software/cmor/cmor_users_guide.pdf</a></p>
-
-</div>
-
-<div id=ftn3>
-
-<p class=MsoFootnoteText><a href="#_ftnref3" name="_ftn3" title=""><span
-class=MsoFootnoteReference><span class=MsoFootnoteReference><span
-style='font-size:10.0pt;font-family:"Times New Roman"'>[3]</span></span></span></a>
-See <a href="http://esg.llnl.gov/portal">�http://esg.llnl.gov/portal</a></p>
-
-</div>
-
-<div id=ftn4>
-
-<p class=MsoFootnoteText><a href="#_ftnref4" name="_ftn4" title=""><span
-class=FootnoteCharacters><span class=FootnoteCharacters><span style='font-size:
-10.0pt;font-family:"Times New Roman"'>[4]</span></span></span></a> See<a
-href="http://my.unidata.ucar.edu/content/software/netcdf">http://my.unidata.ucar.edu/content/software/netcdf</a></p>
-
-</div>
-
-<div id=ftn5>
-
-<p class=MsoFootnoteText><a href="#_ftnref5" name="_ftn5" title=""><span
-class=FootnoteCharacters><span class=FootnoteCharacters><span style='font-size:
-10.0pt;font-family:"Times New Roman"'>[5]</span></span></span></a> See <span
-class=MsoHyperlink><span style='color:blue'><a
-href="http://www.cgd.ucar.edu/cms/eaton/cf-metadata">http://www.cgd.ucar.edu/cms/eaton/cf-metadata</a></span></span>
-</p>
-
-</div>
-
-<div id=ftn6>
-
-<p class=MsoFootnoteText><a href="#_ftnref6" name="_ftn6" title=""><span
-class=MsoFootnoteReference><span class=MsoFootnoteReference><span
-style='font-size:10.0pt;font-family:"Times New Roman"'>[6]</span></span></span></a>
-See <a href="http://www-pcmdi.llnl.gov/ipcc/standard_output.html">http://www-pcmdi.llnl.gov/ipcc/standard_output.html</a></p>
-
-</div>
-
-<div id=ftn7>
-
-<p class=MsoFootnoteText><a href="#_ftnref7" name="_ftn7" title=""><span
-class=MsoFootnoteReference><span class=MsoFootnoteReference><span
-style='font-size:10.0pt;font-family:"Times New Roman"'>[7]</span></span></span></a>
-See <a href="http://www-pcmdi.llnl.gov/ipcc/standard_output.html">http://www-pcmdi.llnl.gov/ipcc/standard_output.html</a></p>
-
-</div>
-
-<div id=ftn8>
-
-<p class=MsoFootnoteText><a href="#_ftnref8" name="_ftn8" title=""><span
-class=MsoFootnoteReference><span class=MsoFootnoteReference><span
-style='font-size:10.0pt;font-family:"Times New Roman"'>[8]</span></span></span></a>
-See <a href="http://www-pcmdi.llnl.gov/ipcc/standard_output.html">http://www-pcmdi.llnl.gov/ipcc/standard_output.html</a></p>
-
-</div>
-
-<div id=ftn9>
-
-<p class=MsoFootnoteText><a href="#_ftnref9" name="_ftn9" title=""><span
-class=MsoFootnoteReference><span class=MsoFootnoteReference><span
-style='font-size:10.0pt;font-family:"Times New Roman"'>[9]</span></span></span></a>
-See <a href="http://www-pcmdi.llnl.gov/ipcc/standard_output.html">http://www-pcmdi.llnl.gov/ipcc/standard_output.html</a></p>
-
-</div>
-
-<div id=ftn10>
-
-<p class=MsoFootnoteText><a href="#_ftnref10" name="_ftn10" title=""><span
-class=MsoFootnoteReference><span class=MsoFootnoteReference><span
-style='font-size:10.0pt;font-family:"Times New Roman"'>[10]</span></span></span></a>
-See <a href="http://www-pcmdi.llnl.gov/ipcc/standard_output.html">http://www-pcmdi.llnl.gov/ipcc/standard_output.html</a></p>
-
-</div>
-
-<div id=ftn11>
-
-<p class=MsoFootnoteText><a href="#_ftnref11" name="_ftn11" title=""><span
-class=MsoFootnoteReference><span class=MsoFootnoteReference><span
-style='font-size:10.0pt;font-family:"Times New Roman"'>[11]</span></span></span></a>
-See <a href="http://www-pcmdi.llnl.gov/ipcc/standard_output.html">http://www-pcmdi.llnl.gov/ipcc/standard_output.html</a></p>
-
-</div>
-
-<div id=ftn12>
-
-<p class=MsoFootnoteText style='text-align:justify'><a href="#_ftnref12"
-name="_ftn12" title=""><span class=FootnoteCharacters><span
-class=FootnoteCharacters><span style='font-size:10.0pt;font-family:"Times New Roman"'>[12]</span></span></span></a>
-As an example of "missing data",� consider a globally gridded dataset
-of ocean surface salinity.� The data representing land points on this data set
-would be missing.� Likewise, atmospheric data on portions of pressure surfaces
-that are underground are usually considered missing. </p>
-
-</div>
-
-<div id=ftn13>
-
-<p class=MsoFootnoteText><a href="#_ftnref13" name="_ftn13" title=""><span
-class=MsoFootnoteReference><span class=MsoFootnoteReference><span
-style='font-size:10.0pt;font-family:"Times New Roman"'>[13]</span></span></span></a>
-See <a href="http://www-pcmdi.llnl.gov/ipcc/standard_output.html">http://www-pcmdi.llnl.gov/ipcc/standard_output.html</a></p>
-
-</div>
-
-<div id=ftn14>
-
-<p class=MsoFootnoteText><a href="#_ftnref14" name="_ftn14" title=""><span
-class=MsoFootnoteReference><span class=MsoFootnoteReference><span
-style='font-size:10.0pt;font-family:"Times New Roman"'>[14]</span></span></span></a>
-See <a href="http://www-pcmdi.llnl.gov/ipcc/standard_output.html">http://www-pcmdi.llnl.gov/ipcc/standard_output.html</a></p>
-
-</div>
-
-<div id=ftn15>
-
-<p class=MsoFootnoteText><a href="#_ftnref15" name="_ftn15" title=""><span
-class=MsoFootnoteReference><span class=MsoFootnoteReference><span
-style='font-size:10.0pt;font-family:"Times New Roman"'>[15]</span></span></span></a>
-See <a href="http://my.unidata.ucar.edu/content/software/udunits/">http://my.unidata.ucar.edu/content/software/udunits/</a></p>
-
-</div>
-
-<div id=ftn16>
-
-<p class=MsoFootnoteText><a href="#_ftnref16" name="_ftn16" title=""><span
-class=MsoFootnoteReference><span class=MsoFootnoteReference><span
-style='font-size:10.0pt;font-family:"Times New Roman"'>[16]</span></span></span></a>
-See <a href="http://www-pcmdi.llnl.gov/ipcc/standard_output.html">http://www-pcmdi.llnl.gov/ipcc/standard_output.html</a></p>
-
-</div>
-
-<div id=ftn17>
-
-<p class=MsoFootnoteText><a href="#_ftnref17" name="_ftn17" title=""><span
-class=MsoFootnoteReference><span class=MsoFootnoteReference><span
-style='font-size:10.0pt;font-family:"Times New Roman"'>[17]</span></span></span></a>
-<a
-href="http://www.cgd.ucar.edu/cms/eaton/cf-metadata/CF-1.0.html#scalar_coords">http://www.cgd.ucar.edu/cms/eaton/cf-metadata/CF-1.0.html#scalar_coords</a></p>
-
-</div>
-
-<div id=ftn18>
-
-<p class=MsoFootnoteText><a href="#_ftnref18" name="_ftn18" title=""><span
-class=MsoFootnoteReference><span class=MsoFootnoteReference><span
-style='font-size:10.0pt;font-family:"Times New Roman"'>[18]</span></span></span></a>
-<a href="http://www.cgd.ucar.edu/cms/eaton/cf-metadata/CF-1.0.html#region">http://www.cgd.ucar.edu/cms/eaton/cf-metadata/CF-1.0.html#region</a></p>
-
-</div>
-
-<div id=ftn19>
-
-<p class=MsoFootnoteText><a href="#_ftnref19" name="_ftn19" title=""><span
-class=MsoFootnoteReference><span class=MsoFootnoteReference><span
-style='font-size:10.0pt;font-family:"Times New Roman"'>[19]</span></span></span></a>
-See <a href="http://www-pcmdi.llnl.gov/ipcc/standard_output.html">http://www-pcmdi.llnl.gov/ipcc/standard_output.html</a></p>
-
-</div>
-
-<div id=ftn20>
-
-<p class=MsoFootnoteText><a href="#_ftnref20" name="_ftn20" title=""><span
-class=MsoFootnoteReference><span class=MsoFootnoteReference><span
-style='font-size:10.0pt;font-family:"Times New Roman"'>[20]</span></span></span></a>
-<a href="http://www.cgd.ucar.edu/cms/eaton/cf-metadata/CF-1.0.html#vrt_app">http://www.cgd.ucar.edu/cms/eaton/cf-metadata/CF-1.0.html#vrt_app</a></p>
-
-</div>
-
-<div id=ftn21>
-
-<p class=MsoFootnoteText><a href="#_ftnref21" name="_ftn21" title=""><span
-class=MsoFootnoteReference><span class=MsoFootnoteReference><span
-style='font-size:10.0pt;font-family:"Times New Roman"'>[21]</span></span></span></a>
-<a href="http://www.cgd.ucar.edu/cms/eaton/cf-metadata/CF-1.0.html#bnds">http://www.cgd.ucar.edu/cms/eaton/cf-metadata/CF-1.0.html#bnds</a></p>
-
-</div>
-
-<div id=ftn22>
-
-<p class=MsoFootnoteText><a href="#_ftnref22" name="_ftn22" title=""><span
-class=MsoFootnoteReference><span class=MsoFootnoteReference><span
-style='font-size:10.0pt;font-family:"Times New Roman"'>[22]</span></span></span></a><a
-href="http://www.cgd.ucar.edu/cms/eaton/cf-metadata/CF-1.0.html#vdim">
-http://www.cgd.ucar.edu/cms/eaton/cf-metadata/CF-1.0.html#vdim</a></p>
-
-</div>
-
-<div id=ftn23>
-
-<p class=MsoFootnoteText><a href="#_ftnref23" name="_ftn23" title=""><span
-class=MsoFootnoteReference><span class=MsoFootnoteReference><span
-style='font-size:10.0pt;font-family:"Times New Roman"'>[23]</span></span></span></a>
-<a href="http://www.cgd.ucar.edu/cms/eaton/cf-metadata/CF-1.0.html#vrt_app">http://www.cgd.ucar.edu/cms/eaton/cf-metadata/CF-1.0.html#vrt_app</a></p>
-
-</div>
-
-<div id=ftn24>
-
-<p class=MsoFootnoteText><a href="#_ftnref24" name="_ftn24" title=""><span
-class=MsoFootnoteReference><span class=MsoFootnoteReference><span
-style='font-size:10.0pt;font-family:"Times New Roman"'>[24]</span></span></span></a><a
-href="http://www.cgd.ucar.edu/cms/eaton/cf-metadata/region.html">
-http://www.cgd.ucar.edu/cms/eaton/cf-metadata/region.html</a></p>
-
-</div>
-
-<div id=ftn25>
-
-<p class=MsoFootnoteText><a href="#_ftnref25" name="_ftn25" title=""><span
-class=MsoFootnoteReference><span class=MsoFootnoteReference><span
-style='font-size:10.0pt;font-family:"Times New Roman"'>[25]</span></span></span></a>
-<a href="http://www.cgd.ucar.edu/cms/eaton/cf-metadata/CF-1.0.html#region">http://www.cgd.ucar.edu/cms/eaton/cf-metadata/CF-1.0.html#region</a></p>
-
-</div>
-
-<div id=ftn26>
-
-<p class=MsoFootnoteText><a href="#_ftnref26" name="_ftn26" title=""><span
-class=MsoFootnoteReference><span class=MsoFootnoteReference><span
-style='font-size:10.0pt;font-family:"Times New Roman"'>[26]</span></span></span></a>
-<a href="http://www.cgd.ucar.edu/cms/eaton/cf-metadata/CF-1.0.html#ctype">http://www.cgd.ucar.edu/cms/eaton/cf-metadata/CF-1.0.html#ctype</a></p>
-
-</div>
-
-<div id=ftn27>
-
-<p class=MsoFootnoteText><a href="#_ftnref27" name="_ftn27" title=""><span
-class=MsoFootnoteReference><span class=MsoFootnoteReference><span
-style='font-size:10.0pt;font-family:"Times New Roman"'>[27]</span></span></span></a>
-<a href="http://www.cgd.ucar.edu/cms/eaton/cf-metadata/CF-1.0.html#cal">http://www.cgd.ucar.edu/cms/eaton/cf-metadata/CF-1.0.html#cal</a></p>
-
-</div>
-
-<div id=ftn28>
-
-<p class=MsoFootnoteText><a href="#_ftnref28" name="_ftn28" title=""><span
-class=MsoFootnoteReference><span class=MsoFootnoteReference><span
-style='font-size:10.0pt;font-family:"Times New Roman"'>[28]</span></span></span></a>
-<a href="http://www.cgd.ucar.edu/cms/eaton/cf-metadata/CF-1.0.html#vnum">http://www.cgd.ucar.edu/cms/eaton/cf-metadata/CF-1.0.html#vnum</a></p>
-
-</div>
-
-<div id=ftn29>
-
-<p class=MsoFootnoteText><a href="#_ftnref29" name="_ftn29" title=""><span
-class=MsoFootnoteReference><span class=MsoFootnoteReference><span
-style='font-size:10.0pt;font-family:"Times New Roman"'>[29]</span></span></span></a>
-<a href="http://www.cgd.ucar.edu/cms/eaton/cf-metadata/CF-1.0.html#vrt_app">http://www.cgd.ucar.edu/cms/eaton/cf-metadata/CF-1.0.html#vrt_app</a></p>
-
-</div>
-
-<div id=ftn30>
-
-<p class=MsoFootnoteText><a href="#_ftnref30" name="_ftn30" title=""><span
-class=MsoFootnoteReference><span class=MsoFootnoteReference><span
-style='font-size:10.0pt;font-family:"Times New Roman"'>[30]</span></span></span></a>
-See <a href="http://www-pcmdi.llnl.gov/ipcc/standard_output.html">http://www-pcmdi.llnl.gov/ipcc/standard_output.html</a></p>
-
-</div>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/Doc/IPCC_output_requirements.pdf b/Doc/IPCC_output_requirements.pdf
deleted file mode 100644
index 8ced249..0000000
Binary files a/Doc/IPCC_output_requirements.pdf and /dev/null differ
diff --git a/Doc/cmor_users_guide.doc b/Doc/cmor_users_guide.doc
deleted file mode 100644
index 8e81b65..0000000
Binary files a/Doc/cmor_users_guide.doc and /dev/null differ
diff --git a/Doc/cmor_users_guide.htm b/Doc/cmor_users_guide.htm
deleted file mode 100644
index 92c4c7d..0000000
--- a/Doc/cmor_users_guide.htm
+++ /dev/null
@@ -1,16371 +0,0 @@
-<html xmlns:v="urn:schemas-microsoft-com:vml"
-xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns:m="http://schemas.microsoft.com/office/2004/12/omml"
-xmlns:css="http://macVmlSchemaUri" xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta name=Title content="Climate Model Output Rewriter (CMOR)">
-<meta name=Keywords content="">
-<meta http-equiv=Content-Type content="text/html; charset=utf-8">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 2008">
-<meta name=Originator content="Microsoft Word 2008">
-<link rel=File-List href="cmor_users_guide_files/filelist.xml">
-<title>Climate Model Output Rewriter (CMOR)</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Author>Karl Taylor</o:Author>
-  <o:Template>Normal.dotm</o:Template>
-  <o:LastAuthor>Charles Samir Doutriaux</o:LastAuthor>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>8</o:TotalTime>
-  <o:LastPrinted>2010-05-11T23:20:00Z</o:LastPrinted>
-  <o:Created>2010-05-11T23:20:00Z</o:Created>
-  <o:LastSaved>2010-05-11T23:20:00Z</o:LastSaved>
-  <o:Pages>12</o:Pages>
-  <o:Words>23732</o:Words>
-  <o:Characters>135273</o:Characters>
-  <o:Company>PCMDI</o:Company>
-  <o:Lines>1127</o:Lines>
-  <o:Paragraphs>270</o:Paragraphs>
-  <o:CharactersWithSpaces>166124</o:CharactersWithSpaces>
-  <o:Version>12.0</o:Version>
- </o:DocumentProperties>
- <o:OfficeDocumentSettings>
-  <o:PixelsPerInch>96</o:PixelsPerInch>
-  <o:TargetScreenSize>800x600</o:TargetScreenSize>
- </o:OfficeDocumentSettings>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackMoves>false</w:TrackMoves>
-  <w:TrackFormatting/>
-  <w:ValidateAgainstSchemas/>
-  <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
-  <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
-  <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
-  <w:Compatibility>
-   <w:BreakWrappedTables/>
-   <w:UseNormalStyleForList/>
-   <w:DontUseIndentAsNumberingTabStop/>
-   <w:FELineBreak11/>
-   <w:WW11IndentRules/>
-   <w:DontAutofitConstrainedTables/>
-   <w:AutofitLikeWW11/>
-   <w:HangulWidthLikeWW11/>
-  </w:Compatibility>
- </w:WordDocument>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:LatentStyles DefLockedState="false" LatentStyleCount="276">
- </w:LatentStyles>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
- at font-face
-	{font-family:Arial;
-	panose-1:2 11 6 4 2 2 2 2 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:auto;
-	mso-font-pitch:variable;
-	mso-font-signature:3 0 0 0 1 0;}
- at font-face
-	{font-family:"Courier New";
-	panose-1:2 7 3 9 2 2 5 2 4 4;
-	mso-font-charset:0;
-	mso-generic-font-family:auto;
-	mso-font-pitch:variable;
-	mso-font-signature:3 0 0 0 1 0;}
- at font-face
-	{font-family:Wingdings;
-	panose-1:5 2 1 2 1 8 4 8 7 8;
-	mso-font-charset:2;
-	mso-generic-font-family:auto;
-	mso-font-pitch:variable;
-	mso-font-signature:0 0 65536 0 -2147483648 0;}
- at font-face
-	{font-family:Cambria;
-	panose-1:2 4 5 3 5 4 6 3 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:auto;
-	mso-font-pitch:variable;
-	mso-font-signature:3 0 0 0 1 0;}
- at font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:auto;
-	mso-font-pitch:variable;
-	mso-font-signature:3 0 0 0 1 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";
-	mso-bidi-font-family:"Times New Roman";}
-h1
-	{mso-style-next:Normal;
-	margin-top:12.0pt;
-	margin-right:0in;
-	margin-bottom:3.0pt;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	page-break-after:avoid;
-	mso-outline-level:1;
-	font-size:16.0pt;
-	font-family:Arial;
-	mso-bidi-font-family:Arial;
-	mso-font-kerning:16.0pt;
-	mso-bidi-font-weight:bold;}
-h2
-	{mso-style-next:Normal;
-	margin-top:12.0pt;
-	margin-right:0in;
-	margin-bottom:3.0pt;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	page-break-after:avoid;
-	mso-outline-level:2;
-	font-size:14.0pt;
-	font-family:Arial;
-	mso-bidi-font-family:Arial;
-	mso-bidi-font-weight:bold;
-	font-style:italic;}
-h3
-	{mso-style-next:Normal;
-	margin-top:12.0pt;
-	margin-right:0in;
-	margin-bottom:3.0pt;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	page-break-after:avoid;
-	mso-outline-level:3;
-	font-size:13.0pt;
-	font-family:Arial;
-	mso-bidi-font-family:Arial;
-	mso-bidi-font-weight:bold;}
-h4
-	{mso-style-next:Normal;
-	margin-top:12.0pt;
-	margin-right:0in;
-	margin-bottom:3.0pt;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	page-break-after:avoid;
-	mso-outline-level:4;
-	font-size:14.0pt;
-	font-family:"Times New Roman";
-	mso-bidi-font-weight:bold;}
-h5
-	{mso-style-next:Normal;
-	margin-top:12.0pt;
-	margin-right:0in;
-	margin-bottom:3.0pt;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	mso-outline-level:5;
-	font-size:13.0pt;
-	font-family:"Times New Roman";
-	mso-bidi-font-weight:bold;
-	font-style:italic;}
-h6
-	{mso-style-next:Normal;
-	margin-top:12.0pt;
-	margin-right:0in;
-	margin-bottom:3.0pt;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	mso-outline-level:6;
-	font-size:11.0pt;
-	font-family:"Times New Roman";
-	mso-bidi-font-weight:bold;}
-p.MsoHeading7, li.MsoHeading7, div.MsoHeading7
-	{mso-style-next:Normal;
-	margin-top:12.0pt;
-	margin-right:0in;
-	margin-bottom:3.0pt;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	mso-outline-level:7;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";
-	mso-bidi-font-family:"Times New Roman";}
-p.MsoToc1, li.MsoToc1, div.MsoToc1
-	{mso-style-update:auto;
-	mso-style-noshow:yes;
-	mso-style-next:Normal;
-	margin-top:6.0pt;
-	margin-right:0in;
-	margin-bottom:0in;
-	margin-left:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-ascii-font-family:Cambria;
-	mso-fareast-font-family:"Times New Roman";
-	mso-hansi-font-family:Cambria;
-	mso-bidi-font-family:"Times New Roman";
-	font-weight:bold;
-	mso-bidi-font-weight:normal;}
-p.MsoToc2, li.MsoToc2, div.MsoToc2
-	{mso-style-update:auto;
-	mso-style-noshow:yes;
-	mso-style-next:Normal;
-	margin-top:0in;
-	margin-right:0in;
-	margin-bottom:0in;
-	margin-left:12.0pt;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:11.0pt;
-	font-family:"Times New Roman";
-	mso-ascii-font-family:Cambria;
-	mso-fareast-font-family:"Times New Roman";
-	mso-hansi-font-family:Cambria;
-	mso-bidi-font-family:"Times New Roman";
-	font-weight:bold;
-	mso-bidi-font-weight:normal;}
-p.MsoToc3, li.MsoToc3, div.MsoToc3
-	{mso-style-update:auto;
-	mso-style-noshow:yes;
-	mso-style-next:Normal;
-	margin-top:0in;
-	margin-right:0in;
-	margin-bottom:0in;
-	margin-left:24.0pt;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:11.0pt;
-	font-family:"Times New Roman";
-	mso-ascii-font-family:Cambria;
-	mso-fareast-font-family:"Times New Roman";
-	mso-hansi-font-family:Cambria;
-	mso-bidi-font-family:"Times New Roman";}
-p.MsoToc4, li.MsoToc4, div.MsoToc4
-	{mso-style-update:auto;
-	mso-style-noshow:yes;
-	mso-style-next:Normal;
-	margin-top:0in;
-	margin-right:0in;
-	margin-bottom:0in;
-	margin-left:.5in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:10.0pt;
-	font-family:"Times New Roman";
-	mso-ascii-font-family:Cambria;
-	mso-fareast-font-family:"Times New Roman";
-	mso-hansi-font-family:Cambria;
-	mso-bidi-font-family:"Times New Roman";}
-p.MsoToc5, li.MsoToc5, div.MsoToc5
-	{mso-style-update:auto;
-	mso-style-noshow:yes;
-	mso-style-next:Normal;
-	margin-top:0in;
-	margin-right:0in;
-	margin-bottom:0in;
-	margin-left:48.0pt;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:10.0pt;
-	font-family:"Times New Roman";
-	mso-ascii-font-family:Cambria;
-	mso-fareast-font-family:"Times New Roman";
-	mso-hansi-font-family:Cambria;
-	mso-bidi-font-family:"Times New Roman";}
-p.MsoToc6, li.MsoToc6, div.MsoToc6
-	{mso-style-update:auto;
-	mso-style-noshow:yes;
-	mso-style-next:Normal;
-	margin-top:0in;
-	margin-right:0in;
-	margin-bottom:0in;
-	margin-left:60.0pt;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:10.0pt;
-	font-family:"Times New Roman";
-	mso-ascii-font-family:Cambria;
-	mso-fareast-font-family:"Times New Roman";
-	mso-hansi-font-family:Cambria;
-	mso-bidi-font-family:"Times New Roman";}
-p.MsoToc7, li.MsoToc7, div.MsoToc7
-	{mso-style-update:auto;
-	mso-style-noshow:yes;
-	mso-style-next:Normal;
-	margin-top:0in;
-	margin-right:0in;
-	margin-bottom:0in;
-	margin-left:1.0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:10.0pt;
-	font-family:"Times New Roman";
-	mso-ascii-font-family:Cambria;
-	mso-fareast-font-family:"Times New Roman";
-	mso-hansi-font-family:Cambria;
-	mso-bidi-font-family:"Times New Roman";}
-p.MsoToc8, li.MsoToc8, div.MsoToc8
-	{mso-style-update:auto;
-	mso-style-noshow:yes;
-	mso-style-next:Normal;
-	margin-top:0in;
-	margin-right:0in;
-	margin-bottom:0in;
-	margin-left:84.0pt;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:10.0pt;
-	font-family:"Times New Roman";
-	mso-ascii-font-family:Cambria;
-	mso-fareast-font-family:"Times New Roman";
-	mso-hansi-font-family:Cambria;
-	mso-bidi-font-family:"Times New Roman";}
-p.MsoToc9, li.MsoToc9, div.MsoToc9
-	{mso-style-update:auto;
-	mso-style-noshow:yes;
-	mso-style-next:Normal;
-	margin-top:0in;
-	margin-right:0in;
-	margin-bottom:0in;
-	margin-left:96.0pt;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:10.0pt;
-	font-family:"Times New Roman";
-	mso-ascii-font-family:Cambria;
-	mso-fareast-font-family:"Times New Roman";
-	mso-hansi-font-family:Cambria;
-	mso-bidi-font-family:"Times New Roman";}
-p.MsoNormalIndent, li.MsoNormalIndent, div.MsoNormalIndent
-	{margin-top:0in;
-	margin-right:0in;
-	margin-bottom:0in;
-	margin-left:.5in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";
-	mso-bidi-font-family:"Times New Roman";}
-p.MsoFootnoteText, li.MsoFootnoteText, div.MsoFootnoteText
-	{mso-style-noshow:yes;
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:10.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";
-	mso-bidi-font-family:"Times New Roman";}
-p.MsoCommentText, li.MsoCommentText, div.MsoCommentText
-	{mso-style-link:"Comment Text Char";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:10.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";
-	mso-bidi-font-family:"Times New Roman";}
-p.MsoHeader, li.MsoHeader, div.MsoHeader
-	{margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	tab-stops:center 3.0in right 6.0in;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";
-	mso-bidi-font-family:"Times New Roman";}
-p.MsoFooter, li.MsoFooter, div.MsoFooter
-	{margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	tab-stops:center 3.0in right 6.0in;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";
-	mso-bidi-font-family:"Times New Roman";}
-span.MsoFootnoteReference
-	{mso-style-noshow:yes;
-	vertical-align:super;}
-span.MsoCommentReference
-	{mso-ansi-font-size:8.0pt;
-	mso-bidi-font-size:8.0pt;}
-span.MsoEndnoteReference
-	{vertical-align:super;}
-p.MsoEndnoteText, li.MsoEndnoteText, div.MsoEndnoteText
-	{mso-style-link:"Endnote Text Char";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:10.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";
-	mso-bidi-font-family:"Times New Roman";}
-p.MsoList, li.MsoList, div.MsoList
-	{margin-top:0in;
-	margin-right:0in;
-	margin-bottom:0in;
-	margin-left:.25in;
-	margin-bottom:.0001pt;
-	text-indent:-.25in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";
-	mso-bidi-font-family:"Times New Roman";}
-p.MsoList2, li.MsoList2, div.MsoList2
-	{margin-top:0in;
-	margin-right:0in;
-	margin-bottom:0in;
-	margin-left:.5in;
-	margin-bottom:.0001pt;
-	text-indent:-.25in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";
-	mso-bidi-font-family:"Times New Roman";}
-p.MsoListBullet2, li.MsoListBullet2, div.MsoListBullet2
-	{mso-style-update:auto;
-	margin-top:0in;
-	margin-right:0in;
-	margin-bottom:0in;
-	margin-left:.5in;
-	margin-bottom:.0001pt;
-	text-indent:-.25in;
-	mso-pagination:widow-orphan;
-	mso-list:l1 level1 lfo22;
-	tab-stops:list .5in;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";
-	mso-bidi-font-family:"Times New Roman";}
-p.MsoListBullet3, li.MsoListBullet3, div.MsoListBullet3
-	{mso-style-update:auto;
-	margin-top:0in;
-	margin-right:0in;
-	margin-bottom:0in;
-	margin-left:.75in;
-	margin-bottom:.0001pt;
-	text-indent:-.25in;
-	mso-pagination:widow-orphan;
-	mso-list:l0 level1 lfo23;
-	tab-stops:list .75in;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";
-	mso-bidi-font-family:"Times New Roman";}
-p.MsoTitle, li.MsoTitle, div.MsoTitle
-	{margin-top:12.0pt;
-	margin-right:0in;
-	margin-bottom:3.0pt;
-	margin-left:0in;
-	text-align:center;
-	mso-pagination:widow-orphan;
-	mso-outline-level:1;
-	font-size:16.0pt;
-	font-family:Arial;
-	mso-fareast-font-family:"Times New Roman";
-	mso-bidi-font-family:Arial;
-	mso-font-kerning:14.0pt;
-	font-weight:bold;}
-p.MsoSignature, li.MsoSignature, div.MsoSignature
-	{margin-top:0in;
-	margin-right:0in;
-	margin-bottom:0in;
-	margin-left:3.0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";
-	mso-bidi-font-family:"Times New Roman";}
-p.MsoBodyText, li.MsoBodyText, div.MsoBodyText
-	{margin-top:0in;
-	margin-right:0in;
-	margin-bottom:6.0pt;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";
-	mso-bidi-font-family:"Times New Roman";}
-p.MsoBodyTextIndent, li.MsoBodyTextIndent, div.MsoBodyTextIndent
-	{margin-top:0in;
-	margin-right:0in;
-	margin-bottom:6.0pt;
-	margin-left:.25in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";
-	mso-bidi-font-family:"Times New Roman";}
-p.MsoSubtitle, li.MsoSubtitle, div.MsoSubtitle
-	{margin-top:0in;
-	margin-right:0in;
-	margin-bottom:3.0pt;
-	margin-left:0in;
-	text-align:center;
-	mso-pagination:widow-orphan;
-	mso-outline-level:2;
-	font-size:12.0pt;
-	font-family:Arial;
-	mso-fareast-font-family:"Times New Roman";
-	mso-bidi-font-family:Arial;}
-p.MsoDate, li.MsoDate, div.MsoDate
-	{mso-style-next:Normal;
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";
-	mso-bidi-font-family:"Times New Roman";}
-a:link, span.MsoHyperlink
-	{color:blue;
-	text-decoration:underline;
-	text-underline:single;}
-a:visited, span.MsoHyperlinkFollowed
-	{color:purple;
-	text-decoration:underline;
-	text-underline:single;}
-em
-	{mso-bidi-font-style:italic;}
-p.MsoCommentSubject, li.MsoCommentSubject, div.MsoCommentSubject
-	{mso-style-parent:"Comment Text";
-	mso-style-link:"Comment Subject Char";
-	mso-style-next:"Comment Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:10.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";
-	mso-bidi-font-family:"Times New Roman";
-	font-weight:bold;}
-p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
-	{mso-style-noshow:yes;
-	mso-style-link:"Balloon Text Char";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";
-	mso-bidi-font-family:Tahoma;}
-p.MsoRMPane, li.MsoRMPane, div.MsoRMPane
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";
-	mso-bidi-font-family:"Times New Roman";}
-p.ShortReturnAddress, li.ShortReturnAddress, div.ShortReturnAddress
-	{mso-style-name:"Short Return Address";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";
-	mso-bidi-font-family:"Times New Roman";}
-p.PPLine, li.PPLine, div.PPLine
-	{mso-style-name:"PP Line";
-	mso-style-parent:Signature;
-	margin-top:0in;
-	margin-right:0in;
-	margin-bottom:0in;
-	margin-left:3.0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";
-	mso-bidi-font-family:"Times New Roman";}
-p.InsideAddressName, li.InsideAddressName, div.InsideAddressName
-	{mso-style-name:"Inside Address Name";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";
-	mso-bidi-font-family:"Times New Roman";}
-span.CommentTextChar
-	{mso-style-name:"Comment Text Char";
-	mso-style-locked:yes;
-	mso-style-link:"Comment Text";}
-span.CommentSubjectChar
-	{mso-style-name:"Comment Subject Char";
-	mso-style-locked:yes;
-	mso-style-parent:"Comment Text Char";
-	mso-style-link:"Comment Subject";
-	font-weight:bold;}
-span.EndnoteTextChar
-	{mso-style-name:"Endnote Text Char";
-	mso-style-locked:yes;
-	mso-style-link:"Endnote Text";}
-p.MediumList2-Accent21, li.MediumList2-Accent21, div.MediumList2-Accent21
-	{mso-style-name:"Medium List 2 - Accent 21";
-	mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";
-	mso-bidi-font-family:"Times New Roman";}
-span.tag
-	{mso-style-name:tag;
-	mso-style-parent:Emphasis;
-	mso-ansi-font-size:12.0pt;
-	font-family:Cambria;
-	mso-ascii-font-family:Cambria;
-	mso-hansi-font-family:Cambria;
-	color:#002060;
-	font-style:normal;
-	mso-bidi-font-style:italic;}
-span.componentChar
-	{mso-style-name:"component Char";
-	mso-ansi-font-size:14.0pt;
-	mso-bidi-font-size:12.0pt;
-	color:#C00000;
-	mso-ansi-language:EN-US;
-	font-weight:bold;
-	mso-bidi-font-weight:normal;}
-span.BalloonTextChar
-	{mso-style-name:"Balloon Text Char";
-	mso-style-noshow:yes;
-	mso-style-locked:yes;
-	mso-style-link:"Balloon Text";
-	mso-ansi-font-size:8.0pt;
-	mso-bidi-font-size:8.0pt;
-	font-family:Tahoma;
-	mso-ascii-font-family:Tahoma;
-	mso-hansi-font-family:Tahoma;
-	mso-bidi-font-family:Tahoma;}
- /* Page Definitions */
- at page
-	{mso-footnote-separator:url(":cmor_users_guide_files:header.htm") fs;
-	mso-footnote-continuation-separator:url(":cmor_users_guide_files:header.htm") fcs;
-	mso-endnote-separator:url(":cmor_users_guide_files:header.htm") es;
-	mso-endnote-continuation-separator:url(":cmor_users_guide_files:header.htm") ecs;}
- at page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.2in 1.0in 1.2in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-header:url(":cmor_users_guide_files:header.htm") h1;
-	mso-even-footer:url(":cmor_users_guide_files:header.htm") ef1;
-	mso-footer:url(":cmor_users_guide_files:header.htm") f1;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
- /* List Definitions */
- at list l0
-	{mso-list-id:-126;
-	mso-list-type:simple;
-	mso-list-template-ids:1856698860;}
- at list l0:level1
-	{mso-level-number-format:bullet;
-	mso-level-style-link:"List Bullet 3";
-	mso-level-text:;
-	mso-level-tab-stop:.75in;
-	mso-level-number-position:left;
-	margin-left:.75in;
-	text-indent:-.25in;
-	font-family:Symbol;}
- at list l1
-	{mso-list-id:-125;
-	mso-list-type:simple;
-	mso-list-template-ids:-818792322;}
- at list l1:level1
-	{mso-level-number-format:bullet;
-	mso-level-style-link:"List Bullet 2";
-	mso-level-text:;
-	mso-level-tab-stop:.5in;
-	mso-level-number-position:left;
-	text-indent:-.25in;
-	font-family:Symbol;}
- at list l2
-	{mso-list-id:45883531;
-	mso-list-type:hybrid;
-	mso-list-template-ids:1448904216 67698705 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
- at list l2:level1
-	{mso-level-text:"%1\)";
-	mso-level-tab-stop:none;
-	mso-level-number-position:left;
-	margin-left:1.25in;
-	text-indent:-.25in;}
- at list l3
-	{mso-list-id:55669800;
-	mso-list-type:hybrid;
-	mso-list-template-ids:-2088049960 120734710 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
- at list l3:level1
-	{mso-level-start-at:5;
-	mso-level-text:%1;
-	mso-level-tab-stop:65.25pt;
-	mso-level-number-position:left;
-	margin-left:65.25pt;
-	text-indent:-43.5pt;}
- at list l4
-	{mso-list-id:105347917;
-	mso-list-type:hybrid;
-	mso-list-template-ids:-13210420 -295509542 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
- at list l4:level1
-	{mso-level-start-at:5;
-	mso-level-text:%1;
-	mso-level-tab-stop:42.0pt;
-	mso-level-number-position:left;
-	margin-left:42.0pt;
-	text-indent:-24.0pt;}
- at list l5
-	{mso-list-id:139344800;
-	mso-list-type:hybrid;
-	mso-list-template-ids:-1427087294 67698705 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
- at list l5:level1
-	{mso-level-text:"%1\)";
-	mso-level-tab-stop:none;
-	mso-level-number-position:left;
-	margin-left:1.75in;
-	text-indent:-.25in;}
- at list l6
-	{mso-list-id:212010887;
-	mso-list-type:hybrid;
-	mso-list-template-ids:14208904 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
- at list l6:level1
-	{mso-level-number-format:bullet;
-	mso-level-text:;
-	mso-level-tab-stop:.5in;
-	mso-level-number-position:left;
-	text-indent:-.25in;
-	font-family:Symbol;}
- at list l7
-	{mso-list-id:219905945;
-	mso-list-type:hybrid;
-	mso-list-template-ids:-631860122 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
- at list l7:level1
-	{mso-level-number-format:bullet;
-	mso-level-text:;
-	mso-level-tab-stop:.5in;
-	mso-level-number-position:left;
-	text-indent:-.25in;
-	font-family:Symbol;}
- at list l8
-	{mso-list-id:321469250;
-	mso-list-type:hybrid;
-	mso-list-template-ids:750938280 639925018 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
- at list l8:level1
-	{mso-level-start-at:5;
-	mso-level-text:%1;
-	mso-level-tab-stop:.75in;
-	mso-level-number-position:left;
-	margin-left:.75in;
-	text-indent:-.5in;}
- at list l9
-	{mso-list-id:376588931;
-	mso-list-type:hybrid;
-	mso-list-template-ids:1780916262 67698705 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
- at list l9:level1
-	{mso-level-text:"%1\)";
-	mso-level-tab-stop:none;
-	mso-level-number-position:left;
-	margin-left:1.5in;
-	text-indent:-.25in;}
- at list l10
-	{mso-list-id:391277258;
-	mso-list-type:hybrid;
-	mso-list-template-ids:1350083534 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
- at list l10:level1
-	{mso-level-number-format:bullet;
-	mso-level-text:;
-	mso-level-tab-stop:.5in;
-	mso-level-number-position:left;
-	text-indent:-.25in;
-	font-family:Symbol;}
- at list l11
-	{mso-list-id:579409007;
-	mso-list-type:hybrid;
-	mso-list-template-ids:1269599870 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
- at list l11:level1
-	{mso-level-number-format:bullet;
-	mso-level-text:;
-	mso-level-tab-stop:.5in;
-	mso-level-number-position:left;
-	text-indent:-.25in;
-	font-family:Symbol;}
- at list l12
-	{mso-list-id:607471321;
-	mso-list-type:hybrid;
-	mso-list-template-ids:17607110 -1613584814 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
- at list l12:level1
-	{mso-level-start-at:7;
-	mso-level-text:%1;
-	mso-level-tab-stop:48.0pt;
-	mso-level-number-position:left;
-	margin-left:48.0pt;
-	text-indent:-30.0pt;}
- at list l13
-	{mso-list-id:646059410;
-	mso-list-type:hybrid;
-	mso-list-template-ids:2033859298 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
- at list l13:level1
-	{mso-level-number-format:bullet;
-	mso-level-text:;
-	mso-level-tab-stop:.5in;
-	mso-level-number-position:left;
-	text-indent:-.25in;
-	font-family:Symbol;}
- at list l14
-	{mso-list-id:672683485;
-	mso-list-type:hybrid;
-	mso-list-template-ids:1711471104 1817609782 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
- at list l14:level1
-	{mso-level-start-at:6;
-	mso-level-text:%1;
-	mso-level-tab-stop:39.75pt;
-	mso-level-number-position:left;
-	margin-left:39.75pt;
-	text-indent:-.25in;}
- at list l15
-	{mso-list-id:827478285;
-	mso-list-type:hybrid;
-	mso-list-template-ids:657648686 67698705 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
- at list l15:level1
-	{mso-level-text:"%1\)";
-	mso-level-tab-stop:none;
-	mso-level-number-position:left;
-	text-indent:-.25in;}
- at list l16
-	{mso-list-id:943460177;
-	mso-list-type:hybrid;
-	mso-list-template-ids:859328410 67698705 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
- at list l16:level1
-	{mso-level-text:"%1\)";
-	mso-level-tab-stop:none;
-	mso-level-number-position:left;
-	margin-left:1.5in;
-	text-indent:-.25in;}
- at list l17
-	{mso-list-id:956909574;
-	mso-list-type:hybrid;
-	mso-list-template-ids:-790340492 67698689 66569 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
- at list l17:level1
-	{mso-level-number-format:bullet;
-	mso-level-text:;
-	mso-level-tab-stop:.5in;
-	mso-level-number-position:left;
-	text-indent:-.25in;
-	font-family:Symbol;}
- at list l17:level2
-	{mso-level-number-format:bullet;
-	mso-level-text:;
-	mso-level-tab-stop:1.0in;
-	mso-level-number-position:left;
-	text-indent:-.25in;
-	font-family:Symbol;}
- at list l18
-	{mso-list-id:988361926;
-	mso-list-type:hybrid;
-	mso-list-template-ids:-1059935788 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
- at list l18:level1
-	{mso-level-number-format:bullet;
-	mso-level-text:;
-	mso-level-tab-stop:.5in;
-	mso-level-number-position:left;
-	text-indent:-.25in;
-	font-family:Symbol;}
- at list l19
-	{mso-list-id:1091197613;
-	mso-list-type:hybrid;
-	mso-list-template-ids:-1358942726 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
- at list l19:level1
-	{mso-level-number-format:bullet;
-	mso-level-text:;
-	mso-level-tab-stop:.5in;
-	mso-level-number-position:left;
-	text-indent:-.25in;
-	font-family:Symbol;}
- at list l20
-	{mso-list-id:1100566653;
-	mso-list-type:hybrid;
-	mso-list-template-ids:283172748 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
- at list l20:level1
-	{mso-level-number-format:bullet;
-	mso-level-text:;
-	mso-level-tab-stop:.5in;
-	mso-level-number-position:left;
-	text-indent:-.25in;
-	font-family:Symbol;}
- at list l21
-	{mso-list-id:1181312500;
-	mso-list-type:hybrid;
-	mso-list-template-ids:260442326 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
- at list l21:level1
-	{mso-level-number-format:bullet;
-	mso-level-text:;
-	mso-level-tab-stop:.5in;
-	mso-level-number-position:left;
-	text-indent:-.25in;
-	font-family:Symbol;}
- at list l22
-	{mso-list-id:1274365608;
-	mso-list-template-ids:-540359662;}
- at list l22:level1
-	{mso-level-text:"%1\)";
-	mso-level-tab-stop:none;
-	mso-level-number-position:left;
-	margin-left:.25in;
-	text-indent:-.25in;}
- at list l22:level2
-	{mso-level-number-format:alpha-lower;
-	mso-level-text:"%2\)";
-	mso-level-tab-stop:none;
-	mso-level-number-position:left;
-	margin-left:.5in;
-	text-indent:-.25in;}
- at list l22:level3
-	{mso-level-number-format:roman-lower;
-	mso-level-text:"%3\)";
-	mso-level-tab-stop:none;
-	mso-level-number-position:left;
-	margin-left:.75in;
-	text-indent:-.25in;}
- at list l22:level4
-	{mso-level-text:"\(%4\)";
-	mso-level-tab-stop:none;
-	mso-level-number-position:left;
-	margin-left:1.0in;
-	text-indent:-.25in;}
- at list l22:level5
-	{mso-level-text:"%5\)";
-	mso-level-tab-stop:none;
-	mso-level-number-position:left;
-	margin-left:1.25in;
-	text-indent:-.25in;}
- at list l22:level6
-	{mso-level-number-format:roman-lower;
-	mso-level-text:"\(%6\)";
-	mso-level-tab-stop:none;
-	mso-level-number-position:left;
-	margin-left:1.5in;
-	text-indent:-.25in;}
- at list l22:level7
-	{mso-level-tab-stop:none;
-	mso-level-number-position:left;
-	margin-left:1.75in;
-	text-indent:-.25in;}
- at list l22:level8
-	{mso-level-number-format:alpha-lower;
-	mso-level-tab-stop:none;
-	mso-level-number-position:left;
-	margin-left:2.0in;
-	text-indent:-.25in;}
- at list l22:level9
-	{mso-level-number-format:roman-lower;
-	mso-level-tab-stop:none;
-	mso-level-number-position:left;
-	margin-left:2.25in;
-	text-indent:-.25in;}
- at list l23
-	{mso-list-id:1314213867;
-	mso-list-type:hybrid;
-	mso-list-template-ids:1043500168 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
- at list l23:level1
-	{mso-level-number-format:bullet;
-	mso-level-text:;
-	mso-level-tab-stop:.5in;
-	mso-level-number-position:left;
-	text-indent:-.25in;
-	font-family:Symbol;}
- at list l24
-	{mso-list-id:1326470646;
-	mso-list-type:hybrid;
-	mso-list-template-ids:-1551748782 294664098 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
- at list l24:level1
-	{mso-level-start-at:4;
-	mso-level-text:%1;
-	mso-level-tab-stop:65.25pt;
-	mso-level-number-position:left;
-	margin-left:65.25pt;
-	text-indent:-43.5pt;}
- at list l25
-	{mso-list-id:1380133840;
-	mso-list-type:hybrid;
-	mso-list-template-ids:689969892 67698705 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
- at list l25:level1
-	{mso-level-text:"%1\)";
-	mso-level-tab-stop:none;
-	mso-level-number-position:left;
-	margin-left:1.5in;
-	text-indent:-.25in;}
- at list l26
-	{mso-list-id:1381784092;
-	mso-list-template-ids:-2088049960;}
- at list l26:level1
-	{mso-level-start-at:5;
-	mso-level-text:%1;
-	mso-level-tab-stop:65.25pt;
-	mso-level-number-position:left;
-	margin-left:65.25pt;
-	text-indent:-43.5pt;}
- at list l26:level2
-	{mso-level-number-format:alpha-lower;
-	mso-level-tab-stop:75.75pt;
-	mso-level-number-position:left;
-	margin-left:75.75pt;
-	text-indent:-.25in;}
- at list l26:level3
-	{mso-level-number-format:roman-lower;
-	mso-level-tab-stop:111.75pt;
-	mso-level-number-position:right;
-	margin-left:111.75pt;
-	text-indent:-9.0pt;}
- at list l26:level4
-	{mso-level-tab-stop:147.75pt;
-	mso-level-number-position:left;
-	margin-left:147.75pt;
-	text-indent:-.25in;}
- at list l26:level5
-	{mso-level-number-format:alpha-lower;
-	mso-level-tab-stop:183.75pt;
-	mso-level-number-position:left;
-	margin-left:183.75pt;
-	text-indent:-.25in;}
- at list l26:level6
-	{mso-level-number-format:roman-lower;
-	mso-level-tab-stop:219.75pt;
-	mso-level-number-position:right;
-	margin-left:219.75pt;
-	text-indent:-9.0pt;}
- at list l26:level7
-	{mso-level-tab-stop:255.75pt;
-	mso-level-number-position:left;
-	margin-left:255.75pt;
-	text-indent:-.25in;}
- at list l26:level8
-	{mso-level-number-format:alpha-lower;
-	mso-level-tab-stop:291.75pt;
-	mso-level-number-position:left;
-	margin-left:291.75pt;
-	text-indent:-.25in;}
- at list l26:level9
-	{mso-level-number-format:roman-lower;
-	mso-level-tab-stop:327.75pt;
-	mso-level-number-position:right;
-	margin-left:327.75pt;
-	text-indent:-9.0pt;}
- at list l27
-	{mso-list-id:1403912280;
-	mso-list-type:hybrid;
-	mso-list-template-ids:-709174628 67698705 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
- at list l27:level1
-	{mso-level-text:"%1\)";
-	mso-level-tab-stop:none;
-	mso-level-number-position:left;
-	text-indent:-.25in;}
- at list l28
-	{mso-list-id:1479883753;
-	mso-list-type:hybrid;
-	mso-list-template-ids:352386170 -2036413258 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
- at list l28:level1
-	{mso-level-start-at:7;
-	mso-level-text:%1;
-	mso-level-tab-stop:.5in;
-	mso-level-number-position:left;
-	text-indent:-.25in;}
- at list l29
-	{mso-list-id:1510365485;
-	mso-list-type:hybrid;
-	mso-list-template-ids:905736748 -312474040 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
- at list l29:level1
-	{mso-level-text:%1;
-	mso-level-tab-stop:.75in;
-	mso-level-number-position:left;
-	margin-left:.75in;
-	text-indent:-45.0pt;}
- at list l30
-	{mso-list-id:1525896057;
-	mso-list-type:hybrid;
-	mso-list-template-ids:1071933926 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
- at list l30:level1
-	{mso-level-tab-stop:none;
-	mso-level-number-position:left;
-	text-indent:-.25in;}
- at list l31
-	{mso-list-id:1783185823;
-	mso-list-type:hybrid;
-	mso-list-template-ids:1219109978 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
- at list l31:level1
-	{mso-level-number-format:bullet;
-	mso-level-text:;
-	mso-level-tab-stop:.5in;
-	mso-level-number-position:left;
-	text-indent:-.25in;
-	font-family:Symbol;}
- at list l32
-	{mso-list-id:1867713661;
-	mso-list-template-ids:67698717;}
- at list l32:level1
-	{mso-level-text:"%1\)";
-	mso-level-tab-stop:none;
-	mso-level-number-position:left;
-	margin-left:.25in;
-	text-indent:-.25in;}
- at list l32:level2
-	{mso-level-number-format:alpha-lower;
-	mso-level-text:"%2\)";
-	mso-level-tab-stop:none;
-	mso-level-number-position:left;
-	margin-left:.5in;
-	text-indent:-.25in;}
- at list l32:level3
-	{mso-level-number-format:roman-lower;
-	mso-level-text:"%3\)";
-	mso-level-tab-stop:none;
-	mso-level-number-position:left;
-	margin-left:.75in;
-	text-indent:-.25in;}
- at list l32:level4
-	{mso-level-text:"\(%4\)";
-	mso-level-tab-stop:none;
-	mso-level-number-position:left;
-	margin-left:1.0in;
-	text-indent:-.25in;}
- at list l32:level5
-	{mso-level-number-format:alpha-lower;
-	mso-level-text:"\(%5\)";
-	mso-level-tab-stop:none;
-	mso-level-number-position:left;
-	margin-left:1.25in;
-	text-indent:-.25in;}
- at list l32:level6
-	{mso-level-number-format:roman-lower;
-	mso-level-text:"\(%6\)";
-	mso-level-tab-stop:none;
-	mso-level-number-position:left;
-	margin-left:1.5in;
-	text-indent:-.25in;}
- at list l32:level7
-	{mso-level-tab-stop:none;
-	mso-level-number-position:left;
-	margin-left:1.75in;
-	text-indent:-.25in;}
- at list l32:level8
-	{mso-level-number-format:alpha-lower;
-	mso-level-tab-stop:none;
-	mso-level-number-position:left;
-	margin-left:2.0in;
-	text-indent:-.25in;}
- at list l32:level9
-	{mso-level-number-format:roman-lower;
-	mso-level-tab-stop:none;
-	mso-level-number-position:left;
-	margin-left:2.25in;
-	text-indent:-.25in;}
- at list l33
-	{mso-list-id:1945920541;
-	mso-list-type:hybrid;
-	mso-list-template-ids:-835531592 67698705 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
- at list l33:level1
-	{mso-level-text:"%1\)";
-	mso-level-tab-stop:none;
-	mso-level-number-position:left;
-	margin-left:1.5in;
-	text-indent:-.25in;}
- at list l34
-	{mso-list-id:1969622602;
-	mso-list-type:hybrid;
-	mso-list-template-ids:-737529962 67698705 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
- at list l34:level1
-	{mso-level-text:"%1\)";
-	mso-level-tab-stop:none;
-	mso-level-number-position:left;
-	margin-left:1.5in;
-	text-indent:-.25in;}
- at list l35
-	{mso-list-id:2107723004;
-	mso-list-type:hybrid;
-	mso-list-template-ids:-1790176916 67698705 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
- at list l35:level1
-	{mso-level-text:"%1\)";
-	mso-level-tab-stop:none;
-	mso-level-number-position:left;
-	margin-left:1.25in;
-	text-indent:-.25in;}
- at list l36
-	{mso-list-id:2144539126;
-	mso-list-type:hybrid;
-	mso-list-template-ids:1847211504 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
- at list l36:level1
-	{mso-level-tab-stop:none;
-	mso-level-number-position:left;
-	text-indent:-.25in;}
-ol
-	{margin-bottom:0in;}
-ul
-	{margin-bottom:0in;}
--->
-</style>
-<!--[if gte mso 10]>
-<style>
- /* Style Definitions */
-table.MsoNormalTable
-	{mso-style-name:"Table Normal";
-	mso-tstyle-rowband-size:0;
-	mso-tstyle-colband-size:0;
-	mso-style-noshow:yes;
-	mso-style-parent:"";
-	mso-padding-alt:0in 5.4pt 0in 5.4pt;
-	mso-para-margin:0in;
-	mso-para-margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:10.0pt;
-	font-family:"Times New Roman";}
-table.MsoTableSimple1
-	{mso-style-name:"Table Simple 1";
-	mso-tstyle-rowband-size:0;
-	mso-tstyle-colband-size:0;
-	border-top:solid green 1.5pt;
-	border-left:none;
-	border-bottom:solid green 1.5pt;
-	border-right:none;
-	mso-padding-alt:0in 5.4pt 0in 5.4pt;
-	mso-para-margin:0in;
-	mso-para-margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:10.0pt;
-	font-family:"Times New Roman";}
-table.MsoTableSimple1FirstRow
-	{mso-style-name:"Table Simple 1";
-	mso-table-condition:first-row;
-	mso-tstyle-border-bottom:.75pt solid green;
-	mso-tstyle-diagonal-down:0in none windowtext;
-	mso-tstyle-diagonal-up:0in none windowtext;}
-table.MsoTableSimple1LastRow
-	{mso-style-name:"Table Simple 1";
-	mso-table-condition:last-row;
-	mso-tstyle-border-top:.75pt solid green;
-	mso-tstyle-diagonal-down:0in none windowtext;
-	mso-tstyle-diagonal-up:0in none windowtext;}
-table.MsoTableColumns1
-	{mso-style-name:"Table Columns 1";
-	mso-tstyle-rowband-size:0;
-	mso-tstyle-colband-size:1;
-	border:solid black 1.5pt;
-	mso-padding-alt:0in 5.4pt 0in 5.4pt;
-	mso-para-margin:0in;
-	mso-para-margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:10.0pt;
-	font-family:"Times New Roman";
-	font-weight:bold;}
-table.MsoTableColumns1FirstRow
-	{mso-style-name:"Table Columns 1";
-	mso-table-condition:first-row;
-	mso-tstyle-border-bottom:2.25pt double black;
-	mso-tstyle-diagonal-down:0in none windowtext;
-	mso-tstyle-diagonal-up:0in none windowtext;
-	mso-ansi-font-weight:normal;
-	mso-bidi-font-weight:normal;}
-table.MsoTableColumns1LastRow
-	{mso-style-name:"Table Columns 1";
-	mso-table-condition:last-row;
-	mso-tstyle-diagonal-down:0in none windowtext;
-	mso-tstyle-diagonal-up:0in none windowtext;
-	mso-ansi-font-weight:normal;
-	mso-bidi-font-weight:normal;}
-table.MsoTableColumns1FirstCol
-	{mso-style-name:"Table Columns 1";
-	mso-table-condition:first-column;
-	mso-tstyle-diagonal-down:0in none windowtext;
-	mso-tstyle-diagonal-up:0in none windowtext;
-	mso-ansi-font-weight:normal;
-	mso-bidi-font-weight:normal;}
-table.MsoTableColumns1LastCol
-	{mso-style-name:"Table Columns 1";
-	mso-table-condition:last-column;
-	mso-tstyle-diagonal-down:0in none windowtext;
-	mso-tstyle-diagonal-up:0in none windowtext;
-	mso-ansi-font-weight:normal;
-	mso-bidi-font-weight:normal;}
-table.MsoTableColumns1OddColumn
-	{mso-style-name:"Table Columns 1";
-	mso-table-condition:odd-column;
-	mso-tstyle-shading:white;
-	mso-tstyle-pattern:gray-25 black;
-	color:windowtext;}
-table.MsoTableColumns1EvenColumn
-	{mso-style-name:"Table Columns 1";
-	mso-table-condition:even-column;
-	mso-tstyle-shading:white;
-	mso-tstyle-pattern:gray-25 yellow;
-	color:windowtext;}
-table.MsoTableColumns1NECell
-	{mso-style-name:"Table Columns 1";
-	mso-table-condition:ne-cell;
-	mso-tstyle-diagonal-down:0in none windowtext;
-	mso-tstyle-diagonal-up:0in none windowtext;
-	mso-ansi-font-weight:bold;
-	mso-bidi-font-weight:bold;}
-table.MsoTableColumns1SWCell
-	{mso-style-name:"Table Columns 1";
-	mso-table-condition:sw-cell;
-	mso-tstyle-diagonal-down:0in none windowtext;
-	mso-tstyle-diagonal-up:0in none windowtext;
-	mso-ansi-font-weight:bold;
-	mso-bidi-font-weight:bold;}
-table.MsoTableGrid
-	{mso-style-name:"Table Grid";
-	mso-tstyle-rowband-size:0;
-	mso-tstyle-colband-size:0;
-	border:solid windowtext 1.0pt;
-	mso-border-alt:solid windowtext .5pt;
-	mso-padding-alt:0in 5.4pt 0in 5.4pt;
-	mso-border-insideh:.5pt solid windowtext;
-	mso-border-insidev:.5pt solid windowtext;
-	mso-para-margin:0in;
-	mso-para-margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:10.0pt;
-	font-family:"Times New Roman";}
-</style>
-<![endif]--><!--[if gte mso 9]><xml>
- <o:shapedefaults v:ext="edit" spidmax="4098"/>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <o:shapelayout v:ext="edit">
-  <o:idmap v:ext="edit" data="1"/>
- </o:shapelayout></xml><![endif]-->
-</head>
-
-<body lang=EN-US link=blue vlink=purple style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p class=MsoNormal align=center style='text-align:center'><b style='mso-bidi-font-weight:
-normal'><span style='font-size:16.0pt'><o:p> </o:p></span></b></p>
-
-<p class=MsoNormal align=center style='text-align:center'><b style='mso-bidi-font-weight:
-normal'><span style='font-size:16.0pt'><o:p> </o:p></span></b></p>
-
-<p class=MsoNormal align=center style='text-align:center'><b style='mso-bidi-font-weight:
-normal'><span style='font-size:16.0pt'><o:p> </o:p></span></b></p>
-
-<p class=MsoNormal align=center style='text-align:center'><b style='mso-bidi-font-weight:
-normal'><span style='font-size:16.0pt'><o:p> </o:p></span></b></p>
-
-<p class=MsoNormal align=center style='text-align:center'><b style='mso-bidi-font-weight:
-normal'><span style='font-size:16.0pt'>Climate Model Output Rewriter (CMOR)<o:p></o:p></span></b></p>
-
-<p class=MsoNormal><b style='mso-bidi-font-weight:normal'><span
-style='font-size:14.0pt'><o:p> </o:p></span></b></p>
-
-<p class=MsoNormal><b style='mso-bidi-font-weight:normal'><span
-style='font-size:14.0pt'><o:p> </o:p></span></b></p>
-
-<p class=MsoNormal><b style='mso-bidi-font-weight:normal'><span
-style='font-size:14.0pt'><o:p> </o:p></span></b></p>
-
-<p class=MsoNormal><b style='mso-bidi-font-weight:normal'><span
-style='font-size:14.0pt'><o:p> </o:p></span></b></p>
-
-<p class=MsoNormal align=center style='text-align:center'><b style='mso-bidi-font-weight:
-normal'><span style='font-size:14.0pt'>Version 2.0 (CMOR2)<o:p></o:p></span></b></p>
-
-<p class=MsoNormal align=center style='text-align:center'><span
-style='font-size:14.0pt'>Charles Doutriaux, Karl E. Taylor<o:p></o:p></span></p>
-
-<p class=MsoNormal><span style='font-size:14.0pt'><o:p> </o:p></span></p>
-
-<p class=MsoNormal align=center style='text-align:center;tab-stops:272.25pt'><!--[if supportFields]><span
-style='font-size:14.0pt'><span style='mso-element:field-begin'></span><span
-style="mso-spacerun: yes"> </span>TIME \@ "MMMM d, yyyy" <span
-style='mso-element:field-separator'></span></span><![endif]--><span
-style='font-size:14.0pt'><span style='mso-no-proof:yes'>May 11, 2010</span></span><!--[if supportFields]><span
-style='font-size:14.0pt'><span style='mso-element:field-end'></span></span><![endif]--><span
-style='font-size:14.0pt'><o:p></o:p></span></p>
-
-<p class=MsoNormal align=center style='text-align:center;tab-stops:272.25pt'><span
-style='font-size:14.0pt'><o:p> </o:p></span></p>
-
-<p class=MsoNormal align=center style='text-align:center;tab-stops:272.25pt'><span
-style='font-size:14.0pt'><o:p> </o:p></span></p>
-
-<p class=MsoNormal align=center style='text-align:center;tab-stops:272.25pt'><span
-style='font-size:14.0pt'><o:p> </o:p></span></p>
-
-<p class=MsoNormal align=center style='text-align:center;tab-stops:272.25pt'><span
-style='font-size:14.0pt'><o:p> </o:p></span></p>
-
-<p class=MsoNormal align=center style='text-align:center;tab-stops:272.25pt'><span
-style='font-size:14.0pt'><o:p> </o:p></span></p>
-
-<p class=MsoNormal align=center style='text-align:center;tab-stops:272.25pt'><span
-style='font-size:14.0pt'><o:p> </o:p></span></p>
-
-<p class=MsoNormal align=center style='text-align:center;tab-stops:272.25pt'><span
-style='font-size:14.0pt'><o:p> </o:p></span></p>
-
-<p class=MsoNormal><b style='mso-bidi-font-weight:normal'><span
-style='font-size:14.0pt'><o:p> </o:p></span></b></p>
-
-<p class=MsoNormal align=center style='text-align:center'><b style='mso-bidi-font-weight:
-normal'><span style='font-size:14.0pt;mso-bidi-font-size:12.0pt;background:
-silver;mso-highlight:silver'>A Revision of </span></b><b style='mso-bidi-font-weight:
-normal'><span style='font-size:14.0pt'>Version 1.0 (CMOR1)</span></b><span
-style='font-size:14.0pt'><o:p></o:p></span></p>
-
-<p class=MsoNormal align=center style='text-align:center'><span
-style='font-size:14.0pt'>Karl E. Taylor, Charles Doutriaux, and Jean-Yves
-Peterschmitt<o:p></o:p></span></p>
-
-<p class=MsoNormal align=center style='text-align:center'><span
-style='font-size:14.0pt'><o:p> </o:p></span></p>
-
-<p class=MsoNormal align=center style='text-align:center'><span
-style='font-size:14.0pt'>July 14, 2006<o:p></o:p></span></p>
-
-<p class=MsoNormal align=center style='text-align:center'><span
-style='font-size:14.0pt'><o:p> </o:p></span></p>
-
-<b><span style='font-size:14.0pt;font-family:Arial;mso-fareast-font-family:
-"Times New Roman";mso-bidi-font-family:Arial;mso-font-kerning:16.0pt;
-mso-ansi-language:EN-US;mso-fareast-language:EN-US'><br clear=ALL
-style='page-break-before:always'>
-</span></b>
-
-<h1><a name="_Toc129421995"></a><!--[if supportFields]><span style='mso-bookmark:
-_Toc129421995'></span><span style='mso-element:field-begin'></span><span
-style='mso-bookmark:_Toc129421995'><span style='font-size:14.0pt'><span
-style="mso-spacerun: yes"> </span>TOC \o "1-3" <span
-style='mso-element:field-separator'></span></span></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'><o:p></o:p></span></span></h1>
-
-<p class=MsoToc1 style='tab-stops:right dotted 438.7pt'><span style='mso-bookmark:
-_Toc129421995'><span style='mso-no-proof:yes'>Design Considerations and
-Overview<span style='mso-tab-count:1 dotted'>............................................................................ </span></span></span><!--[if supportFields]><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-element:field-begin'></span><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'> PAGEREF
-_Toc134007294 \h <span style='mso-element:field-separator'></span></span></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'>4<!--[if gte mso 9]><xml>
- <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100330034003000300037003200390034000000</w:data>
-</xml><![endif]--></span></span><!--[if supportFields]><span style='mso-bookmark:
-_Toc129421995'></span><span style='mso-element:field-end'></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-bookmark:_Toc129421995'><span
-style='font-weight:normal;mso-no-proof:yes'><o:p></o:p></span></span></p>
-
-<p class=MsoToc1 style='tab-stops:right dotted 438.7pt'><span style='mso-bookmark:
-_Toc129421995'><span style='mso-no-proof:yes'>Acknowledgements<span
-style='mso-tab-count:1 dotted'>......................................................................................................... </span></span></span><!--[if supportFields]><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-element:field-begin'></span><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'> PAGEREF
-_Toc134007295 \h <span style='mso-element:field-separator'></span></span></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'>10<!--[if gte mso 9]><xml>
- <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100330034003000300037003200390035000000</w:data>
-</xml><![endif]--></span></span><!--[if supportFields]><span style='mso-bookmark:
-_Toc129421995'></span><span style='mso-element:field-end'></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-bookmark:_Toc129421995'><span
-style='font-weight:normal;mso-no-proof:yes'><o:p></o:p></span></span></p>
-
-<p class=MsoToc1 style='tab-stops:right dotted 438.7pt'><span style='mso-bookmark:
-_Toc129421995'><span style='mso-no-proof:yes'>Description of CMOR Functions<span
-style='mso-tab-count:1 dotted'>................................................................................... </span></span></span><!--[if supportFields]><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-element:field-begin'></span><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'> PAGEREF
-_Toc134007296 \h <span style='mso-element:field-separator'></span></span></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'>11<!--[if gte mso 9]><xml>
- <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100330034003000300037003200390036000000</w:data>
-</xml><![endif]--></span></span><!--[if supportFields]><span style='mso-bookmark:
-_Toc129421995'></span><span style='mso-element:field-end'></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-bookmark:_Toc129421995'><span
-style='font-weight:normal;mso-no-proof:yes'><o:p></o:p></span></span></p>
-
-<p class=MsoToc2 style='tab-stops:right dotted 438.7pt'><span style='mso-bookmark:
-_Toc129421995'><span style='mso-no-proof:yes'>Preliminary notes:<span
-style='mso-tab-count:1 dotted'>.......................................................................................................... </span></span></span><!--[if supportFields]><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-element:field-begin'></span><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'> PAGEREF
-_Toc134007297 \h <span style='mso-element:field-separator'></span></span></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'>11<!--[if gte mso 9]><xml>
- <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100330034003000300037003200390037000000</w:data>
-</xml><![endif]--></span></span><!--[if supportFields]><span style='mso-bookmark:
-_Toc129421995'></span><span style='mso-element:field-end'></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-bookmark:_Toc129421995'><span
-style='font-size:12.0pt;font-weight:normal;mso-no-proof:yes'><o:p></o:p></span></span></p>
-
-<p class=MsoToc2 style='tab-stops:right dotted 438.7pt'><span style='mso-bookmark:
-_Toc129421995'><span style='mso-no-proof:yes'>Setting up CMOR<span
-style='mso-tab-count:1 dotted'>............................................................................................................. </span></span></span><!--[if supportFields]><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-element:field-begin'></span><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'> PAGEREF
-_Toc134007298 \h <span style='mso-element:field-separator'></span></span></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'>12<!--[if gte mso 9]><xml>
- <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100330034003000300037003200390038000000</w:data>
-</xml><![endif]--></span></span><!--[if supportFields]><span style='mso-bookmark:
-_Toc129421995'></span><span style='mso-element:field-end'></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-bookmark:_Toc129421995'><span
-style='font-size:12.0pt;font-weight:normal;mso-no-proof:yes'><o:p></o:p></span></span></p>
-
-<p class=MsoToc3 style='tab-stops:right dotted 438.7pt'><span style='mso-bookmark:
-_Toc129421995'><span style='mso-no-proof:yes'>Initialize CMOR: cmor_setup<span
-style='mso-tab-count:1 dotted'>....................................................................................................................................... </span></span></span><!--[if supportFields]><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-element:field-begin'></span><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'> PAGEREF
-_Toc134007299 \h <span style='mso-element:field-separator'></span></span></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'>12<!--[if gte mso 9]><xml>
- <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100330034003000300037003200390039000000</w:data>
-</xml><![endif]--></span></span><!--[if supportFields]><span style='mso-bookmark:
-_Toc129421995'></span><span style='mso-element:field-end'></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-bookmark:_Toc129421995'><span
-style='font-size:12.0pt;mso-no-proof:yes'><o:p></o:p></span></span></p>
-
-<p class=MsoToc2 style='tab-stops:right dotted 438.7pt'><span style='mso-bookmark:
-_Toc129421995'><span style='mso-no-proof:yes'>Dealing with Dataset<span
-style='mso-tab-count:1 dotted'>...................................................................................................... </span></span></span><!--[if supportFields]><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-element:field-begin'></span><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'> PAGEREF
-_Toc134007300 \h <span style='mso-element:field-separator'></span></span></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'>13<!--[if gte mso 9]><xml>
- <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100330034003000300037003300300030000000</w:data>
-</xml><![endif]--></span></span><!--[if supportFields]><span style='mso-bookmark:
-_Toc129421995'></span><span style='mso-element:field-end'></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-bookmark:_Toc129421995'><span
-style='font-size:12.0pt;font-weight:normal;mso-no-proof:yes'><o:p></o:p></span></span></p>
-
-<p class=MsoToc3 style='tab-stops:right dotted 438.7pt'><span style='mso-bookmark:
-_Toc129421995'><span style='mso-no-proof:yes'>Define a Dataset: cmor_dataset<span
-style='mso-tab-count:1 dotted'>.................................................................................................................................. </span></span></span><!--[if supportFields]><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-element:field-begin'></span><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'> PAGEREF
-_Toc134007301 \h <span style='mso-element:field-separator'></span></span></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'>13<!--[if gte mso 9]><xml>
- <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100330034003000300037003300300031000000</w:data>
-</xml><![endif]--></span></span><!--[if supportFields]><span style='mso-bookmark:
-_Toc129421995'></span><span style='mso-element:field-end'></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-bookmark:_Toc129421995'><span
-style='font-size:12.0pt;mso-no-proof:yes'><o:p></o:p></span></span></p>
-
-<p class=MsoToc3 style='tab-stops:right dotted 438.7pt'><span style='mso-bookmark:
-_Toc129421995'><span style='mso-no-proof:yes'>Define a Dataset Attribute: cmor_set_cur_dataset_attribute<span
-style='mso-tab-count:1 dotted'>................................................................. </span></span></span><!--[if supportFields]><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-element:field-begin'></span><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'> PAGEREF
-_Toc134007302 \h <span style='mso-element:field-separator'></span></span></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'>16<!--[if gte mso 9]><xml>
- <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100330034003000300037003300300032000000</w:data>
-</xml><![endif]--></span></span><!--[if supportFields]><span style='mso-bookmark:
-_Toc129421995'></span><span style='mso-element:field-end'></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-bookmark:_Toc129421995'><span
-style='font-size:12.0pt;mso-no-proof:yes'><o:p></o:p></span></span></p>
-
-<p class=MsoToc3 style='tab-stops:right dotted 438.7pt'><span style='mso-bookmark:
-_Toc129421995'><span style='mso-no-proof:yes'>Retrieve<span
-style="mso-spacerun: yes">  </span>a Dataset Attribute:
-cmor_get_cur_dataset_attribute<span style='mso-tab-count:1 dotted'>........................................................... </span></span></span><!--[if supportFields]><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-element:field-begin'></span><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'> PAGEREF
-_Toc134007303 \h <span style='mso-element:field-separator'></span></span></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'>17<!--[if gte mso 9]><xml>
- <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100330034003000300037003300300033000000</w:data>
-</xml><![endif]--></span></span><!--[if supportFields]><span style='mso-bookmark:
-_Toc129421995'></span><span style='mso-element:field-end'></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-bookmark:_Toc129421995'><span
-style='font-size:12.0pt;mso-no-proof:yes'><o:p></o:p></span></span></p>
-
-<p class=MsoToc3 style='tab-stops:right dotted 438.7pt'><span style='mso-bookmark:
-_Toc129421995'><span style='mso-no-proof:yes'>Inquire whether a Dataset
-Attribute Exists: cmor_has_cur_dataset_attribute<span style='mso-tab-count:
-1 dotted'>......................... </span></span></span><!--[if supportFields]><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-element:field-begin'></span><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'> PAGEREF
-_Toc134007304 \h <span style='mso-element:field-separator'></span></span></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'>17<!--[if gte mso 9]><xml>
- <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100330034003000300037003300300034000000</w:data>
-</xml><![endif]--></span></span><!--[if supportFields]><span style='mso-bookmark:
-_Toc129421995'></span><span style='mso-element:field-end'></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-bookmark:_Toc129421995'><span
-style='font-size:12.0pt;mso-no-proof:yes'><o:p></o:p></span></span></p>
-
-<p class=MsoToc2 style='tab-stops:right dotted 438.7pt'><span style='mso-bookmark:
-_Toc129421995'><span style='mso-no-proof:yes'>Dealing with tables<span
-style='mso-tab-count:1 dotted'>......................................................................................................... </span></span></span><!--[if supportFields]><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-element:field-begin'></span><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'> PAGEREF
-_Toc134007305 \h <span style='mso-element:field-separator'></span></span></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'>18<!--[if gte mso 9]><xml>
- <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100330034003000300037003300300035000000</w:data>
-</xml><![endif]--></span></span><!--[if supportFields]><span style='mso-bookmark:
-_Toc129421995'></span><span style='mso-element:field-end'></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-bookmark:_Toc129421995'><span
-style='font-size:12.0pt;font-weight:normal;mso-no-proof:yes'><o:p></o:p></span></span></p>
-
-<p class=MsoToc3 style='tab-stops:right dotted 438.7pt'><span style='mso-bookmark:
-_Toc129421995'><span style='mso-no-proof:yes'>Loading a Table in Memory from
-File:cmor_load_table<span style='mso-tab-count:1 dotted'>............................................................................. </span></span></span><!--[if supportFields]><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-element:field-begin'></span><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'> PAGEREF
-_Toc134007306 \h <span style='mso-element:field-separator'></span></span></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'>18<!--[if gte mso 9]><xml>
- <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100330034003000300037003300300036000000</w:data>
-</xml><![endif]--></span></span><!--[if supportFields]><span style='mso-bookmark:
-_Toc129421995'></span><span style='mso-element:field-end'></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-bookmark:_Toc129421995'><span
-style='font-size:12.0pt;mso-no-proof:yes'><o:p></o:p></span></span></p>
-
-<p class=MsoToc3 style='tab-stops:right dotted 438.7pt'><span style='mso-bookmark:
-_Toc129421995'><span style='mso-no-proof:yes'>Loading a Table from
-Memory:cmor_set_table<span style='mso-tab-count:1 dotted'>............................................................................................... </span></span></span><!--[if supportFields]><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-element:field-begin'></span><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'> PAGEREF
-_Toc134007307 \h <span style='mso-element:field-separator'></span></span></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'>18<!--[if gte mso 9]><xml>
- <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100330034003000300037003300300037000000</w:data>
-</xml><![endif]--></span></span><!--[if supportFields]><span style='mso-bookmark:
-_Toc129421995'></span><span style='mso-element:field-end'></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-bookmark:_Toc129421995'><span
-style='font-size:12.0pt;mso-no-proof:yes'><o:p></o:p></span></span></p>
-
-<p class=MsoToc2 style='tab-stops:right dotted 438.7pt'><span style='mso-bookmark:
-_Toc129421995'><span style='mso-no-proof:yes'>Dealing with Axes<span
-style='mso-tab-count:1 dotted'>........................................................................................................... </span></span></span><!--[if supportFields]><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-element:field-begin'></span><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'> PAGEREF _Toc134007308
-\h <span style='mso-element:field-separator'></span></span></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'>18<!--[if gte mso 9]><xml>
- <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100330034003000300037003300300038000000</w:data>
-</xml><![endif]--></span></span><!--[if supportFields]><span style='mso-bookmark:
-_Toc129421995'></span><span style='mso-element:field-end'></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-bookmark:_Toc129421995'><span
-style='font-size:12.0pt;font-weight:normal;mso-no-proof:yes'><o:p></o:p></span></span></p>
-
-<p class=MsoToc3 style='tab-stops:right dotted 438.7pt'><span style='mso-bookmark:
-_Toc129421995'><span style='mso-no-proof:yes'>Define an Axis: cmor_axis<span
-style='mso-tab-count:1 dotted'>............................................................................................................................................... </span></span></span><!--[if supportFields]><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-element:field-begin'></span><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'> PAGEREF
-_Toc134007309 \h <span style='mso-element:field-separator'></span></span></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'>18<!--[if gte mso 9]><xml>
- <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100330034003000300037003300300039000000</w:data>
-</xml><![endif]--></span></span><!--[if supportFields]><span style='mso-bookmark:
-_Toc129421995'></span><span style='mso-element:field-end'></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-bookmark:_Toc129421995'><span
-style='font-size:12.0pt;mso-no-proof:yes'><o:p></o:p></span></span></p>
-
-<p class=MsoToc3 style='tab-stops:right dotted 438.7pt'><span style='mso-bookmark:
-_Toc129421995'><span style='mso-no-proof:yes'>Define an Axis Attribute:
-cmor_set_axis_attribute<span style='mso-tab-count:1 dotted'>........................................................................................ </span></span></span><!--[if supportFields]><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-element:field-begin'></span><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'> PAGEREF
-_Toc134007310 \h <span style='mso-element:field-separator'></span></span></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'>21<!--[if gte mso 9]><xml>
- <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100330034003000300037003300310030000000</w:data>
-</xml><![endif]--></span></span><!--[if supportFields]><span style='mso-bookmark:
-_Toc129421995'></span><span style='mso-element:field-end'></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-bookmark:_Toc129421995'><span
-style='font-size:12.0pt;mso-no-proof:yes'><o:p></o:p></span></span></p>
-
-<p class=MsoToc3 style='tab-stops:right dotted 438.7pt'><span style='mso-bookmark:
-_Toc129421995'><span style='mso-no-proof:yes'>Retrieve an Axis Attribute:
-cmor_get_axis_attribute<span style='mso-tab-count:1 dotted'>.................................................................................. </span></span></span><!--[if supportFields]><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-element:field-begin'></span><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'> PAGEREF
-_Toc134007311 \h <span style='mso-element:field-separator'></span></span></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'>21<!--[if gte mso 9]><xml>
- <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100330034003000300037003300310031000000</w:data>
-</xml><![endif]--></span></span><!--[if supportFields]><span style='mso-bookmark:
-_Toc129421995'></span><span style='mso-element:field-end'></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-bookmark:_Toc129421995'><span
-style='font-size:12.0pt;mso-no-proof:yes'><o:p></o:p></span></span></p>
-
-<p class=MsoToc3 style='tab-stops:right dotted 438.7pt'><span style='mso-bookmark:
-_Toc129421995'><span style='mso-no-proof:yes'>Inquire whether an Axis Attribute
-Exists: cmor_has_axis_attribute<span style='mso-tab-count:1 dotted'>................................................ </span></span></span><!--[if supportFields]><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-element:field-begin'></span><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'> PAGEREF
-_Toc134007312 \h <span style='mso-element:field-separator'></span></span></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'>22<!--[if gte mso 9]><xml>
- <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100330034003000300037003300310032000000</w:data>
-</xml><![endif]--></span></span><!--[if supportFields]><span style='mso-bookmark:
-_Toc129421995'></span><span style='mso-element:field-end'></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-bookmark:_Toc129421995'><span
-style='font-size:12.0pt;mso-no-proof:yes'><o:p></o:p></span></span></p>
-
-<p class=MsoToc2 style='tab-stops:right dotted 438.7pt'><span style='mso-bookmark:
-_Toc129421995'><span style='mso-no-proof:yes'>Dealing with Grids<span
-style='mso-tab-count:1 dotted'>.......................................................................................................... </span></span></span><!--[if supportFields]><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-element:field-begin'></span><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'> PAGEREF
-_Toc134007313 \h <span style='mso-element:field-separator'></span></span></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'>22<!--[if gte mso 9]><xml>
- <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100330034003000300037003300310033000000</w:data>
-</xml><![endif]--></span></span><!--[if supportFields]><span style='mso-bookmark:
-_Toc129421995'></span><span style='mso-element:field-end'></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-bookmark:_Toc129421995'><span
-style='font-size:12.0pt;font-weight:normal;mso-no-proof:yes'><o:p></o:p></span></span></p>
-
-<p class=MsoToc3 style='tab-stops:right dotted 438.7pt'><span style='mso-bookmark:
-_Toc129421995'><span style='mso-no-proof:yes'>Define a Grid: cmor_grid<span
-style='mso-tab-count:1 dotted'>................................................................................................................................................. </span></span></span><!--[if supportFields]><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-element:field-begin'></span><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'> PAGEREF
-_Toc134007314 \h <span style='mso-element:field-separator'></span></span></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'>22<!--[if gte mso 9]><xml>
- <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100330034003000300037003300310034000000</w:data>
-</xml><![endif]--></span></span><!--[if supportFields]><span style='mso-bookmark:
-_Toc129421995'></span><span style='mso-element:field-end'></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-bookmark:_Toc129421995'><span
-style='font-size:12.0pt;mso-no-proof:yes'><o:p></o:p></span></span></p>
-
-<p class=MsoToc3 style='tab-stops:right dotted 438.7pt'><span style='mso-bookmark:
-_Toc129421995'><span style='mso-no-proof:yes'>Define Grid Mapping Parameters:
-cmor_set_grid_mapping<span style='mso-tab-count:1 dotted'>.................................................................... </span></span></span><!--[if supportFields]><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-element:field-begin'></span><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'> PAGEREF
-_Toc134007315 \h <span style='mso-element:field-separator'></span></span></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'>23<!--[if gte mso 9]><xml>
- <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100330034003000300037003300310035000000</w:data>
-</xml><![endif]--></span></span><!--[if supportFields]><span style='mso-bookmark:
-_Toc129421995'></span><span style='mso-element:field-end'></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-bookmark:_Toc129421995'><span
-style='font-size:12.0pt;mso-no-proof:yes'><o:p></o:p></span></span></p>
-
-<p class=MsoToc3 style='tab-stops:right dotted 438.7pt'><span style='mso-bookmark:
-_Toc129421995'><span style='mso-no-proof:yes'>Define a Coordinate Variable for
-a Time Varying Grid: cmor_time_varying_grid_coordinate<span style='mso-tab-count:
-1'>               </span></span></span><!--[if supportFields]><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-element:field-begin'></span><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'> PAGEREF
-_Toc134007316 \h <span style='mso-element:field-separator'></span></span></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'>25<!--[if gte mso 9]><xml>
- <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100330034003000300037003300310036000000</w:data>
-</xml><![endif]--></span></span><!--[if supportFields]><span style='mso-bookmark:
-_Toc129421995'></span><span style='mso-element:field-end'></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-bookmark:_Toc129421995'><span
-style='font-size:12.0pt;mso-no-proof:yes'><o:p></o:p></span></span></p>
-
-<p class=MsoToc2 style='tab-stops:right dotted 438.7pt'><span style='mso-bookmark:
-_Toc129421995'><span style='mso-no-proof:yes'>Vertical Dimensions<span
-style='mso-tab-count:1 dotted'>....................................................................................................... </span></span></span><!--[if supportFields]><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-element:field-begin'></span><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'> PAGEREF
-_Toc134007317 \h <span style='mso-element:field-separator'></span></span></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'>26<!--[if gte mso 9]><xml>
- <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100330034003000300037003300310037000000</w:data>
-</xml><![endif]--></span></span><!--[if supportFields]><span style='mso-bookmark:
-_Toc129421995'></span><span style='mso-element:field-end'></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-bookmark:_Toc129421995'><span
-style='font-size:12.0pt;font-weight:normal;mso-no-proof:yes'><o:p></o:p></span></span></p>
-
-<p class=MsoToc3 style='tab-stops:right dotted 438.7pt'><span style='mso-bookmark:
-_Toc129421995'><span style='mso-no-proof:yes'>Provide Non-Dimensional Vertical
-Coordinate Information: cmor_zfactor<span style='mso-tab-count:1 dotted'>............................... </span></span></span><!--[if supportFields]><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-element:field-begin'></span><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'> PAGEREF
-_Toc134007318 \h <span style='mso-element:field-separator'></span></span></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'>26<!--[if gte mso 9]><xml>
- <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100330034003000300037003300310038000000</w:data>
-</xml><![endif]--></span></span><!--[if supportFields]><span style='mso-bookmark:
-_Toc129421995'></span><span style='mso-element:field-end'></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-bookmark:_Toc129421995'><span
-style='font-size:12.0pt;mso-no-proof:yes'><o:p></o:p></span></span></p>
-
-<p class=MsoToc2 style='tab-stops:right dotted 438.7pt'><span style='mso-bookmark:
-_Toc129421995'><span style='mso-no-proof:yes'>Variables<span style='mso-tab-count:
-1 dotted'>......................................................................................................................... </span></span></span><!--[if supportFields]><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-element:field-begin'></span><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'> PAGEREF
-_Toc134007319 \h <span style='mso-element:field-separator'></span></span></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'>28<!--[if gte mso 9]><xml>
- <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100330034003000300037003300310039000000</w:data>
-</xml><![endif]--></span></span><!--[if supportFields]><span style='mso-bookmark:
-_Toc129421995'></span><span style='mso-element:field-end'></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-bookmark:_Toc129421995'><span
-style='font-size:12.0pt;font-weight:normal;mso-no-proof:yes'><o:p></o:p></span></span></p>
-
-<p class=MsoToc3 style='tab-stops:right dotted 438.7pt'><span style='mso-bookmark:
-_Toc129421995'><span style='mso-no-proof:yes'>Define a Variable: cmor_variable<span
-style='mso-tab-count:1 dotted'>.............................................................................................................................. </span></span></span><!--[if supportFields]><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-element:field-begin'></span><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'> PAGEREF
-_Toc134007320 \h <span style='mso-element:field-separator'></span></span></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'>28<!--[if gte mso 9]><xml>
- <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100330034003000300037003300320030000000</w:data>
-</xml><![endif]--></span></span><!--[if supportFields]><span style='mso-bookmark:
-_Toc129421995'></span><span style='mso-element:field-end'></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-bookmark:_Toc129421995'><span
-style='font-size:12.0pt;mso-no-proof:yes'><o:p></o:p></span></span></p>
-
-<p class=MsoToc3 style='tab-stops:right dotted 438.7pt'><span style='mso-bookmark:
-_Toc129421995'><span style='mso-no-proof:yes'>Define a Variable Attribute:
-cmor_set_variable_attribute<span style='mso-tab-count:1 dotted'>....................................................................... </span></span></span><!--[if supportFields]><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-element:field-begin'></span><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'> PAGEREF
-_Toc134007321 \h <span style='mso-element:field-separator'></span></span></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'>30<!--[if gte mso 9]><xml>
- <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100330034003000300037003300320031000000</w:data>
-</xml><![endif]--></span></span><!--[if supportFields]><span style='mso-bookmark:
-_Toc129421995'></span><span style='mso-element:field-end'></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-bookmark:_Toc129421995'><span
-style='font-size:12.0pt;mso-no-proof:yes'><o:p></o:p></span></span></p>
-
-<p class=MsoToc3 style='tab-stops:right dotted 438.7pt'><span style='mso-bookmark:
-_Toc129421995'><span style='mso-no-proof:yes'>Retrieve a Variable Attribute:
-cmor_get_variable_attribute<span style='mso-tab-count:1 dotted'>.................................................................. </span></span></span><!--[if supportFields]><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-element:field-begin'></span><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'> PAGEREF
-_Toc134007322 \h <span style='mso-element:field-separator'></span></span></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'>31<!--[if gte mso 9]><xml>
- <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100330034003000300037003300320032000000</w:data>
-</xml><![endif]--></span></span><!--[if supportFields]><span style='mso-bookmark:
-_Toc129421995'></span><span style='mso-element:field-end'></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-bookmark:_Toc129421995'><span
-style='font-size:12.0pt;mso-no-proof:yes'><o:p></o:p></span></span></p>
-
-<p class=MsoToc3 style='tab-stops:right dotted 438.7pt'><span style='mso-bookmark:
-_Toc129421995'><span style='mso-no-proof:yes'>Inquire Whether a Variable
-Attribute Exists: cmor_has_variable_attribute<span style='mso-tab-count:1 dotted'>............................... </span></span></span><!--[if supportFields]><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-element:field-begin'></span><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'> PAGEREF
-_Toc134007323 \h <span style='mso-element:field-separator'></span></span></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'>31<!--[if gte mso 9]><xml>
- <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100330034003000300037003300320033000000</w:data>
-</xml><![endif]--></span></span><!--[if supportFields]><span style='mso-bookmark:
-_Toc129421995'></span><span style='mso-element:field-end'></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-bookmark:_Toc129421995'><span
-style='font-size:12.0pt;mso-no-proof:yes'><o:p></o:p></span></span></p>
-
-<p class=MsoToc2 style='tab-stops:right dotted 438.7pt'><span style='mso-bookmark:
-_Toc129421995'><span style='mso-no-proof:yes'>Writing Data<span
-style='mso-tab-count:1 dotted'>................................................................................................................... </span></span></span><!--[if supportFields]><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-element:field-begin'></span><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'> PAGEREF
-_Toc134007324 \h <span style='mso-element:field-separator'></span></span></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'>32<!--[if gte mso 9]><xml>
- <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100330034003000300037003300320034000000</w:data>
-</xml><![endif]--></span></span><!--[if supportFields]><span style='mso-bookmark:
-_Toc129421995'></span><span style='mso-element:field-end'></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-bookmark:_Toc129421995'><span
-style='font-size:12.0pt;font-weight:normal;mso-no-proof:yes'><o:p></o:p></span></span></p>
-
-<p class=MsoToc3 style='tab-stops:right dotted 438.7pt'><span style='mso-bookmark:
-_Toc129421995'><span style='mso-no-proof:yes'>Generate Output Path:
-cmor_create_output_path<span style='mso-tab-count:1 dotted'>......................................................................................... </span></span></span><!--[if supportFields]><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-element:field-begin'></span><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'> PAGEREF
-_Toc134007325 \h <span style='mso-element:field-separator'></span></span></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'>32<!--[if gte mso 9]><xml>
- <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100330034003000300037003300320035000000</w:data>
-</xml><![endif]--></span></span><!--[if supportFields]><span style='mso-bookmark:
-_Toc129421995'></span><span style='mso-element:field-end'></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-bookmark:_Toc129421995'><span
-style='font-size:12.0pt;mso-no-proof:yes'><o:p></o:p></span></span></p>
-
-<p class=MsoToc3 style='tab-stops:right dotted 438.7pt'><span style='mso-bookmark:
-_Toc129421995'><span style='mso-no-proof:yes'>Write Data to File: cmor_write<span
-style='mso-tab-count:1 dotted'>.................................................................................................................................. </span></span></span><!--[if supportFields]><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-element:field-begin'></span><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'> PAGEREF
-_Toc134007326 \h <span style='mso-element:field-separator'></span></span></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'>32<!--[if gte mso 9]><xml>
- <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100330034003000300037003300320036000000</w:data>
-</xml><![endif]--></span></span><!--[if supportFields]><span style='mso-bookmark:
-_Toc129421995'></span><span style='mso-element:field-end'></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-bookmark:_Toc129421995'><span
-style='font-size:12.0pt;mso-no-proof:yes'><o:p></o:p></span></span></p>
-
-<p class=MsoToc3 style='tab-stops:right dotted 438.7pt'><span style='mso-bookmark:
-_Toc129421995'><span style='mso-no-proof:yes'>Close File(s): cmor_close<span
-style='mso-tab-count:1 dotted'>............................................................................................................................................... </span></span></span><!--[if supportFields]><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-element:field-begin'></span><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'> PAGEREF
-_Toc134007327 \h <span style='mso-element:field-separator'></span></span></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'>34<!--[if gte mso 9]><xml>
- <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100330034003000300037003300320037000000</w:data>
-</xml><![endif]--></span></span><!--[if supportFields]><span style='mso-bookmark:
-_Toc129421995'></span><span style='mso-element:field-end'></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-bookmark:_Toc129421995'><span
-style='font-size:12.0pt;mso-no-proof:yes'><o:p></o:p></span></span></p>
-
-<p class=MsoToc1 style='tab-stops:right dotted 438.7pt'><span style='mso-bookmark:
-_Toc129421995'><span style='mso-no-proof:yes'>Appendix A: Errors in CMOR<span
-style='mso-tab-count:1 dotted'>........................................................................................ </span></span></span><!--[if supportFields]><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-element:field-begin'></span><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'> PAGEREF
-_Toc134007328 \h <span style='mso-element:field-separator'></span></span></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'>36<!--[if gte mso 9]><xml>
- <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100330034003000300037003300320038000000</w:data>
-</xml><![endif]--></span></span><!--[if supportFields]><span style='mso-bookmark:
-_Toc129421995'></span><span style='mso-element:field-end'></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-bookmark:_Toc129421995'><span
-style='font-weight:normal;mso-no-proof:yes'><o:p></o:p></span></span></p>
-
-<p class=MsoToc2 style='tab-stops:right dotted 438.7pt'><span style='mso-bookmark:
-_Toc129421995'><span style='mso-no-proof:yes'>Critical Errors<span
-style='mso-tab-count:1 dotted'>.................................................................................................................. </span></span></span><!--[if supportFields]><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-element:field-begin'></span><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'> PAGEREF
-_Toc134007329 \h <span style='mso-element:field-separator'></span></span></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'>36<!--[if gte mso 9]><xml>
- <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100330034003000300037003300320039000000</w:data>
-</xml><![endif]--></span></span><!--[if supportFields]><span style='mso-bookmark:
-_Toc129421995'></span><span style='mso-element:field-end'></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-bookmark:_Toc129421995'><span
-style='font-size:12.0pt;font-weight:normal;mso-no-proof:yes'><o:p></o:p></span></span></p>
-
-<p class=MsoToc1 style='tab-stops:right dotted 438.7pt'><span style='mso-bookmark:
-_Toc129421995'><span style='mso-no-proof:yes'>Appendix B: Limits in cmor<span
-style='mso-tab-count:1 dotted'>.......................................................................................... </span></span></span><!--[if supportFields]><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-element:field-begin'></span><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'> PAGEREF
-_Toc134007330 \h <span style='mso-element:field-separator'></span></span></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'>39<!--[if gte mso 9]><xml>
- <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100330034003000300037003300330030000000</w:data>
-</xml><![endif]--></span></span><!--[if supportFields]><span style='mso-bookmark:
-_Toc129421995'></span><span style='mso-element:field-end'></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-bookmark:_Toc129421995'><span
-style='font-weight:normal;mso-no-proof:yes'><o:p></o:p></span></span></p>
-
-<p class=MsoToc1 style='tab-stops:right dotted 438.7pt'><span style='mso-bookmark:
-_Toc129421995'><span style='mso-no-proof:yes'>Appendix C: Sample Codes<span
-style='mso-tab-count:1 dotted'>............................................................................................. </span></span></span><!--[if supportFields]><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-element:field-begin'></span><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'> PAGEREF
-_Toc134007331 \h <span style='mso-element:field-separator'></span></span></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'>40<!--[if gte mso 9]><xml>
- <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100330034003000300037003300330031000000</w:data>
-</xml><![endif]--></span></span><!--[if supportFields]><span style='mso-bookmark:
-_Toc129421995'></span><span style='mso-element:field-end'></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-bookmark:_Toc129421995'><span
-style='font-weight:normal;mso-no-proof:yes'><o:p></o:p></span></span></p>
-
-<p class=MsoToc2 style='tab-stops:right dotted 438.7pt'><span style='mso-bookmark:
-_Toc129421995'><span style='mso-no-proof:yes'>FORTRAN<span style='mso-tab-count:
-1 dotted'>......................................................................................................................... </span></span></span><!--[if supportFields]><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-element:field-begin'></span><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'> PAGEREF
-_Toc134007332 \h <span style='mso-element:field-separator'></span></span></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'>40<!--[if gte mso 9]><xml>
- <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100330034003000300037003300330032000000</w:data>
-</xml><![endif]--></span></span><!--[if supportFields]><span style='mso-bookmark:
-_Toc129421995'></span><span style='mso-element:field-end'></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-bookmark:_Toc129421995'><span
-style='font-size:12.0pt;font-weight:normal;mso-no-proof:yes'><o:p></o:p></span></span></p>
-
-<p class=MsoToc3 style='tab-stops:right dotted 438.7pt'><span style='mso-bookmark:
-_Toc129421995'><span style='mso-no-proof:yes'>Sample Program 1<span
-style='mso-tab-count:1 dotted'>............................................................................................................................................................... </span></span></span><!--[if supportFields]><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-element:field-begin'></span><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'> PAGEREF
-_Toc134007333 \h <span style='mso-element:field-separator'></span></span></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'>40<!--[if gte mso 9]><xml>
- <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100330034003000300037003300330033000000</w:data>
-</xml><![endif]--></span></span><!--[if supportFields]><span style='mso-bookmark:
-_Toc129421995'></span><span style='mso-element:field-end'></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-bookmark:_Toc129421995'><span
-style='font-size:12.0pt;mso-no-proof:yes'><o:p></o:p></span></span></p>
-
-<p class=MsoToc2 style='tab-stops:right dotted 438.7pt'><span style='mso-bookmark:
-_Toc129421995'><span style='mso-no-proof:yes'>C<span style='mso-tab-count:1 dotted'>....................................................................................................................................... </span></span></span><!--[if supportFields]><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-element:field-begin'></span><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'> PAGEREF
-_Toc134007334 \h <span style='mso-element:field-separator'></span></span></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'>49<!--[if gte mso 9]><xml>
- <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100330034003000300037003300330034000000</w:data>
-</xml><![endif]--></span></span><!--[if supportFields]><span style='mso-bookmark:
-_Toc129421995'></span><span style='mso-element:field-end'></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-bookmark:_Toc129421995'><span
-style='font-size:12.0pt;font-weight:normal;mso-no-proof:yes'><o:p></o:p></span></span></p>
-
-<p class=MsoToc3 style='tab-stops:right dotted 438.7pt'><span style='mso-bookmark:
-_Toc129421995'><span style='mso-no-proof:yes'>Sample Program 1: grids<span
-style='mso-tab-count:1 dotted'>................................................................................................................................................ </span></span></span><!--[if supportFields]><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-element:field-begin'></span><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'> PAGEREF
-_Toc134007335 \h <span style='mso-element:field-separator'></span></span></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'>49<!--[if gte mso 9]><xml>
- <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100330034003000300037003300330035000000</w:data>
-</xml><![endif]--></span></span><!--[if supportFields]><span style='mso-bookmark:
-_Toc129421995'></span><span style='mso-element:field-end'></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-bookmark:_Toc129421995'><span
-style='font-size:12.0pt;mso-no-proof:yes'><o:p></o:p></span></span></p>
-
-<p class=MsoToc2 style='tab-stops:right dotted 438.7pt'><span style='mso-bookmark:
-_Toc129421995'><span style='mso-no-proof:yes'>PYTHON<span style='mso-tab-count:
-1 dotted'>.......................................................................................................................... </span></span></span><!--[if supportFields]><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-element:field-begin'></span><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'> PAGEREF
-_Toc134007336 \h <span style='mso-element:field-separator'></span></span></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'>53<!--[if gte mso 9]><xml>
- <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100330034003000300037003300330036000000</w:data>
-</xml><![endif]--></span></span><!--[if supportFields]><span style='mso-bookmark:
-_Toc129421995'></span><span style='mso-element:field-end'></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-bookmark:_Toc129421995'><span
-style='font-size:12.0pt;font-weight:normal;mso-no-proof:yes'><o:p></o:p></span></span></p>
-
-<p class=MsoToc3 style='tab-stops:right dotted 438.7pt'><span style='mso-bookmark:
-_Toc129421995'><span style='mso-no-proof:yes'>Sample Program 1<span
-style='mso-tab-count:1 dotted'>............................................................................................................................................................... </span></span></span><!--[if supportFields]><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-element:field-begin'></span><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'> PAGEREF
-_Toc134007337 \h <span style='mso-element:field-separator'></span></span></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'>53<!--[if gte mso 9]><xml>
- <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100330034003000300037003300330037000000</w:data>
-</xml><![endif]--></span></span><!--[if supportFields]><span style='mso-bookmark:
-_Toc129421995'></span><span style='mso-element:field-end'></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-bookmark:_Toc129421995'><span
-style='font-size:12.0pt;mso-no-proof:yes'><o:p></o:p></span></span></p>
-
-<p class=MsoToc3 style='tab-stops:right dotted 438.7pt'><span style='mso-bookmark:
-_Toc129421995'><span style='mso-no-proof:yes'>Sample Program 2: grids<span
-style='mso-tab-count:1 dotted'>................................................................................................................................................ </span></span></span><!--[if supportFields]><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-element:field-begin'></span><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'> PAGEREF
-_Toc134007338 \h <span style='mso-element:field-separator'></span></span></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'>54<!--[if gte mso 9]><xml>
- <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100330034003000300037003300330038000000</w:data>
-</xml><![endif]--></span></span><!--[if supportFields]><span style='mso-bookmark:
-_Toc129421995'></span><span style='mso-element:field-end'></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-bookmark:_Toc129421995'><span
-style='font-size:12.0pt;mso-no-proof:yes'><o:p></o:p></span></span></p>
-
-<p class=MsoToc1 style='tab-stops:right dotted 438.7pt'><span style='mso-bookmark:
-_Toc129421995'><span style='mso-no-proof:yes'>Appendix D: MIP Tables<span
-style='mso-tab-count:1 dotted'>................................................................................................. </span></span></span><!--[if supportFields]><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-element:field-begin'></span><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'> PAGEREF
-_Toc134007339 \h <span style='mso-element:field-separator'></span></span></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'>57<!--[if gte mso 9]><xml>
- <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100330034003000300037003300330039000000</w:data>
-</xml><![endif]--></span></span><!--[if supportFields]><span style='mso-bookmark:
-_Toc129421995'></span><span style='mso-element:field-end'></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-bookmark:_Toc129421995'><span
-style='font-weight:normal;mso-no-proof:yes'><o:p></o:p></span></span></p>
-
-<p class=MsoToc2 style='tab-stops:right dotted 438.7pt'><span style='mso-bookmark:
-_Toc129421995'><span style='mso-no-proof:yes'>CMOR 1 sample<span
-style='mso-tab-count:1 dotted'>............................................................................................................... </span></span></span><!--[if supportFields]><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-element:field-begin'></span><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'> PAGEREF
-_Toc134007340 \h <span style='mso-element:field-separator'></span></span></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'>57<!--[if gte mso 9]><xml>
- <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100330034003000300037003300340030000000</w:data>
-</xml><![endif]--></span></span><!--[if supportFields]><span style='mso-bookmark:
-_Toc129421995'></span><span style='mso-element:field-end'></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-bookmark:_Toc129421995'><span
-style='font-size:12.0pt;font-weight:normal;mso-no-proof:yes'><o:p></o:p></span></span></p>
-
-<p class=MsoToc2 style='tab-stops:right dotted 438.7pt'><span style='mso-bookmark:
-_Toc129421995'><span style='mso-no-proof:yes'>CMOR 2 (table excerpts)<span
-style='mso-tab-count:1 dotted'>................................................................................................. </span></span></span><!--[if supportFields]><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-element:field-begin'></span><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'> PAGEREF
-_Toc134007341 \h <span style='mso-element:field-separator'></span></span></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'><span style='mso-no-proof:yes'>65<!--[if gte mso 9]><xml>
- <w:data>08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F0054006F0063003100330034003000300037003300340031000000</w:data>
-</xml><![endif]--></span></span><!--[if supportFields]><span style='mso-bookmark:
-_Toc129421995'></span><span style='mso-element:field-end'></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-bookmark:_Toc129421995'><span
-style='font-size:12.0pt;font-weight:normal;mso-no-proof:yes'><o:p></o:p></span></span></p>
-
-<h1><span style='mso-bookmark:_Toc129421995'></span><!--[if supportFields]><span
-style='mso-bookmark:_Toc129421995'></span><span style='mso-element:field-end'></span><![endif]--><span
-style='mso-bookmark:_Toc129421995'><br clear=ALL style='page-break-before:always'>
-<a name="_Toc134007294">Design Considerations and Overview</a></span><span
-style='mso-bookmark:_Toc134007294'></span><span style='mso-bookmark:_Toc129421995'></span><span
-style='font-size:14.0pt'><o:p></o:p></span></h1>
-
-<p class=MsoNormal><o:p> </o:p></p>
-
-<p class=MsoNormal style='text-align:justify'>This document describes Version 2
-of a software library called "Climate Model Output Rewriter" (CMOR2),<a
-style='mso-footnote-id:ftn' href="#_ftn1" name="_ftnref" title=""><span
-class=MsoFootnoteReference><span style='mso-special-character:footnote'><![if !supportFootnotes]>[1]<![endif]></span></span></a>
-written in C with access also provided via Fortran 90 and through Python<a
-style='mso-footnote-id:ftn' href="#_ftn2" name="_ftnref" title=""><span
-class=MsoFootnoteReference><span style='mso-special-character:footnote'><![if !supportFootnotes]>[2]<![endif]></span></span></a>.
-<span style="mso-spacerun: yes"> </span>CMOR is used to produce
-CF-compliant<a style='mso-footnote-id:ftn' href="#_ftn3" name="_ftnref" title=""><span
-class=MsoFootnoteReference><span style='mso-special-character:footnote'><![if !supportFootnotes]>[3]<![endif]></span></span></a>
-netCDF<a style='mso-footnote-id:ftn' href="#_ftn4" name="_ftnref" title=""><span
-class=MsoFootnoteReference><span style='mso-special-character:footnote'><![if !supportFootnotes]>[4]<![endif]></span></span></a>
-files.<span style="mso-spacerun: yes">  </span>The structure of the files
-created by CMOR and the metadata they contain fulfill the requirements of many
-of the climate community's standard model experiments (which are referred to
-here as "MIPs"<a style='mso-footnote-id:ftn' href="#_ftn5"
-name="_ftnref" title=""><span class=MsoFootnoteReference><span
-style='mso-special-character:footnote'><![if !supportFootnotes]>[5]<![endif]></span></span></a>
-and include, for example, AMIP, CMIP, CFMIP, PMIP, APE, and IPCC scenario
-runs).<span style="mso-spacerun: yes">   </span><o:p></o:p></p>
-
-<p class=MsoNormal style='text-align:justify'><o:p> </o:p></p>
-
-<p class=MsoNormal style='text-align:justify'>CMOR was not designed to serve as
-an all-purpose writer of CF-compliant netCDF files, but simply to reduce the
-effort required to prepare and manage MIP model output.<span
-style="mso-spacerun: yes">  </span>Although MIPs encourage systematic
-analysis of results across models, this is only easy to do if the model output
-is written in a common format with files structured similarly and with
-sufficient metadata uniformly stored according to a common standard.<span
-style="mso-spacerun: yes">  </span>Individual modeling groups store their
-data in different ways, but if a group can read its own data, then it should
-easily be able to transform the data, using CMOR, into the common format
-required by the MIPs.<span style="mso-spacerun: yes">   </span>The
-adoption of CMOR as a standard code for exchanging climate data will facilitate
-participation in MIPs because after learning how to satisfy the output requirements
-of one MIP, it will be easy to prepare output for other MIPs.<o:p></o:p></p>
-
-<p class=MsoNormal style='text-align:justify'><o:p> </o:p></p>
-
-<p class=MsoNormal style='text-align:justify'>CMOR output has the following
-characteristics:<o:p></o:p></p>
-
-<p class=MsoNormal style='text-align:justify'><o:p> </o:p></p>
-
-<ul style='margin-top:0in' type=disc>
- <li class=MsoNormal style='text-align:justify;mso-list:l21 level1 lfo3;
-     tab-stops:list .5in'>Each file contains a single output variable (along
-     with coordinate/grid variables, attributes and other metadata) from a
-     single model and a single simulation (i.e., from a single ensemble member
-     of a single climate experiment).<span style="mso-spacerun: yes"> 
-     </span>This method of structuring model output best serves the needs of
-     most researchers who are typically interested in only a few of the many
-     variables in the MIP databases.<span style="mso-spacerun: yes"> 
-     </span>Data requests can be satisfied by simply sending the appropriate
-     file(s) without first extracting the individual field(s) of interest.<o:p></o:p></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l21 level1 lfo3;
-     tab-stops:list .5in'>There is flexibility in specifying how many time
-     slices (samples) are stored in a single file. A single file can contain
-     all the time-samples for a given variable and climate experiment, or the
-     samples can be distributed in a sequence of files. <o:p></o:p></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l21 level1 lfo3;
-     tab-stops:list .5in'>Much of the metadata written to the output files is
-     defined in MIP-specific tables of information, which in this document are
-     referred to simply as "MIP tables".<span style="mso-spacerun:
-     yes">  </span>These tables are ASCII files that can be read by CMOR
-     and are typically made available from MIP web sites.<span
-     style="mso-spacerun: yes">  </span>Because these tables contain much
-     of the metadata that is useful in the MIP context, they are the key to
-     reducing the programming burden imposed on the individual users
-     contributing data to a MIP.<span style="mso-spacerun: yes"> 
-     </span>Additional tables can be created as new MIPs are born.<o:p></o:p></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l21 level1 lfo3;
-     tab-stops:list .5in'>For metadata, different MIPs may have different
-     requirements, but these are accommodated by CMOR, within the constraints
-     of the CF convention and as specified in the MIP tables.<o:p></o:p></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l21 level1 lfo3;
-     tab-stops:list .5in'><span style='background:silver;mso-highlight:silver'>CMOR
-     can rely on NetCDF4 (see </span><a
-     href="http://www.unidata.ucar.edu/software/netcdf"><span style='background:
-     silver;mso-highlight:silver'>http://www.unidata.ucar.edu/software/netcdf</span></a><span
-     style='background:silver;mso-highlight:silver'> ) to write the output files
-     and can take advantage of its compression and chunking capabilities. In
-     that case, compression is controlled with the MIP tables using the
-     shuffle, deflate and deflate_level attributes, default values are
-     respectively 1, 1 and 6. It is worth noting that even when using NetCDF4,
-     CMOR2 still produces NETCDF_CLASSIC formatted output. This allows the file
-     generated to be readable by any application that can read NetCDF3 provided
-     they are re-linked against NetCDF4. <span style="mso-spacerun:
-     yes"> </span>When using the NetCDF4 library it is also still possible
-     to write files that can be read through the NetCDF3 library by adding “_3”
-     to the appropriate cmor_setup argument (see below). Either way, CMOR2
-     output NetCDF3 files by default.<o:p></o:p></span></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l21 level1 lfo3;
-     tab-stops:list .5in'><span style='background:silver;mso-highlight:silver'>CMOR
-     also must be linked against the udunits2 library (see<span
-     class=MsoHyperlink> </span></span><a
-     href="http://my.unidata.ucar.edu/content/%20software/udunits/"><span
-     style='background:silver;mso-highlight:silver'>http://my.unidata.ucar.edu/content/
-     software/udunits/</span></a><span style='background:silver;mso-highlight:
-     silver'>), which enables CMOR to check that the units attribute is correct<a
-     style='mso-footnote-id:ftn' href="#_ftn6" name="_ftnref" title=""><span
-     class=MsoFootnoteReference><span style='mso-special-character:footnote'><![if !supportFootnotes]>[6]<![endif]></span></span></a>.
-     Finally CMOR2 must also be linked against the uuid library (see </span><a
-     href="http://www.ossp.org/pkg/lib/uuid"><span style='background:silver;
-     mso-highlight:silver'>http://www.ossp.org/pkg/lib/uuid</span></a><span
-     style='background:silver;mso-highlight:silver'>) in order to produce a
-     unique tracking number for each file</span>.<span style='background:silver;
-     mso-highlight:silver'> <span style="mso-spacerun: yes"> </span><span
-     style="mso-spacerun: yes"> </span><o:p></o:p></span></li>
-</ul>
-
-<p class=MsoNormal style='text-align:justify'><o:p> </o:p></p>
-
-<p class=MsoNormal style='text-align:justify'>Although the CMOR output adheres
-to a fairly rigid structure, there is considerable flexibility allowed in the
-design of codes that write data through the CMOR functions.<span
-style="mso-spacerun: yes">  </span>Depending on how the source data are
-stored, one might want to structure a code to read and rewrite the data through
-CMOR in several different ways.<span style="mso-spacerun: yes"> 
-</span>Consider, for example, a case where data are originally stored in
-"history" files that contain many different fields, but a single time
-sample.<span style="mso-spacerun: yes">   </span>If one were to
-process several different fields through CMOR and one wanted to include many
-time samples per file, then it would usually be more efficient to read all the
-fields from the single input file at the same time, and then distribute them to
-the appropriate CMOR output files, rather than to process all the time-samples
-for a single field and then move on to the next field.<span
-style="mso-spacerun: yes">  </span>If, however, the original data were
-stored already by field (i.e., one variable per file), then it would make more
-sense to simply loop through the fields, one at a time.<span
-style="mso-spacerun: yes">  </span>The user is free to structure the
-conversion program in either of these ways (among others).<o:p></o:p></p>
-
-<p class=MsoNormal style='text-align:justify'><o:p> </o:p></p>
-
-<p class=MsoNormal style='text-align:justify'>Converting data with CMOR
-typically involves the following steps (with the CMOR function names given in
-parentheses):<o:p></o:p></p>
-
-<p class=MsoNormal style='text-align:justify'><o:p> </o:p></p>
-
-<ul style='margin-top:0in' type=disc>
- <li class=MsoNormal style='text-align:justify;mso-list:l13 level1 lfo5;
-     tab-stops:list .5in'>Initialize CMOR and specify where output will be
-     written and how error messages will be handled (cmor_setup).<o:p></o:p></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l13 level1 lfo5;
-     tab-stops:list .5in'>Provide information directing where output should be
-     placed and identifying the data source, project name, experiment, etc.
-     (cmor_dataset).<o:p></o:p></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l13 level1 lfo5;
-     tab-stops:list .5in'><span style='background:silver;mso-highlight:silver'>Set
-     any additional “dataset” (i.e. global) attributes (cmor_set_cur_dataset
-     function).<span style="mso-spacerun: yes">  </span>Note that for
-     CMIP5 all the required global attributes are normally set by calling other
-     CMOR subroutines, but this subroutine makes it possible for the user to
-     define additional global attributes.<o:p></o:p></span></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l13 level1 lfo5;
-     tab-stops:list .5in'>Define the axes (i.e., the coordinate values)
-     associated with each of the dimensions of the data to be written and
-     obtain "handles", to be used in the next step, which uniquely
-     identify the axes (cmor_axis).<span style="mso-spacerun: yes"> 
-     </span><o:p></o:p></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l13 level1 lfo5;
-     tab-stops:list .5in'><span style='background:silver;mso-highlight:silver'>In
-     the case of non-Cartesian longitude-latitude grids or for “station data”,
-     define the grid and its mapping parameters (cmor_grid and
-     cmor_set_grid_mapping)<o:p></o:p></span></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l13 level1 lfo5;
-     tab-stops:list .5in'>Define the variables to be written by CMOR, indicate
-     which axes are associated with each variable, and obtain
-     "handles", to be used in the next step, which uniquely identify
-     each variable (cmor_variable).<span style="mso-spacerun: yes"> 
-     </span>For each variable defined, this function fills internal table
-     entries containing file attributes passed by the user or obtained from a
-     MIP table, along with coordinate variables and other related information.
-     Thus, nearly all of the file's metadata is collected during this step.<o:p></o:p></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l13 level1 lfo5;
-     tab-stops:list .5in'>Write an array of data that includes one or more time
-     samples for a defined variable (cmor_write).<span style="mso-spacerun:
-     yes">  </span>This step will typically be repeated to output
-     additional variables or to append additional time samples of data.<o:p></o:p></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l13 level1 lfo5;
-     tab-stops:list .5in'>Close one or all files created by CMOR (cmor_close)<o:p></o:p></li>
-</ul>
-
-<p class=MsoNormal style='text-align:justify'><o:p> </o:p></p>
-
-<p class=MsoNormal style='text-align:justify'>There is an additional function
-(cmor_zfactor), which enables one to define metadata associated with
-dimensionless vertical coordinates.<o:p></o:p></p>
-
-<p class=MsoNormal style='text-align:justify'><o:p> </o:p></p>
-
-<p class=MsoNormal style='text-align:justify'>CMOR was designed to reduce the
-effort required of those contributing data to various MIPs.<span
-style="mso-spacerun: yes">  </span>An important aim was to minimize any
-transformations that the user would have to perform on their original data
-structures to meet the MIP requirements.<span style="mso-spacerun: yes"> 
-</span>Toward this end, the code allows the following flexibility (with the MIP
-requirements obtained by CMOR from the appropriate MIP table and automatically
-applied):<o:p></o:p></p>
-
-<p class=MsoNormal style='text-align:justify'><o:p> </o:p></p>
-
-<ul style='margin-top:0in' type=disc>
- <li class=MsoNormal style='text-align:justify;mso-list:l19 level1 lfo14;
-     tab-stops:list .5in'>The input data can be structured with dimensions in
-     any order and with coordinate values either increasing or decreasing
-     monotonically; CMOR will rearrange them to meet the MIP's requirements
-     before writing out the data.<o:p></o:p></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l19 level1 lfo14;
-     tab-stops:list .5in'>The input data and coordinate values can be provided
-     in an array declared to be whatever "type" is convenient for the
-     user (e.g., in the case of coordinate data, the user might pass type
-     “real” values (32-bit floating-point numbers on most platforms) even
-     though the output will be written type double (64-bit IEEE
-     floating-point); CMOR will transform the data to the required type before
-     writing.<o:p></o:p></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l19 level1 lfo14;
-     tab-stops:list .5in'>The input data can be provided in units different
-     from what is required by a MIP.<span style="mso-spacerun: yes"> 
-     </span>If those units can be transformed to the correct units using the
-     udunits (version 2) software (see<span class=MsoHyperlink> </span><a
-     href="http://my.unidata.ucar.edu/content/software/udunits/">http://my.unidata.ucar.edu/content/software/udunits/</a>),
-     then CMOR performs the transformation before writing the data.<span
-     style="mso-spacerun: yes">  </span>Otherwise, CMOR will return an
-     error. <span style='background:silver;mso-highlight:silver'>Time units are
-     handled via the built-in cdtime interface<a style='mso-footnote-id:ftn'
-     href="#_ftn7" name="_ftnref" title=""><span class=MsoFootnoteReference><span
-     style='mso-special-character:footnote'><![if !supportFootnotes]>[7]<![endif]></span></span></a>
-     <o:p></o:p></span></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l19 level1 lfo14;
-     tab-stops:list .5in'>So-called "scalar dimensions" (sometimes
-     referred to as "singleton dimensions") are automatically
-     inserted by CMOR. Thus, for example, the user can provide surface air
-     temperature (at 2 meters) as a function of longitude, latitude, and time,
-     and CMOR adds as a "coordinate" attribute the "height"
-     dimension, consistent with the metadata requirements of CF.<span
-     style="mso-spacerun: yes">  </span>If the model output does not
-     conform to the MIP requirements (e.g., carries temperature at 1.5 m
-     instead of 2 m), then the user can override the MIP table specifications.<o:p></o:p></li>
-</ul>
-
-<p class=MsoNormal style='text-align:justify'><o:p> </o:p></p>
-
-<p class=MsoNormal style='text-align:justify'>The code does not, however,
-include a capability to interpolate data, either in the vertical or
-horizontally.<span style="mso-spacerun: yes">  </span>If a user stores
-data on model levels, but a MIP requests it on standard pressure levels, then
-the user must interpolate before passing the data to CMOR.<span
-style="mso-spacerun: yes">  </span><o:p></o:p></p>
-
-<p class=MsoNormal style='text-align:justify;tab-stops:273.75pt'><o:p> </o:p></p>
-
-<p class=MsoNormal style='text-align:justify;tab-stops:273.75pt'>The output
-resulting from CMOR is "self-describing" and includes metadata
-summarized below, organized by attribute type (global, coordinate, or variable
-attributes) and by its source (specified by the user or in a MIP table, or
-generated by CMOR).<o:p></o:p></p>
-
-<p class=MsoNormal style='text-align:justify;tab-stops:273.75pt'><o:p> </o:p></p>
-
-<p class=MsoNormal style='text-align:justify;tab-stops:273.75pt'><i
-style='mso-bidi-font-style:normal'>Global attributes typically provided by the
-MIP table or generated by CMOR:<o:p></o:p></i></p>
-
-<p class=MsoNormal style='text-align:justify;tab-stops:273.75pt'><o:p> </o:p></p>
-
-<ul style='margin-top:0in' type=disc>
- <li class=MsoNormal style='text-align:justify;mso-list:l23 level1 lfo16;
-     tab-stops:list .5in left 273.75pt'><span style='font-family:"Courier New"'>title,</span>
-     identification of the project, experiment, and table.<o:p></o:p></li>
-</ul>
-
-<ul style='margin-top:0in' type=disc>
- <li class=MsoNormal style='text-align:justify;mso-list:l17 level1 lfo15;
-     tab-stops:list .5in left 273.75pt'><span style='font-family:"Courier New"'>Conventions,</span>
-     (<span style='background:silver;mso-highlight:silver'>'CF-1.4'</span>)<o:p></o:p></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l17 level1 lfo15;
-     tab-stops:list .5in left 273.75pt'><span style='font-family:"Courier New"'>history,</span>
-     any user-provided history along with a "timestamp" generated by
-     CMOR and a statement that the data conform to both the CF standards and
-     those of a particular MIP.<o:p></o:p></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l17 level1 lfo15;
-     tab-stops:list .5in left 273.75pt'><span style='font-family:"Courier New";
-     background:silver;mso-highlight:silver'>project_id</span><span
-     style='background:silver;mso-highlight:silver'>, scientific project that inspired
-     this simulation (e.g., CMIP5)<o:p></o:p></span></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l17 level1 lfo15;
-     tab-stops:list .5in left 273.75pt'><span style='font-family:"Courier New";
-     background:silver;mso-highlight:silver'>table_id</span><span
-     style='background:silver;mso-highlight:silver'>, MIP table used to define
-     variable.<o:p></o:p></span></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l17 level1 lfo15;
-     tab-stops:list .5in left 273.75pt'><span style='font-family:"Courier New"'>experiment</span>,
-     a long name title for the experiment.<span style='font-family:"Courier New"'><o:p></o:p></span></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l17 level1 lfo15;
-     tab-stops:list .5in left 273.75pt'><span style='font-family:"Courier New";
-     background:silver;mso-highlight:silver'>modeling_</span><span
-     style='background:silver;mso-highlight:silver'>realm(s) to which the
-     variable belongs (e.g., ocean, land, atmosphere, etc.).<o:p></o:p></span></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l17 level1 lfo15;
-     tab-stops:list .5in left 273.75pt'><span style='font-family:"Courier New";
-     background:silver;mso-highlight:silver'>tracking_id</span><span
-     style='background:silver;mso-highlight:silver'>, <span
-     style="mso-spacerun: yes"> </span>a unique identification string
-     generated by uuid, which is useful at least within the ESG distributed
-     data archive.<o:p></o:p></span></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l17 level1 lfo15;
-     tab-stops:list .5in left 273.75pt'><span style='font-family:"Courier New";
-     background:silver;mso-highlight:silver'>cmor_version</span><span
-     style='background:silver;mso-highlight:silver'>, version of the library
-     used to generate the files.<o:p></o:p></span></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l17 level1 lfo15;
-     tab-stops:list .5in left 273.75pt'><span style='font-family:"Courier New";
-     background:silver;mso-highlight:silver'>frequency, </span><span
-     style='background:silver;mso-highlight:silver'>the approximate
-     time-sampling interval for a time-series of data.</span><span
-     style='font-family:"Courier New";background:silver;mso-highlight:silver'><o:p></o:p></span></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l17 level1 lfo15;
-     tab-stops:list .5in left 273.75pt'><span style='font-family:"Courier New";
-     background:silver;mso-highlight:silver'>creation_date, </span><span
-     style='background:silver;mso-highlight:silver'>the date and time (UTZ) that
-     the file was created.<o:p></o:p></span></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l17 level1 lfo15;
-     tab-stops:list .5in left 273.75pt'><span style='font-family:"Courier New";
-     mso-bidi-font-family:"Courier New";background:silver;mso-highlight:silver'>product,</span><span
-     style='background:silver;mso-highlight:silver'> a descriptive string that
-     distinguishes among various model data products.</span><span
-     style='font-family:"Courier New";mso-bidi-font-family:"Courier New";
-     background:silver;mso-highlight:silver'><o:p></o:p></span></li>
-</ul>
-
-<p class=MsoNormal style='text-align:justify;tab-stops:273.75pt'><span
-style="mso-spacerun: yes"> </span><o:p></o:p></p>
-
-<p class=MsoNormal style='text-align:justify;tab-stops:273.75pt'><i
-style='mso-bidi-font-style:normal'>Global attributes typically provided by the
-user in a call to a CMOR function:<o:p></o:p></i></p>
-
-<p class=MsoNormal style='text-align:justify;tab-stops:273.75pt'><o:p> </o:p></p>
-
-<ul style='margin-top:0in' type=disc>
- <li class=MsoNormal style='text-align:justify;mso-list:l17 level1 lfo15;
-     tab-stops:list .5in left 273.75pt'><span style='font-family:"Courier New"'>institution</span>,
-     identifying the modeling center contributing the output.<o:p></o:p></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l17 level1 lfo15;
-     tab-stops:list .5in left 273.75pt'><span style='font-family:"Courier New"'>institute_id</span>,
-     a shorter identifying name of the modeling center (which would be
-     appropriate for labeling plots in which results from many models might
-     appear).<o:p></o:p></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l17 level1 lfo15;
-     tab-stops:list .5in left 273.75pt'><span style='font-family:"Courier New"'>source</span>,
-     identifying the model version that generated the output.<o:p></o:p></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l17 level1 lfo15;
-     tab-stops:list .5in left 273.75pt'><span style='font-family:"Courier New"'>contact,</span>
-     providing the name and email of someone responsible for the data<o:p></o:p></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l17 level1 lfo15;
-     tab-stops:list .5in left 273.75pt'><span style='font-family:"Courier New";
-     background:silver;mso-highlight:silver'>model_id</span><span
-     style='background:silver;mso-highlight:silver'>, an acronym that
-     identifies the model used to generate the output.<o:p></o:p></span></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l17 level1 lfo15;
-     tab-stops:list .5in left 273.75pt'><span style='font-family:"Courier New"'>experiment_id</span>,
-     a short name for the experiment.<span style='font-family:"Courier New"'><o:p></o:p></span></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l17 level1 lfo15;
-     tab-stops:list .5in left 273.75pt'><span style='font-family:"Courier New";
-     background:silver;mso-highlight:silver'>forcing</span><span
-     style='background:silver;mso-highlight:silver'>, a list of the “forcing”
-     agents that could cause the climate to change in the experiment.<o:p></o:p></span></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l17 level1 lfo15;
-     tab-stops:list .5in left 273.75pt'><span style='font-family:"Courier New"'>history</span>,
-     providing an "audit trail" for the data, which will be
-     supplemented with CMOR-generated information described above.<o:p></o:p></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l17 level1 lfo15;
-     tab-stops:list .5in left 273.75pt'><span style='font-family:"Courier New"'>references</span>,
-     typically containing documentation of the model and the model simulation.<o:p></o:p></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l17 level1 lfo15;
-     tab-stops:list .5in left 273.75pt'><span style='font-family:"Courier New"'>comment</span>,
-     typically including initialization and spin-up information for the
-     simulation.<o:p></o:p></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l17 level1 lfo15;
-     tab-stops:list .5in left 273.75pt'><span style='font-family:"Courier New"'>realization</span>,
-     an integer distinguishing among simulations that differ only from
-     different equally reasonable initial conditions.<span style="mso-spacerun:
-     yes">  </span>This number should be greater than or equal to 1. <span
-     style='background:silver;mso-highlight:silver'>CMOR will reset this to 0
-     automatically for “fixed” frequency (i.e. time-independent fields)</span><o:p></o:p></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l17 level1 lfo15;
-     tab-stops:list .5in left 273.75pt'><span style='font-family:"Courier New"'>initialization</span>_<span
-     style='font-family:"Courier New"'>method</span>, an integer distinguishing
-     among simulations that differ only in the <i style='mso-bidi-font-style:
-     normal'>method</i> of initialization.<span style="mso-spacerun:
-     yes">  </span>This number should be greater than or equal to 1.<o:p></o:p></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l17 level1 lfo15;
-     tab-stops:list .5in left 273.75pt'><span style='font-family:"Courier New"'>physics</span>_<span
-     style='font-family:"Courier New"'>version</span>, an integer indicating
-     which of several closely related physics versions of a model produced the
-     simulation. <span style='font-family:"Courier New"'><o:p></o:p></span></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l17 level1 lfo15;
-     tab-stops:list .5in left 273.75pt'><span style='font-family:"Courier New";
-     background:silver;mso-highlight:silver'>parent_experiment_id, </span><span
-     style='background:silver;mso-highlight:silver'>a string indicating which
-     experiment this branches from. For CMIP5 this should match the short name
-     of the parent experiment id. <o:p></o:p></span></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l17 level1 lfo15;
-     tab-stops:list .5in left 273.75pt'><span style='font-family:"Courier New";
-     mso-bidi-font-family:"Courier New";background:silver;mso-highlight:silver'>branch_time,</span><span
-     style='background:silver;mso-highlight:silver'> time in parent experiment
-     when this simulation started (in the units of the parent experiment). <o:p></o:p></span></li>
-</ul>
-
-<p class=MsoNormal style='text-align:justify;tab-stops:273.75pt'><o:p> </o:p></p>
-
-<p class=MsoNormal style='text-align:justify;tab-stops:273.75pt'><span
-style='background:silver;mso-highlight:silver'>Note: additional global
-attributes can be added by the user via the cmor_set_cur_dataset_attribute
-function (see below).<o:p></o:p></span></p>
-
-<p class=MsoNormal style='text-align:justify;tab-stops:273.75pt'><o:p> </o:p></p>
-
-<p class=MsoNormal style='text-align:justify;tab-stops:273.75pt'><i
-style='mso-bidi-font-style:normal'>Coordinate attributes typically provided by
-a MIP table or generated by CMOR:<o:p></o:p></i></p>
-
-<p class=MsoNormal style='text-align:justify;tab-stops:273.75pt'><o:p> </o:p></p>
-
-<ul style='margin-top:0in' type=disc>
- <li class=MsoNormal style='text-align:justify;mso-list:l6 level1 lfo17;
-     tab-stops:list .5in left 273.75pt'><span style='font-family:"Courier New"'>standard</span>_<span
-     style='font-family:"Courier New"'>name</span>, as defined in the CF
-     standard name table.<o:p></o:p></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l6 level1 lfo17;
-     tab-stops:list .5in left 273.75pt'><span style='font-family:"Courier New"'>units</span>,
-     specifying the units for the coordinate variable.<o:p></o:p></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l6 level1 lfo17;
-     tab-stops:list .5in left 273.75pt'><span style='font-family:"Courier New"'>axis</span>,
-     indicating whether axis is of type x, y, z, t, or none of these.<o:p></o:p></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l6 level1 lfo17;
-     tab-stops:list .5in left 273.75pt'><span style='font-family:"Courier New"'>bounds</span>,
-     (when appropriate) indicating where the cell bounds are stored.<o:p></o:p></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l6 level1 lfo17;
-     tab-stops:list .5in left 273.75pt'><span style='font-family:"Courier New"'>positive</span>,
-     (when appropriate) indicating whether a vertical coordinate increases
-     upward or downward.<o:p></o:p></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l6 level1 lfo17;
-     tab-stops:list .5in left 273.75pt'><span style='font-family:"Courier New"'>formula</span>_<span
-     style='font-family:"Courier New"'>terms</span>, (when appropriate)
-     providing information needed to transform from a dimensionless vertical
-     coordinate to the actual location (e.g., from sigma-level to pressure).<o:p></o:p></li>
-</ul>
-
-<p class=MsoNormal style='text-align:justify;tab-stops:273.75pt'><o:p> </o:p></p>
-
-<p class=MsoNormal style='text-align:justify;page-break-after:avoid;tab-stops:
-273.75pt'><i style='mso-bidi-font-style:normal'>Coordinate or grid mapping
-attributes typically provided by the user in a call to a CMOR function:<o:p></o:p></i></p>
-
-<p class=MsoNormal style='text-align:justify;tab-stops:273.75pt'><o:p> </o:p></p>
-
-<ul style='margin-top:0in' type=disc>
- <li class=MsoNormal style='text-align:justify;mso-list:l17 level1 lfo15;
-     tab-stops:list .5in left 273.75pt'><span style='font-family:"Courier New"'>calendar</span>,
-     (when appropriate) indicating the calendar type assumed by the model.<o:p></o:p></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l17 level1 lfo15;
-     tab-stops:list .5in left 273.75pt'><span style='background:silver;
-     mso-highlight:silver'>grid_mapping_name and the names of various mapping
-     parameters.<span style="mso-spacerun: yes">  </span>See CF
-     conventions at: (</span><a
-     href="http://cf-pcmdi.llnl.gov/documents/cf-conventions/1.1/cf-conventions.html#grid-mappings-and-projections"><span
-     style='background:silver;mso-highlight:silver'>http://cf-pcmdi.llnl.gov/documents/cf-conventions/1.1/cf-conventions.html#grid-mappings-and-projections</span></a><span
-     style='background:silver;mso-highlight:silver'> )<o:p></o:p></span></li>
-</ul>
-
-<p class=MsoNormal style='text-align:justify;tab-stops:273.75pt'><o:p> </o:p></p>
-
-<p class=MsoNormal style='text-align:justify;tab-stops:273.75pt'><i
-style='mso-bidi-font-style:normal'>Variable attributes typically provided by a
-MIP table or generated by CMOR:<o:p></o:p></i></p>
-
-<p class=MsoNormal style='text-align:justify;tab-stops:273.75pt'><o:p> </o:p></p>
-
-<ul style='margin-top:0in' type=disc>
- <li class=MsoNormal style='text-align:justify;mso-list:l17 level1 lfo15;
-     tab-stops:list .5in left 273.75pt'><span style='font-family:"Courier New"'>standard</span>_<span
-     style='font-family:"Courier New"'>name</span> as defined in the CF
-     standard name table.<o:p></o:p></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l17 level1 lfo15;
-     tab-stops:list .5in left 273.75pt'><span style='font-family:"Courier New"'>units</span>,
-     specifying the units for the variable.<o:p></o:p></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l17 level1 lfo15;
-     tab-stops:list .5in left 273.75pt'><span style='font-family:"Courier New"'>long</span>_<span
-     style='font-family:"Courier New"'>name</span>, describing the variable and
-     useful as a title on plots.<o:p></o:p></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l17 level1 lfo15;
-     tab-stops:list .5in left 273.75pt'><span style='font-family:"Courier New"'>missing</span>_<span
-     style='font-family:"Courier New"'>value and _FillValue</span>, specifying
-     how missing data will be identified.<o:p></o:p></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l17 level1 lfo15;
-     tab-stops:list .5in left 273.75pt'><span style='font-family:"Courier New"'>cell</span>_<span
-     style='font-family:"Courier New"'>methods</span>, (when appropriate)
-     typically providing information concerning calculation of means or
-     climatologies, which may be supplemented by information provided by the
-     user.<o:p></o:p></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l17 level1 lfo15;
-     tab-stops:list .5in left 273.75pt'><span style='font-family:"Courier New";
-     mso-bidi-font-family:"Courier New";background:silver;mso-highlight:silver'>cell_measures</span><span
-     style='background:silver;mso-highlight:silver'>, when appropriate,
-     indicates the names of the variables containing cell areas and volumes.<o:p></o:p></span></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l17 level1 lfo15;
-     tab-stops:list .5in left 273.75pt'><span style='font-family:"Courier New"'>comment</span>,
-     providing clarifying information concerning the variable (e.g., whether
-     precipitation includes both liquid and solid forms of precipitation).<o:p></o:p></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l17 level1 lfo15;
-     tab-stops:list .5in left 273.75pt'><span style='font-family:"Courier New"'>history</span>,
-     indicating what CMOR has done to the user supplied data (e.g.,
-     transforming its units or rearranging its order to be consistent with the
-     MIP requirements)<o:p></o:p></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l17 level1 lfo15;
-     tab-stops:list .5in left 273.75pt'><span style='font-family:"Courier New"'>coordinates</span>,
-     (when appropriate) supplying either scalar (singleton) dimension
-     information or the name of the labels containing names of geographical
-     regions.<o:p></o:p></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l17 level1 lfo15;
-     tab-stops:list .5in left 273.75pt'><span style='font-family:"Courier New"'>associated_files</span>,
-     files that contain metadata that applies to this variable. <span
-     style='background:silver;mso-highlight:silver'>Presently this attribute
-     points to the gridspec file and the files containing cellArea and
-     cellVolume if they’re refered to by the “cell_measures” attribute.<span
-     style="mso-spacerun: yes">  </span>It also includes a URL pointing to
-     the top directory structure where the data will be accessible online.<o:p></o:p></span></li>
-</ul>
-
-<p class=MsoNormal style='text-align:justify;tab-stops:273.75pt'><o:p> </o:p></p>
-
-<p class=MsoNormal style='text-align:justify;tab-stops:273.75pt'><i
-style='mso-bidi-font-style:normal'>Variable attributes typically provided by
-the user in a call to a CMOR function:<o:p></o:p></i></p>
-
-<p class=MsoNormal style='text-align:justify;tab-stops:273.75pt'><o:p> </o:p></p>
-
-<ul style='margin-top:0in' type=disc>
- <li class=MsoNormal style='text-align:justify;mso-list:l7 level1 lfo18;
-     tab-stops:list .5in left 273.75pt'><span style='font-family:"Courier New"'>original</span>_<span
-     style='font-family:"Courier New"'>name</span>, containing the name of the
-     variable as it is known at the user's home institution.<o:p></o:p></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l7 level1 lfo18;
-     tab-stops:list .5in left 273.75pt'><span style='font-family:"Courier New"'>original</span>_<span
-     style='font-family:"Courier New"'>units</span>, the units of the data
-     passed to CMOR.<o:p></o:p></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l7 level1 lfo18;
-     tab-stops:list .5in left 273.75pt'><span style='font-family:"Courier New"'>history</span>,
-     (when appropriate) information concerning processing of the variable prior
-     to sending it to CMOR.<span style="mso-spacerun: yes">  </span>(This
-     information may be supplemented by further history information generated
-     by CMOR.)<o:p></o:p></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l7 level1 lfo18;
-     tab-stops:list .5in left 273.75pt'><span style='font-family:"Courier New"'>comment</span>,
-     (when appropriate) providing miscellaneous information concerning the
-     variable, which will supplement any comment contained in the MIP table.<o:p></o:p></li>
-</ul>
-
-<p class=MsoNormal style='margin-left:.25in;text-align:justify;tab-stops:273.75pt'><o:p> </o:p></p>
-
-<p class=MsoNormal style='text-align:justify;tab-stops:273.75pt'>As is evident
-from the above summary of metadata, a substantial fraction of the information
-is defined in the MIP tables, which explains why writing MIP output through
-CMOR is much easier than writing data without the help of the MIP tables.<span
-style="mso-spacerun: yes">   </span>Besides the attribute
-information, the MIP tables also include information that controls the structure
-of the output and allows CMOR to apply some rudimentary quality assurance
-checks.<span style="mso-spacerun: yes">  </span>Among this ancillary
-information in the MIP tables is the following:<o:p></o:p></p>
-
-<p class=MsoNormal style='text-align:justify;tab-stops:273.75pt'><o:p> </o:p></p>
-
-<ul style='margin-top:0in' type=disc>
- <li class=MsoNormal style='text-align:justify;mso-list:l18 level1 lfo20;
-     tab-stops:list .5in left 273.75pt'>The direction each coordinate should be
-     stored when it is output (i.e., either in order of increasing or
-     decreasing values).<span style="mso-spacerun: yes">  </span>The user
-     need not be concerned with this since, if necessary, CMOR will reorder the
-     coordinate values and the data.<o:p></o:p></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l18 level1 lfo20;
-     tab-stops:list .5in left 273.75pt'>The acceptable values for coordinates
-     (e.g., for a pressure coordinate axis, for example, perhaps the WCRP
-     standard pressure levels).<o:p></o:p></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l18 level1 lfo20;
-     tab-stops:list .5in left 273.75pt'>The acceptable values for various
-     arguments passed to CMOR functions (e.g., acceptable calendars, experiment
-     i.d.'s, etc.)<o:p></o:p></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l18 level1 lfo20;
-     tab-stops:list .5in left 273.75pt'>The "type" of each output
-     array (whether real, double precision, or integer).<span
-     style="mso-spacerun: yes">  </span>The user need not be concerned
-     with this since, if necessary, CMOR will convert the data to the specified
-     type.<o:p></o:p></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l18 level1 lfo20;
-     tab-stops:list .5in left 273.75pt'>The order of the dimensions for output
-     arrays. The user need not be concerned with this since, if necessary, CMOR
-     will reorder the data consistent with the specified dimension order. <o:p></o:p></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l18 level1 lfo20;
-     tab-stops:list .5in left 273.75pt'>The normally applied values for
-     "scalar dimensions" (i.e., "singleton dimensions").<o:p></o:p></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l18 level1 lfo20;
-     tab-stops:list .5in left 273.75pt'>The range of acceptable values for
-     output arrays.<o:p></o:p></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l18 level1 lfo20;
-     tab-stops:list .5in left 273.75pt'>The acceptable range for the spatial
-     mean of the absolute value of all elements in output arrays.<o:p></o:p></li>
- <li class=MsoNormal style='text-align:justify;mso-list:l18 level1 lfo20;
-     tab-stops:list .5in left 273.75pt'>The minimal global attributes required.<o:p></o:p></li>
-</ul>
-
-<p class=MsoNormal style='text-align:justify;tab-stops:273.75pt'><o:p> </o:p></p>
-
-<h1><a name="_Toc129421996"></a><a name="_Toc134007295"><span style='mso-bookmark:
-_Toc129421996'>Acknowledgements</span></a><o:p></o:p></h1>
-
-<p class=MsoNormal style='text-align:justify;tab-stops:273.75pt'><o:p> </o:p></p>
-
-<p class=MsoNormal style='tab-stops:273.75pt'>Several individuals have
-supported the development of the CMOR1 software and provided encouragement,
-including Dean Williams, Dave Bader, and Peter Gleckler.<span
-style="mso-spacerun: yes">  </span>Jonathan Gregory, Jim Boyle, and Bob
-Drach all provided valuable suggestions on how to simplify or in other ways
-improve the design of this software, and we particularly appreciate the time
-they spent reading and thinking about this problem.<span style="mso-spacerun:
-yes">  </span>Jim Boyle additionally helped in a number of other ways,
-including porting CMOR to various platforms.<span style="mso-spacerun:
-yes">  </span>Brian Eaton provided his usual careful and thoughtful
-responses to questions about CF compliance. Finally, we appreciate the
-encouragement expressed by the WGCM for developing CMOR.<o:p></o:p></p>
-
-<p class=MsoNormal style='tab-stops:273.75pt'><o:p> </o:p></p>
-
-<p class=MsoNormal style='tab-stops:273.75pt'>The complete rewrite of CMOR,
-along with the new capabilities added to version 2, was implemented by Charles
-Doutriaux.<span style="mso-spacerun: yes">  </span>We thank Dean Williams,
-Bob Drach, Renata McCoy, Jim Boyle, and the British Atmospheric Data Center
-(BADC). We also thank every one of the “early” adopters of CMOR2 who patiently
-helped us test and debug CMOR2. In particular we would like to thank Jamie
-Kettleborough from the UK Metoffice, Stephen Pascoe of the British Atmospheric
-Data Centre, Joerg Wegner of Zentrum für Marine und Atmosphärische
-Wissenschaften, Yana Malysheva of the Geophysical Fluid Dynamics Laboratory and
-Alejandro Bodas-Salcedo of UK Metoffice for the many lines of codes, bug fixes,
-and sample tests they sent our way.<b style='mso-bidi-font-weight:normal'><span
-style='font-size:14.0pt'> </span><o:p></o:p></b></p>
-
-<b><span style='font-size:16.0pt;font-family:Arial;mso-fareast-font-family:
-"Times New Roman";mso-bidi-font-family:Arial;mso-font-kerning:16.0pt;
-mso-ansi-language:EN-US;mso-fareast-language:EN-US'><br clear=ALL
-style='page-break-before:always'>
-</span></b>
-
-<h1><a name="_Toc129421997"></a><a name="_Toc134007296"><span style='mso-bookmark:
-_Toc129421997'>Description of CMOR Functions</span></a><o:p></o:p></h1>
-
-<p class=MsoNormal><b style='mso-bidi-font-weight:normal'><span
-style='font-size:14.0pt'><o:p> </o:p></span></b></p>
-
-<h2><a name="_Toc129421998"></a><a name="_Toc134007297"><span style='mso-bookmark:
-_Toc129421998'>Preliminary notes:</span></a><o:p></o:p></h2>
-
-<p class=MsoNormal style='text-align:justify'><span style="mso-spacerun:
-yes">  </span>In the following, all arguments should be passed using
-keywords (to improve readability and flexibility in ordering the
-arguments).<span style="mso-spacerun: yes">  </span>Those arguments
-appearing below that are followed by an equal sign may be optional and, if not
-passed by the user, are assigned the default value that follows the equal
-sign.<span style="mso-spacerun: yes">  </span>The information in a
-MIP-specific input table determines whether or not an argument shown in
-brackets is optional or required, and pro vides MIP-specific default values for
-some parameters.<span style="mso-spacerun: yes">  </span>All arguments not
-in brackets and not followed by an equal sign are always required. <o:p></o:p></p>
-
-<p class=MsoNormal style='text-align:justify'><o:p> </o:p></p>
-
-<p class=MsoNormal style='text-align:justify'>Three versions of each function
-are shown below.<span style="mso-spacerun: yes">  </span>The first one is
-for <b style='mso-bidi-font-weight:normal'><span style='color:#00B050'>Fortran</span></b><span
-style='color:#00B050'> (green text)</span><b style='mso-bidi-font-weight:normal'>
-</b>the second for <b style='mso-bidi-font-weight:normal'><span
-style='color:blue'>C</span></b><span style='color:blue'> (blue text)</span>, and
-the third for <b style='mso-bidi-font-weight:normal'><span style='color:#FF660A'>Python</span></b><span
-style='color:#FF660A'> </span><span style='color:#FF6600'>(orange text).<span
-style="mso-spacerun: yes">  </span><span style="mso-spacerun:
-yes"> </span></span>In the following, text that applies to only one of the
-coding languages appears in the appropriate color.<o:p></o:p></p>
-
-<p class=MsoNormal style='text-align:justify'><o:p> </o:p></p>
-
-<p class=MsoNormal style='text-align:justify'>Some of the arguments passed to
-CMOR (e.g., names of variables and axes are only unambiguously defined in the
-context of a specific CMOR table, and in the Fortran version of the functions
-this is specified by one of the function arguments, whereas in the C and Python
-versions it is specified through a call to cmor_load_table and cmor_set_table.<o:p></o:p></p>
-
-<p class=MsoNormal style='text-align:justify'><span style='color:#FF6600'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='text-align:justify'>All functions are type
-“integer”.<span style="mso-spacerun: yes">  </span>If a function results
-in an error,<span style='color:#FF6600'> an “exception” will be raised in the
-Python version (otherwise None will be returned), </span>and in either the
-Fortran or C versions, the error will be indicated by the integer returned by
-the function itself.<span style="mso-spacerun: yes">  </span><span
-style='color:blue'>In C an integer other than 0 will be returned,</span><span
-style='color:#FF6600'> </span><span style='color:#00B050'>and in Fortran errors
-will result in a negative integer (except in the case of cmor_grid, which will
-return a positive integer).<o:p></o:p></span></p>
-
-<p class=MsoNormal style='text-align:justify'><span style='color:#FF6600'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='text-align:justify'>If no error is encountered, some
-functions will return information needed by the user in subsequent calls to
-CMOR.<span style="mso-spacerun: yes">  </span>In almost all cases this
-information is indicated by the value of a single integer that in Fortran and
-Python is returned as the value of the function itself, whereas in C it is
-returned as an output argument).<span style="mso-spacerun: yes"> 
-</span>There are two cases in the Fortran version of CMOR, however, when a
-string argument may be set by CMOR (cmor_close and
-cmor_create_output_path).<span style="mso-spacerun: yes">  </span>These are
-the only cases when the value of any of the Fortran function’s arguments might
-be modified by CMOR.<span style="mso-spacerun: yes">    
-</span><o:p></o:p></p>
-
-<p class=MsoNormal style='text-align:justify'><o:p> </o:p></p>
-
-<h2><a name="_Toc129421999"></a><a name="_Toc134007298"><span style='mso-bookmark:
-_Toc129421999'>Setting up CMOR</span></a><o:p></o:p></h2>
-
-<h3><a name="_Toc129422000"></a><a name="_Toc134007299"><span style='mso-bookmark:
-_Toc129422000'>Initialize CMOR: cmor_setup</span></a><o:p></o:p></h3>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in;page-break-after:
-avoid'><o:p> </o:p></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in;page-break-after:
-avoid'><span style='color:#00B050'>Fortran: error_flag =
-cmor_setup(inpath='./', netcdf_file_action=CMOR_PRESERVE,
-set_verbosity=CMOR_NORMAL, exit_control=CMOR_NORMAL, logfile,
-create_subdirectories)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in;page-break-after:
-avoid'><span style='color:blue'>C: error_flag = cmor_setup(char *inpath, int
-*netcdf_file_action, int *set_verbosity, int *exit_control, char*logfile, int
-*create_subdirectories)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in;page-break-after:
-avoid'><span style='color:#FF6600'>Python: setup(inpath='.',
-netcdf_file_action=CMOR_PRESERVE, set_verbosity=CMOR_NORMAL,
-exit_control=CMOR_NORMAL, logfile=None, create_subdirectories=1)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='text-align:justify'><o:p> </o:p></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><i
-style='mso-bidi-font-style:normal'>Description</i>: Initialize CMOR, specify
-path to MIP table(s) that will be read by CMOR, specify whether existing output
-files will be overwritten, and specify how error messages will be handled<o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><o:p> </o:p></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><i
-style='mso-bidi-font-style:normal'>Arguments</i>: <o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'>[inpath] = a character string specifying the path to the directory where
-the needed MIP-specific tables reside.<o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'>[netcdf_file_action] = controls handling of existing netCDF files.<span
-style="mso-spacerun: yes">  </span>If the value passed is CMOR_REPLACE, a
-new file will be created; any existing file with the same name as the one CMOR
-is trying to create will be overwritten.<span style="mso-spacerun: yes"> 
-</span>If the value is CMOR_APPEND, an existing file will be appended; if the
-file does not exist, it will be created.<span style="mso-spacerun: yes"> 
-</span>If the value is CMOR_PRESERVE, a new file will be created unless a file
-by the same name already exists, in which case the program will error exit.<a
-style='mso-footnote-id:ftn' href="#_ftn8" name="_ftnref" title=""><span
-class=MsoFootnoteReference><span style='color:#00B050'><span style='mso-special-character:
-footnote'><![if !supportFootnotes]>[8]<![endif]></span></span></span></a> <span
-style='background:silver;mso-highlight:silver'>To generate a NetCDF file in the
-“CLASSIC” NetCDF3 format, a “_3” should be appended to the above parameters
-(e.g., CMOR_APPEND would become CMOR_APPEND_3). To generate a NetCDF file in
-the “CLASSIC” NetCDF4 format, a “_4” should be appended to the above parameters
-(e.g., CMOR_APPEND would become CMOR_APPEND_4), this allows the user to take
-advantage of NetCDF4 compression and chunking capapbilities. The default values
-(no underscore) are aliased to the _3 values.</span> <o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'>[set_verbosity] controls how informational messages and error messages
-generated by CMOR are handled.<span style="mso-spacerun: yes">  </span>If
-set_verbosity=CMOR_NORMAL, errors and warnings will be sent to the standard error
-device (typically the user's screen). If verbosity=CMOR_QUIET, then only error
-messages will be sent (and warnings will be suppressed).<span
-style="mso-spacerun: yes">  </span><o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-indent:-.5in'>[exit_control]
-determines if errors will trigger program to exit: CMOR_EXIT_ON_MAJOR = stop
-only on critical error; CMOR_NORMAL = stop only if severe errors;
-CMOR_EXIT_ON_WARNING = stop even after minor errors detected.<o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-indent:-.5in'><span
-style='background:silver;mso-highlight:silver'>[logfile] where CMOR will write
-its messages -- default is “standard error” (stderr).</span><span
-style="mso-spacerun: yes">  </span><o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-indent:-.5in'><span
-style='background:silver;mso-highlight:silver'>[create_subdirectories] do we
-want to create the correct path subdirectory structure or simply dump the files
-wherever cmor_dataset will point to.</span><span style="mso-spacerun:
-yes">  </span><o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><o:p> </o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><i style='mso-bidi-font-style:normal'>\Returns upon success</i>: <o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify'><span
-style='color:#00B050'>Fortran: 0 <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify'><span
-style='color:blue'>C: 0 <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify'><span
-style='color:#FF6600'>Python: None <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify'><o:p> </o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><o:p> </o:p></p>
-
-<h2><a name="_Toc129422001"></a><a name="_Toc134007300"><span style='mso-bookmark:
-_Toc129422001'>Dealing with Dataset</span></a><o:p></o:p></h2>
-
-<h3><a name="_Toc129422002"></a><a name="_Toc134007301"><span style='mso-bookmark:
-_Toc129422002'>Define a Dataset: cmor_dataset</span></a><o:p></o:p></h3>
-
-<p class=MsoNormal style='text-align:justify;page-break-after:avoid'><o:p> </o:p></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in;page-break-after:
-avoid'><span style='color:#00B050'>Fortran: error_flag = cmor_dataset(outpath,
-experiment_id, institution, source, calendar, [realization=1], [contact],
-[history], [comment], [references], [leap_year], [leap_month], [month_lengths],
-[model_id], [forcing],<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;page-break-after:avoid'><span
-style='color:#00B050'>[initialization_method], [physics_version],
-[institute_id], [parent_experiment_id], [branch_time])<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in;page-break-after:
-avoid'><span style='color:blue'>C: error_flag = cmor_dataset(char *outpath,
-char *experiment_id, char *institution, char *source,<span style="mso-spacerun:
-yes">   </span>char *calendar, int realization, char *contact,<span
-style="mso-spacerun: yes">  </span>char *history,<span
-style="mso-spacerun: yes">  </span>char *comment, char *references, int
-leap_year, int leap_month, int month_lengths[12], char *model_id, char *forcing,<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;page-break-after:avoid'><span
-style='color:blue'>int initialization_method, int physics_version, char
-*institute_id, char *parent_experiment_id, double *branch_time)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in;page-break-after:
-avoid'><span style='color:#FF6600'>Python: dataset(experiment_id, institution,
-source, calendar, outpath='.', realization=1, contact="",
-history="", comment="", references="",
-leap_year=None, leap_month=None, month_lengths=None, model_id=””, forcing=””,<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;page-break-after:avoid'><span
-style='color:#FF6600'>initialization_method=None, physics_version=None, institute_id=””,
-parent_experiment_id=None, branch_time=0.)</span><o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify;text-indent:-.5in'><o:p> </o:p></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><i
-style='mso-bidi-font-style:normal'>Description</i>: This function provides
-information to CMOR that is common to all output files that will be
-written.<span style="mso-spacerun: yes">  </span>The "dataset"
-defined by this function refers to some or all of the output from a single
-model simulation (i.e., output from a single realization of a single experiment
-from a single model).<span style="mso-spacerun: yes">  </span>Only one
-dataset can be defined at any time, but the dataset can be closed (by calling
-cmor_close()), and then another dataset can be defined by calling cmor_dataset.
-<span style='background:silver;mso-highlight:silver'>Note that after a new
-dataset is defined, all axes and variables must be defined; axes and variables
-defined earlier are not associated with the new dataset. </span><o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><o:p> </o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><i style='mso-bidi-font-style:normal'>Arguments</i>:<o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'>outpath = path where all output files in this dataset will be written
-(including both model output netCDF files and log and error files).<span
-style="mso-spacerun: yes">  </span>The log and error files will be placed
-in this directory, but the model output files will be placed in
-subdirectories.<span style="mso-spacerun: yes">  </span>By default the
-subdirectory tree will be generated by CMOR, if necessary, consistent with the
-following <span style='background:silver;mso-highlight:silver'>structure:
-<activity>/ <product>/<institute_id>/<model_id>/<experiment>/<frequency>/
-<modeling_realm>/<variable_name>/<ensemble member> <o:p></o:p></span></p>
-
-<p class=MsoNormal style='text-align:justify'><span style='background:silver;
-mso-highlight:silver'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='background:silver;mso-highlight:silver'><span
-style='mso-tab-count:1'>            </span>Notes:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.25in;text-align:justify;text-indent:
--.25in;mso-list:l2 level1 lfo37'><![if !supportLists]><span style='background:
-silver;mso-highlight:silver'><span style='mso-list:Ignore'>1)<span
-style='font:7.0pt "Times New Roman"'>    </span></span></span><![endif]><span
-style='background:silver;mso-highlight:silver'>CMOR will check that the
-directory does exist, that it is a directory and that you do have read/write
-permissions.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.25in;text-align:justify;text-indent:
--.25in;mso-list:l2 level1 lfo37'><![if !supportLists]><span style='mso-list:
-Ignore'>2)<span style='font:7.0pt "Times New Roman"'>    </span></span><![endif]><span
-style='background:silver;mso-highlight:silver'>One can turn off the creation of
-the subdirectories via the keyword “create_subdirectories” in the cmor_setup
-call.</span> <o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.25in;text-align:justify;text-indent:
--.25in;mso-list:l2 level1 lfo37'><![if !supportLists]><span style='mso-list:
-Ignore'>3)<span style='font:7.0pt "Times New Roman"'>    </span></span><![endif]><span
-style='background:silver;mso-highlight:silver'>The necessary information is
-sent to CMOR as arguments of either cmor_dataset or cmor_variable Other
-attributes can also be set via the command: cmor_set_cur_dataset_attribute.</span><o:p></o:p></p>
-
-<p class=MsoNormal style='text-align:justify'><o:p> </o:p></p>
-
-<p class=MsoNormal style='margin-left:2.0in;text-align:justify;text-indent:
--.5in'><i style='mso-bidi-font-style:normal'><span style='background:silver;
-mso-highlight:silver'>frequency</span></i><span style='background:silver;
-mso-highlight:silver'> is determined from the “approximate_interval” defined in
-the MIP-specific table where the variable that will be written is found.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:2.0in;text-align:justify;text-indent:
--.5in'><i style='mso-bidi-font-style:normal'><span style='background:silver;
-mso-highlight:silver'>modeling_realm</span></i><span style='background:silver;
-mso-highlight:silver'> is read from the MIP-specific table where the variable
-that will be written is found, If there is no modeling_realm associated
-specifically with the variable, the default value defined for the table itself
-will be used. <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'>experiment_id <span style="mso-spacerun: yes"> </span>= character
-string identifying the experiment within the project that generated the data
-(e.g., 'control', 'perturbation', etc.)<span style="mso-spacerun: yes"> 
-</span>See individual MIP home pages for the official experiment designations
-(or see the MIP-table list of "expt_id_ok" acceptable i.d.'s).<span
-style="mso-spacerun: yes">  </span>Either the short “experiment i.d.” or
-the longer “experiment name” may be passed to CMOR.<o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'>institution = character string identifying the institution that
-generated the data [e.g., 'NCAR (National Center for Atmospheric Research,
-Boulder, CO, USA)']<o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'>source = character string <span style='background:silver;mso-highlight:
-silver'>fully</span> identifying the model <span style='background:silver;
-mso-highlight:silver'>and</span> version <span style='background:silver;
-mso-highlight:silver'>used to generate the output.<span style="mso-spacerun:
-yes">  </span>The first portion of the string should be a copy of the
-global attribute “model_id”.</span><span style="mso-spacerun: yes"> 
-</span>Additionally, this attribute must include the year (i.e., model vintage)
-when this model version was first used in a scientific application.<span
-style="mso-spacerun: yes">  </span>Finally, it should include information
-concerning the component models.<span style="mso-spacerun: yes"> 
-</span>The following template should be <span style='background:silver;
-mso-highlight:silver'>followed</span> in constructing this string: '<i
-style='mso-bidi-font-style:normal'>[model<span style='background:silver;
-mso-highlight:silver'>_id</span>] [year] </i>atmosphere: <i style='mso-bidi-font-style:
-normal'>[model_name] </i>(<i style='mso-bidi-font-style:normal'>[technical_name],
-[resolution_and_levels]</i>); ocean: <i style='mso-bidi-font-style:normal'>[model_name]
-</i>(<i style='mso-bidi-font-style:normal'>[technical_name],
-[resolution_and_levels]</i>); sea ice: <i style='mso-bidi-font-style:normal'>[model_name]
-</i>(<i style='mso-bidi-font-style:normal'>[technical_name])</i>; land: <i
-style='mso-bidi-font-style:normal'>[model_name] </i>(<i style='mso-bidi-font-style:
-normal'>[technical_name])'</i>' <span style='background:silver;mso-highlight:
-silver'>For some models, it may not make much sense to include all these
-components, and nothing following “[year]” is absolutely mandatory.</span> As
-an example, "source" might contain the string: 'CCSM2 2002
-atmosphere: CAM2 (cam2_0_brnchT_itea_2, T42L26); ocean:<span
-style="mso-spacerun: yes">  </span>POP (pop2_0_ver_1.4.3, 2x3L15); sea
-ice: CSIM4; land: CLM2.0'.<span style="mso-spacerun: yes">  </span>For
-some MIP's it might be appropriate to list only a single component, in which
-case the descriptor (e.g., 'atmosphere') may be omitted along with the other
-model components (e.g., 'CAM2 2002 (cam2_0_brnchT_itea_2, T42L26)'.<span
-style="mso-spacerun: yes">  </span>Additional explanatory information may
-follow the required information.<o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'>calendar = CF-compliant calendar specification (e.g., ‘gregorian’,
-'noleap', etc.)<span style="mso-spacerun: yes">  </span>This argument must
-be included even in the case of a non-standard calendar, in which case it must
-not be given one of the calendars currently defined by CF ('gregorian', 'standard',
-'proleptic_gregorian', 'noleap', '365_day', '360_day', 'julian', and 'none'),
-and it must not be completely blank or a null string.<span style="mso-spacerun:
-yes">  </span>It would be acceptable, for example, to assign
-'non_standard' to this argument in the case of a non-standard calendar. <o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'>[realization] = an integer distinguishing among members of an ensemble
-of simulations (e.g., 1, 2, 3, etc.).<span style="mso-spacerun: yes"> 
-</span>If only a single simulation was performed, then this argument should be
-given the value 1 (which is also the default value). <span style='background:
-silver;mso-highlight:silver'>CMOR will reset this to 0 automatically for
-“fixed” frequency (i.e. time-independent fields)</span><o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'>[contact] = name and contact information (e.g., email, address, phone
-number) of person who should be contacted for more information about the data.<o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'>[history] = audit trail for modifications to the original data, each
-modification typically preceded by a "timestamp".<span
-style="mso-spacerun: yes">   </span>The "history" attribute
-provided here will be a global one and should not depend on which variable is
-contained in the file.<span style="mso-spacerun: yes">  </span>A
-variable-specific "history" can also be included in calling
-cmor_variable, described below.<o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'>[comment] = miscellaneous information about the data or methods used to
-produce it.<span style="mso-spacerun: yes">  </span>Each MIP may encourage
-the user to provide different information here.<span style="mso-spacerun:
-yes">  </span>For example, the user may be asked to include a description
-of how the initial conditions for a simulation were specified and how the model
-was spun-up (including the length of the spin-up period).<o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'>[references] = Published or web-based references that describe the data
-or methods used to produce it.<span style="mso-spacerun: yes"> 
-</span>Typically, the user should provide references describing the model
-formulation here.<o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'>[leap_year] = for non-standard calendars (otherwise omit), an integer,
-indicating an example of a leap year.<o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'>[leap_month] = for non-standard calendars (otherwise omit), an integer
-in the range 1-12, specifying which month is lengthened by a day in leap years
-(1=January).<o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'>[month_lengths] = for non-standard calendars (otherwise omit), an
-integer vector of size 12, specifying the number of days in the months from
-January through December (in a non-leap year).<o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='background:silver;mso-highlight:silver'>[model_id] = a
-string containing an acronym that identifies the model used to generate the
-output<a name="_Ref102799275">.</a><a style='mso-footnote-id:ftn' href="#_ftn9"
-name="_ftnref" title=""><span style='mso-bookmark:_Ref102799275'><span
-class=MsoFootnoteReference><span style='mso-special-character:footnote'><![if !supportFootnotes]>[9]<![endif]></span></span></span></a><span
-style='mso-bookmark:_Ref102799275'></span> For CMIP5, the model_id should be
-officially approved by the CMIP Panel (through PCMDI).<span
-style="mso-spacerun: yes">  </span>It should be as short as possible, so
-that it can be used, for example, in labeling curves on multi-model plots.<span
-style="mso-spacerun: yes">  </span>For examples of model_ids from CMIP3,
-see
-http://www-pcmdi.llnl.gov/ipcc/model_documentation/ipcc_model_documentation.php.<span
-style="mso-spacerun: yes">  </span>The acronym may include the acronym of
-the modeling center and the model name/version separated by a hyphen (e.g., “</span><span
-style='font-size:10.0pt;font-family:Arial;mso-bidi-font-family:Arial;
-background:silver;mso-highlight:silver'>IPSL-CM4”), but it may be o.k. to omit
-the modeling center</span><span style='background:silver;mso-highlight:silver'>.<span
-style="mso-spacerun: yes">  </span>Please note that you might in the
-future want to submit results from a successor to the present model, so if
-appropriate, you may want to indicate a model version, but please keep it
-simple e.g., CCSM4, not CCSM4.1.2.<span style="mso-spacerun: yes"> 
-</span>Full version information will appear in the “source” global attribute
-described above.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='background:silver;mso-highlight:silver'>[forcing] = a
-string containing a list of the “forcing” agents that could cause the climate
-to change in the experiment.<sup>9</sup><span style="mso-spacerun: yes"> 
-</span>The forcing should be expressed as a comma separated list of identifying
-strings that are part of the so-called DRS controlled vocabulary described in
-Appendix 1.2 of http://cmip-pcmdi.llnl.gov/cmip5/docs/cmip5_data_reference_syntax.pdf.<span
-style="mso-spacerun: yes">  </span>Within and/or following this
-machine-interpretable list may be text enclosed in parentheses providing
-further information. <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='background:silver;mso-highlight:silver'>[initialization_method]
-= an integer referring to the initialization method used. In C passing 0 means
-omitting it.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='background:silver;mso-highlight:silver'>[physics_version] =
-an integer referring to the physics used by the model, in C passing 0 means
-omitting it<o:p></o:p></span></p>
-
-<p class=MsoNormal style='text-align:justify;text-indent:.5in'><span
-style='background:silver;mso-highlight:silver'>[institute_id] = a short acronym
-describing “institution”</span><o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='background:silver;mso-highlight:silver'>[parent_experiment_id]
-= experiment_id indicating which experiment this branches from. For CMIP5 this
-should match the short name of the parent experiment id. Please pass “N/A” if
-Not Applicable.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='background:silver;mso-highlight:silver'>[branch_time] =
-time in parent experiment when this simulation started (in the units of the
-parent experiment). Pass 0 if Not Applicable. <o:p></o:p></span></p>
-
-<p class=MsoNormal style='text-align:justify;text-indent:.5in'><o:p> </o:p></p>
-
-<p class=MsoNormal style='text-align:justify;text-indent:.5in'><i
-style='mso-bidi-font-style:normal'>Returns upon success</i>: <o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify'><span
-style='color:#00B050'>Fortran: 0 <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify'><span
-style='color:blue'>C: 0 <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify'><span
-style='color:#FF6600'>Python: None <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='color:#99CC00'><o:p> </o:p></span></p>
-
-<h3><a name="_Toc129422003"></a><a name="_Toc134007302"><span style='mso-bookmark:
-_Toc129422003'>Define a Dataset Attribute: cmor_set_cur_dataset_attribute</span></a><o:p></o:p></h3>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><o:p> </o:p></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='color:#00B050;background:silver;mso-highlight:silver'>Fortran:
-error_flag = cmor_set_cur_dataset_attribute(name,value)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='color:blue;background:silver;mso-highlight:silver'>C: error_flag =
-cmor_set_cur_dataset_attribute(char *name, char *value, int optional) <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='color:#FF6600;background:silver;mso-highlight:silver'>Python: set_cur_dataset_attribute(name,value)</span><span
-style='background:silver;mso-highlight:silver'> <o:p></o:p></span></p>
-
-<p class=MsoNormal style='text-align:justify'><span style='background:silver;
-mso-highlight:silver'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><i
-style='mso-bidi-font-style:normal'><span style='background:silver;mso-highlight:
-silver'>Description</span></i><span style='background:silver;mso-highlight:
-silver'>: Associate a global attribute with the current dataset.<span
-style="mso-spacerun: yes">  </span>In CMIP5, this function can be called to
-set, for example, “institute_id”, “initialization” and “physics”. <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='background:silver;mso-highlight:silver'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><i style='mso-bidi-font-style:normal'><span style='background:silver;
-mso-highlight:silver'>Arguments</span></i><span style='background:silver;
-mso-highlight:silver'>:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='background:silver;mso-highlight:silver'>name = name of the global
-attribute to set.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='background:silver;mso-highlight:silver'>value = character
-string containing the value of this attribute.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-indent:-.5in'><span
-style='color:blue;background:silver;mso-highlight:silver'>optional = an
-argument that is ignored.<span style="mso-spacerun: yes"> 
-</span>(Internally, CMOR calls this function and needs this argument.)<o:p></o:p></span></p>
-
-<p class=MsoNormal><span style='color:blue;background:silver;mso-highlight:
-silver'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='text-align:justify;text-indent:.5in'><i
-style='mso-bidi-font-style:normal'><span style='background:silver;mso-highlight:
-silver'>Returns upon success</span></i><span style='background:silver;
-mso-highlight:silver'>: <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify'><span
-style='color:#00B050;background:silver;mso-highlight:silver'>Fortran: 0 <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify'><span
-style='color:blue;background:silver;mso-highlight:silver'>C: 0 <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify'><span
-style='color:#FF6600;background:silver;mso-highlight:silver'>Python: None</span><span
-style='color:#FF6600'> <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='color:#FF6600;background:silver;mso-highlight:silver'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='color:#FF6600;background:silver;mso-highlight:silver'><o:p> </o:p></span></p>
-
-<h3><a name="_Toc129422004"></a><a name="_Toc134007303"><span style='mso-bookmark:
-_Toc129422004'>Retrieve<span style="mso-spacerun: yes">  </span>a Dataset
-Attribute: cmor_get_cur_dataset_attribute</span></a><o:p></o:p></h3>
-
-<p class=MsoNormal><o:p> </o:p></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='color:#00B050;background:silver;mso-highlight:silver'>Fortran:
-error_flag = cmor_get_cur_dataset_attribute(name,result)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='color:blue;background:silver;mso-highlight:silver'>C: error_flag =
-cmor_get_cur_dataset_attribute(char *name, char *result) <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='color:#FF6600;background:silver;mso-highlight:silver'>Python: result = get_cur_dataset_attribute(name)</span><span
-style='background:silver;mso-highlight:silver'> <o:p></o:p></span></p>
-
-<p class=MsoNormal style='text-align:justify'><span style='background:silver;
-mso-highlight:silver'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><i
-style='mso-bidi-font-style:normal'><span style='background:silver;mso-highlight:
-silver'>Description</span></i><span style='background:silver;mso-highlight:
-silver'>: Retrieves a global attribute associated with the current dataset.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='background:silver;mso-highlight:silver'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><i style='mso-bidi-font-style:normal'><span style='background:silver;
-mso-highlight:silver'>Arguments</span></i><span style='background:silver;
-mso-highlight:silver'>:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='background:silver;mso-highlight:silver'>name = name of the
-global attribute to retrieve.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='background:silver;mso-highlight:silver'>result = string<span
-style="mso-spacerun: yes">  </span>(or pointer to a string), which is
-returned by the function and contains the retrieved global attribute (not for
-Python).<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='background:silver;mso-highlight:silver'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='text-align:justify;text-indent:.5in'><i
-style='mso-bidi-font-style:normal'><span style='background:silver;mso-highlight:
-silver'>Returns upon success</span></i><span style='background:silver;
-mso-highlight:silver'>: <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify'><span
-style='color:#00B050;background:silver;mso-highlight:silver'>Fortran: 0 <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify'><span
-style='color:blue;background:silver;mso-highlight:silver'>C: 0 <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify'><span
-style='color:#FF6600;background:silver;mso-highlight:silver'>Python: None</span><span
-style='color:#FF6600'> <o:p></o:p></span></p>
-
-<p class=MsoNormal style='text-align:justify'><span style='color:#FF6600;
-background:silver;mso-highlight:silver'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='text-align:justify'><span style='color:#FF6600;
-background:silver;mso-highlight:silver'><o:p> </o:p></span></p>
-
-<h3><a name="_Toc129422005"></a><a name="_Toc134007304"><span style='mso-bookmark:
-_Toc129422005'>Inquire whether a Dataset Attribute Exists:
-cmor_has_cur_dataset_attribute</span></a><o:p></o:p></h3>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in;page-break-after:avoid'><span style='color:#FF6600;background:silver;
-mso-highlight:silver'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='color:#00B050;background:silver;mso-highlight:silver'>Fortran:
-error_flag = cmor_has_cur_dataset_attribute(name)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='color:blue;background:silver;mso-highlight:silver'>C: error_flag =
-cmor_has_cur_dataset_attribute(char *name) <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='color:#FF6600;background:silver;mso-highlight:silver'>Python: error_flag
-= has_cur_dataset_attribute(name)</span><span style='background:silver;
-mso-highlight:silver'> <o:p></o:p></span></p>
-
-<p class=MsoNormal style='text-align:justify'><span style='background:silver;
-mso-highlight:silver'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><i
-style='mso-bidi-font-style:normal'><span style='background:silver;mso-highlight:
-silver'>Description</span></i><span style='background:silver;mso-highlight:
-silver'>: Determines whether a global attribute is associated with the current
-dataset.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='background:silver;mso-highlight:silver'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><i style='mso-bidi-font-style:normal'><span style='background:silver;
-mso-highlight:silver'>Arguments</span></i><span style='background:silver;
-mso-highlight:silver'>:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='background:silver;mso-highlight:silver'>name = name of the
-global attribute of interest.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='background:silver;mso-highlight:silver'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><i style='mso-bidi-font-style:normal'><span style='background:silver;
-mso-highlight:silver'>Returns</span></i><span style='background:silver;
-mso-highlight:silver'>: <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify'><span
-style='color:#00B050;background:silver;mso-highlight:silver'>a negative integer
-if an error is encountered; otherwise returns 0.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify'><span
-style='color:blue;background:silver;mso-highlight:silver'>0 upon success<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='color:#FF6600;background:silver;mso-highlight:silver'><span
-style='mso-tab-count:1'>            </span>True
-if the attribute exists, False otherwise.</span><span style='color:#FF6600'><o:p></o:p></span></p>
-
-<p class=MsoNormal style='text-align:justify'><o:p> </o:p></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='color:#99CC00'><o:p> </o:p></span></p>
-
-<h2><a name="_Toc129422006"></a><a name="_Toc134007305"><span style='mso-bookmark:
-_Toc129422006'>Dealing with tables</span></a><o:p></o:p></h2>
-
-<h3><a name="_Toc129422007"></a><a name="_Toc134007306"><span style='mso-bookmark:
-_Toc129422007'>Loading a Table in Memory from File:cmor_load_table</span></a><o:p></o:p></h3>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in;page-break-after:
-avoid'><b style='mso-bidi-font-weight:normal'><u><span style='color:#99CC00'><o:p><span
- style='text-decoration:none'> </span></o:p></span></u></b></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='color:#00B050'>Fortran: table_id = cmor_load_table(table)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='color:blue'>C: error_flag = cmor_load_table(char *table, int *table_id)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='color:#FF6600'>Python: table_id = load_table(table)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify;text-indent:-.5in'><o:p> </o:p></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><i
-style='mso-bidi-font-style:normal'>Description</i>: Loads a table to use later
-when defining CMOR components. CMOR will look first at the path as specified by
-the argument passed to this function, and if it doesn’t find a file there it
-will prepend the outpath defined in calling cmor_dataset. <o:p></o:p></p>
-
-<h3><a name="_Toc129422008"></a><a name="_Toc134007307"><span style='mso-bookmark:
-_Toc129422008'>Loading a Table from Memory:cmor_set_table</span></a><o:p></o:p></h3>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><o:p> </o:p></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='color:#00B050'>Fortran: cmor_set_table(table_id)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='color:blue'>C: error_flag = cmor_set_table(int table_id)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='color:#FF6600'>Python: table_id = set_table(table_id)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify;text-indent:-.5in'><o:p> </o:p></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><i
-style='mso-bidi-font-style:normal'>Description</i>: Sets the table referred to
-by table_id as the table to obtain needed information when defining CMOR
-components (variables, axes, grids, etc…). <o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><o:p> </o:p></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><o:p> </o:p></p>
-
-<h2><a name="_Toc129422009"></a><a name="_Toc134007308"><span style='mso-bookmark:
-_Toc129422009'>Dealing with Axes</span></a><o:p></o:p></h2>
-
-<p class=MsoNormal><o:p> </o:p></p>
-
-<h3><a name="_Toc129422010"></a><a name="_Toc134007309"><span style='mso-bookmark:
-_Toc129422010'>Define an Axis: cmor_axis</span></a><o:p></o:p></h3>
-
-<p class=MsoNormal><o:p> </o:p></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='color:#00B050'>Fortran: axis_id = cmor_axis([table], table_entry, units,
-[length], [coord_vals], [cell_bounds], [interval])<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='color:blue'>C: error_flag = cmor_axis(int *axis_id, char *table_entry,
-char *units, int length, void *coord_vals, char type, void *cell_bounds, int
-cell_bounds_ndim, char *interval)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='color:#FF6600'>Python: axis_id = axis(table_entry, units=None,
-length=None, coord_vals=None, cell_bounds=None, interval=None)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify;text-indent:-.5in'><o:p> </o:p></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><i
-style='mso-bidi-font-style:normal'>Description</i>: <span style="mso-spacerun:
-yes"> </span>Define an axis and pass the coordinate values associated with
-one of the dimensions of the data to be written. This function returns a
-"handle" (axis_id) that uniquely identifies the axis to be
-written.<span style="mso-spacerun: yes">  </span>The axis_id will
-subsequently be passed by the user to other CMOR functions.<span
-style="mso-spacerun: yes">  </span>The cmor_axis function will typically
-be repeatedly invoked to define all axes.<span style="mso-spacerun: yes"> 
-</span>The axis specified by the table_entry argument must be found in the
-currently “set” CMOR table, as specified by the cmor_load_table and
-cmor_set_table functions, <span style='color:#00B050'>or as an option, it can
-be provided in the Fortran version (for backward compatibility) by the now
-deprecated “table” keyword argument. </span><span style="mso-spacerun:
-yes"> </span>There normally is no need to call this function in the case
-of a singleton (scalar) dimension unless the MIP recommended (or required)
-coordinate value (or cell_bounds) are inconsistent with what the user can
-supply, or unless the user wants to define the "interval" attribute. <o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><o:p> </o:p></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><i
-style='mso-bidi-font-style:normal'>Arguments</i>:<o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='color:#00B050'>[table] = character string containing the
-filename of the MIP-specific table where the axis defined here appears (e.g.,
-‘CMIP5_table_Amon’, 'IPCC_table_A1', 'AMIP_table_1a', 'AMIP_table_2',
-'CMIP_table_2', etc.).<span style="mso-spacerun: yes">   </span>In
-CMOR2 this is an optional argument and is deprecated because the table can be
-specified through the cmor_load_table and cmor_set_table functions.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='color:blue'>axis_id = the “handle”: a positive integer
-returned by CMOR, which uniquely identifies the axis stored in this call to
-cmor_axis and subsequently can be used in calls to cmor_write. <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'>table_entry = name of the axis (as it appears in the MIP table) that
-will be defined by this function.<o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'>units = units associated with the coordinates passed in coord_vals and
-cell_bounds.<span style="mso-spacerun: yes">  </span>(These are the units
-of the user's coordinate values, which, if CMOR is built with udunits (as is
-required in version 2), may differ from the units of the coordinates written to
-the netCDF file by CMOR.<span style="mso-spacerun: yes">  </span>For
-non-standard calendars (e.g., models with no leap year), conversion of time
-values can be made only if CMOR is built with CDMS.) These units must be
-recognized by udunits or must be identical to the units specified in the MIP
-table.<span style="mso-spacerun: yes">  </span>In the case of a
-dimensionless vertical coordinate or in the case of a non-numerical axis (like
-geographical region), either set units='none', or, optionally, set units='1'.<o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'>[length] = integer specifying the number of elements that CMOR should
-extract from the coord_vals array (normally length will be the size of the
-array itself). For a simple “index axis” (i.e., an axis without coordinate
-values), this specifies the length of the dimension.<span style="mso-spacerun:
-yes">  </span>In the Fortran and Python versions of the function, this
-argument is not always required (except in the case of a simple index axis); if
-omitted “length” will be the size of the coord_vals array, <o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'>[coord_vals] = 1-d array (single precision float, double precision
-float, or, for labels, character strings) containing coordinate values, ordered
-consistently with the data array that will be passed by the user to CMOR
-through function cmor_write (see documentation below).<span
-style="mso-spacerun: yes">  </span>This argument is required except if: 1)
-the axis is a simple “index axis” (i.e., an axis without coordinate values), or
-2) for a time coordinate, the user intends to pass the coordinate values when
-the cmor_write function is called.<span style="mso-spacerun: yes"> 
-</span>Note that the coordinate values must be ordered monotonically, so, for
-example, in the case of longitudes that might have the values, 0., 10., 20, ...
-170., 180., 190., 200.,<span style="mso-spacerun: yes">  </span>... 340.,
-350., passing the (equivalent) values, 0., 10., 20, ... 170., 180., -170.,
--160., ... -20., -10. is forbidden.<span style="mso-spacerun: yes"> 
-</span>In the case of time-coordinate values, if cell bounds are also passed,
-then CMOR will first check that each coordinate value is not outside its
-associated cell bounds; subsequently, however, the user-defined coordinate
-value will be replaced by the mid-point of the interval defined by its bounds,
-and it is this value that will be written to the netCDF file. <span
-style='color:blue'>In the case of character string coord_vals there are no
-cell_bounds, but for the C version of the function, the argument
-cell_bounds_ndim is used to specify the length of the strings in the coord_vals
-array (i.e., the array will be dimensioned [length][cell_bounds_ndim]). <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='color:blue'>type = type of the coord_vals/bnds passed, which
-can be ‘d’ (double), ‘f’ (float), ‘l’ (long) or ‘i’ (int).<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'>[cell_bounds] = 1-d or 2-d array (of the same type as coord_vals)
-containing cell bounds, which should be in the same units as coord_vals
-(specified in the "units" argument above) and should be ordered in
-the same way as coord_vals.<span style="mso-spacerun: yes">  </span>In the
-case of a 1-d array, the size is one more than the size of coord_vals and the
-cells must be contiguous.<span style="mso-spacerun: yes">  </span>In the
-case of a 2-d array, it is dimensioned (2, n) where n is the size of coord_vals
-(see CF standard document, <a
-href="http://www.cgd.ucar.edu/cms/eaton/cf-metadata">http://www.cgd.ucar.edu/cms/eaton/cf-metadata</a>,
-for further information).<span style="mso-spacerun: yes">  </span>This
-argument may be omitted when cell bounds are not required.<span
-style="mso-spacerun: yes">  </span>It must be omitted if coord_vals is
-omitted.<o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='color:blue'>cell_bounds_ndim = This argument only appears
-in the C version of this function.<span style="mso-spacerun: yes">  
-</span>Except in the case of a character string axis, it specifies the rank of
-the cell_bounds array: if 1, the bounds array will contain n+1 elements, where
-n is length of coord_vals and the cells must be contiguous, whereas if 2, the
-dimension will be (n,2) in C order. <span style="mso-spacerun:
-yes"> </span>Pass 0 if no cell_bounds values have been passed. In the
-special case of a character string axis, this argument is used to specify the
-length of the strings in the coord_vals array (i.e., the array will be
-dimensioned [length][cell_bounds_ndim]). </span><o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'>[interval] = Supplemental information that will be included in the
-cell_methods attribute, which is typically defined for the time axis in order
-to describe the sampling interval.<span style="mso-spacerun: yes"> 
-</span>This string should be of the form: "<i style='mso-bidi-font-style:
-normal'>value unit</i> comment: <i style='mso-bidi-font-style:normal'>anything</i>"
-(where "comment:" and <i style='mso-bidi-font-style:normal'>anything</i>
-may always be omitted).<span style="mso-spacerun: yes">  </span>For
-monthly mean data sampled every 15 minutes, for example, interval = "15
-minutes".<o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style="mso-spacerun: yes">  </span><o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><i style='mso-bidi-font-style:normal'>Returns</i>: <o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.5in;text-align:justify;text-indent:
--.5in'><span style='color:#00B050'>Fortran: a negative integer if an error is
-encountered; otherwise returns a positive integer (the “handle”) uniquely
-identifying the axis.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.5in;text-align:justify;text-indent:
--.5in'><span style='color:blue'>C: 0 upon success.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.5in;text-align:justify;text-indent:
--.5in'><span style='color:#FF6600'>Python: upon success, a positive integer
-(the “handle”) uniquely identifying the axis, or if an error is encountered an
-exception is raised.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><o:p> </o:p></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify;text-indent:-.5in'><o:p> </o:p></p>
-
-<h3><a name="_Toc129422011"></a><a name="_Toc134007310"><span style='mso-bookmark:
-_Toc129422011'>Define an Axis Attribute: cmor_set_axis_attribute</span></a> <o:p></o:p></h3>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in;page-break-after:
-avoid'><b style='mso-bidi-font-weight:normal'><u><o:p><span style='text-decoration:
- none'> </span></o:p></u></b></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in;page-break-after:
-avoid'><span style='color:#00B050;background:silver;mso-highlight:silver'>Fortran:
-Not implemented because it is not needed for CMIP5.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='color:blue;background:silver;mso-highlight:silver'>C: error_flag =
-cmor_set_axis_attribute(int axis_id, char *attribute_name, char type, void
-*value)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='text-align:justify'><span style='color:#FF6600;
-background:silver;mso-highlight:silver'>Python: Not implemented because it is
-not needed for CMIP5.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='text-align:justify'><span style='color:#FF6600;
-background:silver;mso-highlight:silver'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><i
-style='mso-bidi-font-style:normal'><span style='color:blue;background:silver;
-mso-highlight:silver'>Description</span></i><span style='color:blue;background:
-silver;mso-highlight:silver'>:<span style="mso-spacerun: yes"> 
-</span>Defines an attribute to be associated with the axis specified by the
-axis_id.<span style="mso-spacerun: yes">  </span>This is not likely to be
-needed in preparing CMIP5 output.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><span
-style='color:blue;background:silver;mso-highlight:silver'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><i
-style='mso-bidi-font-style:normal'><span style='color:blue;background:silver;
-mso-highlight:silver'>Arguments</span></i><span style='color:blue;background:
-silver;mso-highlight:silver'>:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='color:blue;background:silver;mso-highlight:silver'>axis_id
-= the “handle” returned by cmor_axis (when the axis was defined), which will
-become better described by the attribute defined in this function.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='color:blue;background:silver;mso-highlight:silver'>attribute_name
-= name of the attribute<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='color:blue;background:silver;mso-highlight:silver'>type =
-type of the attribute value passed.<span style="mso-spacerun: yes">  
-</span>This can be ‘d’ (double), ‘f’ (float), ‘l’ (long), ‘i’ (int), or ‘c’
-(char)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='color:blue;background:silver;mso-highlight:silver'>value =
-whatever value you wish to set the attribute to (type defined by type argument)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='color:blue;background:silver;mso-highlight:silver'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='text-align:justify;text-indent:.5in'><i
-style='mso-bidi-font-style:normal'><span style='color:blue;background:silver;
-mso-highlight:silver'>Return upon success</span></i><span style='color:blue;
-background:silver;mso-highlight:silver'>:</span><span style='color:blue'> <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify'><span
-style='color:blue;background:silver;mso-highlight:silver'>C: 0 <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><span
-style='background:silver;mso-highlight:silver'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><span
-style='background:silver;mso-highlight:silver'><o:p> </o:p></span></p>
-
-<h3><a name="_Toc129422012"></a><a name="_Toc134007311"><span style='mso-bookmark:
-_Toc129422012'>Retrieve an Axis Attribute: cmor_get_axis_attribute</span></a><o:p></o:p></h3>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in;page-break-after:
-avoid'><b style='mso-bidi-font-weight:normal'><u><o:p><span style='text-decoration:
- none'> </span></o:p></u></b></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in;page-break-after:
-avoid'><span style='color:#00B050;background:silver;mso-highlight:silver'>Fortran:
-Not implemented because it is not needed for CMIP5.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='color:blue;background:silver;mso-highlight:silver'>C: error_flag = cmor_get_axis_attribute(int
-axis_id, char *attribute_name, char type, void *value)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='text-align:justify'><span style='color:#FF6600;
-background:silver;mso-highlight:silver'>Python: Not implemented because it is
-not needed for CMIP5.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='text-align:justify'><span style='color:#FF6600;
-background:silver;mso-highlight:silver'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><i
-style='mso-bidi-font-style:normal'><span style='color:blue;background:silver;
-mso-highlight:silver'>Description</span></i><span style='color:blue;background:
-silver;mso-highlight:silver'>: retrieves an attribute value set for the axis
-specified by the axis_id. This is not likely to be needed in preparing CMIP5
-output.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><span
-style='color:blue;background:silver;mso-highlight:silver'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><i
-style='mso-bidi-font-style:normal'><span style='color:blue;background:silver;
-mso-highlight:silver'>Arguments</span></i><span style='color:blue;background:
-silver;mso-highlight:silver'>:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='color:blue;background:silver;mso-highlight:silver'>axis_id
-= the “handle” returned by cmor_axis (when the axis was defined) with which the
-attribute requested is associated.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='color:blue;background:silver;mso-highlight:silver'>attribute_name
-= name of the attribute<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='color:blue;background:silver;mso-highlight:silver'>type =
-type of the attribute value to be retrieved.<span style="mso-spacerun:
-yes">  </span>This can be ‘d’ (double), ‘f’ (float), ‘l’ (long), ‘i’
-(int), or ‘c’ (char).<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='color:blue;background:silver;mso-highlight:silver'>value =
-the argument that will accept the retrieved attribute.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='color:blue;background:silver;mso-highlight:silver'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='text-align:justify;text-indent:.5in'><i
-style='mso-bidi-font-style:normal'><span style='color:blue;background:silver;
-mso-highlight:silver'>Return upon success</span></i><span style='color:blue;
-background:silver;mso-highlight:silver'>:</span><span style='color:blue'> <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify'><span
-style='color:blue;background:silver;mso-highlight:silver'>C: 0 <o:p></o:p></span></p>
-
-<p class=MsoNormal style='text-align:justify'><span style='color:#FF6600'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='text-align:justify'><span style='background:silver;
-mso-highlight:silver'><o:p> </o:p></span></p>
-
-<h3><a name="_Toc129422013"></a><a name="_Toc134007312"><span style='mso-bookmark:
-_Toc129422013'>Inquire whether an Axis Attribute Exists:
-cmor_has_axis_attribute</span></a><o:p></o:p></h3>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in;page-break-after:
-avoid'><b style='mso-bidi-font-weight:normal'><u><o:p><span style='text-decoration:
- none'> </span></o:p></u></b></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in;page-break-after:
-avoid'><span style='color:#00B050;background:silver;mso-highlight:silver'><span
-style="mso-spacerun: yes"> </span>Fortran: Not implemented because it is
-not needed for CMIP5.<o:p></o:p></span></p>
-
-<p class=MsoNormal><span style='color:blue;background:silver;mso-highlight:
-silver'>C: error_flag = cmor_has_axis_attribute(int axis_id, char
-*attribute_name)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='text-align:justify'><span style='color:#FF6600;
-background:silver;mso-highlight:silver'>Python: Not implemented because it is
-not needed for CMIP5.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='text-align:justify'><span style='color:#FF6600;
-background:silver;mso-highlight:silver'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><i
-style='mso-bidi-font-style:normal'><span style='color:blue;background:silver;
-mso-highlight:silver'>Description</span></i><span style='color:blue;background:
-silver;mso-highlight:silver'>: Determines whether an attribute exists and is
-associated with the variable specified by variable_id, which is a handle
-returned to the user by a previous call to cmor_variable.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><span
-style='color:blue;background:silver;mso-highlight:silver'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify;page-break-after:
-avoid'><i style='mso-bidi-font-style:normal'><span style='color:blue;
-background:silver;mso-highlight:silver'>Arguments</span></i><span
-style='color:blue;background:silver;mso-highlight:silver'>:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='color:blue;background:silver;mso-highlight:silver'>axis_id
-= the “handle” specifying which axis is of interest.<span style="mso-spacerun:
-yes">  </span>An axis_id is returned by cmor_variable each time a variable
-is defined).<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='color:blue;background:silver;mso-highlight:silver'>attribute_name
-= name of the attribute of interest.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='color:blue;background:silver;mso-highlight:silver'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><i
-style='mso-bidi-font-style:normal'><span style='color:blue;background:silver;
-mso-highlight:silver'>Returns upon success (i.e., the attribute was found):<o:p></o:p></span></i></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify'><span
-style='color:blue;background:silver;mso-highlight:silver'>C: 0 <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><span
-style='color:blue;background:silver;mso-highlight:silver'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><span
-style='color:blue;background:silver;mso-highlight:silver'><o:p> </o:p></span></p>
-
-<h2><a name="_Toc129422014"></a><a name="_Toc134007313"><span style='mso-bookmark:
-_Toc129422014'>Dealing with Grids</span></a><o:p></o:p></h2>
-
-<h3><a name="_Toc129422015"></a><a name="_Toc134007314"><span style='mso-bookmark:
-_Toc129422015'>Define a Grid: cmor_grid</span></a><o:p></o:p></h3>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><span
-style='color:blue;background:silver;mso-highlight:silver'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='color:#00B050;background:silver;mso-highlight:silver'>Fortran: grid_id =
-cmor_grid(axis_ids, latitude, longitude, [latitude_vertices], [longitude_vertices],
-[nvertices]) <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='color:blue;background:silver;mso-highlight:silver'>C: error_flag =
-cmor_grid(int *grid_id, int ndims, int *axis_ids, char type, void *latitude,
-void *longitude, int nvertices, void *latitude_vertices, void
-*longitude_vertices)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='color:#FF6600;background:silver;mso-highlight:silver'>Python: grid_id =
-grid(axis_ids, latitude, longitude, latitude_vertices=None, longitude_vertices=None,
-nvertices=0)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='text-align:justify'><span style='color:#FF6600;
-background:silver;mso-highlight:silver'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><i
-style='mso-bidi-font-style:normal'><span style='background:silver;mso-highlight:
-silver'>Description</span></i><span style='background:silver;mso-highlight:
-silver'>: Define a grid to be associated with data, including the latitude and
-longitude arrays. The grid can be structured with up to 6 dimensions. These
-dimensions, which may be simple “index” axes, must be defined via cmor_axis
-prior to calling cmor_grid. This function returns a "handle"
-(grid_id) that uniquely identifies the grid (and its data/metadata) to be
-written.<span style="mso-spacerun: yes">  </span>The grid_id will subsequently
-be passed by the user to other CMOR functions.<span style="mso-spacerun:
-yes">  </span>The cmor_grid function will typically be invoked to define each
-grid necessary for the experiment (e.g., ocean grid, vegetation grid,
-atmosphere grid, etc…).<span style="mso-spacerun: yes">  </span>There is
-no need to call this function in the case of a Cartesian lat/lon grid.<span
-style="mso-spacerun: yes">  </span>In this case, simply define the
-latitude and longitude axes and pass their id’s (“handles”) to cmor_variable.
-Grids can be time dependent as well, in this case the latitude, longitude and
-vertices_latitude, vertices_longitude must be defined separately via cmor_time_varying_grid_coordinate.
-Note that in this case the number of vertices <i style='mso-bidi-font-style:
-normal'>must</i> be passed when calling cmor_grid.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><span
-style='background:silver;mso-highlight:silver'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><i
-style='mso-bidi-font-style:normal'><span style='background:silver;mso-highlight:
-silver'>Arguments</span></i><span style='background:silver;mso-highlight:silver'>:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='color:blue;background:silver;mso-highlight:silver'>grid_id
-= the “handle”: a positive integer returned by CMOR, which uniquely identifies
-the grid defined in this call to CMOR and subsequently can be used in calls to
-CMOR.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='color:blue;background:silver;mso-highlight:silver'>ndims =
-number of dimensions needed to define the grid (i.e., the number of elements
-from axis_ids that will be used).<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='background:silver;mso-highlight:silver'>axis_ids = array
-containing the axis_s returned by cmor_axis when defining the axes constituting
-the grid.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='background:silver;mso-highlight:silver'>[latitude] = array
-containing the grid’s latitude information (ndims dimensions), optional <i
-style='mso-bidi-font-style:normal'>only</i> in the case of time varying grids. <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='background:silver;mso-highlight:silver'>]longitude] = array
-containing the grid’s longitude information (ndims dimensions), optional <i
-style='mso-bidi-font-style:normal'>only</i> in the case of time varying grids <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='background:silver;mso-highlight:silver'>[nvertices] =
-length of vertices axis.<span style="mso-spacerun: yes">  </span>Fortran
-and Python can figure this out if latitude_vertices is passed. But in case of
-time-varying grids this is necessary in order to prepare the “Vertices”
-variable correctly.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='background:silver;mso-highlight:silver'>[latitude_vertices]
-= array containing the grid’s latitude vertices information (ndim+1 dimensions).
-The vertices dimension must be the fastest varying dimension of the array (i.e.,
-<span style='color:#00B050'>first one in Fortran</span>, <span
-style='color:blue'>last one in C</span>, <span style='color:#FF6600'>last one
-in Python</span>) <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='background:silver;mso-highlight:silver'>[longitude_vertices]
-= array containing the grid’s longitude vertices information (ndim+1 dimensions).
-The vertices dimension must be the fastest varying dimension of the array (i.e.,
-<span style='color:#00B050'>first one in Fortran</span>, <span
-style='color:blue'>last one in C</span>, <span style='color:#FF6600'>last one
-in Python</span>) <o:p></o:p></span></p>
-
-<p class=MsoNormal style='text-align:justify'><span style='background:silver;
-mso-highlight:silver'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in;page-break-after:avoid'><i style='mso-bidi-font-style:normal'><span
-style='background:silver;mso-highlight:silver'>Returns</span></i><span
-style='background:silver;mso-highlight:silver'>: <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.5in;text-align:justify;text-indent:
--.5in;page-break-after:avoid'><span style='color:#00B050;background:silver;
-mso-highlight:silver'>Fortran: a positive integer if an error is encountered;
-otherwise returns a negative integer (the “handle”) uniquely identifying the
-grid.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;page-break-after:
-avoid'><span style='color:blue;background:silver;mso-highlight:silver'>C: 0
-upon success.</span><span style='color:#00B050;background:silver;mso-highlight:
-silver'><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.5in;text-align:justify;text-indent:
--.5in;page-break-after:avoid'><span style='color:#FF6600;background:silver;
-mso-highlight:silver'>Python: upon success, a positive integer (the “handle”) uniquely
-identifying the axis, or if an error is encountered an exception is raised.</span><span
-style='color:#00B050'><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><i style='mso-bidi-font-style:normal'><span style='background:silver;
-mso-highlight:silver'>Note:<o:p></o:p></span></i></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><i style='mso-bidi-font-style:normal'><span style='background:silver;
-mso-highlight:silver'>This function used to take an optional extra argument (up
-to CMOR2.0rc4 included), it is now not needed anymore as cellArea and
-cellVolume files are written in a separate file.</span></i><span
-style='color:#FF6600;background:silver;mso-highlight:silver'><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='color:#FF6600;background:silver;mso-highlight:silver'><o:p> </o:p></span></p>
-
-<h3><a name="_Toc129422016"></a><a name="_Toc134007315"><span style='mso-bookmark:
-_Toc129422016'>Define Grid Mapping Parameters: cmor_set_grid_mapping</span></a><o:p></o:p></h3>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='background:silver;mso-highlight:silver'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='color:#00B050;background:silver;mso-highlight:silver'>Fortran: error_flag
-= cmor_set_grid_mapping(grid_id, mapping_name, parameter_names,
-parameter_values, parameter_units) <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='color:blue;background:silver;mso-highlight:silver'>C: error_flag =
-cmor_set_grid_mapping(int grid_id, char *mapping_name, int nparameters, char
-**parameter_names, int lparameters, double parameter_values[], char
-**parameter_units, int lunits)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='color:#FF6600;background:silver;mso-highlight:silver'>Python: set_grid_mapping(grid_id,
-mapping_name, parameter_names, parameter_values=None, parameter_units=None)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='text-align:justify'><span style='color:#FF6600;
-background:silver;mso-highlight:silver'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><i
-style='mso-bidi-font-style:normal'><span style='background:silver;mso-highlight:
-silver'>Description</span></i><span style='background:silver;mso-highlight:
-silver'>: Define the grid mapping parameters associated with a grid (see CF
-conventions for more info on which parameters to set). Check validity of
-parameter names and units. Additional mapping names and parameter names can be
-defined via the MIP table. <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><span
-style='background:silver;mso-highlight:silver'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><i
-style='mso-bidi-font-style:normal'><span style='background:silver;mso-highlight:
-silver'>Arguments</span></i><span style='background:silver;mso-highlight:silver'>:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='background:silver;mso-highlight:silver'>grid_id = the
-“handle” returned by a previous call to cmor_grid, indicating which grid the
-mapping parameters should be associated with.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='background:silver;mso-highlight:silver'>mapping_name = name
-of the mapping (see CF conventions).<span style="mso-spacerun: yes"> 
-</span>This name dictates which parameters should be set and for some
-parameters restricts their possible values or range.<span style="mso-spacerun:
-yes">  </span>New mapping names can be added via MIP tables.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='color:blue;background:silver;mso-highlight:silver'>nparameters
-= number of parameters set.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='background:silver;mso-highlight:silver'>parameter_names =
-array (list for Python) of strings containing the names of the parameters to
-set. <span style="mso-spacerun: yes"> </span>In the case of
-“standard_parallel”, CF allows either 1 or 2 parallels to be specified (i.e.
-the attribute standard_parallel may be an array of length 2).<span
-style="mso-spacerun: yes">  </span>In the case of 2 parallels, CMOR
-requires the user to specify these as separate parameters, named standard_parallel_1
-and standard_parallel_2, but then the two parameters will be stored in an
-array, consistent with CF.<span style="mso-spacerun: yes">  </span>In the
-case of a single parallel, the name standard_parallel should be specified. <span
-style="mso-spacerun: yes"> </span><span style='color:blue'>In the C version
-of this function, parameter_names is declared of length
-[nparameters][lparameters], where lparameters in the length of each string array
-element (see below).</span> <span style='color:#FF6600'>In Python parameter_names
-can be defined as a dictionary containing the keys that represent the
-parameter_names. The value associated with each key can be either a list
-[float, str] (or [str, float]) representing the value/units of each parameter,
-or another dictionary containing the keys “value” and “units”. If these
-conditions are fulfilled, then parameter_units and parameter_values are
-optional and would be ignored if passed.<o:p></o:p></span></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='color:blue;background:silver;mso-highlight:silver'>lparameters
-= length of each element of the string array. <span style="mso-spacerun:
-yes"> </span>If, for example, parameter_names includes 5 parameters, each
-24 characters long (i.e., it is declared [5][24]), you would pass lparameters=24.</span><span
-style='background:silver;mso-highlight:silver'><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='background:silver;mso-highlight:silver'>parameter_values =
-array containing the values associated with each parameter. <span
-style='color:#FF6600'>In Python this is optional if parameter_names is a
-dictionary containing the values and units.<o:p></o:p></span></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='background:silver;mso-highlight:silver'>parameter_units =
-array (list for Python) of string containing the units of the parameters to
-set. <span style='color:blue'>In C parameter_units is declared of length
-[nparameters][lunits]</span>. <span style='color:#FF6600'>In Python it is
-optional if parameter_names is a dictionary containing the value and units.<o:p></o:p></span></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='color:blue;background:silver;mso-highlight:silver'>lunits =
-length of each elements of the units string array (e.g., <span
-style="mso-spacerun: yes"> </span>if parameters_units is declared [5][24],
-you would pass 24 because each elements has 24 characters).<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='color:blue;background:silver;mso-highlight:silver'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><i style='mso-bidi-font-style:normal'><span style='background:silver;
-mso-highlight:silver'>Returns upon success</span></i><span style='background:
-silver;mso-highlight:silver'>: <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify'><span
-style='color:#00B050;background:silver;mso-highlight:silver'>Fortran: 0 <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify'><span
-style='color:blue;background:silver;mso-highlight:silver'>C: 0 <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;page-break-after:
-avoid'><span style='color:#FF6600;background:silver;mso-highlight:silver'>Python:
-None</span><span style='color:#FF6600'> <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;page-break-after:
-avoid'><span style='color:#FF6600'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;page-break-after:
-avoid'><span style='color:#FF6600'><o:p> </o:p></span></p>
-
-<h3><a name="_Toc129422017"></a><a name="_Toc134007316"><span style='mso-bookmark:
-_Toc129422017'>Define a Coordinate Variable for a Time Varying Grid:
-cmor_time_varying_grid_coordinate</span></a><o:p></o:p></h3>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><span
-style='color:blue;background:silver;mso-highlight:silver'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='color:#00B050;background:silver;mso-highlight:silver'>Fortran: coord_var_id
-= cmor_time_varying_grid_coordinate(grid_id, table_entry, units, missing_value)
-<o:p></o:p></span></p>
-
-<p class=MsoNormal><span style='color:blue;background:silver;mso-highlight:
-silver'>C: error_flag = cmor_time_varying_grid_coordinate(int *coord_var_id,
-int grid_id, char *table_entry, char *units, char type, void *missing, [int
-*coordinate_type]) {</span><span style='color:blue'><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='color:#FF6600;background:silver;mso-highlight:silver'>Python:
-coord_var_id = time_varying_grid_coordinate(grid_id, table_entry, units,
-[missing_value])<o:p></o:p></span></p>
-
-<p class=MsoNormal style='text-align:justify'><span style='color:#FF6600;
-background:silver;mso-highlight:silver'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><i
-style='mso-bidi-font-style:normal'><span style='background:silver;mso-highlight:
-silver'>Description</span></i><span style='background:silver;mso-highlight:
-silver'>: Define a grid to be associated with data, including the latitude and
-longitude arrays. The grid can be structured with up to 6 dimensions. These
-dimensions, which may be simple “index” axes, must be defined via cmor_axis
-prior to calling cmor_grid. This function returns a "handle"
-(grid_id) that uniquely identifies the grid (and its data/metadata) to be
-written.<span style="mso-spacerun: yes">  </span>The grid_id will
-subsequently be passed by the user to other CMOR functions.<span
-style="mso-spacerun: yes">  </span>The cmor_grid function will typically
-be invoked to define each grid necessary for the experiment (e.g., ocean grid,
-vegetation grid, atmosphere grid, etc.).<span style="mso-spacerun: yes"> 
-</span>There is no need to call this function in the case of a Cartesian
-lat/lon grid.<span style="mso-spacerun: yes">  </span>In this case, simply
-define the latitude and longitude axes and pass their id’s (“handles”) to
-cmor_variable.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><span
-style='background:silver;mso-highlight:silver'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><i
-style='mso-bidi-font-style:normal'><span style='background:silver;mso-highlight:
-silver'>Arguments</span></i><span style='background:silver;mso-highlight:silver'>:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='color:blue;background:silver;mso-highlight:silver'>coord_var_id
-= the “handle”: a positive integer returned by this function, which uniquely
-identifies the variable and can be used in subsequent calls to CMOR.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='background:silver;mso-highlight:silver'>grid_id =the value
-returned by cmor_grid when the grid was created. <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='background:silver;mso-highlight:silver'>table_entry = name
-of the variable (as it appears in the MIP table) that this function defines. <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='background:silver;mso-highlight:silver'>units = units of
-the data that will be passed to CMOR by function cmor_write.<span
-style="mso-spacerun: yes">  </span>These units may differ from the units
-of the data output by CMOR.<span style="mso-spacerun: yes">  
-</span>Whenever possible, this string should be interpretable by udunits (see </span><a
-href="http://my.unitdata.ucar.edu/content/software/udunits/"><span
-style='background:silver;mso-highlight:silver'>http://my.unitdata.ucar.edu/content/software/udunits/</span></a><span
-style='background:silver;mso-highlight:silver'>).<span style="mso-spacerun:
-yes">  </span>In the case of dimensionless quantities the units should be
-specified consistent with the CF conventions, so for example: percent,
-units='percent'; for a fraction, units='1'; for parts per million,
-units='1e-6', etc.).<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='color:blue;background:silver;mso-highlight:silver'>type =
-type of the missing_value, which must be the same as the type of the array that
-will be passed to cmor_write.<span style="mso-spacerun: yes">  </span>The
-options are: ‘d’ (double), ‘f’ (float), ‘l’ (long) or ‘i’ (int). <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='background:silver;mso-highlight:silver'><span
-style="mso-spacerun: yes"> </span>[missing_value] = scalar that is used to
-indicate missing data for this variable.<span style="mso-spacerun: yes"> 
-</span>It must be the same type as the data that will be passed to cmor_write.<span
-style="mso-spacerun: yes">  </span>This missing_value will in general be
-replaced by a standard missing_value specified in the MIP table.<span
-style="mso-spacerun: yes">  </span>If there are no missing data, and the
-user chooses not to declare the missing value, then this argument may be either
-omitted or assigned the value 'none' (i.e., missing_value='none').<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='color:blue;background:silver;mso-highlight:silver'>[coordinate_type]
-= place holder for future implementation, unused, pass NULL <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><i
-style='mso-bidi-font-style:normal'><span style='background:silver;mso-highlight:
-silver'><o:p> </o:p></span></i></p>
-
-<p class=MsoNormal style='text-align:justify'><span style='background:silver;
-mso-highlight:silver'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in;page-break-after:avoid'><i style='mso-bidi-font-style:normal'><span
-style='background:silver;mso-highlight:silver'>Returns</span></i><span
-style='background:silver;mso-highlight:silver'>: <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.5in;text-align:justify;text-indent:
--.5in;page-break-after:avoid'><span style='color:#00B050;background:silver;
-mso-highlight:silver'>Fortran: a positive integer if an error is encountered;
-otherwise returns a negative integer (the “handle”) uniquely identifying the
-grid.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;page-break-after:
-avoid'><span style='color:blue;background:silver;mso-highlight:silver'>C: 0
-upon success.</span><span style='color:#00B050;background:silver;mso-highlight:
-silver'><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.5in;text-align:justify;text-indent:
--.5in;page-break-after:avoid'><span style='color:#FF6600;background:silver;
-mso-highlight:silver'>Python: upon success, a positive integer (the “handle”) uniquely
-identifying the axis, or if an error is encountered an exception is raised.</span><span
-style='color:#00B050'><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in;page-break-after:
-avoid'><b style='mso-bidi-font-weight:normal'><u><o:p><span style='text-decoration:
- none'> </span></o:p></u></b></p>
-
-<h2><a name="_Toc129422018"></a><a name="_Toc134007317"><span style='mso-bookmark:
-_Toc129422018'>Vertical Dimensions</span></a><o:p></o:p></h2>
-
-<h3><a name="_Toc129422019"></a><a name="_Toc134007318"><span style='mso-bookmark:
-_Toc129422019'>Provide Non-Dimensional Vertical Coordinate Information:
-cmor_zfactor</span></a><o:p></o:p></h3>
-
-<p class=MsoNormal style='text-align:justify;page-break-after:avoid'><o:p> </o:p></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='color:#00B050'>Fortran: zfactor_id = cmor_zfactor(zaxis_id,
-zfactor_name, [axis_ids], [units], zfactor_values, zfactor_bounds) <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='color:blue'>C: error_flag = cmor_zfactor (int *zfactor_id, int zaxis_id,
-char *zfactor_name, char *units, int ndims, int axis_ids[], char type, void
-*zfactor_values, void *zfactor_bounds)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='color:#FF6600'>Python: zfactor_id = zfactor(zaxis_id, zfactor_name,
-units, axis_ids, type, zfactor_values=None, zfactor_bounds=None)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='text-align:justify'><o:p> </o:p></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><i
-style='mso-bidi-font-style:normal'>Description</i>:<span style="mso-spacerun:
-yes">  </span>Define a factor needed to convert a non-dimensional vertical
-coordinate (model level) to a physical location.<span style="mso-spacerun:
-yes">   </span>For pressure, height, or depth, this function is
-unnecessary, but for dimensionless coordinates it is needed.<span
-style="mso-spacerun: yes">  </span>In the case of atmospheric sigma
-coordinates, for example, a scalar parameter must be defined indicating the top
-of the model, and the variable containing the surface pressure must be
-identified.<span style="mso-spacerun: yes">  </span>The parameters that
-must be defined for different vertical dimensionless coordinates are listed in
-Appendix D of the CF convention document (<a
-href="http://www.cgd.ucar.edu/cms/eaton/cf-metadata">http://www.cgd.ucar.edu/cms/eaton/cf-metadata</a>).<span
-style="mso-spacerun: yes">   </span>Often bounds for the zfactors
-will be needed (e.g., for hybrid sigma coordinates, "A's" and
-"B's" must be defined both for the layers and, often more
-importantly, for the layer interfaces).<span style="mso-spacerun: yes"> 
-</span>This function must be invoked for each z-factor required.<o:p></o:p></p>
-
-<p class=MsoNormal style='text-align:justify'><o:p> </o:p></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><i
-style='mso-bidi-font-style:normal'>Arguments</i>:<o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'>zfactor_id = the “handle”: a positive integer returned by this function
-which uniquely identifies the grid defined in this call to CMOR and can
-subsequently be used in calls to CMOR.<o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'>zaxis_id = an integer ("handle") returned by cmor_axis (which
-must have been previously called) indicating which axis requires this factor.<o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'>zfactor_name = name of the z-factor (as it appears in the MIP table)
-that will be defined by this function.<o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style="mso-spacerun: yes"> </span>[axis_ids] = an integer
-array containing the list of axis_id's (individually defined by calls to
-cmor_axis), which the z-factor defined here is a function of (e.g. for surface
-pressure, the array of i.d.'s would usually include the longitude, latitude,
-and time axes.)<span style="mso-spacerun: yes">  </span>The order of the
-axes must be consistent with the array passed as param_values.<span
-style="mso-spacerun: yes">  </span>If the parameter is a function of a
-single dimension (e.g., model level), the single axis_id should be passed as an
-array of rank one and length 1, not as a scalar. If the parameter is a scalar,
-then this parameter may be omitted.<o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'>[units] = units associated with the z-factor passed in zfactor_values
-and zfactor_bounds.<span style="mso-spacerun: yes">  </span>(These are the
-units of the user's z-factors, which may differ from the units of the z-factors
-written to the netCDF file by CMOR.) .<span style="mso-spacerun: yes"> 
-</span>These units must be recognized by udunits or must be identical to the
-units specified in the MIP table.<span style="mso-spacerun: yes"> 
-</span>In the case of a dimensionless z-factors, either omit this argument, or
-set units='none', or set units='1'.<o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='color:blue'>type = type of the zfactor_values and zfactor_bounds
-(if present) passed to this function.<span style="mso-spacerun: yes"> 
-</span>This can be ‘d’ (double), ‘f’ (float), ‘l’ (long), ‘i’ (int), or ‘c’
-(char). </span><o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'>[zfactor_values] = z-factor values associated with dimensionless
-vertical coordinate identified by zaxis_id. If this z-factor is a function of
-time (e.g., surface pressure for sigma coordinates), the user can omit this
-argument and instead store the z-factor values by calling cmor_write.<span
-style="mso-spacerun: yes">  </span>In that case the cmor_write argument,
-"var_id", should be set to zfactor_id (returned by this function) and
-the argument, "store_with", should be set to the variable id of the
-output field that requires zfactor as part of its metadata.<span
-style="mso-spacerun: yes">  </span>When many fields are a function of the
-(dimensionless) model level, cmor_write will have to be called several times,
-with the same zfactor_id, but with different variable ids.<span
-style="mso-spacerun: yes">  </span>If no values are passed, omit this
-argument.<o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'>[zfactor_bounds] = z-factor values associated with the cell bounds of
-the vertical dimensionless coordinate.<span style="mso-spacerun: yes"> 
-</span>These values should be of the same type as the zfactor_values (e.g., if
-zfactor_values is double precision, then zfactor_bounds must also be double
-precision).<span style="mso-spacerun: yes">  </span>If no bounds values
-are passed, omit this argument or set zfactor = 'none'. <span style='background:
-silver;mso-highlight:silver'>This is a ONE dimensional array of length nlevs+1</span>.<o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><o:p> </o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in;page-break-after:avoid'><i style='mso-bidi-font-style:normal'>Returns</i>:
-<o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.5in;text-align:justify;text-indent:
--.5in;page-break-after:avoid'><span style='color:#00B050'>Fortran: a negative
-integer if an error is encountered; otherwise returns a positive integer (the
-“handle”) uniquely identifying the z-factor.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.5in;text-align:justify;text-indent:
--.5in;page-break-after:avoid'><span style='color:blue'>C: 0 upon success.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.5in;text-align:justify;text-indent:
--.5in;page-break-after:avoid'><span style='color:#FF6600'>Python: upon success,
-a positive integer (the “handle”) uniquely identifying the z-factor, or if an
-error is encountered an exception is raised.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='text-align:justify'><o:p> </o:p></p>
-
-<p class=MsoNormal style='text-align:justify'><o:p> </o:p></p>
-
-<h2><a name="_Toc129422020"></a><a name="_Toc134007319"><span style='mso-bookmark:
-_Toc129422020'>Variables</span></a><o:p></o:p></h2>
-
-<h3><a name="_Toc129422021"></a><a name="_Toc134007320"><span style='mso-bookmark:
-_Toc129422021'>Define a Variable: cmor_variable</span></a><o:p></o:p></h3>
-
-<p class=MsoNormal style='text-align:justify'><o:p> </o:p></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='color:#00B050'>Fortran: var_id = cmor_variable([table], table_entry,
-units, axis_ids, [missing_value], [tolerance], [positive], [original_name],
-[history], [comment])<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='color:blue'>C: error_flag = int cmor_variable(int *var_id, char
-*table_entry, char *units, int ndims, int axis_ids[], char type, void *missing,
-double *tolerance, char *positive, char*original_name, char *history, char
-*comment) <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='color:#FF6600'>Python: var_id = variable(table_entry, units, axis_ids,
-type='f', missing_value=None, tolerance = 1.e-4, positive=None,
-original_name=None, history=None, comment=None)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='text-align:justify'><o:p> </o:p></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><i
-style='mso-bidi-font-style:normal'>Description</i>: Define a variable to be
-written by CMOR and indicate which axes are associated with it.<span
-style="mso-spacerun: yes">  </span>This function prepares CMOR to write
-the file that will contain the data for this variable. This function returns a
-"handle" (var_id), uniquely identifying the variable, which will
-subsequently be passed as an argument to the cmor_write function. The variable
-specified by the table_entry argument must be found in the currently “set” CMOR
-table, as specified by the cmor_load_table and cmor_set_table functions<span
-style='color:#00B050'>, or as an option, it can be provided in the Fortran
-version</span><span style='color:#99CC00'> </span><span style='color:#00B050'>(for
-backward compatibility) by the now deprecated “table” keyword argument</span><span
-style='color:#99CC00'>.</span><span style="mso-spacerun: yes">  
-</span>The cmor_variable function will typically be repeatedly invoked to
-define other variables. <span style='color:#00B050'>Note that backward
-compatibility was kept with the Fortran-only optional “table” keyword. But it
-is now recommended to use cmor_load_table and cmor_set_table instead </span>(and
-necessary for C/Python).<o:p></o:p></p>
-
-<p class=MsoNormal style='text-align:justify'><o:p> </o:p></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><i
-style='mso-bidi-font-style:normal'>Arguments</i>:<o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='color:blue'>var_id = the “handle”: a positive integer
-returned by this function, which uniquely identifies the variable and can be
-used in subsequent calls to CMOR.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='color:#00B050'>[table] = character string containing the
-filename of the MIP-specific table where table_entry (described next) can be
-found (e.g., “CMIP5_table_amon”, 'IPCC_table_A1', 'AMIP_table_1a',
-'AMIP_table_2', 'CMIP_table_2', etc.)<span style="mso-spacerun: yes"> 
-</span>In CMOR2 this is an optional argument and is deprecated because the
-table can be specified through the cmor_load_table and cmor_set_table
-functions.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'>table_entry = name of the variable (as it appears in the MIP table) that
-this function defines. <o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'>units = units of the data that will be passed to CMOR by function cmor_write.<span
-style="mso-spacerun: yes">  </span>These units may differ from the units
-of the data output by CMOR.<span style="mso-spacerun: yes">  
-</span>Whenever possible, this string should be interpretable by udunits (see <a
-href="http://my.unitdata.ucar.edu/content/software/udunits/">http://my.unitdata.ucar.edu/content/software/udunits/</a>).<span
-style="mso-spacerun: yes">  </span>In the case of dimensionless quantities
-the units should be specified consistent with the CF conventions, so for
-example: percent, units='percent'; for a fraction, units='1'; for parts per
-million, units='1e-6', etc.).<o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='color:blue'>ndims = number of axes the variable contains
-(i.e., the rank of the array), which in fact is the number of elements in the axis_ids
-array that will be processed by CMOR.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'>axis_ids = 1-d array containing integers returned by cmor_axis, which
-specifies, via their “handles” (i.e., axis_ids), the axes associated with the
-variable that this function defines. These handles should be ordered
-consistently with the data that will be passed to CMOR through function
-cmor_write (see documentation below). If the size of the 1-d array is larger
-than the number of dimensions, the 'unused' dimension handles must be set to
-0.<span style="mso-spacerun: yes">  </span>Note that if the handle of a
-single axis is passed, it must not be passed as a scalar but as a rank 1 array
-of length 1.<span style="mso-spacerun: yes">  </span>Scalar
-("singleton") dimensions defined in the MIP table may be omitted from
-axis_ids unless they have been explicitly redefined by the user through calls
-to cmor_axis.<span style="mso-spacerun: yes">  </span>A
-"singleton" dimension that has been explicitly defined by the user
-should appear last in the list of axis_ids if the array of data passed to
-cmor_write for this variable actually omits this dimension; otherwise it should
-appear consistent with the position of the axis in the array of data passed to
-cmor_write. <span style='background:silver;mso-highlight:silver'>In the case of
-a non-Cartesian grid, replace the values of the grid specific axes (representing
-the lat/lon axes) with the single grid_id returned by cmor_grid</span>.<o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='color:blue'>type = type of the missing_value, which must be
-the same as the type of the array that will be passed to cmor_write.<span
-style="mso-spacerun: yes">  </span>The options are: ‘d’ (double), ‘f’
-(float), ‘l’ (long) or ‘i’ (int). <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style="mso-spacerun: yes"> </span>[missing_value] = scalar
-that is used to indicate missing data for this variable.<span
-style="mso-spacerun: yes">  </span>It must be the same type as the data
-that will be passed to cmor_write.<span style="mso-spacerun: yes"> 
-</span>This missing_value will in general be replaced by a standard
-missing_value specified in the MIP table.<span style="mso-spacerun: yes"> 
-</span>If there are no missing data, and the user chooses not to declare the
-missing value, then this argument may be either omitted or assigned the value
-'none' (i.e., missing_value='none').<o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'>[tolerance] = scalar (type real) indicating fractional tolerance allowed
-in missing values found in the data.<span style="mso-spacerun: yes"> 
-</span>A value will be considered missing if it lies within
-±tolerance*missing_value of missing_value.<span style="mso-spacerun:
-yes">  </span>The default tolerance for real and double precision missing
-values is 1.0e-4 and for integers 0.<span style="mso-spacerun: yes"> 
-</span>This argument is ignored if the missing_value argument is not present.<o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'>[positive] = 'up' or 'down' depending on whether a user-passed vertical
-energy (heat) flux or surface momentum flux (stress) input to CMOR is positive
-when it is directed upward or downward, respectively.<span style="mso-spacerun:
-yes">   </span>This information will be used by CMOR to determine
-whether a sign change is necessary to make the data consistent with the MIP
-requirements.<span style="mso-spacerun: yes">  </span>This argument is
-required for vertical energy and salt fluxes, for "flux correction"
-fields, and for surface stress; it is ignored for all other variables.<o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'>[original_name] = the name of the variable as it is commonly known at
-the user's home institute.<span style="mso-spacerun: yes">  </span>If the
-variable passed to CMOR was computed in some simple way from two or more
-original fields (e.g., subtracting the upwelling and downwelling fluxes to get
-a net flux), then it is recommended that this be indicated in the
-"original_name" (e.g., "irup – irdown", where
-"irup" and "irdown" are the names of the original fields
-that were subtracted).<span style="mso-spacerun: yes">  </span>If more
-complicated processing was required, this information would more naturally be
-included in a "history" attribute for this variable, described next.<o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'>[history] = how the variable was processed before outputting through
-CMOR (e.g., give name(s) of the file(s) from which the data were read and
-indicate what calculations were performed, such as interpolating to standard
-pressure levels or adding 2 fluxes together).<span style="mso-spacerun:
-yes">  </span>This information should allow someone at the user's
-institute to reproduce the procedure that created the CMOR output.<span
-style="mso-spacerun: yes">  </span>Note that this history attribute is
-variable-specific, whereas the history attribute defined by cmor_dataset
-provides information concerning the model simulation itself or refers to
-processing procedures common to all variables (for example, mapping model
-output from an irregular grid to a Cartesian coordinate grid).<span
-style="mso-spacerun: yes">  </span>Note that when appropriate, CMOR will
-also indicate in the "history" attribute any operations it performs
-on the data (e.g., scaling the data, changing the sign, changing its type,
-reordering the dimensions, reversing a coordinate's direction or offsetting
-longitude). Any user-defined history will precede the information generated by
-CMOR.<o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'>[comment] = additional notes concerning this variable can be included here.<o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><o:p> </o:p></p>
-
-<p class=MsoNormal style='text-align:justify;text-indent:.5in'><i
-style='mso-bidi-font-style:normal'>Returns</i>: <o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.5in;text-align:justify;text-indent:
--.5in'><span style='color:#00B050'>Fortran: a negative integer if an error is
-encountered; otherwise returns a positive integer (the “handle”) uniquely
-identifying the variable.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.5in;text-align:justify;text-indent:
--.5in'><span style='color:blue'>C: 0 upon success.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.5in;text-align:justify;text-indent:
--.5in'><span style='color:#FF6600'>Python: upon success, a positive integer
-(the “handle”) uniquely identifying the variable, or if an error is encountered
-an exception is raised.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><o:p> </o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><o:p> </o:p></p>
-
-<h3><a name="_Toc129422022"></a><a name="_Toc134007321"><span style='mso-bookmark:
-_Toc129422022'>Define a Variable Attribute: cmor_set_variable_attribute</span></a><o:p></o:p></h3>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in;page-break-after:avoid'><o:p> </o:p></p>
-
-<p class=MsoNormal style='page-break-after:avoid'><span style='color:#00B050;
-background:silver;mso-highlight:silver'>Fortran: Not implemented because it is
-not needed for CMIP5<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='color:blue;background:silver;mso-highlight:silver'>C: error_flag =
-cmor_set_variable_attribute(int variable_id, char *attribute_name, char type,
-void *value)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='text-align:justify'><span style='color:#FF6600;
-background:silver;mso-highlight:silver'>Python: Not implemented because it is
-not needed for CMIP5<o:p></o:p></span></p>
-
-<p class=MsoNormal style='text-align:justify'><span style='color:#FF6600;
-background:silver;mso-highlight:silver'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><i
-style='mso-bidi-font-style:normal'><span style='color:blue;background:silver;
-mso-highlight:silver'>Description</span></i><span style='color:blue;background:
-silver;mso-highlight:silver'>:<span style="mso-spacerun: yes"> 
-</span>Defines an attribute to be associated with the variable specified by the
-variable_id.<span style="mso-spacerun: yes">  </span>This function is
-unlikely to be called in preparing CMIP5 output.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='text-align:justify'><span style='color:blue;
-background:silver;mso-highlight:silver'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><i
-style='mso-bidi-font-style:normal'><span style='color:blue;background:silver;
-mso-highlight:silver'>Arguments</span></i><span style='color:blue;background:
-silver;mso-highlight:silver'>:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='color:blue;background:silver;mso-highlight:silver'>variable_id
-= the “handle” returned by cmor_variable (when the variable was defined), which
-will become better described by the attribute defined in this function.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='color:blue;background:silver;mso-highlight:silver'>attribute_name
-= name of the attribute<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='color:blue;background:silver;mso-highlight:silver'>type =
-type of the attribute value passed, which can be ‘d’ (double), ‘f’ (float), ‘l’
-(long), ‘i’ (int), or ‘c’ (char).<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='color:blue;background:silver;mso-highlight:silver'>value =
-whatever value you wish to set the attribute to (type defined by type
-argument).<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='color:blue;background:silver;mso-highlight:silver'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><i style='mso-bidi-font-style:normal'><span style='color:blue;
-background:silver;mso-highlight:silver'>Returns upon success</span></i><span
-style='color:blue;background:silver;mso-highlight:silver'>: <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify'><span
-style='color:blue;background:silver;mso-highlight:silver'>C: 0 <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><span
-style='background:silver;mso-highlight:silver'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><span
-style='background:silver;mso-highlight:silver'><o:p> </o:p></span></p>
-
-<h3><a name="_Toc129422023"></a><a name="_Toc134007322"><span style='mso-bookmark:
-_Toc129422023'>Retrieve a Variable Attribute: cmor_get_variable_attribute</span></a><o:p></o:p></h3>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify;page-break-after:
-avoid'><span style='background:silver;mso-highlight:silver'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in;page-break-after:
-avoid'><span style='color:#00B050;background:silver;mso-highlight:silver'>Fortran:
-Not implemented because it is not needed for CMIP5<o:p></o:p></span></p>
-
-<p class=MsoNormal><span style='color:blue;background:silver;mso-highlight:
-silver'>C: error_flag = cmor_get_variable_attribute(int variable_id, char
-*attribute_name, char type, void *value)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='text-align:justify'><span style='color:#FF6600;
-background:silver;mso-highlight:silver'>Python: Not implemented because it is
-not needed for CMIP5<o:p></o:p></span></p>
-
-<p class=MsoNormal style='text-align:justify'><span style='color:#FF6600;
-background:silver;mso-highlight:silver'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><i
-style='mso-bidi-font-style:normal'><span style='color:blue;background:silver;
-mso-highlight:silver'>Description</span></i><span style='color:blue;background:
-silver;mso-highlight:silver'>: retrieves an attribute value set for the
-variable specified by the variable_id. This function is unlikely to be called
-in preparing CMIP5 output.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><span
-style='color:blue;background:silver;mso-highlight:silver'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><i
-style='mso-bidi-font-style:normal'><span style='color:blue;background:silver;
-mso-highlight:silver'>Arguments</span></i><span style='color:blue;background:
-silver;mso-highlight:silver'>:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='color:blue;background:silver;mso-highlight:silver'>variable_id
-= the “handle” returned by cmor_variable (when the variable was defined)
-identifying which variable the attribute is associated with.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='color:blue;background:silver;mso-highlight:silver'>attribute_name
-= name of the attribute<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='color:blue;background:silver;mso-highlight:silver'>type =
-type of the attribute value to be retrieved.<span style="mso-spacerun:
-yes">  </span>This can be ‘d’ (double), ‘f’ (float), ‘l’ (long), ‘i’
-(int), or ‘c’ (char)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='color:blue;background:silver;mso-highlight:silver'>value =
-the argument that will accept the retrieved attribute.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='color:blue;background:silver;mso-highlight:silver'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><i style='mso-bidi-font-style:normal'><span style='color:blue;
-background:silver;mso-highlight:silver'>Returns upon success</span></i><span
-style='color:blue;background:silver;mso-highlight:silver'>: <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify'><span
-style='color:blue;background:silver;mso-highlight:silver'>C: 0 <o:p></o:p></span></p>
-
-<p class=MsoNormal style='text-align:justify'><span style='background:silver;
-mso-highlight:silver'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='text-align:justify'><span style='background:silver;
-mso-highlight:silver'><o:p> </o:p></span></p>
-
-<h3><a name="_Toc129422024"></a><a name="_Toc134007323"><span style='mso-bookmark:
-_Toc129422024'>Inquire Whether a Variable Attribute Exists:
-cmor_has_variable_attribute</span></a><o:p></o:p></h3>
-
-<p class=MsoNormal style='text-align:justify;page-break-after:avoid'><span
-style='background:silver;mso-highlight:silver'><o:p> </o:p></span></p>
-
-<p class=MsoNormal><span style='color:#00B050;background:silver;mso-highlight:
-silver'>Fortran: Not implemented because it is not needed for CMIP5.<o:p></o:p></span></p>
-
-<p class=MsoNormal><span style='color:blue;background:silver;mso-highlight:
-silver'>C: error_flag = cmor_has_variable_attribute(int variable_id, char *attribute_name)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='text-align:justify'><span style='color:#FF6600;
-background:silver;mso-highlight:silver'>Python: Not implemented because it is
-not needed for CMIP5.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='text-align:justify'><span style='color:#FF6600;
-background:silver;mso-highlight:silver'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><i
-style='mso-bidi-font-style:normal'><span style='color:blue;background:silver;
-mso-highlight:silver'>Description</span></i><span style='color:blue;background:
-silver;mso-highlight:silver'>: Determines whether an attribute exists and is
-associated with the variable specified by variable_id, which is a handle
-returned to the user by a previous call to cmor_variable.<span
-style="mso-spacerun: yes">  </span>This function is unlikely to be called
-in preparing CMIP5 output.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><span
-style='color:blue;background:silver;mso-highlight:silver'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><i
-style='mso-bidi-font-style:normal'><span style='color:blue;background:silver;
-mso-highlight:silver'>Arguments</span></i><span style='color:blue;background:
-silver;mso-highlight:silver'>:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='color:blue;background:silver;mso-highlight:silver'>variable_id
-= the “handle” specifying which variable is of interest.<span
-style="mso-spacerun: yes">  </span>A variable_id is returned by
-cmor_variable each time a variable is defined.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='color:blue;background:silver;mso-highlight:silver'>attribute_name
-= name of the attribute of interest.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='color:blue;background:silver;mso-highlight:silver'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in;page-break-after:avoid'><i style='mso-bidi-font-style:normal'><span
-style='color:blue;background:silver;mso-highlight:silver'>Returns upon success
-(i.e., if the attribute is found): </span></i><span style='color:blue;
-background:silver;mso-highlight:silver'><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify'><span
-style='color:blue;background:silver;mso-highlight:silver'>C: 0 <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><o:p> </o:p></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><o:p> </o:p></p>
-
-<h2><a name="_Toc129422025"></a><a name="_Toc134007324"><span style='mso-bookmark:
-_Toc129422025'>Writing Data</span></a><o:p></o:p></h2>
-
-<h3><a name="_Toc129422026"></a><a name="_Toc134007325"><span style='mso-bookmark:
-_Toc129422026'>Generate Output Path: cmor_create_output_path</span></a><o:p></o:p></h3>
-
-<p class=MsoNormal style='text-align:justify'><o:p> </o:p></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='color:#00B050;background:silver;mso-highlight:silver'>Fortran: call cmor_create_output_path(var_id,
-path)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='color:blue;background:silver;mso-highlight:silver'>C: isfixed =
-cmor_create_output_path(int var_id, char *path) <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='color:#FF6600;background:silver;mso-highlight:silver'>Python: path =
-create_output_path(var_id)</span><span style='background:silver;mso-highlight:
-silver'> <o:p></o:p></span></p>
-
-<p class=MsoNormal style='text-align:justify'><span style='background:silver;
-mso-highlight:silver'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><i
-style='mso-bidi-font-style:normal'><span style='background:silver;mso-highlight:
-silver'>Description</span></i><span style='background:silver;mso-highlight:
-silver'>: construct the output path, consistent with CMIP5 specifications,
-where the file will be stored.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='background:silver;mso-highlight:silver'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><i style='mso-bidi-font-style:normal'><span style='background:silver;
-mso-highlight:silver'>Arguments</span></i><span style='background:silver;
-mso-highlight:silver'>:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='background:silver;mso-highlight:silver'>var_id = variable
-identification (as returned from cmor_variable) you wish to get the output path
-for.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='background:silver;mso-highlight:silver'>path = string (or pointer
-to a string), which is returned by the function and contains the output path.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='background:silver;mso-highlight:silver'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='text-align:justify;text-indent:.5in'><i
-style='mso-bidi-font-style:normal'><span style='background:silver;mso-highlight:
-silver'>Returns</span></i><span style='background:silver;mso-highlight:silver'>:
-<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify'><span
-style='color:#00B050;background:silver;mso-highlight:silver'>Fortran: nothing
-it is a subroutine <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify'><span
-style='color:blue;background:silver;mso-highlight:silver'>C: 0 upon success or
-1 if the filed is a fixed field</span><span style='color:#00B050;background:
-silver;mso-highlight:silver'><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify'><span
-style='color:#FF6600;background:silver;mso-highlight:silver'>Python: the full
-path to the output file</span><span style='color:#00B050;background:silver;
-mso-highlight:silver'><o:p></o:p></span></p>
-
-<h3><a name="_Toc129422027"></a><a name="_Toc134007326"><span style='mso-bookmark:
-_Toc129422027'>Write Data to File: cmor_write</span></a> <o:p></o:p></h3>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><o:p> </o:p></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='color:#00B050'>Fortran: error_flag = cmor_write(var_id, data,
-[file_suffix], [ntimes_passed], [time_vals], [time_bnds], [store_with])<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='color:blue'>C: error_flag = cmor_write(int var_id, void *data, char
-type, char *file_suffix, int ntimes_passed, double *time_vals, double
-*time_bounds, int *store_with) <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='color:#FF6600'>Python: write(var_id, data, ntimes_passed=None,
-file_suffix="", time_vals=None, time_bnds=None, store_with=None)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='text-align:justify'><o:p> </o:p></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify'><i
-style='mso-bidi-font-style:normal'>Description</i>:<span style="mso-spacerun:
-yes">  </span>For the variable identified by var_id, write an array of data
-that includes one or more time samples.<span style="mso-spacerun: yes"> 
-</span>This function will typically be repeatedly invoked to write other
-variables or append additional time samples of data.<span style="mso-spacerun:
-yes">  </span>Note that time-slices of data must be written
-chronologically.<o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><o:p> </o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in;page-break-after:avoid'><i style='mso-bidi-font-style:normal'>Arguments</i>:<o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'>var_id = integer returned by cmor_variable identifying the variable that
-will be written by this function.<o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'>data = array of data written by this function (of rank<8).<span
-style="mso-spacerun: yes">  </span>The rank of this array should either
-be: (a) consistent with the number of axes that were defined for it, or (b) it
-should be 1-dimensional, in which case the data must be stored contiguously in
-memory. In case (a), an exception is that for a variable that is a function of
-time and when only one "time-slice" is passed, then the array can
-optionally omit this dimension. Thus, for a variable that is a function of
-longitude, latitude, and time, for example, if only a single time-slice is
-passed to cmor_write, the rank of array "data" may be declared as
-either 2 or 3; when declared rank 3, the time-dimension will be size 1.<span
-style="mso-spacerun: yes">  </span>It is recommended (but not required)
-that the shape of data (i.e., the size of each dimension) be consistent with
-those expected for this variable (based on the axis definitions), but they are
-allowed to be larger (the extra values beyond the defined dimension domain will
-be ignored).<span style="mso-spacerun: yes">  </span>In any case the
-dimension sizes (lengths) must obviously not be smaller than those defined by
-the calls to cmor_axis.<o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='color:blue'>type = type of variable array (“data”), which
-can be ‘d’ (double), ‘f’ (float), ‘l’ (long) or ‘i’ (int).<span
-style="mso-spacerun: yes">  </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'>[file_suffix] = string that will be concatenated with a string
-automatically generated by CMOR to form a unique filename where the output is
-written.<span style="mso-spacerun: yes">  </span>This suffix is only
-required when a time-sequence of output fields will not all be written into a
-single file (i.e., two or more files will contain the output for the
-variable).<span style="mso-spacerun: yes">  </span>The file prefix
-generated by CMOR is of the form variable_table, where variable is replaced by
-table_entry (i.e., the name of the variable), and table is replaced by the
-table number (e.g., tas_A1 refers to surface air temperature as specified in
-table A1).<span style="mso-spacerun: yes">  </span>Permitted characters
-will be: a-z, A-Z, 0-9, and “-”.<span style="mso-spacerun: yes">  </span>There
-are no restrictions on the suffix except that it must yield unique filenames
-and that it cannot contain any “_”.<span style="mso-spacerun: yes"> 
-</span>If the user supplies a suffix, the leading '_' should be omitted (e.g.,
-pass '1979-1988', not '_1979-1988').<span style="mso-spacerun: yes"> 
-</span>Note that the suffix passed through cmor_write remains in effect for the
-particular variable until (optionally) redefined by a subsequent call. In the
-case of CMOR “Append mode” (in case the file already existed before a call to
-cmor_setup), then file_suffix is to be used to point to the original file, this
-value should reflect the FULL path where the file can be found, not just the
-file name. CMOR2 will be smart enough to figure out if a suffix was used when
-creating that file. Note that this file will be first moved to a temporary file
-and eventually renamed to reflect the additional times written to it.<o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'>[ntimes_passed] = integer number of time slices passed on this
-call.<span style="mso-spacerun: yes">  </span>If omitted, the number will
-be assumed to be the size of the time dimension of the data (if there is a time
-dimension).<o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'>[time_vals] = 1-d array (must be double precision) time coordinate
-values associated with the data array.<span style="mso-spacerun: yes"> 
-</span>This argument should appear only if the time coordinate values were not
-passed in defining the time axis (i.e., in calling cmor_axis).<span
-style="mso-spacerun: yes">  </span>The units should be consistent with
-those passed as an argument to cmor_axis in defining the time axis.<span
-style="mso-spacerun: yes">  </span>If cell bounds are also passed (see
-next argument, '[time_bnds]'), then CMOR will first check that each coordinate
-value is not outside its associated cell bounds; subsequently, however, the
-user-defined coordinate value will be replaced by the mid-point of the interval
-defined by its bounds, and it is this value that will be written to the netCDF
-file.<o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><o:p> </o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'>[time_bnds] = 2-d array (must be double precision) containing time
-bounds, which should be in the same units as time_vals.<span
-style="mso-spacerun: yes">  </span>If the time_vals argument is omitted,
-this argument should also be omitted.<span style="mso-spacerun:
-yes">    </span>The array should be dimensioned <span
-style='color:green'>(2, n) in Fortran, </span>and (n,2)<span style='color:green'>
-</span><span style='color:#3366FF'>in C</span><span style='color:#F79646'>/Python,</span>
-where n is the size of time_vals (see CF standard document, <a
-href="http://www.cgd.ucar.edu/cms/eaton/cf-metadata">http://www.cgd.ucar.edu/cms/eaton/cf-metadata</a>,
-for further information).<o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'>[store_with] = integer returned by cmor_variable identifying the
-variable that the zfactor should be stored with.<span style="mso-spacerun:
-yes">  </span>This argument must be defined when and only when writing a
-z-factor.<span style="mso-spacerun: yes">  </span>(See description of the
-zfactor function above.)<o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><o:p> </o:p></p>
-
-<p class=MsoNormal style='text-align:justify;text-indent:.5in;page-break-after:
-avoid'><i style='mso-bidi-font-style:normal'>Returns upon success</i>: <o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;page-break-after:
-avoid'><span style='color:#00B050'>Fortran: 0 <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;page-break-after:
-avoid'><span style='color:blue'>C: 0 <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify'><span
-style='color:#FF6600'>Python: None <o:p></o:p></span></p>
-
-<p class=MsoNormal><o:p> </o:p></p>
-
-<p class=MsoNormal><o:p> </o:p></p>
-
-<h3><a name="_Toc129422028"></a><a name="_Toc134007327"><span style='mso-bookmark:
-_Toc129422028'>Close File(s): cmor_close</span></a><o:p></o:p></h3>
-
-<p class=MsoNormal style='page-break-after:avoid'><o:p> </o:p></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in;page-break-after:
-avoid'><span style='color:#00B050'>Fortran: error_flag = cmor_close(var_id,
-file_name, preserve)</span><span style='color:blue'><span style="mso-spacerun:
-yes">  </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in;page-break-after:
-avoid'><span style='color:blue'>C: error_flag = cmor_close(void) <span
-style="mso-spacerun: yes"> </span>or<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in;page-break-after:
-avoid'><span style='color:blue'>C: error_flag = cmor_close_variable(int var_id,
-char *file_name, int *preserve)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in;page-break-after:
-avoid'><span style='color:#FF6600'>Python: error_flag (or if name=True, returns
-the name of the file and optionally the new var_id if preserve is True) =
-close(var_id=None, file_name=False, preserve=False)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='text-align:justify'><i style='mso-bidi-font-style:
-normal'><o:p> </o:p></i></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><i style='mso-bidi-font-style:normal'>Description</i>:<span
-style="mso-spacerun: yes">  </span>Close a single file specified by
-optional argument var_id, or if the argument is omitted (or void), close all
-files created by CMOR (including log files). To be safe, before exiting any
-program that invokes CMOR, it is often best to call this function with the
-argument omitted. <span style='color:blue'>When using C, to close a single
-variable, use: cmor_close_variable(var_id), rather than cmor_close(void)</span>.
-<span style='background:silver;mso-highlight:silver'>When using this function
-to close a single file, an additional optional argument (of type “string”) can
-be included, into which will be returned the file name created by CMOR. Another
-additional optional argument can be passed specifying if the variable should be
-preserved, i.e more data have to be written for this variable but you wish to
-start a new file (the original var_id is preserved).</span><o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-align:justify;text-indent:-.5in'><o:p> </o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in;page-break-after:avoid'><i style='mso-bidi-font-style:normal'>Arguments</i>:<o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style="mso-spacerun: yes"> </span>[var_id] = the “handle”
-identifying an individual variable and the associated output file that will be
-closed by this function. <o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='background:silver;mso-highlight:silver'>[file_name] = a
-string where the output file name will be stored. This option provides a convenient
-method for the user to record the filename, which might be needed on a
-subsequent call to CMOR, for example, in order to append additional time
-samples to the file.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='background:silver;mso-highlight:silver'>[preserve] = Do you
-want to preserve the var definition? (0/1)<span style="mso-spacerun:
-yes">  </span></span><span style='color:#FF6600'><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='color:#FF6600'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='text-align:justify;text-indent:.5in'><i
-style='mso-bidi-font-style:normal'>Returns</i>: <o:p></o:p></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify'><span
-style='color:#00B050'>Fortran: 0 upon success<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify'><span
-style='color:blue'>C: 0 upon success<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:1.0in;text-align:justify;text-indent:
--.5in'><span style='color:#FF6600'><span style='mso-tab-count:1'>            </span>Python:
-None if file_name=False or the name of the file if file_name=True.</span><o:p></o:p></p>
-
-<b><span style='font-size:16.0pt;font-family:Arial;mso-fareast-font-family:
-"Times New Roman";mso-bidi-font-family:Arial;mso-font-kerning:16.0pt;
-mso-ansi-language:EN-US;mso-fareast-language:EN-US'><br clear=ALL
-style='page-break-before:always'>
-</span></b>
-
-<h1><a name="_Toc129422029"></a><a name="_Toc134007328"><span style='mso-bookmark:
-_Toc129422029'>Appendix A: Errors in CMOR</span></a><o:p></o:p></h1>
-
-<p class=MsoNormal style='tab-stops:123.0pt'><b style='mso-bidi-font-weight:
-normal'><span style='font-size:14.0pt'><o:p> </o:p></span></b></p>
-
-<h2><a name="_Toc129422030"></a><a name="_Toc134007329"><span style='mso-bookmark:
-_Toc129422030'>Critical Errors</span></a><o:p></o:p></h2>
-
-<p class=MsoNormal style='tab-stops:123.0pt'><span style='font-size:10.0pt;
-mso-bidi-font-size:14.0pt'>The following errors are considered as CRITICAL and
-will cause a CMOR code to stop.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='tab-stops:123.0pt'><span style='font-size:10.0pt;
-mso-bidi-font-size:14.0pt'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>1.<span
-style='font:7.0pt "Times New Roman"'>     </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Calling a CMOR function
-before running cmor_setup<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>2.<span
-style='font:7.0pt "Times New Roman"'>     </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>NetCDF version is neither 3.6.3
-or 4.1 or greater<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>3.<span
-style='font:7.0pt "Times New Roman"'>     </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Udunits could not parse
-units<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>4.<span
-style='font:7.0pt "Times New Roman"'>     </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Incompatible units<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>5.<span
-style='font:7.0pt "Times New Roman"'>     </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Udunits could not create a
-converter<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>6.<span
-style='font:7.0pt "Times New Roman"'>     </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Logfile could not be open
-for writing<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>7.<span
-style='font:7.0pt "Times New Roman"'>     </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Output directory does not
-exist<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>8.<span
-style='font:7.0pt "Times New Roman"'>     </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Output directory is not a
-directory<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>9.<span
-style='font:7.0pt "Times New Roman"'>     </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>User does not have
-read/write privileges on the output directory<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>10.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Wrong value for error_mode<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>11.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>wrong value for netCDF mode<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>12.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>error reading udunits system<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>13.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>NetCDF could not set
-variable attribute<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>14.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Dataset does not have one of
-the required attributes (required attributes can be defined in the MIP table)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>15.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Required global attribute is
-missing<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>16.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>If CMIP5 project: source
-attributes does not start with model_id attribute.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>17.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Forcing dataset attribute is
-not valid<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>18.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Leap_year defined with
-invalid leap_month<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>19.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Invalid leap month (<1 or
->12)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>20.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Leap month defined but no
-leap year<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>21.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Negative realization number<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>22.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Zfactor variable not defined
-when needed<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>23.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Zfactor defined w/o values
-and NOT time dependent.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>24.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Variable has axis defined
-with formula terms depending on axis that are not part of the variable<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>25.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>NetCDF error<span
-style="mso-spacerun: yes">  </span>when creating zfactor variable<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>26.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>NetCDF Error defining
-compression parameters<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>27.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Calling cmor_write with an
-invalid variable id<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>28.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Could not create path
-structure<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>29.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>“variable id” contains a “_”
-or a ‘-‘ this means bad MIP table.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>30.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>“file_suffix” contains a “_”<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>31.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Could not rename the file
-you’re trying to append to.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>32.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Trying to write an “Associated
-variable” before the variable itself<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>33.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Output file exists and
-you’re not in append/replace mode<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>34.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>NetCDF Error opening file
-for appending<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>35.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>NetCDF could not find time
-dimension in a file onto which you want to append<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>36.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>NetCDF could not figure out
-the length time dimension in a file onto which you want to append<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>37.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>NetCDF could not find your
-variable while appending to a file<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>38.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>NetCDF could not find time
-dimension in the variable onto which you’re trying to append<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>39.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>NetCDF could not find time
-bounds in the variable onto which you’re trying to append<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>40.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>NetCDF mode got corrupted.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>41.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>NetCDF error creating file<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>42.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>NetCDF error putting file in
-definition mode<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>43.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>NetCDF error writing file
-global attribute<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>44.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>NetCDF error creating
-dimension in file<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>45.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>NetCDF error creating
-variable<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>46.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>NetCDF error writing
-variable attribute<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>47.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>NetCDF error setting
-chunking parameters<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>48.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>NetCDF error leaving
-definition mode<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>49.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Hybrid coordinate, could not
-find “a” coefficient<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>50.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Hybrid coordinate, could not
-find “b” coefficient<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>51.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Hybrid coordinate, could not
-find “a_bnds” coefficient<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>52.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Hybrid coordinate, could not
-find “b_bnds” coefficient<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>53.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Hybrid coordinate, could not
-find “p0” coefficient<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>54.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Hybrid coordinate, could not
-find “ap” coefficient<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>55.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Hybrid coordinate, could not
-find “ap_bnds” coefficient<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>56.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Hybrid coordinate, could not
-find “sigma” coefficient<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>57.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Hybrid coordinate, could not
-find “sigma_bnds” coefficient<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>58.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>NetCDF writing error<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>59.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>NetCDF error closing file<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>60.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Could not rename temporary
-file to its final name.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>61.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Cdms could not convert time
-values for calendar.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>62.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Variable does not have all
-required attributes (cmor_variable)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>63.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Reference variable is
-defined with “positive”, user did not pass it to cmor_variable<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>64.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Could not allocate memory
-for zfactor elements<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>65.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Udunits error freeing units<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>66.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Udunits error freeing
-converter<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>67.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Could not allocate memory
-for zfactor_bounds<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>68.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Calling cmor_variable before
-reading in a MIP table<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>69.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Too many variable defined
-(see appendix on CMOR limits)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>70.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Could not find variable in
-MIP table<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>71.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Wrong parameter “positive”
-passed<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>72.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>No “positive” parameter
-passed to cmor_variable and it is required for this variable<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>73.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Variable defined with too
-many (not enough) dimensions<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>74.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Variable defined with axis
-that should not be on this variable<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>75.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Variable defined within
-existing axis (wrong axis_id)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>76.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Defining variable with axes
-defined in a MIP table that is not the current one.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>77.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Defining a variable with too
-many axes (see annex on CMOR limits)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>78.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Defining a variable with
-dimensions that are not part of the MIP table (except for var named “latitude”
-and “longitude”, since they could have grid axes defined in another MIP table)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>79.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Trying to retrieve length of
-time for a variable defined w/o time length<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>80.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Trying to retrieve variable
-shape into an array of wrong rank (Fortran only really)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>81.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Calling cmor_write with time
-values for a timeless variable<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>82.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Cannot allocate memory for
-temporary array to write<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>83.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Invalid absolute mean for
-data written (lower or greater than what the MIP table allows)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>84.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Calling cmor_write with time
-values when they have already been defined with cmor_axis when creating time
-axis<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>85.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Cannot allocate memory to
-store time values<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>86.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Cannot allocate memory to
-store time bounds values<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>87.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Time values are not
-monotonic<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>88.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Calling cmor_write w/o time
-values when no values were defined via cmor_axis when creating time axis<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>89.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Time values already written
-in file<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>90.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Time axis units do not contain
-“since” word (cmor_axis)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>91.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Invalid data type for time
-values (ok are ‘f’,’l’,’i’,’d’)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>92.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Time values are not within
-time bounds<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>93.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Non monotonic time bounds<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>94.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Longitude axis spread over
-360 degrees.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>95.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>Overlapping bound values
-(except for climatological data)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>96.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>bounds and axis values are
-not stored in the same order<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>97.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>requested value for axis not
-present<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>98.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>approximate time axis
-interval much greater (>20%) than the one defined in your MIP table<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>99.<span
-style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>calling cmor_axis before
-loading a MIP table<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>100.<span
-style='font:7.0pt "Times New Roman"'>                 
-</span></span></span><![endif]><span style='font-size:10.0pt;mso-bidi-font-size:
-14.0pt'>too many axes defined (see appendix on CMOR limits)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>101.<span
-style='font:7.0pt "Times New Roman"'>                 
-</span></span></span><![endif]><span style='font-size:10.0pt;mso-bidi-font-size:
-14.0pt'>could not find reference axis name in current MIP table<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>102.<span
-style='font:7.0pt "Times New Roman"'>                 
-</span></span></span><![endif]><span style='font-size:10.0pt;mso-bidi-font-size:
-14.0pt'>output axis needs to be standard_hybrid_sigma and input axis is not one
-of : “standard_hybrid_sigma”, “alternate_hybrid_sigma”, “standard_sigma”<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>103.<span
-style='font:7.0pt "Times New Roman"'>                 
-</span></span></span><![endif]><span style='font-size:10.0pt;mso-bidi-font-size:
-14.0pt'>MIP table requires to convert axis to unknown type<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>104.<span
-style='font:7.0pt "Times New Roman"'>                 
-</span></span></span><![endif]><span style='font-size:10.0pt;mso-bidi-font-size:
-14.0pt'>requested “region” not present on axis<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>105.<span
-style='font:7.0pt "Times New Roman"'>                 
-</span></span></span><![endif]><span style='font-size:10.0pt;mso-bidi-font-size:
-14.0pt'>axis (with bounds) values are in invalid type (valid are:
-‘f’,’d’,’l’,’i’)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>106.<span
-style='font:7.0pt "Times New Roman"'>                 
-</span></span></span><![endif]><span style='font-size:10.0pt;mso-bidi-font-size:
-14.0pt'>requested values already checked but stored internally, could be bad
-user cleanup<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>107.<span
-style='font:7.0pt "Times New Roman"'>                 
-</span></span></span><![endif]><span style='font-size:10.0pt;mso-bidi-font-size:
-14.0pt'>MIP table defined for version of CMOR greater than the library you’re
-using<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>108.<span
-style='font:7.0pt "Times New Roman"'>                 
-</span></span></span><![endif]><span style='font-size:10.0pt;mso-bidi-font-size:
-14.0pt'>too many experiments defined in MIP table (see appendix on CMOR limits)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>109.<span
-style='font:7.0pt "Times New Roman"'>                 
-</span></span></span><![endif]><span style='font-size:10.0pt;mso-bidi-font-size:
-14.0pt'>cmor_set_table used with invalid table_id<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>110.<span
-style='font:7.0pt "Times New Roman"'>                 
-</span></span></span><![endif]><span style='font-size:10.0pt;mso-bidi-font-size:
-14.0pt'>MIP table<span style="mso-spacerun: yes">  </span>has too many
-axes defined in it (see appendix on CMOR limits)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>111.<span
-style='font:7.0pt "Times New Roman"'>                 
-</span></span></span><![endif]><span style='font-size:10.0pt;mso-bidi-font-size:
-14.0pt'>MIP table<span style="mso-spacerun: yes">  </span>has too many
-variables defined in it (see appendix on CMOR limits)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>112.<span
-style='font:7.0pt "Times New Roman"'>                 
-</span></span></span><![endif]><span style='font-size:10.0pt;mso-bidi-font-size:
-14.0pt'>MIP table<span style="mso-spacerun: yes">  </span>has too many
-mappings defined in it (see appendix on CMOR limits)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>113.<span
-style='font:7.0pt "Times New Roman"'>                 
-</span></span></span><![endif]><span style='font-size:10.0pt;mso-bidi-font-size:
-14.0pt'>MIP table<span style="mso-spacerun: yes">  </span>defines the same
-mapping twice<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>114.<span
-style='font:7.0pt "Times New Roman"'>                 
-</span></span></span><![endif]><span style='font-size:10.0pt;mso-bidi-font-size:
-14.0pt'>grid mapping has too many parameters (see appendix on CMOR limits)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>115.<span
-style='font:7.0pt "Times New Roman"'>                 
-</span></span></span><![endif]><span style='font-size:10.0pt;mso-bidi-font-size:
-14.0pt'>grid has different number of axes than what grid_mapping prescribes.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>116.<span
-style='font:7.0pt "Times New Roman"'>                 
-</span></span></span><![endif]><span style='font-size:10.0pt;mso-bidi-font-size:
-14.0pt'>Could not find all the axes required by grid_mapping<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>117.<span
-style='font:7.0pt "Times New Roman"'>                 
-</span></span></span><![endif]><span style='font-size:10.0pt;mso-bidi-font-size:
-14.0pt'>Call to cmor_grid with axis that are not created yet via cmor_axis<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>118.<span
-style='font:7.0pt "Times New Roman"'>                 
-</span></span></span><![endif]><span style='font-size:10.0pt;mso-bidi-font-size:
-14.0pt'>Too many grids defined (see appendix on cmor_limits)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>119.<span
-style='font:7.0pt "Times New Roman"'>                 
-</span></span></span><![endif]><span style='font-size:10.0pt;mso-bidi-font-size:
-14.0pt'>Call to cmor_grid w/o latitude array<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l36 level1 lfo25'><![if !supportLists]><span
-style='font-size:10.0pt;mso-bidi-font-size:14.0pt'><span style='mso-list:Ignore'>120.<span
-style='font:7.0pt "Times New Roman"'>                 
-</span></span></span><![endif]><span style='font-size:10.0pt;mso-bidi-font-size:
-14.0pt'>Call to cmor_grid w/o longitude array<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt;
-mso-bidi-font-size:14.0pt'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='tab-stops:123.0pt'><b style='mso-bidi-font-weight:
-normal'><span style='font-size:14.0pt'><o:p> </o:p></span></b></p>
-
-<p class=MsoNormal style='tab-stops:123.0pt'><b style='mso-bidi-font-weight:
-normal'><span style='font-size:14.0pt'><o:p> </o:p></span></b></p>
-
-<b><span style='font-size:16.0pt;font-family:Arial;mso-fareast-font-family:
-"Times New Roman";mso-bidi-font-family:Arial;mso-font-kerning:16.0pt;
-mso-ansi-language:EN-US;mso-fareast-language:EN-US'><br clear=ALL
-style='page-break-before:always'>
-</span></b>
-
-<h1><a name="_Toc129422031"></a><a name="_Toc134007330"><span style='mso-bookmark:
-_Toc129422031'>Appendix B: Limits in cmor</span></a><o:p></o:p></h1>
-
-<p class=MsoNormal style='tab-stops:123.0pt'><span style='font-size:10.0pt;
-mso-bidi-font-size:14.0pt'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='tab-stops:123.0pt'><span style='font-size:10.0pt;
-mso-bidi-font-size:14.0pt'>The following are defined in cmor.h<o:p></o:p></span></p>
-
-<p class=MsoNormal style='tab-stops:123.0pt'><span style='font-size:10.0pt;
-mso-bidi-font-size:14.0pt'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='tab-stops:123.0pt'><span style='font-size:10.0pt;
-mso-bidi-font-size:14.0pt'>#define CMOR_MAX_STRING 1024<o:p></o:p></span></p>
-
-<p class=MsoNormal><span style='font-size:10.0pt;mso-bidi-font-size:14.0pt'>#define
-CMOR_DEF_ATT_STR_LEN 256<o:p></o:p></span></p>
-
-<p class=MsoNormal style='tab-stops:123.0pt'><span style='font-size:10.0pt;
-mso-bidi-font-size:14.0pt'>#define CMOR_MAX_ELEMENTS 500<o:p></o:p></span></p>
-
-<p class=MsoNormal style='tab-stops:123.0pt'><span style='font-size:10.0pt;
-mso-bidi-font-size:14.0pt'>#define CMOR_MAX_AXES CMOR_MAX_ELEMENTS*3<o:p></o:p></span></p>
-
-<p class=MsoNormal style='tab-stops:123.0pt'><span style='font-size:10.0pt;
-mso-bidi-font-size:14.0pt'>#define CMOR_MAX_VARIABLES CMOR_MAX_ELEMENTS<o:p></o:p></span></p>
-
-<p class=MsoNormal style='tab-stops:123.0pt'><span style='font-size:10.0pt;
-mso-bidi-font-size:14.0pt'>#define CMOR_MAX_GRIDS 10<o:p></o:p></span></p>
-
-<p class=MsoNormal style='tab-stops:123.0pt'><span style='font-size:10.0pt;
-mso-bidi-font-size:14.0pt'>#define CMOR_MAX_DIMENSIONS 7<o:p></o:p></span></p>
-
-<p class=MsoNormal style='tab-stops:123.0pt'><span style='font-size:10.0pt;
-mso-bidi-font-size:14.0pt'>#define CMOR_MAX_ATTRIBUTES 100<o:p></o:p></span></p>
-
-<p class=MsoNormal style='tab-stops:123.0pt'><span style='font-size:10.0pt;
-mso-bidi-font-size:14.0pt'>#define CMOR_MAX_ERRORS 10<o:p></o:p></span></p>
-
-<p class=MsoNormal style='tab-stops:123.0pt'><span style='font-size:10.0pt;
-mso-bidi-font-size:14.0pt'>#define CMOR_MAX_TABLES 10<o:p></o:p></span></p>
-
-<p class=MsoNormal style='tab-stops:123.0pt'><span style='font-size:10.0pt;
-mso-bidi-font-size:14.0pt'>#define CMOR_MAX_GRID_ATTRIBUTES 15<o:p></o:p></span></p>
-
-<b><span style='font-size:10.0pt;mso-bidi-font-size:16.0pt;font-family:Arial;
-mso-fareast-font-family:"Times New Roman";mso-bidi-font-family:Arial;
-mso-font-kerning:16.0pt;mso-ansi-language:EN-US;mso-fareast-language:EN-US'><br
-clear=ALL style='page-break-before:always'>
-</span></b>
-
-<h1><a name="_Toc129422032"></a><a name="_Toc134007331"><span style='mso-bookmark:
-_Toc129422032'>Appendix C: Sample Codes</span></a><o:p></o:p></h1>
-
-<h2><a name="_Toc129422033"></a><a name="_Toc134007332"><span style='mso-bookmark:
-_Toc129422033'>FORTRAN</span></a><o:p></o:p></h2>
-
-<h3><a name="_Toc129422034"></a><a name="_Toc134007333"><span style='mso-bookmark:
-_Toc129422034'>Sample Program 1</span></a><o:p></o:p></h3>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!!$pgf90
--I/work/NetCDF/5.1/include -L/work/NetCDF/5.1/lib -l netcdf -L. -l cmor
-Test/test_dimensionless.f90 -IModules -o cmor_test<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!!$pgf90
--g -I/pcmdi/charles_work/NetCDF/include -L/pcmdi/charles_work/NetCDF/lib
--lnetcdf -module Modules -IModules -L. -lcmor -I/pcmdi/charles_work/Unidata/include
--L/pcmdi/charles_work/Unidata/lib -ludunits Test/test_dimensionless.f90 -o
-cmor_test<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>MODULE
-local_subs<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>USE cmor_users_functions<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>PRIVATE<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>PUBLIC read_coords, read_time,
-read_3d_input_files, read_2d_input_files<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>CONTAINS<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>SUBROUTINE read_coords(alats, alons,
-plevs, bnds_lat, bnds_lon)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>IMPLICIT NONE<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>DOUBLE PRECISION,
-INTENT(OUT), DIMENSION(:) :: alats<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>DOUBLE PRECISION,
-INTENT(OUT), DIMENSION(:) :: alons<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>DOUBLE PRECISION,
-INTENT(OUT), DIMENSION(:) :: plevs<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>DOUBLE PRECISION,
-INTENT(OUT), DIMENSION(:,:) :: bnds_lat<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>DOUBLE PRECISION,
-INTENT(OUT), DIMENSION(:,:) :: bnds_lon<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>INTEGER :: i<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>DO i = 1, SIZE(alons)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">       </span>alons(i)
-= (i-1)*360./SIZE(alons)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>bnds_lon(1,i) = (i - 1.5)*360./SIZE(alons)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>bnds_lon(2,i) = (i - 0.5)*360./SIZE(alons)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>END DO<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>DO i = 1, SIZE(alats)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">       </span>alats(i)
-= (size(alats)+1-i)*10<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>bnds_lat(1,i) = (size(alats)+1-i)*10 + 5.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>bnds_lat(2,i) = (size(alats)+1-i)*10 - 5.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>END DO<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>DO i = 1, SIZE(plevs)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">       </span>plevs(i)
-= i*1.0e4<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>END DO<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      </span>plevs =
-(/100000., 92500., 85000., 70000.,&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">       </span>60000.,
-50000., 40000., 30000., 25000., 20000.,&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">       </span>15000.,
-10000., 7000., 5000., 3000., 2000., 1000. /)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>RETURN<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>END SUBROUTINE read_coords<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>SUBROUTINE read_time(it, time,
-time_bnds)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>IMPLICIT NONE<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>INTEGER, INTENT(IN) :: it<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>DOUBLE PRECISION,
-INTENT(OUT) :: time<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>DOUBLE PRECISION,
-INTENT(OUT), DIMENSION(2,1) :: time_bnds<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>time = (it-0.5)*30.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>time_bnds(1,1) = (it-1)*30.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>time_bnds(2,1) = it*30.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>RETURN<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>END SUBROUTINE read_time<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>SUBROUTINE read_3d_input_files(it,
-varname, field)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>IMPLICIT NONE<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>INTEGER, INTENT(IN) :: it<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>CHARACTER(len=*), INTENT(IN)
-:: varname<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>REAL, INTENT(OUT),
-DIMENSION(:,:,:) :: field<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>INTEGER :: i, j, k<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>REAL :: factor, offset<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>CHARACTER(len=LEN(varname))
-:: tmp<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>tmp =
-TRIM(ADJUSTL(varname))<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>SELECT CASE (tmp)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>CASE ('CLOUD')<span
-style="mso-spacerun: yes">  </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">       </span>factor =
-0.1<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">       </span>offset =
--50.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>CASE ('U')<span
-style="mso-spacerun: yes">  </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">       </span>factor =
-1.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">       </span>offset =
-100.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>CASE ('T')<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">       </span>factor =
-0.5<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">       </span>offset =
--150.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>END SELECT<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>DO k=1,SIZE(field, 3)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">       </span>DO
-j=1,SIZE(field, 2)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">          </span>DO
-i=1,SIZE(field, 1)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">            </span><span
-style="mso-spacerun: yes"> </span>field(i,j,k) = ((k-1)*64 + (j-1)*16 +
-(i-1)*4 + it)*factor - offset<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">          </span>END DO<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">       </span>END DO<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>END DO<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>END SUBROUTINE read_3d_input_files<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>SUBROUTINE read_2d_input_files(it,
-varname, field)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>IMPLICIT NONE<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>INTEGER, INTENT(IN) :: it<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>CHARACTER(len=*),
-INTENT(IN) :: varname<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>REAL, INTENT(OUT),
-DIMENSION(:,:) :: field<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>INTEGER :: i, j<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>REAL :: factor, offset<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>CHARACTER(len=LEN(varname))
-:: tmp<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>tmp =
-TRIM(ADJUSTL(varname))<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>SELECT CASE (tmp)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>CASE ('LATENT')<span
-style="mso-spacerun: yes">  </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">       </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">       </span>factor =
-1.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">       </span>offset =
-20.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>CASE ('TSURF')<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">       </span>factor =
-2.0<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">       </span>offset =
--220.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>CASE ('SOIL_WET')<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">       </span>factor =
-10.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">       </span>offset =
-0.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>CASE ('PSURF')<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">       </span>factor =
-100.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">       </span>offset =
--9.7e4<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>END SELECT<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>DO j=1,SIZE(field, 2)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">       </span>DO
-i=1,SIZE(field, 1)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">         
-</span>field(i,size(field,2)+1-j) = ((j-1)*16 + (i-1)*4 + it)*factor - offset<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">       </span>END DO<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>END DO<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>END SUBROUTINE read_2d_input_files<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>END
-MODULE local_subs<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>PROGRAM
-ipcc_test_code<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">   </span>Purpose:<span
-style="mso-spacerun: yes">   </span>To serve as a generic example of
-an application that<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">       </span>uses the
-"Climate Model Output Rewriter" (CMOR)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">    </span>CMOR writes CF-compliant
-netCDF files.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">    </span>Its use is strongly
-encouraged by the IPCC and is intended for use <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">       </span>by those
-participating in many community-coordinated standard <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">       </span>climate
-model experiments (e.g., AMIP, CMIP, CFMIP, PMIP, APE,<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">       </span>etc.)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">   </span>Background information for this
-sample code:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">      </span>Atmospheric
-standard output requested by IPCC are listed in <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">   </span>tables available on the web.<span
-style="mso-spacerun: yes">  </span>Monthly mean output is found in<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">   </span>tables A1a and A1c.<span
-style="mso-spacerun: yes">  </span>This sample code processes only two 3-d
-<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">   </span>variables listed in table A1c
-("monthly mean atmosphere 3-D data" <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">   </span>and only four 2-d variables
-listed in table A1a ("monthly mean <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">   </span>atmosphere + land surface 2-D
-(latitude, longitude) data").<span style="mso-spacerun: yes"> 
-</span>The <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">   </span>extension to many more fields is
-trivial.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">      </span>For this
-example, the user must fill in the sections of code that <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">   </span>extract the 3-d and 2-d fields
-from his monthly mean "history" <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">   </span>files (which usually contain many
-variables but only a single time <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">   </span>slice).<span style="mso-spacerun:
-yes">  </span>The CMOR code will write each field in a separate file, but <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">   </span>many monthly mean time-samples
-will be stored together.<span style="mso-spacerun: yes">  </span>These <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">   </span>constraints partially determine
-the structure of the code.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">   </span>Record of revisions:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">       </span>Date<span
-style="mso-spacerun: yes">       
-</span>Programmer(s)<span style="mso-spacerun:
-yes">          
-</span>Description of change<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">       </span>====<span
-style="mso-spacerun: yes">       
-</span>==========<span style="mso-spacerun:
-yes">             
-</span>=====================<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">      </span>10/22/03<span
-style="mso-spacerun: yes">     </span>Rusty Koder<span
-style="mso-spacerun:
-yes">            </span><span
-style="mso-spacerun: yes">  </span>Original code<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">      
-</span>1/28/04<span style="mso-spacerun: yes">    
-</span>Les R. Koder<span style="mso-spacerun:
-yes">            
-</span>Revised to be consistent<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun:
-yes">                                           
-</span>with evolving code design<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-include module that contains the user-accessible cmor functions.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>USE cmor_users_functions<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>USE local_subs<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>IMPLICIT NONE<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>!<span style="mso-spacerun:
-yes">   </span>dimension parameters:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>! ---------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>INTEGER, PARAMETER :: ntimes = 2<span
-style="mso-spacerun: yes">    </span>! number of time samples to
-process<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>INTEGER, PARAMETER :: lon = 4<span
-style="mso-spacerun: yes">       </span>! number
-of longitude grid cells<span style="mso-spacerun: yes">  </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>INTEGER, PARAMETER :: lat = 3<span
-style="mso-spacerun: yes">       </span>! number
-of latitude grid cells<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>INTEGER, PARAMETER :: lev = 5<span
-style="mso-spacerun: yes">       </span>! number
-of standard pressure levels<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>INTEGER, PARAMETER :: lev2 = 17<span
-style="mso-spacerun: yes">       </span>! number
-of standard pressure levels<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>INTEGER, PARAMETER :: n2d = 4<span
-style="mso-spacerun: yes">       </span>! number
-of IPCC Table A1a fields to be<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                                     
-</span>!<span style="mso-spacerun: yes">     </span>output.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>INTEGER, PARAMETER :: n3d = 3<span
-style="mso-spacerun: yes">       </span>! number
-of IPCC Table A1c fields to <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                                     
-</span>!<span style="mso-spacerun: yes">     </span>be
-output.<span style="mso-spacerun: yes">  </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>!<span style="mso-spacerun:
-yes">   </span>Tables associating the user's variables with IPCC
-standard output <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>!<span style="mso-spacerun:
-yes">   </span>variables.<span style="mso-spacerun: yes"> 
-</span>The user may choose to make this association in a <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>!<span style="mso-spacerun:
-yes">   </span>different way (e.g., by defining values of pointers
-that allow him <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>!<span style="mso-spacerun:
-yes">   </span>to directly retrieve data from a data record
-containing many <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>!<span style="mso-spacerun:
-yes">   </span>different variables), but in some way the user will
-need to map his <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>!<span style="mso-spacerun:
-yes">   </span>model output onto the Tables specifying the MIP
-standard output.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>! ----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                               
-</span>! My variable names for IPCC Table A1c fields<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes"> </span><span style="mso-spacerun:
-yes"> </span>CHARACTER (LEN=5), DIMENSION(n3d) :: &<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                                
-</span>varin3d=(/'CLOUD', 'U<span style="mso-spacerun: yes">   
-</span>', 'T<span style="mso-spacerun: yes">    </span>'/)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                               
-</span>! Units appropriate to my data<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>CHARACTER (LEN=5), DIMENSION(n3d) ::
-&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                                 
-</span>units3d=(/ '%<span style="mso-spacerun: yes">   
-</span>', 'm s-1',<span style="mso-spacerun: yes">   </span>'K<span
-style="mso-spacerun: yes">    </span>'<span style="mso-spacerun:
-yes">  </span>/)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                    
-</span>! Corresponding IPCC Table A1c entry (variable name) <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>CHARACTER (LEN=2), DIMENSION(n3d) ::
-entry3d = (/ 'cl', 'ua', 'ta' /)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                               
-</span>! My variable names for IPCC Table A1a fields<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>CHARACTER (LEN=8), DIMENSION(n2d) ::
-&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                 
-</span>varin2d=(/ 'LATENT<span style="mso-spacerun: yes">  </span>',
-'TSURF<span style="mso-spacerun: yes">   </span>', 'SOIL_WET',
-'PSURF<span style="mso-spacerun: yes">   </span>' /)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                               
-</span>! Units appropriate to my data<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">   </span>CHARACTER (LEN=6), DIMENSION(n2d)
-:: &<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                     
-</span><span style="mso-spacerun:
-yes">    </span>units2d=(/ 'W m-2 ', 'K<span
-style="mso-spacerun: yes">     </span>', 'kg m-2', 'Pa<span
-style="mso-spacerun: yes">    </span>' /)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">   </span>CHARACTER (LEN=4), DIMENSION(n2d)
-:: &<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                     
-</span>positive2d= (/<span style="mso-spacerun: yes">  </span>'down',<span
-style="mso-spacerun: yes">  </span>'<span style="mso-spacerun:
-yes">    </span>', '<span style="mso-spacerun:
-yes">    </span>', '<span style="mso-spacerun:
-yes">    </span>'<span style="mso-spacerun: yes"> 
-</span>/)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                    
-</span>! Corresponding IPCC Table A1a entry (variable name) <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>CHARACTER (LEN=5), DIMENSION(n2d) ::
-&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                       
-</span>entry2d = (/ 'hfls ', 'tas<span style="mso-spacerun: yes"> 
-</span>', 'mrsos', 'ps<span style="mso-spacerun: yes">   </span>' /)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">  </span>uninitialized variables used in
-communicating with CMOR:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes"> 
-</span>---------------------------------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>INTEGER :: error_flag<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>INTEGER :: znondim_id, zfactor_id<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>INTEGER, DIMENSION(n2d) :: var2d_ids<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>INTEGER, DIMENSION(n3d) :: var3d_ids<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>REAL, DIMENSION(lon,lat) :: data2d<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>REAL, DIMENSION(lon,lat,lev2) :: data3d<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>DOUBLE PRECISION, DIMENSION(lat) ::
-alats<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>DOUBLE PRECISION, DIMENSION(lon) ::
-alons<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>DOUBLE PRECISION, DIMENSION(lev2) ::
-plevs<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>DOUBLE PRECISION, DIMENSION(1) :: time<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>DOUBLE PRECISION, DIMENSION(2,1)::
-bnds_time<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>DOUBLE PRECISION, DIMENSION(2,lat) ::
-bnds_lat<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>DOUBLE PRECISION, DIMENSION(2,lon) ::
-bnds_lon<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>DOUBLE PRECISION, DIMENSION(lev) ::
-zlevs<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>DOUBLE PRECISION, DIMENSION(lev+1) ::
-zlev_bnds<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>REAL, DIMENSION(lev) :: a_coeff<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>REAL, DIMENSION(lev) :: b_coeff<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>REAL :: p0<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>REAL, DIMENSION(lev+1) :: a_coeff_bnds<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>REAL, DIMENSION(lev+1) :: b_coeff_bnds<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>INTEGER :: ilon, ilat, ipres, ilev,
-itim, itim2, ilon2,ilat2<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>DOUBLE PRECISION bt<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>character(256)::<span
-style="mso-spacerun: yes">  </span>outpath<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>!<span style="mso-spacerun: yes"> 
-</span>Other variables:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>!<span style="mso-spacerun: yes"> 
-</span>---------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>INTEGER :: it, m<span
-style="mso-spacerun: yes">  </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>bt=0.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>! ================================<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>!<span style="mso-spacerun: yes"> 
-</span>Execution begins here:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>! ================================<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>! Read coordinate information from
-model into arrays that will be passed <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>!<span style="mso-spacerun:
-yes">   </span>to CMOR.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>! Read latitude, longitude, and
-pressure coordinate values into <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>!<span style="mso-spacerun:
-yes">   </span>alats, alons, and plevs, respectively.<span
-style="mso-spacerun: yes">  </span>Also generate latitude and <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>!<span style="mso-spacerun:
-yes">   </span>longitude bounds, and store in bnds_lat and bnds_lon,
-respectively.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>!<span style="mso-spacerun:
-yes">   </span>Note that all variable names in this code can be
-freely chosen by<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>!<span style="mso-spacerun:
-yes">   </span>the user.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>!<span style="mso-spacerun:
-yes">   </span>The user must write the subroutine that fills the
-coordinate arrays <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>!<span style="mso-spacerun:
-yes">   </span>and their bounds with actual data.<span
-style="mso-spacerun: yes">  </span>The following line is simply a<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>!<span style="mso-spacerun:
-yes">   </span>a place-holder for the user's code, which should
-replace it.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>!<span style="mso-spacerun: yes"> 
-</span>*** possible user-written call ***<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>call read_coords(alats, alons, plevs,
-bnds_lat, bnds_lon)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>! Specify path where tables can be
-found and indicate that existing <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>!<span style="mso-spacerun:
-yes">    </span>netCDF files should not be overwritten.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>error_flag = cmor_setup(inpath='Test',
-netcdf_file_action='replace')<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>! Define dataset as output from the
-GICC model (first member of an<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>!<span style="mso-spacerun:
-yes">   </span>ensemble of simulations) run under IPCC 2xCO2
-equilibrium<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>!<span style="mso-spacerun:
-yes">   </span>experiment conditions, and provide information to be
-included as <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>!<span style="mso-spacerun:
-yes">   </span>attributes in all CF-netCDF files written as part of
-this dataset.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>error_flag = cmor_dataset(<span
-style="mso-spacerun:
-yes">          </span><span
-style="mso-spacerun:
-yes">                         </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>outpath='Test',<span style="mso-spacerun:
-yes">                                        
-</span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>experiment_id='abrupt 4XCO2',<span style="mso-spacerun:
-yes">           </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>institution=<span style="mso-spacerun:
-yes">                                           
-</span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">       </span>'GICC
-(Generic International Climate Center, ' //<span style="mso-spacerun:
-yes">       </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">       </span>'Geneva,
-Switzerland)',<span style="mso-spacerun:
-yes">                                
-</span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>source='GICCM1 (2002): ' //<span style="mso-spacerun:
-yes">                            
-</span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>'atmosphere:<span style="mso-spacerun: yes">  </span>GICAM3
-(gicam_0_brnchT_itea_2, T63L32); '// &<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">       </span>'ocean:
-MOM (mom3_ver_3.5.2, 2x3L15); '<span style="mso-spacerun:
-yes">            
-</span>//<span style="mso-spacerun: yes">  </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">       </span>'sea ice:
-GISIM4; land: GILSM2.5',<span style="mso-spacerun:
-yes">                     
-</span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>calendar='360_day',<span style="mso-spacerun:
-yes">                                     
-</span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>realization=1,<span style="mso-spacerun:
-yes">                                         
-</span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>history='Output from archive/giccm_03_std_2xCO2_2256.', &<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>institute_id = 'PCMDI', &<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>comment='Equilibrium reached after 30-year spin-up ' // &<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">       </span>'after
-which data were output starting with nominal '// &<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">       </span>'date of
-January 2030',<span style="mso-spacerun:
-yes">                                
-</span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span><span style="mso-spacerun:
-yes">     </span>references='Model described by Koder
-and Tolkien ' //<span style="mso-spacerun: yes">   </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">       </span>'(J.
-Geophys. Res., 2001, 576-591).<span style="mso-spacerun: yes"> 
-</span>Also '<span style="mso-spacerun:
-yes">        </span>//<span
-style="mso-spacerun: yes">   </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">       </span>'see
-http://www.GICC.su/giccm/doc/index.html '<span style="mso-spacerun:
-yes">     </span>//<span style="mso-spacerun:
-yes">   </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">       </span>' 2XCO2
-simulation described in Dorkey et al. '<span style="mso-spacerun:
-yes">    </span>//<span style="mso-spacerun: yes">  
-</span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">       </span>'(Clim.
-Dyn., 2003, 323-357.)',&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>model_id='GICCM1',forcing='TO',contact="Barry Bonds",&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>parent_experiment_id="N/A",branch_time=bt)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>!<span style="mso-spacerun: yes"> 
-</span>Define all axes that will be needed<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>ilat = cmor_axis(<span
-style="mso-spacerun: yes">  </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>table='Tables/CMIP5_Amon',<span style="mso-spacerun:
-yes">    </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>table_entry='latitude',<span style="mso-spacerun:
-yes">       </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>units='degrees_north',<span style="mso-spacerun:
-yes">        </span>&<span
-style="mso-spacerun: yes">  </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>length=lat,<span style="mso-spacerun:
-yes">                  
-</span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>coord_vals=alats,<span style="mso-spacerun:
-yes">            
-</span>& <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>cell_bounds=bnds_lat)<span style="mso-spacerun:
-yes">        </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>ilon2 = cmor_axis(<span
-style="mso-spacerun: yes">  </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>table='Tables/CMIP5_Lmon',<span style="mso-spacerun:
-yes">    </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>table_entry='longitude',<span style="mso-spacerun:
-yes">      </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>length=lon,<span style="mso-spacerun:
-yes">                  
-</span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>units='degrees_east',<span style="mso-spacerun:
-yes">         </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>coord_vals=alons,<span style="mso-spacerun:
-yes">            
-</span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>cell_bounds=bnds_lon)<span style="mso-spacerun:
-yes">      </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">        </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>ilat2 = cmor_axis(<span
-style="mso-spacerun: yes">  </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">       </span>table='Tables/CMIP5_Lmon',<span
-style="mso-spacerun: yes">    </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>table_entry='latitude',<span style="mso-spacerun:
-yes">       </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>units='degrees_north',<span style="mso-spacerun:
-yes">        </span>&<span
-style="mso-spacerun: yes">  </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>length=lat,<span style="mso-spacerun:
-yes">                  
-</span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>coord_vals=alats,<span style="mso-spacerun:
-yes">            
-</span>& <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>cell_bounds=bnds_lat)<span style="mso-spacerun:
-yes">        </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>ilon = cmor_axis(<span
-style="mso-spacerun: yes">  </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">     </span><span
-style="mso-spacerun: yes">  </span>table='Tables/CMIP5_Amon',<span
-style="mso-spacerun: yes">    </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>table_entry='longitude',<span style="mso-spacerun:
-yes">      </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>length=lon,<span style="mso-spacerun:
-yes">                  
-</span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>units='degrees_east',<span style="mso-spacerun:
-yes">         </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>coord_vals=alons,<span style="mso-spacerun:
-yes">            
-</span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>cell_bounds=bnds_lon)<span style="mso-spacerun:
-yes">      </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">        </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>ipres = cmor_axis(<span
-style="mso-spacerun: yes">  </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>table='Tables/CMIP5_Amon',<span style="mso-spacerun:
-yes">    </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>table_entry='plevs',<span style="mso-spacerun:
-yes">       </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>units='Pa',<span style="mso-spacerun:
-yes">                  
-</span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>length=lev2,<span style="mso-spacerun:
-yes">                  
-</span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>coord_vals=plevs)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>!<span style="mso-spacerun:
-yes">   </span>note that the time axis is defined next, but the time
-coordinate <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>!<span style="mso-spacerun:
-yes">   </span>values and bounds will be passed to cmor through
-function <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>!<span style="mso-spacerun:
-yes">   </span>cmor_write (later, below).<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>itim = cmor_axis(<span
-style="mso-spacerun: yes">  </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>table='Tables/CMIP5_Amon',<span style="mso-spacerun:
-yes">    </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>table_entry='time',<span style="mso-spacerun:
-yes">           </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>units='days since 2030-1-1',<span style="mso-spacerun: yes"> 
-</span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>length=ntimes,<span style="mso-spacerun:
-yes">               
-</span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>interval='20 minutes')<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>itim2 = cmor_axis(<span
-style="mso-spacerun: yes">  </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>table='Tables/CMIP5_Lmon',<span style="mso-spacerun:
-yes">    </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>table_entry='time',<span style="mso-spacerun:
-yes">           </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>units='days since 2030-1-1',<span style="mso-spacerun: yes"> 
-</span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>length=ntimes,<span style="mso-spacerun:
-yes">               
-</span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>interval='20 minutes')<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>!<span style="mso-spacerun: yes"> 
-</span>define model eta levels (although these must be provided, they will<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>!<span style="mso-spacerun:
-yes">    </span>actually be replaced by a+b before writing the
-netCDF file)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>zlevs = (/ 0.1, 0.3, 0.55, 0.7, 0.9 /)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>zlev_bnds=(/ 0.,.2, .42, .62, .8, 1. /)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>ilev = cmor_axis(<span
-style="mso-spacerun: yes">  </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span><span style="mso-spacerun:
-yes">     </span>table='Tables/CMIP5_Amon',<span
-style="mso-spacerun: yes">    </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>table_entry='standard_hybrid_sigma',<span style="mso-spacerun:
-yes">       </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>units='1', &<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>length=lev,<span style="mso-spacerun:
-yes">                  
-</span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>coord_vals=zlevs,<span style="mso-spacerun:
-yes">            
-</span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>cell_bounds=zlev_bnds)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>!<span style="mso-spacerun:
-yes">   </span>define z-factors needed to transform from model level
-to pressure<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>p0 = 1.e5<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>a_coeff = (/ 0.1, 0.2, 0.3, 0.22, 0.1
-/)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>b_coeff = (/ 0.0, 0.1, 0.2, 0.5, 0.8 /)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>a_coeff_bnds=(/0.,.15, .25, .25, .16,
-0./)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>b_coeff_bnds=(/0.,.05, .15, .35, .65,
-1./)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>error_flag = cmor_zfactor(<span
-style="mso-spacerun: yes">  </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes"> </span><span style="mso-spacerun:
-yes">      </span>zaxis_id=ilev,<span
-style="mso-spacerun:
-yes">                     
-</span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>zfactor_name='p0',<span style="mso-spacerun:
-yes">                 
-</span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>units='Pa',<span style="mso-spacerun:
-yes">                        
-</span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>zfactor_values = p0)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>error_flag = cmor_zfactor(<span
-style="mso-spacerun: yes">  </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>zaxis_id=ilev,<span style="mso-spacerun:
-yes">                      
-</span>& <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">       </span>zfactor_name='b',<span
-style="mso-spacerun:
-yes">                   
-</span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">       </span>axis_ids=
-(/ ilev /),<span style="mso-spacerun:
-yes">               
-</span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>zfactor_values = b_coeff,<span style="mso-spacerun:
-yes">           
-</span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>zfactor_bounds = b_coeff_bnds<span style="mso-spacerun: yes"> 
-</span>)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>error_flag = cmor_zfactor(<span
-style="mso-spacerun: yes">  </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>zaxis_id=ilev,<span style="mso-spacerun:
-yes">                      
-</span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">       </span>zfactor_name='a',<span
-style="mso-spacerun:
-yes">                   
-</span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">       </span>axis_ids=
-(/ ilev /),<span style="mso-spacerun:
-yes">               
-</span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>zfactor_values = a_coeff,<span style="mso-spacerun:
-yes">           
-</span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>zfactor_bounds = a_coeff_bnds )<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>zfactor_id = cmor_zfactor(<span
-style="mso-spacerun: yes">  </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>zaxis_id=ilev,<span style="mso-spacerun:
-yes">                        
-</span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">       </span>zfactor_name='ps',<span
-style="mso-spacerun:
-yes">                    
-</span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>axis_ids=(/ ilon, ilat, itim /),<span style="mso-spacerun:
-yes">       </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>units='Pa' )<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>!<span style="mso-spacerun: yes"> 
-</span>Define the only field to be written that is a function of model level<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>!<span style="mso-spacerun:
-yes">    </span>(appearing in IPCC table A1c)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>var3d_ids(1) = cmor_variable(<span
-style="mso-spacerun: yes">    </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>table='Tables/CMIP5_Amon',<span style="mso-spacerun: yes"> 
-</span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>table_entry=entry3d(1),<span style="mso-spacerun:
-yes">     </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>units=units3d(1),<span style="mso-spacerun:
-yes">           </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>axis_ids=(/ ilon, ilat, ilev, itim /),<span style="mso-spacerun:
-yes">  </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>missing_value=1.0e28, &<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>original_name=varin3d(1))<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>!<span style="mso-spacerun: yes"> 
-</span>Define variables appearing in IPCC table A1c that are a function of
-pressure<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>!<span style="mso-spacerun:
-yes">         </span>(3-d variables)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>DO m=2,n3d<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">     </span>var3d_ids(m) =
-cmor_variable(<span style="mso-spacerun: yes">    </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">         
-</span>table='Tables/CMIP5_Amon',<span style="mso-spacerun: yes"> 
-</span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">         
-</span>table_entry=entry3d(m),<span style="mso-spacerun:
-yes">     </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">         
-</span>units=units3d(m),<span style="mso-spacerun:
-yes">           </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">          </span>axis_ids=(/
-ilon, ilat, ipres, itim /), &<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">         
-</span>missing_value=1.0e28,<span style="mso-spacerun:
-yes">       </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">         
-</span>original_name=varin3d(m))<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>ENDDO<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>!<span style="mso-spacerun: yes"> 
-</span>Define variables appearing in IPCC table A1a (2-d variables)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>DO m=1,n2d<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">     </span>if (m.ne.3) then<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">     </span>var2d_ids(m) =
-cmor_variable(<span style="mso-spacerun: yes">    </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">         
-</span>table='Tables/CMIP5_Amon',<span style="mso-spacerun:
-yes">      </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">         
-</span>table_entry=entry2d(m),<span style="mso-spacerun:
-yes">     </span>& <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">         
-</span>units=units2d(m),<span style="mso-spacerun:
-yes">           </span>& <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">          </span>axis_ids=(/
-ilon, ilat, itim /), &<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">         
-</span>missing_value=1.0e28,<span style="mso-spacerun:
-yes">       </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">          </span>positive=positive2d(m),<span
-style="mso-spacerun: yes">     </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">         
-</span>original_name=varin2d(m))<span style="mso-spacerun: yes">  
-</span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>else<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">     </span>var2d_ids(m) =
-cmor_variable(<span style="mso-spacerun: yes">    </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">         
-</span>table='Tables/CMIP5_Lmon',<span style="mso-spacerun:
-yes">      </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">         
-</span>table_entry=entry2d(m),<span style="mso-spacerun:
-yes">     </span>& <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">         
-</span>units=units2d(m),<span style="mso-spacerun:
-yes">           </span>& <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">          </span>axis_ids=(/
-ilon2, ilat2, itim2 /), &<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">         
-</span>missing_value=1.0e28,<span style="mso-spacerun:
-yes">       </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">         
-</span>positive=positive2d(m),<span style="mso-spacerun:
-yes">     </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">         
-</span>original_name=varin2d(m)) <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>endif<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>ENDDO<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>PRINT*, ' '<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>PRINT*, 'completed everything up to
-writing output fields '<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>PRINT*, ' '<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>!<span style="mso-spacerun: yes"> 
-</span>Loop through history files (each containing several different fields, <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>!<span style="mso-spacerun:
-yes">       </span>but only a single month of
-data, averaged over the month).<span style="mso-spacerun: yes"> 
-</span>Then <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>!<span style="mso-spacerun:
-yes">       </span>extract fields of interest and
-write these to netCDF files (with <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>!<span style="mso-spacerun:
-yes">       </span>one field per file, but all
-months included in the loop).<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>time_loop: DO it=1, ntimes<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">     </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">     </span>! In the following
-loops over the 3d and 2d fields, the user-written<span style="mso-spacerun:
-yes">    </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">     </span>! subroutines
-(read_3d_input_files and read_2d_input_files) retrieve <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">     </span>! the requested IPCC
-table A1c and table A1a fields and store them in <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">     </span>! data3d and data2d,
-respectively.<span style="mso-spacerun: yes">  </span>In addition a
-user-written code <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">     </span>! (read_time)
-retrieves the time and time-bounds associated with the <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">     </span>! time sample (in
-units of 'days since 1970-1-1', consistent with the <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">     </span>! axis definitions
-above).<span style="mso-spacerun: yes">  </span>The bounds are set to the
-beginning and <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">     </span>! the end of the
-month retrieved, indicating the averaging period.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">     </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">     </span>! The user must write
-a code to obtain the times and time-bounds for<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">     </span>!<span
-style="mso-spacerun: yes">   </span>the time slice.<span
-style="mso-spacerun: yes">  </span>The following line is simply a
-place-holder for<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">     </span>!<span
-style="mso-spacerun: yes">   </span>the user's code, which should
-replace it.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">     </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>call read_time(it, time(1),
-bnds_time)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>call
-read_3d_input_files(it, varin3d(1), data3d)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>error_flag =
-cmor_write(<span style="mso-spacerun:
-yes">            </span><span
-style="mso-spacerun:
-yes">                      </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">        
-</span>var_id<span style="mso-spacerun:
-yes">        </span>= var3d_ids(1),<span
-style="mso-spacerun: yes">                       
-</span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">        
-</span>data<span style="mso-spacerun:
-yes">          </span>=
-data3d,<span style="mso-spacerun: yes">                             
-</span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">        
-</span>ntimes_passed = 1,<span style="mso-spacerun:
-yes">                                  
-</span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">        
-</span>time_vals<span style="mso-spacerun: yes">    
-</span>= time,<span style="mso-spacerun:
-yes">          </span><span
-style="mso-spacerun:
-yes">                      </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">        
-</span>time_bnds<span style="mso-spacerun: yes">    
-</span>= bnds_time<span style="mso-spacerun: yes">   </span>)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>call
-read_2d_input_files(it, varin2d(4), data2d)<span style="mso-spacerun:
-yes">                 
-</span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>error_flag =
-cmor_write(<span style="mso-spacerun:
-yes">                                 
-</span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">        
-</span>var_id<span style="mso-spacerun:
-yes">        </span>= zfactor_id,<span
-style="mso-spacerun: yes">                   
-</span><span style="mso-spacerun:
-yes">      </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">        
-</span>data<span style="mso-spacerun:
-yes">          </span>=
-data2d,<span style="mso-spacerun: yes">                             
-</span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">        
-</span>ntimes_passed = 1,<span style="mso-spacerun:
-yes">                                  
-</span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">        
-</span>time_vals<span style="mso-spacerun: yes">    
-</span>= time,<span style="mso-spacerun:
-yes">                               
-</span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">        
-</span>time_bnds<span style="mso-spacerun: yes">    
-</span>= bnds_time,<span style="mso-spacerun:
-yes">                    
-</span><span style="mso-spacerun:
-yes">      </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">        
-</span>store_with<span style="mso-spacerun: yes">    </span>=
-var3d_ids(1) )<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>! Cycle through the 3-d
-fields (stored on pressure levels), <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>! and retrieve the
-requested variable and append each to the <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>! appropriate netCDF file.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>DO m=2,n3d<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">        </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">        </span>!
-The user must write the code that fills the arrays of data<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">        </span>!
-that will be passed to CMOR.<span style="mso-spacerun: yes">  </span>The
-following line is simply a<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">        </span>! a
-place-holder for the user's code, which should replace it.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">       
-</span>call read_3d_input_files(it, varin3d(m), data3d)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">       </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">        </span>!
-append a single time sample of data for a single field to <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">        </span>!
-the appropriate netCDF file.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">       
-</span>call cmor_create_output_path(var3d_ids(m),outpath)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">       
-</span>print*, 'Ok we will dump that at: ',outpath<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">       
-</span>error_flag = cmor_write(<span style="mso-spacerun:
-yes">    </span><span style="mso-spacerun:
-yes">                              </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">            
-</span>var_id<span style="mso-spacerun:
-yes">        </span>= var3d_ids(m),<span
-style="mso-spacerun: yes">                       
-</span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">            
-</span>data<span style="mso-spacerun:
-yes">          </span>= data3d,<span
-style="mso-spacerun:
-yes">                             
-</span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">            
-</span>ntimes_passed = 1,<span style="mso-spacerun:
-yes">                                  
-</span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">            
-</span>time_vals<span style="mso-spacerun: yes">    
-</span>= time,<span style="mso-spacerun:
-yes">                               
-</span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">            
-</span>time_bnds<span style="mso-spacerun: yes">    
-</span>= bnds_time<span style="mso-spacerun: yes">  </span>)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">        </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">        </span>IF
-(error_flag < 0) THEN<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">           </span>!
-write diagnostic messages to standard output device<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">          
-</span>write(*,*) ' Error encountered writing IPCC Table A1c ' &<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">               
-</span>// 'field ', entry3d(m), ', which I call ', varin3d(m)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">          
-</span>write(*,*) ' Was processing time sample: ', time<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                     
-</span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">        </span>END
-IF<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">     </span>END DO<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">     </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">     </span>! Cycle through the
-2-d fields, retrieve the requested variable and <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">     </span>! append each to the
-appropriate netCDF file.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">     </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">     </span>DO m=1,n2d<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">        </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">        </span>!
-The user must write the code that fills the arrays of data<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">        </span>!
-that will be passed to CMOR.<span style="mso-spacerun: yes">  </span>The
-following line is simply a<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">        </span>! a
-place-holder for the user's code, which should replace it.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">        </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">       
-</span>call read_2d_input_files(it, varin2d(m), data2d)<span
-style="mso-spacerun:
-yes">                 
-</span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">        </span>!
-append a single time sample of data for a single field to <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">        </span>!
-the appropriate netCDF file.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">        </span>error_flag
-= cmor_write(<span style="mso-spacerun:
-yes">                                 
-</span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">            
-</span>var_id<span style="mso-spacerun:
-yes">        </span>= var2d_ids(m),<span
-style="mso-spacerun: yes">                       
-</span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">            
-</span>data<span style="mso-spacerun:
-yes">          </span>= data2d,<span
-style="mso-spacerun:
-yes">                             
-</span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">            
-</span>ntimes_passed = 1,<span style="mso-spacerun:
-yes">                             
-</span><span style="mso-spacerun:
-yes">     </span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">            
-</span>time_vals<span style="mso-spacerun: yes">    
-</span>= time,<span style="mso-spacerun: yes">                               
-</span>&<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">            
-</span>time_bnds<span style="mso-spacerun: yes">    
-</span>= bnds_time<span style="mso-spacerun: yes">  </span>)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">        </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">       </span>IF
-(error_flag < 0) THEN<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">           </span>!
-write diagnostic messages to standard output device<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">          
-</span>write(*,*) ' Error encountered writing IPCC Table A1a ' &<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">               
-</span>// 'field ', entry2d(m), ', which I call ', varin2d(m)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">          
-</span>write(*,*) ' Was processing time sample: ', time <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                     
-</span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">        </span>END
-IF<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">        </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">     </span>END DO<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">     </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>END DO time_loop<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes"> </span><span style="mso-spacerun:
-yes"> </span>!<span style="mso-spacerun: yes">   </span>Close
-all files opened by CMOR.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>error_flag = cmor_close()<span
-style="mso-spacerun: yes">  </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>print*, ' '<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>print*,
-'******************************'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>print*, ' '<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>print*, 'ipcc_test_code executed to
-completion '<span style="mso-spacerun: yes">   </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>print*, ' '<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>print*,
-'******************************'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>END
-PROGRAM ipcc_test_code<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<h2><a name="_Toc129422036"></a><a name="_Toc134007334"><span style='mso-bookmark:
-_Toc129422036'>C</span></a><span style='mso-bookmark:_Toc129422036'><o:p></o:p></span></h2>
-
-<h3><span style='mso-bookmark:_Toc129422036'><a name="_Toc134007335">Sample
-Program 1: grids</a></span><o:p></o:p></h3>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>#include
-<time.h><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>#include
-<stdio.h><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>#include<string.h><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>#include
-"cmor.h"<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>#include
-<stdlib.h><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>#include
-<math.h><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>void
-read_time(it, time, time_bnds)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">     </span>int it;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">     </span>double time[];<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">     </span>double time_bnds[];<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>{<span
-style="mso-spacerun: yes">    </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>time[0] = (it-0.5)*30.;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>time_bnds[0] = (it-1)*30.;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>time_bnds[1] = it*30.;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>time[0]=it;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>time_bnds[0] = it;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>time_bnds[1] = it+1;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>}<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>void
-read_3d_input_files(it, varname, field,n0,n1,n2)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">     </span>int it,n0,n1,n2;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">     </span>char *varname;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes"> </span><span style="mso-spacerun:
-yes">    </span>double field[];<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>{<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>int i,j,k;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>float factor,offset;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>if
-(strcmp(varname,"CLOUD")==0) {<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>factor = 0.1;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>offset = -50.;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>}<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>else if
-(strcmp(varname,"U")==0) {<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>factor = 1.;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>offset = 100.;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>}<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>else if
-(strcmp(varname,"T")==0) {<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span><span style="mso-spacerun:
-yes">  </span>factor = 0.5;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>offset = -150.;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>}<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>for (k=0;k<n2;k++) {<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>for (j=0;j<n1;j++) {<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      </span>for
-(i=0;i<n0;i++) {<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">       
-</span>field[k*(n0*n1)+j*n0+i] = (k*64 + j*16 + i*4 + it)*factor - offset;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      </span>}<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>}<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>}<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>}<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>void
-read_2d_input_files(it, varname, field, n0, n1)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>int it,n0,n1;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>char *varname;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>double field[];<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>{<span
-style="mso-spacerun: yes">    </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>int i, j,k;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>double factor, offset;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>double tmp;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>if
-(strcmp(varname,"LATENT")==0){<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>factor = 1.;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>offset = 120.;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>}<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>else if
-(strcmp(varname,"TSURF")==0){<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>factor = 2.0;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>offset = -230.;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>}<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>else if
-(strcmp(varname,"SOIL_WET")==0){<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>factor = 10.;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>offset = 0.;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>}<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>else if
-(strcmp(varname,"PSURF")==0){<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>factor = 1.;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>offset = -9.7e2;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>}<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>for (j=0;j<n0;j++){<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>for (i=0;i<n1;i++) {<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      </span>tmp = ((double)j*16.
-+ (double)(i)*4. + (double)it)*factor - offset;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      </span>k=
-(n0-1-j)*n1+i;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      </span>field[k] = tmp;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>}<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>}<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>}<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>int
-main()<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>{<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>/*<span style="mso-spacerun:
-yes">   </span>dimension parameters: */<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>/* --------------------------------- */<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>#define<span
-style="mso-spacerun: yes">   </span>ntimes<span style="mso-spacerun:
-yes">  </span>2<span style="mso-spacerun: yes">   
-</span>/* number of time samples to process */<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>#define<span
-style="mso-spacerun: yes">   </span>lon<span style="mso-spacerun:
-yes">  </span>3<span style="mso-spacerun:
-yes">       </span>/* number of longitude grid
-cells<span style="mso-spacerun: yes">   </span>*/<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>#define<span
-style="mso-spacerun: yes">   </span>lat<span style="mso-spacerun:
-yes">  </span>4<span style="mso-spacerun:
-yes">       </span>/* number of latitude grid
-cells */<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>#define<span
-style="mso-spacerun: yes">   </span>lev<span style="mso-spacerun:
-yes">  </span>5<span style="mso-spacerun:
-yes">       </span>/* number of standard pressure
-levels */<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>double x[lon];<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>double y[lat];<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>double lon_coords[lon*lat];<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>double lat_coords[lon*lat];<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>double lon_vertices[lon*lat*4];<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>double lat_vertices[lon*lat*4];<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes"> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>double data2d[lat*lon];<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>double data3d[lev*lat*lon];<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>int myaxes[10];<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>int mygrids[10];<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>int myvars[10];<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>int tables[4];<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>int axes_ids[CMOR_MAX_DIMENSIONS];<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>int i,j,k,ierr;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>double Time[ntimes];<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>double<span style="mso-spacerun:
-yes">  </span>bnds_time[ntimes*2];<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>double tolerance=1.e-4;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>double lon0 = 280.;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>double lat0=0.;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>double delta_lon = 10.;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>double delta_lat = 10.;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>char id[CMOR_MAX_STRING];<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>double tmpf=0.;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>#define
-nparam 6 /* number of grid parameters */<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>#define
-lparam 40<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>#define
-lunits 14<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>char params[nparam][lparam] =
-{"standard_parallel1","longitude_of_central_meridian","latitude_of_projection_origin","false_easting","false_northing","standard_parallel2"};<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>char punits[nparam][lunits] =
-{"degrees_north","degrees_east","degrees_north","m","m","degrees_north"};<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>//char punits[nparam][lunits] =
-{"","","","","",""};<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>double pvalues[nparam] =
-{-20.,175.,13.,8.,0.,20};<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>int exit_mode;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>/* first construct grid lon/lat */<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>for (j=0;j<lat;j++) {<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>y[j]=j;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>for (i=0;i<lon;i++) {<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      </span>x[i]=i;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">     
-</span>lon_coords[i+j*lon] = lon0+delta_lon*(j+1+i);<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">     
-</span>lat_coords[i+j*lon] = lat0+delta_lat*(j+1-i);<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      </span>/* vertices
-lon*/<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      </span>k =
-i*4+j*lon*4+0;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      </span>printf("i,j,k:
-%i, %i, %i\n",i,j,k);<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">     
-</span>lon_vertices[i*4+j*lon*4+0] = lon_coords[i+j*lon]-delta_lon;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">     
-</span>lon_vertices[i*4+j*lon*4+1] = lon_coords[i+j*lon];<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">     
-</span>lon_vertices[i*4+j*lon*4+2] = lon_coords[i+j*lon]+delta_lon;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">     
-</span>lon_vertices[i*4+j*lon*4+3] = lon_coords[i+j*lon];<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      </span>/* vertices lat
-*/<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">     
-</span>lat_vertices[i*4+j*lon*4+0] = lat_coords[i+j*lon];<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">     
-</span>lat_vertices[i*4+j*lon*4+1] = lat_coords[i+j*lon]-delta_lat;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">     
-</span>lat_vertices[i*4+j*lon*4+2] = lat_coords[i+j*lon];<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">     
-</span>lat_vertices[i*4+j*lon*4+3] = lat_coords[i+j*lon]+delta_lat;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      </span>}<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>}<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>exit_mode = CMOR_EXIT_ON_MAJOR;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>j = CMOR_REPLACE;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>printf("Test code: ok init cmor,
-%i\n",exit_mode);<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>ierr =
-cmor_setup(NULL,&j,NULL,&exit_mode,NULL,NULL);<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>printf("Test code: ok init
-cmor\n");<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes"> </span><span style="mso-spacerun:
-yes"> </span>int tmpmo[12];<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>ierr = cmor_dataset(<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>"Test",<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>"amip",<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>"GICC (Generic International Climate Center, Geneva,
-Switzerland)",<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>"GICCM1 (2002): atmosphere:<span style="mso-spacerun: yes"> 
-</span>GICAM3 (gicam_0_brnchT_itea_2, T63L32); ocean: MOM (mom3_ver_3.5.2,
-2x3L15); sea ice: GISIM4; land: GILSM2.5",<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>"standard",<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">       </span>1,<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>"Rusty Koder (koder at middle_earth.net)",<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>"Output from archive/giccm_03_std_2xCO2_2256.",<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>"Equilibrium reached after 30-year spin-up after which data were
-output starting with nominal date of January 2030",<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>"Model described by Koder and Tolkien (J. Geophys. Res., 2001,
-576-591).<span style="mso-spacerun: yes">  </span>Also see
-http://www.GICC.su/giccm/doc/index.html<span style="mso-spacerun: yes"> 
-</span>2XCO2 simulation described in Dorkey et al. '(Clim. Dyn., 2003,
-323-357.)",<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">       </span>0,<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">     </span><span
-style="mso-spacerun: yes">  </span>0,<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">       </span>tmpmo,<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      
-</span>"GICCM1\0","N/A",0,0,"GICC","N/A",&tmpf);<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>printf("Test code: ok load cmor
-table(s)\n");<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>ierr =
-cmor_load_table("Tables/CMIP5_Amon",&tables[1]);<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>printf("Test code: ok load cmor
-table(s)\n");<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>//ierr = cmor_load_table("Test/IPCC_test_table_Grids",&tables[0]);<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>ierr =
-cmor_load_table("Tables/CMIP5_grids",&tables[0]);<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>printf("Test code: ok load cmor
-table(s)\n");<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>ierr = cmor_set_table(tables[0]);<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>/* first define grid axes
-(x/y/rlon/rlat,etc... */<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>ierr = cmor_axis(&myaxes[0],"x","m",lon,&x[0],'d',NULL,0,NULL);<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>printf("Test code: ok got axes id:
-%i for 'x'\n",myaxes[0]);<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>ierr =
-cmor_axis(&myaxes[1],"y","m",lat,&y[0],'d',NULL,0,NULL);<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>printf("Test code: ok got axes id:
-%i for 'y'\n",myaxes[1]);<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>axes_ids[0] = myaxes[1];<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>axes_ids[1] = myaxes[0];<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>/*now defines the grid */<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>printf("going to grid stuff
-\n");<o:p></o:p></span></p>
-
-<p class=MsoNormal><span style='font-size:9.0pt;font-family:"Courier New";
-mso-bidi-font-family:"Courier New"'><span style="mso-spacerun: yes"> 
-</span>ierr = cmor_grid(&mygrids[0],2,&axes_ids[0],'d',&lat_coords[0],&lon_coords[0],4,&lat_vertices[0],&lon_vertices[0]);<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>for (i=0;i<cmor_grids[0].ndims;i++)
-{<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>printf("Dim : %i the
-grid has the follwoing axes on itself: %i
-(%s)\n",i,cmor_grids[0].axes_ids[i],cmor_axes[cmor_grids[0].axes_ids[i]].id);<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>}<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>/* ok puts some grid mappings in
-it,<span style="mso-spacerun: yes">  </span>not sure these parmeters make
-sens! */<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>for(i=0;i<nparam;i++) printf("Test
-code: ok paramter: %i is: %s, with value %lf and units
-'%s'\n",i,params[i],pvalues[i],punits[i]);<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>printf("back from grid going to
-mapping \n");<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>ierr =
-cmor_set_grid_mapping(mygrids[0],"lambert_conformal_conic",nparam-1,&params[0],lparam,pvalues,&punits[0],lunits);<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>for (i=0;i<cmor_grids[0].ndims;i++)
-{<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>printf("New Dim : %i
-the grid has the follwoing axes on itself: %i
-(%s)\n",i,cmor_grids[0].axes_ids[i],cmor_axes[cmor_grids[0].axes_ids[i]].id);<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>}<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>/* ok sets back the vars table */<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>cmor_set_table(tables[1]);<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>for(i=0;i<ntimes;i++) read_time(i,
-&Time[i], &bnds_time[2*i]);<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>ierr =
-cmor_axis(&myaxes[3],"time","months since
-1980",2,&Time[0],'d',&bnds_time[0],2,NULL);<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>printf("time axis id:
-%i\n",myaxes[3]);<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>axes_ids[0]=myaxes[3]; /*time*/<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>axes_ids[1]=mygrids[0]; /*grid */<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>printf("Test code: sending
-axes_ids: %i %i\n",axes_ids[0],axes_ids[1]);<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>ierr =
-cmor_variable(&myvars[0],"hfls","W
-m-2",2,axes_ids,'d',NULL,&tolerance,"down","HFLS","no
-history","no future");<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>for (i=0;i<ntimes;i++) {<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>printf("Test code:
-writing time: %i of %i\n",i+1,ntimes);<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>printf("Test code:
-2d\n");<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>read_2d_input_files(i,
-"LATENT", &data2d[0],lat,lon);<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>//for(j=0;j<10;j++)
-printf("Test code: %i out of %i : %lf\n",j,9,data2d[j]);<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>printf("var id:
-%i\n",myvars[0]);<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>ierr =
-cmor_write(myvars[0],&data2d,'d',NULL,1,NULL,NULL,NULL);<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>}<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>printf("ok loop done\n");<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>ierr = cmor_close();<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>printf("Test code: done\n");<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">  </span>return 0;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>}<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<h2><a name="_Toc129422037"></a><a name="_Toc134007336"><span style='mso-bookmark:
-_Toc129422037'>PYTHON</span></a><o:p></o:p></h2>
-
-<h3><a name="_Toc129422038"></a><a name="_Toc134007337"><span style='mso-bookmark:
-_Toc129422038'>Sample Program 1</span></a><o:p></o:p></h3>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>import
-cmor<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>cmor.setup(inpath='Tables',netcdf_file_action=cmor.CMOR_REPLACE)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>cmor.dataset('historical',
-'ukmo', 'HadCM3'HadCM3 (2010)', '360_day',model_id='pcmdi-10b'’HadCM3',forcing='co2')'Nat',<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:9.0pt;
-font-family:"Courier New";mso-bidi-font-family:"Courier New"'>parent_experiment_id=’N/A’,branch_time=0.,contact=’Tim
-Lincecum, timmy at sfgiants.com’,</span> <span style='font-size:9.0pt;font-family:
-"Courier New";mso-bidi-font-family:"Courier New"'>institute_id='pcmdi')<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>table='CMIP5_Amon'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>cmor.load_table(table)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>itime
-= cmor.axis(table_entry= 'time',<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                 
-</span>units= 'days since 2000-01-01 00:00:00',<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                 
-</span>coord_vals= [15,],<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                 
-</span>cell_bounds= [0, 30])<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>ilat
-= cmor.axis(table_entry= 'latitude',<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                
-</span>units= 'degrees_north',<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                
-</span>coord_vals= [0],<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                
-</span>cell_bounds= [-1, 1])<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>ilon
-= cmor.axis(table_entry= 'longitude',<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                
-</span>units= 'degrees_east',<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                
-</span>coord_vals= [90],<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                
-</span>cell_bounds= [89, 91])<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>axis_ids
-= [itime,ilat,ilon]<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">             
-</span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>varid
-= cmor.variable('ts', 'K', axis_ids)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>cmor.write(varid,
-[273])<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>path=cmor.close(varid,
-file_name=True)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>print
-path<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>cmor.close()<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<h3><a name="_Toc129422039"></a><a name="_Toc134007338"><span style='mso-bookmark:
-_Toc129422039'>Sample Program 2: grids</span></a><span style='mso-bookmark:
-_Toc129422039'></span><span style='mso-bookmark:_Toc134007338'></span><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p></o:p></span></h3>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>import
-cmor<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>import
-os<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>def
-gen_irreg_grid(lon,lat):<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>lon0 = -120.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>lat0=0.;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>delta_lon = 10.;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>delta_lat = 10.;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>y = numpy.arange(lat)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>x = numpy.arange(lon)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>lon_coords =
-numpy.zeros((lat,lon))<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>lat_coords =
-numpy.zeros((lat,lon))<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>lon_vertices =
-numpy.zeros((lat,lon,4))<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>lat_vertices =
-numpy.zeros((lat,lon,4))<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>for j in range(lat): #
-really porr coding i know<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">        </span>for
-i in range(lon): # getting worse i know<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">           
-</span>lon_coords[j,i] = lon0+delta_lon*(j+1+i);<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">       </span><span
-style="mso-spacerun: yes">     </span>lat_coords[j,i]
-= lat0+delta_lat*(j+1-i);<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">           
-</span>lon_vertices[j,i,0] = lon_coords[j,i]-delta_lon;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">           
-</span>lon_vertices[j,i,1] = lon_coords[j,i];<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">           
-</span>lon_vertices[j,i,2] = lon_coords[j,i]+delta_lon;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">           
-</span>lon_vertices[j,i,3] = lon_coords[j,i];<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>##
-!!$<span style="mso-spacerun: yes">      </span>/*
-vertices lat */<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">           
-</span>lat_vertices[j,i,0] = lat_coords[j,i];<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">           
-</span>lat_vertices[j,i,1] = lat_coords[j,i]-delta_lat;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">           
-</span>lat_vertices[j,i,2] = lat_coords[j,i];<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">           
-</span>lat_vertices[j,i,3] = lat_coords[j,i]+delta_lat;<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>return
-x,y,lon_coords,lat_coords,lon_vertices,lat_vertices<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>pth
-= os.path.split(os.path.realpath(os.curdir))<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>if
-pth[-1]=='Test':<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>ipth = opth = '.'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>else:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>ipth = opth = 'Test'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>myaxes=numpy.zeros(9,dtype='i')<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>myaxes2=numpy.zeros(9,dtype='i')<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>myvars=numpy.zeros(9,dtype='i')<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>cmor.setup(inpath=ipth,set_verbosity=cmor.CMOR_NORMAL,
-netcdf_file_action = cmor.CMOR_REPLACE, exit_control =
-cmor.CMOR_EXIT_ON_MAJOR);<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>cmor.dataset(<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>outpath = opth,<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>experiment_id = "historical",<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>institution = "GICC
-(Generic International Climate Center, Geneva, Switzerland)",<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>source = "GICCM1 (2002):
-atmosphere:<span style="mso-spacerun: yes">  </span>GICAM3
-(gicam_0_brnchT_itea_2, T63L32); ocean: MOM (mom3_ver_3.5.2, 2x3L15); sea ice:
-GISIM4; land: GILSM2.5",<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>calendar = "standard",<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>realization = 1,<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>contact = "Rusty Koder
-(koder at middle_earth.net)",<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>history = "Output from
-archive/giccm_03_std_2xCO2_2256.",<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>comment = "Equilibrium
-reached after 30-year spin-up after which data were output starting with
-nominal date of January 2030",<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>references = "Model
-described by Koder and Tolkien (J. Geophys. Res., 2001, 576-591).<span
-style="mso-spacerun: yes">  </span>Also see
-http://www.GICC.su/giccm/doc/index.html<span style="mso-spacerun: yes"> 
-</span>2XCO2 simulation described in Dorkey et al. '(Clim. Dyn., 2003,
-323-357.)",<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>leap_year=0,<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>leap_month=0,<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>month_lengths=None,<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>model_id="GICCM1",<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>forcing="Ant,
-Nat",<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">   
-</span>institute_id="pcmdi",<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">   
-</span>parent_experiment_id="piControl",branch_time=18336.33)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>tables=[]<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>a
-= cmor.load_table("Tables/CMIP5_grids")<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>tables.append(a)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>tables.append(cmor.load_table("Tables/CMIP5_Amon"))<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>print
-'Tables ids:',tables<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>cmor.set_table(tables[0])<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>x,y,lon_coords,lat_coords,lon_vertices,lat_vertices
-= gen_irreg_grid(lon,lat)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>myaxes[0]
-= cmor.axis(table_entry = 'y', <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                     
-</span>units = 'm', <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">      </span><span
-style="mso-spacerun:
-yes">                </span>coord_vals
-= y)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>myaxes[1]
-= cmor.axis(table_entry = 'x', <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                     
-</span>units = 'm', <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                     
-</span>coord_vals = x)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>grid_id
-= cmor.grid(axis_ids = myaxes[:2], <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                   
-</span>latitude = lat_coords, <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                  
-</span><span style="mso-spacerun: yes"> </span>longitude = lon_coords, <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                   
-</span>latitude_vertices = lat_vertices, <o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                   
-</span>longitude_vertices = lon_vertices)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>print
-'got grid_id:',grid_id<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>myaxes[2]
-= grid_id<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>mapnm
-= 'lambert_conformal_conic'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>params
-= [ "standard_parallel1",<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">   </span><span style="mso-spacerun:
-yes">        </span>"longitude_of_central_meridian","latitude_of_projection_origin",<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">          
-</span>"false_easting","false_northing","standard_parallel2"
-]<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>punits
-=
-["","","","","",""
-]<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>pvalues
-= [-20.,175.,13.,8.,0.,20. ]<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>cmor.set_grid_mapping(grid_id=myaxes[2],<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">        </span><span
-style="mso-spacerun:
-yes">              </span>mapping_name
-= mapnm,<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                     
-</span>parameter_names = params,<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                     
-</span>parameter_values = pvalues,<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                     
-</span>parameter_units = punits)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>cmor.set_table(tables[1])<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>myaxes[3]
-= cmor.axis(table_entry = 'time',<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">   </span><span style="mso-spacerun:
-yes">                   </span>units
-= 'months since 1980')<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>pass_axes
-= [myaxes[3],myaxes[2]]<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>myvars[0]
-= cmor.variable( table_entry = 'hfls',<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                          
-</span>units = 'W m-2',<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                          
-</span>axis_ids = pass_axes,<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                          
-</span>positive = 'down',<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                          
-</span>original_name = 'HFLS',<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                          
-</span>history = 'no history',<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                          
-</span>comment = 'no future'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                          
-</span>)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>for
-i in range(ntimes):<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>data2d =
-read_2d_input_files(i, varin2d[0], lat,lon)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>print 'writing time:
-',i,data2d.shape,data2d<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">    </span>print
-Time[i],bnds_time[2*i:2*i+2]<span style="mso-spacerun: yes">   
-</span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">   
-</span>cmor.write(myvars[0],data2d,1,
-time_vals=Time[i],time_bnds=bnds_time[2*i:2*i+2])<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>cmor.close()<o:p></o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><o:p> </o:p></p>
-
-<b><span style='font-size:16.0pt;font-family:Arial;mso-fareast-font-family:
-"Times New Roman";mso-bidi-font-family:Arial;mso-font-kerning:16.0pt;
-mso-ansi-language:EN-US;mso-fareast-language:EN-US'><br clear=ALL
-style='page-break-before:always'>
-</span></b>
-
-<h1><a name="_Toc129422040"></a><a name="_Toc134007339"><span style='mso-bookmark:
-_Toc129422040'>Appendix D: MIP Tables</span></a><o:p></o:p></h1>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><b
-style='mso-bidi-font-weight:normal'><span style='font-size:14.0pt'><o:p> </o:p></span></b></p>
-
-<h2><a name="_Toc129422041"></a><a name="_Toc134007340"><span style='mso-bookmark:
-_Toc129422041'>CMOR 1 sample</span></a><o:p></o:p></h2>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><b
-style='mso-bidi-font-weight:normal'><span style='font-size:14.0pt'><o:p> </o:p></span></b></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><b
-style='mso-bidi-font-weight:normal'><span style='font-size:14.0pt'>Sample Portion
-of a MIP Table (which will be made available by MIP organizers to contributing
-groups)<o:p></o:p></span></b></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><b
-style='mso-bidi-font-weight:normal'><span style='font-size:14.0pt'><o:p> </o:p></span></b></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><b
-style='mso-bidi-font-weight:normal'><i style='mso-bidi-font-style:normal'>The
-user normally need not be concerned with the details contained in this table.<o:p></o:p></i></b></p>
-
-<p class=MsoNormal style='margin-left:.5in;text-indent:-.5in'><b
-style='mso-bidi-font-weight:normal'><span style='font-size:14.0pt'><span
-style="mso-spacerun: yes"> </span><o:p></o:p></span></b></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>cmor_version:
-0.8<span style="mso-spacerun:
-yes">         </span>! version of CMOR
-that can read this table<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>cf_version:<span
-style="mso-spacerun: yes">   </span>1.0<span style="mso-spacerun:
-yes">         </span>! version of CF
-that output conforms to<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>project_id:<span
-style="mso-spacerun: yes">   </span>IPCC Fourth Assessment<span
-style="mso-spacerun: yes">       </span>! project
-id<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>table_id:<span
-style="mso-spacerun: yes">     </span>Table A1<span
-style="mso-spacerun: yes">    </span>! table id<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>table_date:<span
-style="mso-spacerun: yes">   </span>7 April 2004 ! date this table
-was constructed<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:<span
-style="mso-spacerun: yes">   </span>'pre-industrial control experiment'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:<span
-style="mso-spacerun: yes">   </span>'present-day control experiment'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:<span
-style="mso-spacerun: yes">   </span>'climate of the 20th Century
-experiment (20C3M)'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:<span
-style="mso-spacerun: yes">   </span>'committed climate change
-experiment'<span style="mso-spacerun: yes">  </span>! official name(s) of <o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:<span
-style="mso-spacerun: yes">   </span>'SRES A2 experiment'<span
-style="mso-spacerun:
-yes">                  
-</span>!<span style="mso-spacerun: yes">  </span>project's experiments<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:<span
-style="mso-spacerun: yes">   </span>'control experiment (for
-committed climate change experiment)'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:<span
-style="mso-spacerun: yes">   </span>'720 ppm stabilization experiment
-(SRES A1B)'<span style="mso-spacerun: yes">    </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:<span
-style="mso-spacerun: yes">   </span>'550 ppm stabilization experiment
-(SRES B1)'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:<span
-style="mso-spacerun: yes">   </span>'1%/year CO2 increase experiment
-(to doubling)'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:<span
-style="mso-spacerun: yes">   </span>'1%/year CO2 increase experiment
-(to quadrupling)'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:<span
-style="mso-spacerun: yes">   </span>'slab ocean control experiment'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:<span
-style="mso-spacerun: yes">   </span>'2xCO2 equilibrium experiment'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:<span
-style="mso-spacerun: yes">   </span>'AMIP experiment'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>magic_number:
--1<span style="mso-spacerun:
-yes">          </span>! used to
-check whether this file has been <o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                         
-</span>!<span style="mso-spacerun: yes">   </span>altered from the
-official version.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                         
-</span>!<span style="mso-spacerun: yes">   </span>should be set to
-number of non-blank <o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                         
-</span>!<span style="mso-spacerun: yes">   </span>characters in file.
-<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>approx_interval:<span
-style="mso-spacerun: yes">  </span>30.<span style="mso-spacerun:
-yes">     </span>! approximate spacing between successive
-time<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                         
-</span>!<span style="mso-spacerun: yes">   </span>samples (in units
-of the output time <o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                         
-</span>!<span style="mso-spacerun: yes">   </span>coordinate.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>missing_value:
-1.e20<span style="mso-spacerun: yes">      </span>!
-value used to indicate a missing value<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                         
-</span>!<span style="mso-spacerun: yes">   </span>in arrays output by
-netCDF as 32-bit IEEE <o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                         
-</span>!<span style="mso-spacerun: yes">   </span>floating-point
-numbers (float or real)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-SUBROUTINE ARGUMENT DEFAULT INFORMATION<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">  </span>set default specifications for
-subroutine arguments to:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">    
-</span>required/indeterminate/optional/ignored/forbidden<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">    </span>(indeterminate may or may
-not be required information, but is not always<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">     </span>required as an
-argument of the function call)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>subroutine_entry:
-cmor_axis<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>required:
-table axis_name units length coord_vals cell_bounds<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>ignored:
-interval<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>subroutine_entry:
-cmor_variable<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>required:
-table table_entry units axis_ids<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>indeterminate:
-missing_value<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>optional:
-tolerance original_name history comment<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>ignored:
-positive<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>subroutine_entry:
-cmor_write<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>required:<span
-style="mso-spacerun: yes">  </span>var_id data <o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>indeterminate:
-ntimes_passed time_vals time_bnds store_with<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>optional:
-file_suffix<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">  </span>TEMPLATE FOR AXES<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!axis_entry:<span
-style="mso-spacerun:
-yes">              
-</span>! (required)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">    </span>Override default argument
-specifications for cmor_axis <o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">    </span>acceptable arguments
-include units length coord_vals cell_bounds interval<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!required:<span
-style="mso-spacerun:
-yes">                 
-</span>! (default: table axis_name units length<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun:
-yes">                                       
-</span>coord_vals cell_bounds)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!indeterminate:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!optional:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!ignored:<span
-style="mso-spacerun:
-yes">                  
-</span>! (default: interval)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!forbidden:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Axis attributes:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!standard_name:<span
-style="mso-spacerun:
-yes">            
-</span>! (required)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!units:<span
-style="mso-spacerun:
-yes">                    
-</span>! (required)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!axis:<span
-style="mso-spacerun:
-yes">                     
-</span>! X, Y, Z, T (default: undeclared)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!positive:<span
-style="mso-spacerun: yes">       </span><span
-style="mso-spacerun:
-yes">           </span>!
-up or down (default: undeclared)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!long_name:<span
-style="mso-spacerun:
-yes">                
-</span>! (default: undeclared)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Additional axis information:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!out_name:<span
-style="mso-spacerun:
-yes">               
-</span>! (default: same as axis_entry) <o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!type:<span
-style="mso-spacerun:
-yes">                   
-</span>! double (default), real, character, integer<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!stored_direction:<span
-style="mso-spacerun: yes">        </span>!
-increasing (default) or decreasing<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!valid_min:<span
-style="mso-spacerun:
-yes">              
-</span>! type: double precision (default: no check performed<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!valid_max:<span
-style="mso-spacerun:
-yes">              
-</span>! type: double precision (default: no check performed<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!requested:<span
-style="mso-spacerun:
-yes">              
-</span>! space-separated list of requested coordinates <o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                         
-</span>!<span style="mso-spacerun: yes">      
-</span>(default: undeclared)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!requested_bounds:<span
-style="mso-spacerun: yes">        </span>!
-space-separated list of requested coordinate bounds<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                         
-</span>!<span style="mso-spacerun: yes">      
-</span>(default: undeclared)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!tol_on_requests:<span
-style="mso-spacerun: yes">        
-</span>! fractional tolerance for meeting request<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                         
-</span>!<span style="mso-spacerun: yes">  </span>(default=1.e-3, which is
-used in the formula:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                         
-</span>!<span style="mso-spacerun: yes">     </span>eps
-=<span style="mso-spacerun: yes">  </span>MIN(( tol*interval between
-grid-points)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                         
-</span>!<span style="mso-spacerun: yes">         
-</span>and (1.e-3*tol*coordinate value)))<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!value:<span
-style="mso-spacerun:
-yes">                  
-</span>! of scalar (singleton) dimension <o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!bounds_values:<span
-style="mso-spacerun:
-yes">           </span>! of
-scalar (singleton) dimension bounds<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">  </span>TEMPLATE FOR VARIABLES<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!variable_entry:<span
-style="mso-spacerun:
-yes">               
-</span>! (required)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">    </span>Override default argument
-specifications for cmor_variable<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">       
-</span>acceptable arguments include<span style="mso-spacerun: yes"> 
-</span>file_suffix missing_value tolerance <o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun:
-yes">                              
-</span>original_name history comment positive<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!required:<span
-style="mso-spacerun:
-yes">                  
-</span>! (default: table table_entry units axis_ids)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!indeterminate:<span
-style="mso-spacerun:
-yes">             
-</span>! (default: file_suffix missing_value)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!optional:<span
-style="mso-spacerun:
-yes">                  
-</span>! (default: original_name history comment)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!ignored:<span
-style="mso-spacerun:
-yes">                   
-</span>! (default: positive)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!forbidden:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Variable attributes:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!standard_name:<span
-style="mso-spacerun:
-yes">             
-</span>! (required)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!units:<span
-style="mso-spacerun:
-yes">                     
-</span>! (required)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!cell_methods:<span
-style="mso-spacerun:
-yes">              
-</span>! (default: undeclared)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!long_name:<span
-style="mso-spacerun:
-yes">                 
-</span>! (default: undeclared)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!comment:<span
-style="mso-spacerun:
-yes">                   
-</span>! (default: undeclared)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Additional variable information:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!dimensions:<span
-style="mso-spacerun:
-yes">                
-</span>! (required)<span style="mso-spacerun: yes">  </span>(scalar
-dimension(s) should appear<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                            
-</span>!<span style="mso-spacerun: yes">     
-</span>last in list)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!out_name:<span
-style="mso-spacerun: yes">   </span><span style="mso-spacerun:
-yes">                </span>!
-(default: variable_entry)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!type:<span
-style="mso-spacerun:
-yes">                      
-</span>! real (default), double, integer <o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!positive:<span
-style="mso-spacerun:
-yes">                  
-</span>! up or down (default: undeclared)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!valid_min:<span
-style="mso-spacerun:
-yes">                 
-</span>! type: real (default: no check performed)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!valid_max:
-<span style="mso-spacerun:
-yes">                 </span>!
-type: real (default: no check performed)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!ok_min_mean_abs:<span
-style="mso-spacerun:
-yes">           
-</span>! type: real (default: no check performed)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!ok_max_mean_abs:<span
-style="mso-spacerun:
-yes">           
-</span>! type: real (default: no check performed)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-AXIS INFORMATION<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>axis_entry:
-longitude<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Axis attributes:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>standard_name:<span
-style="mso-spacerun: yes">    </span>longitude<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>units:<span
-style="mso-spacerun:
-yes">           
-</span>degrees_east<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>axis:<span
-style="mso-spacerun:
-yes">            
-</span>X<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>long_name:<span
-style="mso-spacerun: yes">       
-</span>longitude<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Additional axis information:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>out_name:<span
-style="mso-spacerun: yes">        
-</span>lon<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>valid_min:<span
-style="mso-spacerun: yes">       
-</span>0.<span style="mso-spacerun:
-yes">           </span>! CMOR
-will add n*360 to input values<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                              
-</span>! (where n is an integer) to ensure <o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                              
-</span>!<span style="mso-spacerun: yes">  </span>longitudes are in proper
-range.<span style="mso-spacerun: yes">  </span>The<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                              
-</span>!<span style="mso-spacerun: yes">  </span>data will also be
-rearranged <o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                            
-</span><span style="mso-spacerun: yes">  </span>!<span
-style="mso-spacerun: yes">  </span>appropriately.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>valid_max:<span
-style="mso-spacerun: yes">       
-</span>360.<span style="mso-spacerun:
-yes">         </span>!<span
-style="mso-spacerun: yes">  </span>see above comment.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!=============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>axis_entry:
-latitude<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!=============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Axis attributes:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>standard_name:<span
-style="mso-spacerun: yes">    </span>latitude<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>units:<span
-style="mso-spacerun:
-yes">           
-</span>degrees_north<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>axis:<span
-style="mso-spacerun:
-yes">            
-</span>Y<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>long_name:<span
-style="mso-spacerun: yes">       
-</span>latitude<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Additional axis information:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>out_name:<span
-style="mso-spacerun: yes">        
-</span>lat<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>valid_min:<span
-style="mso-spacerun: yes">       
-</span>-90.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>valid_max:<span
-style="mso-spacerun: yes">        </span>90.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>axis_entry:
-time<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">    </span>Override default argument
-specifications for cmor_axis <o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>required:
-interval<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>indeterminate:
-coord_vals cell_bounds<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Axis attributes:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>standard_name:<span
-style="mso-spacerun: yes">    </span>time<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>units:<span
-style="mso-spacerun:
-yes">           
-</span>days since ?<span style="mso-spacerun: yes">   
-</span>!<span style="mso-spacerun: yes">  </span>the user's basetime will
-be used<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>axis:<span
-style="mso-spacerun:
-yes">            
-</span>T<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>long_name:<span
-style="mso-spacerun: yes">       
-</span>time<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>axis_entry:
-pressure<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">    </span>Override default argument
-specifications for cmor_axis <o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>ignored:
-cell_bounds<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Axis attributes:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>standard_name:<span
-style="mso-spacerun: yes">    </span>air_pressure<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>units:<span
-style="mso-spacerun:
-yes">           
-</span>Pa <o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>axis:<span
-style="mso-spacerun:
-yes">            
-</span>Z<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>positive:<span
-style="mso-spacerun: yes">       </span><span
-style="mso-spacerun: yes">  </span>down<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>long_name:<span
-style="mso-spacerun: yes">       
-</span>pressure<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Additional axis information:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>out_name:<span
-style="mso-spacerun: yes">        
-</span>plev<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>valid_min:<span
-style="mso-spacerun: yes">        </span>0.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>valid_max:<span
-style="mso-spacerun: yes">       
-</span>110000.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>requested:<span
-style="mso-spacerun: yes">       
-</span>10000. 20000. 30000. 40000. 50000.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>axis_entry:
-height1<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">    </span>Override default argument
-specifications for cmor_axis <o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>ignored:
-cell_bounds<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Axis attributes:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>standard_name:<span
-style="mso-spacerun: yes">    </span>height<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>units:<span
-style="mso-spacerun:
-yes">           
-</span>m<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>axis:<span
-style="mso-spacerun:
-yes">            
-</span>Z<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>positive:<span
-style="mso-spacerun: yes">        
-</span>up<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>long_name:<span
-style="mso-spacerun: yes">       
-</span>height<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Additional axis information:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>out_name:<span
-style="mso-spacerun: yes">        
-</span>height<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>valid_min:<span
-style="mso-spacerun: yes">        </span>0.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>valid_max:<span
-style="mso-spacerun: yes">        </span>10.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>value:<span
-style="mso-spacerun:
-yes">           
-</span>2.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>axis_entry:
-height2<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">    </span>Override default argument
-specifications for cmor_axis <o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>ignored:
-cell_bounds<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Axis attributes:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>standard_name:<span
-style="mso-spacerun: yes">    </span>height<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>units:<span
-style="mso-spacerun:
-yes">           
-</span>m<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>axis:<span
-style="mso-spacerun:
-yes">            
-</span>Z<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>positive:<span
-style="mso-spacerun: yes">        
-</span>up<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>long_name:<span
-style="mso-spacerun: yes">       
-</span>height<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Additional axis information:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>out_name:<span
-style="mso-spacerun: yes">        
-</span>height<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>valid_min:<span
-style="mso-spacerun: yes">        </span>0.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>valid_max:<span
-style="mso-spacerun: yes">        </span>30.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>value:<span
-style="mso-spacerun:
-yes">           
-</span>10.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>axis_entry:
-depth1<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Axis attributes:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>standard_name:<span
-style="mso-spacerun: yes">    </span>depth<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>units:<span
-style="mso-spacerun:
-yes">           
-</span>m<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>axis:<span
-style="mso-spacerun:
-yes">            
-</span>Z<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>positive:<span
-style="mso-spacerun: yes">        
-</span>down<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>long_name:<span
-style="mso-spacerun: yes">        
-</span>depth<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Additional axis information:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>out_name:<span
-style="mso-spacerun: yes">       </span><span
-style="mso-spacerun: yes">  </span>depth<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>valid_min:<span
-style="mso-spacerun: yes">        </span>0.0<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>valid_max:<span
-style="mso-spacerun: yes">        </span>1.0<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>value:<span
-style="mso-spacerun:
-yes">           
-</span>0.05<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>bounds_values:<span
-style="mso-spacerun: yes">    </span>0.0 0.1<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-VARIABLE INFORMATION<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>variable_entry:
-tas<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Variable attributes:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>standard_name:<span
-style="mso-spacerun: yes">   </span>air_temperature<span
-style="mso-spacerun: yes">     </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>units:<span
-style="mso-spacerun:
-yes">           </span>K<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>cell_methods:<span
-style="mso-spacerun: yes">    </span>time: mean<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>long_name:<span
-style="mso-spacerun: yes">       </span>Surface
-Air Temperature<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Additional variable information:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>dimensions:<span
-style="mso-spacerun: yes">       </span>longitude
-latitude time height1<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>valid_min:<span
-style="mso-spacerun: yes">       
-</span>200.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>valid_max:<span
-style="mso-spacerun: yes">       
-</span>340.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>ok_min_mean_abs:<span
-style="mso-spacerun: yes">  </span>270.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>ok_max_mean_abs:<span
-style="mso-spacerun: yes">  </span>300.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>variable_entry:
-hfls<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">    </span>Override default argument
-specifications for cmor_variable<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>required:
-positive<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Variable attributes:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>standard_name:
-upward_surface_latent_heat_flux<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>units:<span
-style="mso-spacerun: yes">        
-</span>W m-2<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>cell_methods:<span
-style="mso-spacerun: yes">  </span>time: mean<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>long_name:<span
-style="mso-spacerun: yes">     </span>Surface Latent Heat
-Flux<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Additional variable information:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>dimensions:<span
-style="mso-spacerun: yes">       </span>longitude
-latitude time<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>positive:<span
-style="mso-spacerun: yes">        
-</span>up<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>valid_min:<span
-style="mso-spacerun: yes">       
-</span>-50.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>valid_max:<span
-style="mso-spacerun: yes">       
-</span>300.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>ok_min_mean_abs:<span
-style="mso-spacerun: yes">  </span>20.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>ok_max_mean_abs:<span
-style="mso-spacerun: yes">  </span>150.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>variable_entry:
-mrsos<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Variable attributes:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>standard_name:
-moisture_content_of_soil_layer<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>units:<span
-style="mso-spacerun: yes">        
-</span>kg m-2<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>cell_methods:<span
-style="mso-spacerun: yes">  </span>time: mean<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>long_name:<span
-style="mso-spacerun: yes">     </span>Moisture in Upper 0.1
-m of Soil Column<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>comment:<span
-style="mso-spacerun: yes">        
-</span>includes subsurface frozen water but not surface snow and ice <o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Additional variable information:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>dimensions:<span
-style="mso-spacerun: yes">       </span>longitude
-latitude time depth1<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span> <o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>variable_entry:
-ua<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Variable attributes:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>standard_name:
-eastward_wind<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>units:<span
-style="mso-spacerun: yes">        
-</span>m s-1<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>cell_methods:<span
-style="mso-spacerun: yes">  </span>time: mean<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>long_name:<span
-style="mso-spacerun: yes">     </span>Zonal Wind Component<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Additional variable information:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>dimensions:<span
-style="mso-spacerun: yes">       </span>longitude
-latitude pressure time<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>valid_min:<span
-style="mso-spacerun: yes">       
-</span>-200.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>valid_max:<span
-style="mso-spacerun: yes">       
-</span>300.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>ok_min_mean_abs:<span
-style="mso-spacerun: yes">  </span>0.1<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>ok_max_mean_abs:<span
-style="mso-spacerun: yes">  </span>100.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>variable_entry:
-ta<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Variable attributes:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>standard_name:
-air_temperature<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>units:<span
-style="mso-spacerun: yes">        
-</span>K<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>cell_methods:<span
-style="mso-spacerun: yes">  </span>time: mean<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>long_name:<span
-style="mso-spacerun: yes">     </span>Temperature<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Additional variable information:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>dimensions:<span
-style="mso-spacerun: yes">       </span>longitude
-latitude pressure time<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>valid_min:<span
-style="mso-spacerun: yes">       
-</span>150.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>valid_max:<span
-style="mso-spacerun: yes">       
-</span>350.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>ok_min_mean_abs:<span
-style="mso-spacerun: yes">  </span>200.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>ok_max_mean_abs:<span
-style="mso-spacerun: yes">  </span>300.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>variable_entry:
-pr<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Variable attributes:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>standard_name:<span
-style="mso-spacerun: yes">  </span>precipitation<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>units:<span
-style="mso-spacerun:
-yes">          </span>kg m-2 s-1<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>cell_methods:<span
-style="mso-spacerun: yes">   </span>time: mean<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>long_name:<span
-style="mso-spacerun: yes">      </span>Precipitation<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>comment:<span
-style="mso-spacerun: yes">       
-</span>includes all types (rain, snow, large-scale, convective, etc.)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Additional variable information:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>dimensions:<span
-style="mso-spacerun: yes">        
-</span>longitude latitude time<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-lang=DE style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:
-"Courier New";mso-ansi-language:DE'>valid_min:<span style="mso-spacerun:
-yes">          </span>0.0<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-lang=DE style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:
-"Courier New";mso-ansi-language:DE'>valid_max:<span style="mso-spacerun:
-yes">          </span>1.e-4<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-lang=DE style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:
-"Courier New";mso-ansi-language:DE'>ok_min_mean_abs:<span style="mso-spacerun:
-yes">    </span>1.e-6<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>ok_max_mean_abs:<span
-style="mso-spacerun: yes">    </span>5.e-5 <o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>variable_entry:
-cl<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Variable attributes:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>standard_name:<span
-style="mso-spacerun: yes">  </span>cloud_area_fraction<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>units:<span
-style="mso-spacerun:
-yes">          </span>%<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>cell_methods:<span
-style="mso-spacerun: yes">   </span>time: mean<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>long_name:<span
-style="mso-spacerun: yes">      </span>Total Cloud
-Fraction<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Additional variable information:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>dimensions:<span
-style="mso-spacerun: yes">        
-</span>longitude latitude zlevel time<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>valid_min:<span
-style="mso-spacerun:
-yes">          </span>0.0<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>valid_max:<span
-style="mso-spacerun:
-yes">          </span>100.0<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>ok_min_mean_abs:<span
-style="mso-spacerun: yes">    </span>10.0<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>ok_max_mean_abs:<span
-style="mso-spacerun: yes">    </span>90.0<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<h2><a name="_Toc129422042"></a><a name="_Toc134007341"><span style='mso-bookmark:
-_Toc129422042'>CMOR 2 (table excerpts)</span></a><o:p></o:p></h2>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal><span style='font-size:9.0pt;font-family:"Courier New";
-mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>table_id:
-Table Amon<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>modeling_realm:
-atmos<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>frequency:
-mon<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>cmor_version:
-2.0<span style="mso-spacerun:
-yes">         </span>! version of CMOR
-that can read this table<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>cf_version:<span
-style="mso-spacerun: yes">   </span>1.4<span style="mso-spacerun:
-yes">         </span>! version of CF
-that output conforms to<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>project_id:<span
-style="mso-spacerun: yes">   </span>CMIP5<span style="mso-spacerun:
-yes">  </span>! project id<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>table_date:<span
-style="mso-spacerun: yes">   </span>04 March 2010 ! date this table
-was constructed<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>missing_value:
-1.e20<span style="mso-spacerun: yes">      </span>!
-value used to indicate a missing value<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                         
-</span>!<span style="mso-spacerun: yes">   </span>in arrays output by
-netCDF as 32-bit IEEE <o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes">       </span><span
-style="mso-spacerun:
-yes">                   </span>!<span
-style="mso-spacerun: yes">   </span>floating-point numbers (float or
-real)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>baseURL:
-http://cmip-pcmdi.llnl.gov/CMIP5/dataLocation <o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>product:
-output<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>required_global_attributes:
-creation_date tracking_id forcing model_id parent_experiment_id branch_time
-contact institute_id ! space separated required global attribute<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal><span style='font-size:9.0pt;font-family:"Courier New";
-mso-bidi-font-family:"Courier New"'>forcings:<span style="mso-spacerun:
-yes">   </span>N/A Nat Ant GHG SD SI SA TO SO Oz LU Sl Vl SS Ds BC MD
-OC AA<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:
-'10- or 30-year run initialized in year XXXX' 'decadalXXXX'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:
-'volcano-free hindcasts XXXX' 'noVolcXXXX'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:
-'prediction with 2010 volcano' 'volcIn2010'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:
-'pre-industrial control' 'piControl'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:
-'Historical' 'historical'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:
-'mid-Holocene' 'midHolocene'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:
-'last glacial maximum' 'lgm'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:
-'last millennium' 'past1000'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:
-'RCP4.5' 'rcp45'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:
-'RCP8.5' 'rcp85'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:
-'RCP2.6' 'rcp26'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:
-'RCP6' 'rcp60'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:
-'ESM pre-industrial control' 'esmControl'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:
-'ESM historical' 'esmHistorical'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:
-'ESM RCP8.5' 'esmrcp85'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:
-'ESM fixed climate 1' 'esmFixClim1'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:
-'ESM fixed climate 2' 'esmFixClim2'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:
-'ESM feedback 1' 'esmFdbk1'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:
-'ESM feedback 2' 'esmFdbk2'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:
-'1 percent per year CO2' '1pctCO2'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:
-'abrupt 4XCO2' 'abrupt4xCO2'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:
-'natural-only' 'historicalNat'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:
-'GHG-only' 'historicalGHG'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:
-'anthropogenic-only' 'historicalAnt'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:
-'anthropogenic sulfate aerosol direct effect only' 'historicalSD'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:
-'anthropogenic sulfate aerosol indirect effect only' 'historicalSI'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:
-'anthropogenic sulfate aerosol only' 'historicalSA'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:
-'tropospheric ozone only' 'historicalTO'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:
-'stratospheric ozone' 'historicalSO'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:
-'ozone only' 'historicalOz'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:
-'land-use change only' 'historicalLU'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:
-'solar irradiance only' 'historicalSl'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:
-'volcanic aerosol only' 'historicalVl'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:
-'sea salt only' 'historicalSS'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:
-'dust' 'historicalDs'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:
-'black carbon only' 'historicalBC'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:
-'mineral dust only' 'historicalMD'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:
-'organic carbon only' 'historicalOC'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:
-'anthropogenic aerosols only' 'historicalAA'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:
-'AMIP' 'amip'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:
-'2030 time-slice' 'sst2030'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:
-'control SST climatology' 'sstClim'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:
-'CO2 forcing' 'sstClim4xCO2'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:
-'all aerosol forcing' 'sstClimAerosol'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:
-'sulfate aerosol forcing' 'sstClimSulfate'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:
-'4xCO2 AMIP' 'amip4xCO2'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:
-'AMIP plus patterned anomaly' 'amipFuture'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:
-'aqua planet control' 'aquaControl'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:
-'4xCO2 aqua planet' 'aqua4xCO2'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:
-'aqua planet plus 4K anomaly' 'aqua4K'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>expt_id_ok:
-'AMIP plus 4K anomaly' 'amip4K'<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>approx_interval:<span
-style="mso-spacerun: yes">  </span>30.000000<span style="mso-spacerun:
-yes">     </span>! approximate spacing between successive
-time<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                         
-</span>!<span style="mso-spacerun: yes">   </span>samples (in units
-of the output time <o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun:
-yes">                         
-</span>!<span style="mso-spacerun: yes">   </span>coordinate.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>axis_entry:
-longitude<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Axis attributes:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>standard_name:<span
-style="mso-spacerun: yes">    </span>longitude<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>units:<span
-style="mso-spacerun:
-yes">           
-</span>degrees_east<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>axis:<span
-style="mso-spacerun:
-yes">            
-</span>X<span style="mso-spacerun:
-yes">            
-</span>! X, Y, Z, T (default: undeclared)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>long_name:<span
-style="mso-spacerun: yes">       
-</span>longitude<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Additional axis information:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>out_name:<span
-style="mso-spacerun: yes">        
-</span>lon<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>valid_min:<span
-style="mso-spacerun: yes">       
-</span>0<span style="mso-spacerun:
-yes">         </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>valid_max:<span
-style="mso-spacerun: yes">        </span>360
-<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>stored_direction:
-increasing<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>type:<span
-style="mso-spacerun:
-yes">            
-</span>double<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>must_have_bounds:
-yes<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>axis_entry:
-latitude<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Axis attributes:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>standard_name:<span
-style="mso-spacerun: yes">    </span>latitude<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>units:<span
-style="mso-spacerun:
-yes">           
-</span>degrees_north<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>axis:<span
-style="mso-spacerun:
-yes">            
-</span>Y<span style="mso-spacerun:
-yes">            
-</span>! X, Y, Z, T (default: undeclared)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>long_name:<span
-style="mso-spacerun: yes">       
-</span>latitude<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Additional axis information:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>out_name:<span
-style="mso-spacerun: yes">        
-</span>lat<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>valid_min:<span
-style="mso-spacerun: yes">       
-</span>-90<span style="mso-spacerun:
-yes">         </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>valid_max:<span
-style="mso-spacerun: yes">        </span>90 <o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>stored_direction:
-increasing<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>type:<span
-style="mso-spacerun:
-yes">            
-</span>double<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>must_have_bounds:
-yes<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>axis_entry:
-plevs<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Axis attributes:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>standard_name:<span
-style="mso-spacerun: yes">    </span>air_pressure<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>units:<span
-style="mso-spacerun:
-yes">           
-</span>Pa<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>axis:<span
-style="mso-spacerun:
-yes">            
-</span>Z<span style="mso-spacerun:
-yes">            
-</span>! X, Y, Z, T (default: undeclared)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>positive:<span
-style="mso-spacerun: yes">        
-</span>down<span style="mso-spacerun:
-yes">         </span>! up or down
-(default: undeclared)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>long_name:<span
-style="mso-spacerun: yes">       
-</span>pressure<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Additional axis information:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>out_name:<span
-style="mso-spacerun: yes">        
-</span>plev<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>stored_direction:
-decreasing<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>tolerance:<span
-style="mso-spacerun: yes">       
-</span>0.001<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>type:<span
-style="mso-spacerun:
-yes">            
-</span>double<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>requested:<span
-style="mso-spacerun: yes">       
-</span>100000. 92500. 85000. 70000. 60000. 50000. 40000. 30000. 25000. 20000.
-15000. 10000. 7000. 5000. 3000. 2000. 1000.<span style="mso-spacerun:
-yes">        </span>! space-separated list
-of requested coordinates <o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>must_have_bounds:
-no<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>axis_entry:
-alevbnds<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Axis attributes:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>axis:<span
-style="mso-spacerun:
-yes">            
-</span>Z<span style="mso-spacerun:
-yes">            
-</span>! X, Y, Z, T (default: undeclared)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>long_name:<span
-style="mso-spacerun: yes">       
-</span>atmospheric model half-level<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Additional axis information:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>out_name:<span
-style="mso-spacerun: yes">        
-</span>lev<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>stored_direction:
-increasing<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>type:<span
-style="mso-spacerun:
-yes">            
-</span>double<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>must_have_bounds:
-no<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>index_only:<span
-style="mso-spacerun: yes">       </span>ok<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>axis_entry:
-time<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Axis attributes:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>standard_name:<span
-style="mso-spacerun: yes">    </span>time<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>units:<span
-style="mso-spacerun:
-yes">           
-</span>days since ?<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>axis:<span
-style="mso-spacerun: yes">  </span><span style="mso-spacerun:
-yes">           </span>T<span
-style="mso-spacerun:
-yes">            
-</span>! X, Y, Z, T (default: undeclared)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>long_name:<span
-style="mso-spacerun: yes">       
-</span>time<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Additional axis information:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>out_name:<span
-style="mso-spacerun: yes">        
-</span>time<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>stored_direction:
-increasing<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>type:<span
-style="mso-spacerun:
-yes">            
-</span>double<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>must_have_bounds:
-yes<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>axis_entry:
-time2<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Axis attributes:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>standard_name:<span
-style="mso-spacerun: yes">    </span>time<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>units:<span
-style="mso-spacerun:
-yes">           
-</span>days since ?<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>axis:<span
-style="mso-spacerun:
-yes">            
-</span>T<span style="mso-spacerun:
-yes">            
-</span>! X, Y, Z, T (default: undeclared)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>long_name:<span
-style="mso-spacerun: yes">       
-</span>time<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Additional axis information:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>out_name:<span
-style="mso-spacerun: yes">        
-</span>time<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>stored_direction:
-increasing<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>type:<span
-style="mso-spacerun: yes">  </span><span style="mso-spacerun:
-yes">           </span>double<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>must_have_bounds:
-yes<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>climatology:<span
-style="mso-spacerun: yes">      </span>yes<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>axis_entry:
-height2m<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Axis attributes:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>standard_name:<span
-style="mso-spacerun: yes">    </span>height<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>units:<span
-style="mso-spacerun:
-yes">           
-</span>m<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>axis:<span
-style="mso-spacerun:
-yes">            
-</span>Z<span style="mso-spacerun:
-yes">            
-</span>! X, Y, Z, T (default: undeclared)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>positive:<span
-style="mso-spacerun: yes">        
-</span>up<span style="mso-spacerun:
-yes">         </span>! up or down
-(default: undeclared)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>long_name:<span
-style="mso-spacerun: yes">       
-</span>height<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Additional axis information:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>out_name:<span
-style="mso-spacerun: yes">        
-</span>height<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>valid_min:<span
-style="mso-spacerun: yes">       
-</span>1<span style="mso-spacerun:
-yes">         </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>valid_max:<span
-style="mso-spacerun: yes">        </span>10 <o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>stored_direction:
-increasing<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>type:<span
-style="mso-spacerun:
-yes">            
-</span>double<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>value:<span
-style="mso-spacerun:
-yes">           
-</span>2.<span style="mso-spacerun:
-yes">           
-</span>! of scalar (singleton) dimension <o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>must_have_bounds:
-no<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>axis_entry:
-height10m<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Axis attributes:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>standard_name:<span
-style="mso-spacerun: yes">    </span>height<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>units:<span
-style="mso-spacerun:
-yes">           
-</span>m<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>axis:<span
-style="mso-spacerun:
-yes">            
-</span>Z<span style="mso-spacerun:
-yes">            
-</span>! X, Y, Z, T (default: undeclared)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>positive:<span
-style="mso-spacerun: yes">        
-</span>up<span style="mso-spacerun:
-yes">         </span>! up or down
-(default: undeclared)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>long_name:<span
-style="mso-spacerun: yes">       
-</span>height<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Additional axis information:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>out_name:<span
-style="mso-spacerun: yes">        
-</span>height<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>valid_min:<span
-style="mso-spacerun: yes">       
-</span>1<span style="mso-spacerun:
-yes">         </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>valid_max:<span
-style="mso-spacerun: yes">        </span>30 <o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>stored_direction:
-increasing<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>type:<span
-style="mso-spacerun:
-yes">            
-</span>double<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>value:<span
-style="mso-spacerun:
-yes">           
-</span>10.<span style="mso-spacerun:
-yes">           
-</span>! of scalar (singleton) dimension <o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>must_have_bounds:
-no<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>axis_entry:
-smooth_level<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-This coordinate is a hybrid height coordinate with units of meters (m).<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">  </span>It increases upward.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">  </span>The values of a(k)*ztop, which appear
-in the formula below, should be stored as smooth_level. <o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">  </span>Note that in the netCDF file the
-variable will be named "lev", not smooth_level.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Axis attributes:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>standard_name:<span
-style="mso-spacerun: yes">    </span>atmosphere_sleve_coordinate<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>units:<span
-style="mso-spacerun:
-yes">           
-</span>m<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>axis:<span
-style="mso-spacerun:
-yes">            
-</span>Z<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>positive:<span
-style='mso-tab-count:1'>     </span><span
-style="mso-spacerun: yes">      </span>up<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>long_name:<span
-style="mso-spacerun: yes">       
-</span>atmosphere smooth level vertical (SLEVE) coordinate<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Additional axis information:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>out_name:<span
-style="mso-spacerun: yes">        
-</span>lev<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>must_have_bounds:
-yes<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>stored_direction:
-increasing<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>valid_min:<span
-style="mso-spacerun: yes">       
-</span>-200.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>valid_max:<span
-style="mso-spacerun: yes">       
-</span>800000.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>formula:<span
-style="mso-spacerun:
-yes">          </span>z(n,k,j,i) =
-a(k)*ztop + b1(k)*zsurf1(n,j,i) + b2(k)*zsurf2(n,j,i)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>z_factors:<span
-style="mso-spacerun: yes">        </span>a:
-a b1: b1 b2: b2 ztop: ztop zsurf1: zsurf1 zsurf2: zsurf2<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>z_bounds_factors:
-a: a_bnds b1: b1_bnds b2: b2_bnds ztop: ztop zsurf1: zsurf1 zsurf2: zsurf2<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>axis_entry:
-natural_log_pressure<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!This
-coordinate is dimensionless and varies from near 0 at the surface and increases
-upward.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">  </span>The values of lev(k), which appears in
-the formula below, should be stored as natural_log_pressure.<span
-style="mso-spacerun: yes">  </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">  </span>Note that in the netCDF file the
-variable will be named "lev", not natural_log_pressure.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Axis attributes:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>standard_name:<span
-style="mso-spacerun: yes">    </span>atmosphere_ln_pressure_coordinate<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>axis:<span
-style="mso-spacerun:
-yes">            
-</span>Z<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>long_name:<span
-style="mso-spacerun: yes">       
-</span>atmosphere natural log pressure coordinate<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>positive:<span
-style='mso-tab-count:1'>     </span><span
-style="mso-spacerun: yes">      </span>down<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Additional axis information:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>out_name:<span
-style="mso-spacerun: yes">        
-</span>lev<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>must_have_bounds:
-yes<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>stored_direction:
-decreasing<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>valid_min:<span
-style="mso-spacerun: yes">        </span>-1.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>valid_max:<span
-style="mso-spacerun: yes">        </span>20.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>formula:<span
-style="mso-spacerun:
-yes">          </span>p(k) = p0 *
-exp(-lev(k))<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>z_factors:<span
-style="mso-spacerun: yes">        </span>p0:
-p0 lev: lev<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>z_bounds_factors:
-p0: p0 lev: lev_bnds<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>axis_entry:
-standard_sigma<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-This coordinate is dimensionless and varies from 0 at the model top to 1.0 at
-the surface.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">  </span>The values of sigma(k), which appears
-in the formula below, should be stored as standard_sigma.<span
-style="mso-spacerun: yes">  </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">  </span>Note that in the netCDF file the
-variable will be named "lev", not standard_sigma.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Axis attributes:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>standard_name:<span
-style="mso-spacerun: yes">    </span>atmosphere_sigma_coordinate<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>axis:<span
-style="mso-spacerun:
-yes">            
-</span>Z<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>positive:<span
-style="mso-spacerun: yes">        
-</span>down<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>long_name:<span
-style="mso-spacerun: yes">        </span>sigma
-coordinate<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Additional axis information:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>out_name:<span
-style="mso-spacerun: yes">        
-</span>lev<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>must_have_bounds:
-yes<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>stored_direction:
-decreasing<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>valid_min:<span
-style="mso-spacerun: yes">        </span>0.0<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>valid_max:<span
-style="mso-spacerun: yes">        </span>1.0<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>formula:<span
-style="mso-spacerun: yes">        </span><span
-style="mso-spacerun: yes">  </span>p(n,k,j,i) = ptop +
-sigma(k)*(ps(n,j,i) - ptop)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>z_factors:<span
-style="mso-spacerun: yes">       
-</span>ptop: ptop sigma: lev ps: ps<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>z_bounds_factors:
-ptop: ptop sigma: lev_bnds ps: ps<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>axis_entry:<span
-style="mso-spacerun: yes">  </span>standard_hybrid_sigma<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-This coordinate is dimensionless and varies from a small value at the model top
-to 1.0 at the surface.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">  </span>The values of a(k)+ b(k), which appear
-in the formula below, should be stored as standard_hybrid_sigma.<span
-style="mso-spacerun: yes">  </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">  </span>Note that in the netCDF file the
-variable will be named "lev", not standard_hybrid_sigma.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!---------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Axis attributes:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>standard_name:<span
-style="mso-spacerun: yes">   
-</span>atmosphere_hybrid_sigma_pressure_coordinate<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>units:<span
-style="mso-spacerun:
-yes">           
-</span>1<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>axis:<span
-style="mso-spacerun:
-yes">            
-</span>Z <o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>positive:
-<span style="mso-spacerun:
-yes">        </span>down<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>long_name:<span
-style="mso-spacerun: yes">       
-</span>hybrid sigma pressure coordinate<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Additional axis information:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>out_name:<span
-style="mso-spacerun: yes">        
-</span>lev<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>must_have_bounds:
-yes<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>stored_direction:
-decreasing<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>valid_min:<span
-style="mso-spacerun: yes">     </span><span
-style="mso-spacerun: yes">   </span>0.0<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>valid_max:<span
-style="mso-spacerun: yes">        </span>1.0<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>formula:<span
-style="mso-spacerun:
-yes">          </span>p(n,k,j,i) =
-a(k)*p0 + b(k)*ps(n,j,i)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>z_factors:<span
-style="mso-spacerun: yes">        </span>p0:
-p0 a: a b: b ps: ps<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>z_bounds_factors:
-p0: p0 a: a_bnds b: b_bnds ps: ps<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:2'>        </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>axis_entry:<span
-style="mso-spacerun: yes">  </span>alternate_hybrid_sigma<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-This coordinate is dimensionless and varies from a small value at the model top
-to 1.0 at the surface.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">  </span>The values of ap(k)/p0 + b(k), which
-appear in the formula below, should be stored as alternate_hybrid_sigma.<span
-style="mso-spacerun: yes">  </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">  </span>Note that in the netCDF file the
-variable will be named "lev", not alternate_hybrid_sigma.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Axis attributes:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>standard_name:<span
-style="mso-spacerun: yes">   
-</span>atmosphere_hybrid_sigma_pressure_coordinate<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>units:<span
-style="mso-spacerun:
-yes">           
-</span>1<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>axis:<span
-style="mso-spacerun: yes">      </span><span
-style="mso-spacerun: yes">       </span>Z<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>positive:<span
-style="mso-spacerun: yes">        
-</span>down<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>long_name:<span
-style="mso-spacerun: yes">       
-</span>hybrid sigma pressure coordinate<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Additional axis information:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>out_name:<span
-style="mso-spacerun: yes">        
-</span>lev<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>must_have_bounds:
-yes<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>stored_direction:
-decreasing<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>valid_min:<span
-style="mso-spacerun: yes">        </span>0.0<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>valid_max:<span
-style="mso-spacerun: yes">        </span>1.0<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>formula:<span
-style="mso-spacerun:
-yes">          </span>p(n,k,j,i) =
-ap(k) + b(k)*ps(n,j,i)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>z_factors:<span
-style="mso-spacerun: yes">        </span>p0:
-p0 ap: ap b: b ps: ps<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>z_bounds_factors:
-p0 ap: ap_bnds b: b_bnds ps: ps<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:2'>        </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>axis_entry:<span
-style="mso-spacerun: yes">  </span>hybrid_height<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-This coordinate has dimension of meters (m) and increases upward.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">  </span>The values of a(k) which appear in the
-formula below, should be stored as hybrid_height.<span style="mso-spacerun:
-yes">  </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<span
-style="mso-spacerun: yes">  </span>Note that in the netCDF file the
-variable will be named "lev", not hybrid_height.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Axis attributes:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>standard_name:<span
-style="mso-spacerun: yes">   
-</span>atmosphere_hybrid_height_coordinate<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>units:<span
-style="mso-spacerun:
-yes">           
-</span>m<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>axis:<span
-style="mso-spacerun:
-yes">            
-</span>Z <o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>positive:<span
-style="mso-spacerun: yes">        
-</span>up<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>long_name:<span
-style="mso-spacerun: yes">       
-</span>hybrid height coordinate<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Additional axis information:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>out_name:<span
-style="mso-spacerun: yes">        
-</span>lev<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>must_have_bounds:
-yes<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>stored_direction:
-increasing<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>valid_min:<span
-style="mso-spacerun: yes">        </span>0.0<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>formula:<span
-style="mso-spacerun:
-yes">          </span>z(k,j,i) =
-a(k) + b(k)*orog(j,i)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>z_factors:<span
-style="mso-spacerun: yes">        </span>a:
-lev b: b orog: orog<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>z_bounds_factors:
-a: lev_bnds b: b_bnds orog: orog<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:2'>        </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-***************************************************************<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Vertical coordinate formula terms:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-***************************************************************<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>variable_entry:<span
-style="mso-spacerun: yes">    </span>orog<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>modeling_realm:<span
-style="mso-spacerun: yes">    </span>atmos<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Variable attributes:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>standard_name:<span
-style="mso-spacerun: yes">     </span>surface_altitude<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>units:<span
-style="mso-spacerun:
-yes">            
-</span>m<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>long_name:<span
-style="mso-spacerun: yes">        
-</span>Surface Altitude<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>comment:<span
-style="mso-spacerun:
-yes">           </span>height
-above the geoid; as defined here, ""the geoid"" is a
-surface of constant geopotential that, if the ocean were at rest, would
-coincide with mean sea level. Under this definition, the geoid changes as the
-mean volume of the ocean changes (e.g., due to glacial melt, or global warming
-of the ocean).<span style="mso-spacerun: yes">  </span>Report here the
-height above the present-day geoid.<span style="mso-spacerun: yes"> 
-</span>Over ocean, report as 0.0<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Additional variable information:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>dimensions:<span
-style="mso-spacerun: yes">       
-</span>longitude latitude<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>out_name:<span
-style="mso-spacerun:
-yes">          </span>orog<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>type:<span
-style="mso-spacerun:
-yes">             
-</span>real<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>valid_min:<span
-style="mso-spacerun: yes">        
-</span>-700<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>valid_max:<span
-style="mso-spacerun: yes">        
-</span>1.00E+04<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>variable_entry:
-p0<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Variable attributes:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>long_name:<span
-style="mso-spacerun: yes">       </span>vertical
-coordinate formula term: reference pressure <o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>units:<span
-style="mso-spacerun:
-yes">           </span>Pa<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>variable_entry:
-ptop<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Variable attributes:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>long_name:<span
-style="mso-spacerun: yes">       </span>pressure
-at top of model <o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>units:<span
-style="mso-spacerun:
-yes">           </span>Pa<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>variable_entry:
-a<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Variable attributes:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>long_name:<span
-style="mso-spacerun: yes">   </span>vertical coordinate formula term:
-a(k)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Additional variable information:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>dimensions:<span
-style="mso-spacerun: yes">        
-</span>alevel<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>type:<span
-style="mso-spacerun:
-yes">              
-</span>double<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>variable_entry:
-b<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Variable attributes:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>long_name:<span
-style="mso-spacerun: yes">   </span>vertical coordinate formula term:
-b(k)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Additional variable information:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>dimensions:<span
-style="mso-spacerun: yes">        
-</span>alevel<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>type:<span
-style="mso-spacerun:
-yes">              
-</span>double<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>variable_entry:
-a_bnds<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Variable attributes:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>long_name:<span
-style="mso-spacerun: yes">   </span>vertical coordinate formula term:
-a(k+1/2)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Additional variable information:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>dimensions:<span
-style="mso-spacerun: yes">        
-</span>alevel<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>type:<span
-style="mso-spacerun:
-yes">              
-</span>double<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>variable_entry:
-b_bnds<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Variable attributes:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>long_name:<span
-style="mso-spacerun: yes">   </span>vertical coordinate formula term:
-b(k+1/2)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Additional variable information:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>dimensions:<span
-style="mso-spacerun: yes">        
-</span>alevel<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>type:<span
-style="mso-spacerun:
-yes">              
-</span>double<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>variable_entry:
-ap<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Variable attributes:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>long_name:<span
-style="mso-spacerun: yes">   </span>vertical coordinate formula term:
-ap(k)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>units:<span
-style="mso-spacerun:
-yes">           </span>Pa<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Additional variable information:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>dimensions:<span
-style="mso-spacerun: yes">        
-</span>alevel<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>type:<span
-style="mso-spacerun:
-yes">              
-</span>double<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>variable_entry:
-ap_bnds<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Variable attributes:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>long_name:<span
-style="mso-spacerun: yes">   </span>vertical coordinate formula term:
-ap(k+1/2)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>units:<span
-style="mso-spacerun:
-yes">           </span>Pa<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Additional variable information:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>dimensions:<span
-style="mso-spacerun: yes">        
-</span>alevel<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>type:<span
-style="mso-spacerun:
-yes">              
-</span>double<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>variable_entry:
-ztop<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Variable attributes:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>long_name:<span
-style="mso-spacerun: yes">       </span>height of
-top of model <o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>units:<span
-style="mso-spacerun:
-yes">           </span>m<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<span
-style='mso-tab-count:1'> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>variable_entry:<span
-style="mso-spacerun: yes">    </span>tas<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>modeling_realm:<span
-style="mso-spacerun: yes">    </span>atmos<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Variable attributes:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>standard_name:<span
-style="mso-spacerun: yes">     </span>air_temperature<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>units:<span
-style="mso-spacerun:
-yes">            
-</span>K<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>cell_methods:<span
-style="mso-spacerun: yes">      </span>time: mean<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>long_name:<span
-style="mso-spacerun: yes">        
-</span>Near-Surface Air Temperature<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>comment:<span
-style="mso-spacerun:
-yes">          
-</span>near-surface (usually, 2 meter) air temperature.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Additional variable information:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>dimensions:<span
-style="mso-spacerun: yes">       
-</span>longitude latitude time height2m<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>out_name:<span
-style="mso-spacerun: yes">        
-</span><span style="mso-spacerun: yes"> </span>tas<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>type:<span
-style="mso-spacerun:
-yes">             
-</span>real<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>variable_entry:<span
-style="mso-spacerun: yes">    </span>tasmin<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>modeling_realm:<span
-style="mso-spacerun: yes">    </span>atmos<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Variable attributes:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>standard_name:<span
-style="mso-spacerun: yes">     </span>air_temperature<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>units:<span
-style="mso-spacerun:
-yes">            
-</span>K<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>cell_methods:<span
-style="mso-spacerun: yes">      </span>time: minimum
-within days time: mean over time<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>long_name:<span
-style="mso-spacerun: yes">        
-</span>Daily Minimum Near-Surface Air Temperature<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>comment:<span
-style="mso-spacerun:
-yes">          
-</span>monthly mean of the daily-minimum near-surface (usually, 2 meter) air
-temperature.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Additional variable information:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>dimensions:<span
-style="mso-spacerun: yes">       
-</span>longitude latitude time height2m<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>out_name:<span
-style="mso-spacerun:
-yes">          </span>tasmin<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>type:<span
-style="mso-spacerun:
-yes">             
-</span>real<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>variable_entry:<span
-style="mso-spacerun: yes">    </span>pr<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>modeling_realm:<span
-style="mso-spacerun: yes">    </span>atmos<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Variable attributes:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>standard_name:<span
-style="mso-spacerun: yes">     </span>precipitation_flux<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>units:<span
-style="mso-spacerun:
-yes">            
-</span>kg m-2 s-1<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>cell_methods:<span
-style="mso-spacerun: yes">      </span>time: mean<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>long_name:<span
-style="mso-spacerun: yes">        
-</span>Precipitation<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>comment:<span
-style="mso-spacerun:
-yes">           </span>at
-surface; includes both liquid and solid phases from all types of clouds (both
-large-scale and convective)<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Additional variable information:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>dimensions:<span
-style="mso-spacerun: yes">       
-</span>longitude latitude time<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>out_name:<span
-style="mso-spacerun:
-yes">          </span>pr<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>type:<span
-style="mso-spacerun:
-yes">             
-</span>real<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>variable_entry:<span
-style="mso-spacerun: yes">    </span>hfls<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>modeling_realm:<span
-style="mso-spacerun: yes">    </span>atmos<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Variable attributes:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>standard_name:<span
-style="mso-spacerun: yes">    
-</span>surface_upward_latent_heat_flux<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>units:<span
-style="mso-spacerun:
-yes">            
-</span>W m-2<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>cell_methods:<span
-style="mso-spacerun: yes">      </span>time: mean<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>long_name:<span
-style="mso-spacerun: yes">        
-</span>Surface Upward Latent Heat Flux<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>comment:<span
-style="mso-spacerun:
-yes">           </span>includes
-both evaporation and sublimation<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Additional variable information:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>dimensions:<span
-style="mso-spacerun: yes">       
-</span>longitude latitude time<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>out_name:<span
-style="mso-spacerun:
-yes">          </span>hfls<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>type:<span
-style="mso-spacerun:
-yes">             
-</span>real<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>positive:<span
-style="mso-spacerun: yes">       </span><span
-style="mso-spacerun: yes">   </span>up<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>variable_entry:<span
-style="mso-spacerun: yes">    </span>cl<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>modeling_realm:<span
-style="mso-spacerun: yes">    </span>atmos<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Variable attributes:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>standard_name:<span
-style="mso-spacerun: yes">     </span>cloud_area_fraction_in_atmosphere_layer<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>units:<span
-style="mso-spacerun:
-yes">            
-</span>%<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>cell_methods:<span
-style="mso-spacerun: yes">      </span>time: mean<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>long_name:<span
-style="mso-spacerun: yes">        
-</span>Cloud Area Fraction<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>comment:<span
-style="mso-spacerun:
-yes">           </span>Report
-on model layers (not standard pressures).<span style="mso-spacerun: yes"> 
-</span>Include both large-scale and convective cloud.<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Additional variable information:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>dimensions:<span
-style="mso-spacerun: yes">       
-</span>longitude latitude alevel time<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>out_name:<span
-style="mso-spacerun:
-yes">          </span>cl<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>type:<span
-style="mso-spacerun:
-yes">             
-</span>real<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><span
-style="mso-spacerun: yes"> </span><o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>variable_entry:<span
-style="mso-spacerun: yes">    </span>ua<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>modeling_realm:<span
-style="mso-spacerun: yes">    </span>atmos<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Variable attributes:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>standard_name:<span
-style="mso-spacerun: yes">     </span>eastward_wind<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>units:<span
-style="mso-spacerun:
-yes">            
-</span>m s-1<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>cell_methods:<span
-style="mso-spacerun: yes">      </span>time: mean<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>long_name:<span
-style="mso-spacerun: yes">        
-</span>Eastward Wind<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Additional variable information:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>dimensions:<span
-style="mso-spacerun: yes">       
-</span>longitude latitude plevs time<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>out_name:<span
-style="mso-spacerun:
-yes">          </span>ua<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>type:<span
-style="mso-spacerun:
-yes">             
-</span>real<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>variable_entry:<span
-style="mso-spacerun: yes">    </span>co2<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>modeling_realm:<span
-style="mso-spacerun: yes">    </span>atmos<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Variable attributes:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>standard_name:<span
-style="mso-spacerun: yes">    
-</span>mole_fraction_of_carbon_dioxide_in_air<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>units:<span
-style="mso-spacerun:
-yes">            
-</span>1e-6<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>cell_methods:<span
-style="mso-spacerun: yes">      </span>time: mean<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>long_name:<span
-style="mso-spacerun: yes">        
-</span>Mole Fraction of CO2<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>comment:<span
-style="mso-spacerun:
-yes">           </span>For
-some simulations (e.g., prescribed concentration pi-control run), this will not
-vary from one year to the next, and so report instead the variable described in
-the next table entry.<span style="mso-spacerun: yes">  </span>If spatially
-uniform, omit this field, but report Total Atmospheric Mass of CO2 (see the
-table entry after the next one). <o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Additional variable information:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>dimensions:<span
-style="mso-spacerun: yes">       
-</span>longitude latitude plevs time<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>out_name:<span
-style="mso-spacerun:
-yes">          </span>co2<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>type:<span
-style="mso-spacerun:
-yes">             
-</span>real<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>variable_entry:<span
-style="mso-spacerun: yes">    </span>co2Clim<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>modeling_realm:<span
-style="mso-spacerun: yes">    </span>atmos<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Variable attributes:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>standard_name:<span
-style="mso-spacerun: yes">    
-</span>mole_fraction_of_carbon_dioxide_in_air<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>units:<span
-style="mso-spacerun:
-yes">            
-</span>1e-6<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>cell_methods:<span
-style="mso-spacerun: yes">      </span>time: mean
-within years time: mean over years<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>long_name:<span
-style="mso-spacerun: yes">        
-</span>Mole Fraction of CO2<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>comment:<span
-style="mso-spacerun:
-yes">           </span>Report
-only for simulations (e.g., prescribed concentration pi-control run), in which
-the CO2 does not vary from one year to the next. Report 12 monthly values,
-starting with January, even if the values don't vary seasonally.<span
-style="mso-spacerun: yes">  </span>When calling CMOR, identify this
-variable as co2Clim, not co2.<span style="mso-spacerun: yes">  
-</span>If<span style="mso-spacerun: yes">  </span>CO2 is spatially
-uniform, omit this field, but report Total Atmospheric Mass of CO2 (see the
-table entry after the next).<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Additional variable information:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>dimensions:<span
-style="mso-spacerun: yes">   </span><span style="mso-spacerun:
-yes">     </span>longitude latitude plevs time2<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>out_name:<span
-style="mso-spacerun:
-yes">          </span>co2<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>type:<span
-style="mso-spacerun:
-yes">             
-</span>real<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>variable_entry:<span
-style="mso-spacerun: yes">    </span>co2mass<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>modeling_realm:<span
-style="mso-spacerun: yes">    </span>atmos<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Variable attributes:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>units:<span
-style="mso-spacerun:
-yes">            
-</span>kg<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>cell_methods:<span
-style="mso-spacerun: yes">      </span>time: mean<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>long_name:<span
-style="mso-spacerun: yes">        
-</span>Total Atmospheric Mass of CO2<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>comment:<span
-style="mso-spacerun:
-yes">           </span>For
-some simulations (e.g., prescribed concentration pi-control run), this will not
-vary from one year to the next, and so report instead the variable described in
-the next table entry.<span style="mso-spacerun: yes">  </span>If CO2 is
-spatially nonuniform, omit this field, but report Mole Fraction of CO2 (see the
-table entry before the previous one). <o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Additional variable information:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>dimensions:<span
-style="mso-spacerun: yes">       
-</span>time<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>out_name:<span
-style="mso-spacerun:
-yes">          </span>co2mass<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>type:<span
-style="mso-spacerun:
-yes">             
-</span>real<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>variable_entry:<span
-style="mso-spacerun: yes">    </span>co2massClim<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!============<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>modeling_realm:<span
-style="mso-spacerun: yes">    </span>atmos<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Variable attributes:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>units:<span
-style="mso-spacerun:
-yes">            
-</span>kg<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>cell_methods:<span
-style="mso-spacerun: yes">      </span>time: mean
-within years time: mean over years<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>long_name:<span
-style="mso-spacerun: yes">        
-</span>Total Atmospheric Mass of CO2<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>comment:<span
-style="mso-spacerun: yes">   </span><span style="mso-spacerun:
-yes">        </span>Report only for
-simulations (e.g., prescribed concentration pi-control run), in which the CO2
-does not vary from one year to the next. Report 12 monthly values, starting
-with January, even if the values don't vary seasonally.<span
-style="mso-spacerun: yes">  </span>When calling CMOR, identify this
-variable as co2massClim, not co2mass.<span style="mso-spacerun: yes"> 
-</span>If CO2 is spatially nonuniform, omit this field, but report Mole
-Fraction of CO2 (see the table entry before the previous one). <o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!
-Additional variable information:<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>dimensions:<span
-style="mso-spacerun: yes">       
-</span>time2<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>out_name:<span
-style="mso-spacerun:
-yes">          </span>co2mass<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>type:<span
-style="mso-spacerun:
-yes">             
-</span>real<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!----------------------------------<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'>!<o:p></o:p></span></p>
-
-<p class=MsoNormal style='mso-layout-grid-align:none;text-autospace:none'><span
-style='font-size:9.0pt;font-family:"Courier New";mso-bidi-font-family:"Courier New"'><o:p> </o:p></span></p>
-
-</div>
-
-<div style='mso-element:footnote-list'><![if !supportFootnotes]><br clear=all>
-
-<hr align=left size=1 width="33%">
-
-<![endif]>
-
-<div style='mso-element:footnote' id=ftn>
-
-<p class=MsoFootnoteText style='text-align:justify'><a style='mso-footnote-id:
-ftn' href="#_ftnref" name="_ftn1" title=""><span class=MsoFootnoteReference><span
-style='mso-special-character:footnote'><![if !supportFootnotes]>[1]<![endif]></span></span></a>
-CMOR is pronounced "C-more", which suggests that CMOR should enable a
-wide community of scientists to "see more" climate data produced by
-modeling centers around the world.<span style="mso-spacerun: yes"> 
-</span>CMOR also reminds us of Ecinae Corianus, the revered ancient Greek
-scholar, known to his friends as "Seymour".<span style="mso-spacerun:
-yes">  </span>Seymour spent much of his life translating into Greek nearly
-all the existing climate data, which had originally been recorded on largely
-inscrutable hieroglyphic and cuneiform tablets.<span style="mso-spacerun:
-yes">  </span>His resulting volumes, organized in a uniform fashion and in
-a language readable by the common scientists of the day, provided the basis for
-much subsequent scholarly research.<span style="mso-spacerun: yes"> 
-</span>Ecinae Corianus was later indirectly honored by early inhabitants of the
-British Isles who reversed the spelling of his name and used the resulting
-string of letters, grouped differently, to form new words referring to the major
-elements of climate.</p>
-
-</div>
-
-<div style='mso-element:footnote' id=ftn>
-
-<p class=MsoFootnoteText><a style='mso-footnote-id:ftn' href="#_ftnref"
-name="_ftn2" title=""><span class=MsoFootnoteReference><span style='mso-special-character:
-footnote'><![if !supportFootnotes]>[2]<![endif]></span></span></a> CMOR1 was
-written in Fortran 90 with access also provided through Python.</p>
-
-</div>
-
-<div style='mso-element:footnote' id=ftn>
-
-<p class=MsoFootnoteText><a style='mso-footnote-id:ftn' href="#_ftnref"
-name="_ftn3" title=""><span class=MsoFootnoteReference><span style='mso-special-character:
-footnote'><![if !supportFootnotes]>[3]<![endif]></span></span></a> See <a
-href="http://www.cgd.ucar.edu/cms/eaton/cf-metadata">http://www.cgd.ucar.edu/cms/eaton/cf-metadata</a>
-</p>
-
-</div>
-
-<div style='mso-element:footnote' id=ftn>
-
-<p class=MsoFootnoteText><a style='mso-footnote-id:ftn' href="#_ftnref"
-name="_ftn4" title=""><span class=MsoFootnoteReference><span style='mso-special-character:
-footnote'><![if !supportFootnotes]>[4]<![endif]></span></span></a> See <a
-href="http://my.unidata.ucar.edu/content/software/netcdf/">http://my.unidata.ucar.edu/content/software/netcdf/</a></p>
-
-</div>
-
-<div style='mso-element:footnote' id=ftn>
-
-<p class=MsoFootnoteText><a style='mso-footnote-id:ftn' href="#_ftnref"
-name="_ftn5" title=""><span class=MsoFootnoteReference><span style='mso-special-character:
-footnote'><![if !supportFootnotes]>[5]<![endif]></span></span></a>
-"MIP" is an acronym for "model intercomparison project".</p>
-
-</div>
-
-<div style='mso-element:footnote' id=ftn>
-
-<p class=MsoFootnoteText><a style='mso-footnote-id:ftn' href="#_ftnref"
-name="_ftn6" title=""><span class=MsoFootnoteReference><span style='mso-special-character:
-footnote'><![if !supportFootnotes]>[6]<![endif]></span></span></a> CMOR1 was
-linked to an earlier version of the netCDF library and udunits was optional.</p>
-
-</div>
-
-<div style='mso-element:footnote' id=ftn>
-
-<p class=MsoFootnoteText><a style='mso-footnote-id:ftn' href="#_ftnref"
-name="_ftn7" title=""><span class=MsoFootnoteReference><span style='mso-special-character:
-footnote'><![if !supportFootnotes]>[7]<![endif]></span></span></a> Cdtime is
-now built into CMOR. Therefore linking against cdms is no longer necessary.</p>
-
-</div>
-
-<div style='mso-element:footnote' id=ftn>
-
-<p class=MsoFootnoteText><a style='mso-footnote-id:ftn' href="#_ftnref"
-name="_ftn8" title=""><span class=MsoFootnoteReference><span style='color:#00B050'><span
-style='mso-special-character:footnote'><![if !supportFootnotes]>[8]<![endif]></span></span></span></a><span
-style='color:#00B050'> In the Fortran version only, to preserve compatibility
-with CMOR1, the character strings “replace”, “append”, and “preserve” may be
-passed instead of the integers CMOR_REPLACE, CMOR_APPEND, and CMOR_PRESERVE,
-respectively, but this option is deprecated.<o:p></o:p></span></p>
-
-</div>
-
-<div style='mso-element:footnote' id=ftn>
-
-<p class=MsoNormal style='text-align:justify;tab-stops:273.75pt'><a
-style='mso-footnote-id:ftn' href="#_ftnref" name="_ftn9" title=""><span
-class=MsoFootnoteReference><span style='font-size:10.0pt'><span
-style='mso-special-character:footnote'><![if !supportFootnotes]>[9]<![endif]></span></span></span></a><span
-style='font-size:10.0pt'> <span style='background:silver;mso-highlight:silver'>Note:
-For CMIP5 model_id and forcing are required. For backward compatibility with
-the original CMOR code, the model_id and forcing are “optionally” required by
-CMOR2, meaning they become mandatory only if they appear as
-“required_global_attributes” in the CMOR table. For this reason, a call to
-cmor_dataset without these would not return an error until a call is made to
-cmor_write, since it is table-dependent. <o:p></o:p></span></span></p>
-
-<p class=MsoFootnoteText><o:p> </o:p></p>
-
-</div>
-
-</div>
-
-</body>
-
-</html>
diff --git a/Doc/cmor_users_guide.pdf b/Doc/cmor_users_guide.pdf
deleted file mode 100644
index d76bf03..0000000
Binary files a/Doc/cmor_users_guide.pdf and /dev/null differ
diff --git a/Doc/cmor_users_guide_files/filelist.xml b/Doc/cmor_users_guide_files/filelist.xml
deleted file mode 100644
index d375492..0000000
--- a/Doc/cmor_users_guide_files/filelist.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<xml xmlns:o="urn:schemas-microsoft-com:office:office">
- <o:MainFile HRef="::cmor_users_guide.htm"/>
- <o:File HRef="header.htm"/>
- <o:File HRef="filelist.xml"/>
-</xml>
\ No newline at end of file
diff --git a/Doc/cmor_users_guide_files/header.htm b/Doc/cmor_users_guide_files/header.htm
deleted file mode 100644
index 7109c2d..0000000
--- a/Doc/cmor_users_guide_files/header.htm
+++ /dev/null
@@ -1,122 +0,0 @@
-<html xmlns:v="urn:schemas-microsoft-com:vml"
-xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns:m="http://schemas.microsoft.com/office/2004/12/omml"
-xmlns:css="http://macVmlSchemaUri" xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta name=Title content="Climate Model Output Rewriter (CMOR)">
-<meta name=Keywords content="">
-<meta http-equiv=Content-Type content="text/html; charset=utf-8">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 2008">
-<meta name=Originator content="Microsoft Word 2008">
-<link id=Main-File rel=Main-File href="cmor_users_guide.htm">
-</head>
-
-<body lang=EN-US link=blue vlink=purple>
-
-<div style='mso-element:footnote-separator' id=fs>
-
-<p class=MsoNormal><span style='mso-special-character:footnote-separator'><![if !supportFootnotes]>
-
-<hr align=left size=1 width="33%">
-
-<![endif]></span></p>
-
-</div>
-
-<div style='mso-element:footnote-continuation-separator' id=fcs>
-
-<p class=MsoNormal><span style='mso-special-character:footnote-continuation-separator'><![if !supportFootnotes]>
-
-<hr align=left size=1>
-
-<![endif]></span></p>
-
-</div>
-
-<div style='mso-element:endnote-separator' id=es>
-
-<p class=MsoNormal><span style='mso-special-character:footnote-separator'><![if !supportFootnotes]>
-
-<hr align=left size=1 width="33%">
-
-<![endif]></span></p>
-
-</div>
-
-<div style='mso-element:endnote-continuation-separator' id=ecs>
-
-<p class=MsoNormal><span style='mso-special-character:footnote-continuation-separator'><![if !supportFootnotes]>
-
-<hr align=left size=1>
-
-<![endif]></span></p>
-
-</div>
-
-<div style='mso-element:header' id=h1>
-
-<p class=MsoHeader><o:p> </o:p></p>
-
-</div>
-
-<div style='mso-element:footer' id=ef1>
-
-<div style='mso-element:frame;mso-element-wrap:around;mso-element-anchor-vertical:
-paragraph;mso-element-anchor-horizontal:margin;mso-element-left:center;
-mso-element-top:.05pt;mso-height-rule:exactly'>
-
-<table cellspacing=0 cellpadding=0 hspace=0 vspace=0 align=center>
- <tr>
-  <td valign=top style='padding-top:0in;padding-right:0in;padding-bottom:0in;
-  padding-left:0in'>
-  <p class=MsoFooter style='mso-element:frame;mso-element-wrap:around;
-  mso-element-anchor-vertical:paragraph;mso-element-anchor-horizontal:margin;
-  mso-element-left:center;mso-element-top:.05pt;mso-height-rule:exactly'><!--[if supportFields]><span
-  class=MsoPageNumber><span style='mso-element:field-begin'></span>PAGE<span
-  style="mso-spacerun: yes">  </span></span><![endif]--><!--[if supportFields]><span
-  class=MsoPageNumber><span style='mso-element:field-end'></span></span><![endif]--><span
-  class=MsoPageNumber><o:p></o:p></span></p>
-  </td>
- </tr>
-</table>
-
-</div>
-
-<p class=MsoFooter><o:p> </o:p></p>
-
-</div>
-
-<div style='mso-element:footer' id=f1>
-
-<div style='mso-element:frame;mso-element-wrap:around;mso-element-anchor-vertical:
-paragraph;mso-element-anchor-horizontal:margin;mso-element-left:center;
-mso-element-top:.05pt;mso-height-rule:exactly'>
-
-<table cellspacing=0 cellpadding=0 hspace=0 vspace=0 align=center>
- <tr>
-  <td valign=top style='padding-top:0in;padding-right:0in;padding-bottom:0in;
-  padding-left:0in'>
-  <p class=MsoFooter style='mso-element:frame;mso-element-wrap:around;
-  mso-element-anchor-vertical:paragraph;mso-element-anchor-horizontal:margin;
-  mso-element-left:center;mso-element-top:.05pt;mso-height-rule:exactly'><!--[if supportFields]><span
-  class=MsoPageNumber><span style='mso-element:field-begin'></span>PAGE <span
-  style="mso-spacerun: yes"> </span><span style='mso-element:field-separator'></span></span><![endif]--><span
-  class=MsoPageNumber><span style='mso-no-proof:yes'>79</span></span><!--[if supportFields]><span
-  class=MsoPageNumber><span style='mso-element:field-end'></span></span><![endif]--><span
-  class=MsoPageNumber><o:p></o:p></span></p>
-  </td>
- </tr>
-</table>
-
-</div>
-
-<p class=MsoFooter><o:p> </o:p></p>
-
-</div>
-
-</body>
-
-</html>
diff --git a/Doc/standard_output.html b/Doc/standard_output.html
deleted file mode 100644
index d3c4c75..0000000
--- a/Doc/standard_output.html
+++ /dev/null
@@ -1,5561 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=Generator content="Microsoft Word 11 (filtered)">
-<title>IPCC Standard Output from Coupled Ocean-Atmosphere GCMs</title>
-
-<style>
-<!--
- /* Font Definitions */
- @font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;}
- /* Style Definitions */
- p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{margin:0in;
-	margin-bottom:.0001pt;
-	font-size:12.0pt;
-	font-family:"Times New Roman";}
-h1
-	{margin-right:0in;
-	margin-left:0in;
-	font-size:24.0pt;
-	font-family:"Times New Roman";
-	font-weight:bold;}
-h2
-	{margin-right:0in;
-	margin-left:0in;
-	font-size:18.0pt;
-	font-family:"Times New Roman";
-	font-weight:bold;}
-h3
-	{margin-right:0in;
-	margin-left:0in;
-	font-size:13.5pt;
-	font-family:"Times New Roman";
-	font-weight:bold;}
-a:link, span.MsoHyperlink
-	{color:blue;
-	text-decoration:underline;}
-a:visited, span.MsoHyperlinkFollowed
-	{color:blue;
-	text-decoration:underline;}
-p
-	{margin-right:0in;
-	margin-left:0in;
-	font-size:12.0pt;
-	font-family:"Times New Roman";}
-p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
-	{margin:0in;
-	margin-bottom:.0001pt;
-	font-size:8.0pt;
-	font-family:Tahoma;}
-ins
-	{text-decoration:none;}
-span.msoIns
-	{text-decoration:underline;}
-span.msoDel
-	{text-decoration:line-through;
-	color:red;}
- /* Page Definitions */
- @page Section1
-	{size:11.0in 8.5in;
-	margin:1.0in .8in 1.0in .8in;}
-div.Section1
-	{page:Section1;}
- /* List Definitions */
- ol
-	{margin-bottom:0in;}
-ul
-	{margin-bottom:0in;}
--->
-</style>
-
-</head>
-
-<body lang=EN-US link=blue vlink=blue>
-
-<div class=Section1>
-
-<h1 align=center style='text-align:center'>IPCC Standard Output from Coupled
-Ocean-Atmosphere GCMs</h1>
-
-<p class=MsoNormal align=center style='text-align:center'><b><span
-style='font-size:13.5pt'>WGCM Climate Simulation Panel<sup>1</sup> with the
-assistance of PCMDI<sup>2</sup></span></b></p>
-
-<p class=MsoNormal align=center style='text-align:center'><b>For further
-information contact: <a href="mailto:taylor13 at llnl.gov">taylor13 at llnl.gov</a></b></p>
-
-<p class=MsoNormal><sup>1</sup> Panel members include: Gerald Meehl (chair), Curt
-Covey, Mojib Latif, Bryant McAvaney, John Mitchell, and Ron Stouffer.</p>
-
-<p class=MsoNormal><sup>2</sup> Contributing PCMDI members include: Karl E.
-Taylor, Curt Covey, Krishna AchutaRao, Michael Fiorino, Peter J. Gleckler,
-Thomas J. Phillips, <span class=grame>and Kenneth</span> R. Sperber.</p>
-
-<p align=center style='text-align:center'><span style='font-size:13.5pt'>Click <a
-href="http://www-pcmdi.llnl.gov/ipcc/standard_output_updates.htm">here</a> for
-a summary of recent changes to this document.</span></p>
-
-<p align=center style='text-align:center'><span style='font-size:13.5pt'>Click <a
-href="http://www-pcmdi.llnl.gov/ipcc/standard_output.pdf">here</a> to obtain a
-pdf version of this document. </span></p>
-
-<p align=center style='text-align:center'><span style='font-size:13.5pt'> </span></p>
-
-<p align=center style='text-align:center'><span style='font-size:13.5pt'>16 August
-2007</span></p>
-
-<div class=MsoNormal align=center style='text-align:center'>
-
-<hr size=2 width="100%" align=center>
-
-</div>
-
-<h2><span style='font-size:14.0pt'>Contents:</span></h2>
-
-<h2 style='margin-top:0in;margin-right:0in;margin-bottom:0in;margin-left:.5in;
-margin-bottom:.0001pt;text-indent:-.25in;line-height:150%'><span
-style='font-size:12.0pt;line-height:150%;font-family:Symbol;font-weight:normal'>�</span><span
-style='font-size:7.0pt;line-height:150%;font-weight:normal'>       
-</span><span style='font-size:12.0pt;line-height:150%'><a
-href="#Introduction">Introduction and format
-requirements</a></span></h2>
-
-<h2 style='margin-top:0in;margin-right:0in;margin-bottom:0in;margin-left:.5in;
-margin-bottom:.0001pt;text-indent:-.25in;line-height:150%'><span
-style='font-size:12.0pt;line-height:150%;font-family:Symbol;font-weight:normal'>�</span><span
-style='font-size:7.0pt;line-height:150%;font-weight:normal'>       
-</span><span style='font-size:12.0pt;line-height:150%'><a
-href="#overview">Model output overview</a></span></h2>
-
-<h2 style='margin-top:0in;margin-right:0in;margin-bottom:0in;margin-left:.5in;
-margin-bottom:.0001pt;text-indent:-.25in;line-height:150%'><span
-style='font-size:12.0pt;line-height:150%;font-family:Symbol;font-weight:normal'>�</span><span
-style='font-size:7.0pt;line-height:150%;font-weight:normal'>       
-</span><span style='font-size:12.0pt;line-height:150%'><a
-href="#Highest_priority_output">Highest
-priority output fields</a></span></h2>
-
-<p style='margin-top:0in;margin-right:0in;margin-bottom:0in;margin-left:1.0in;
-margin-bottom:.0001pt;text-indent:-.25in'><a
-href="#Table_A1a">Table A1a</a>: Monthly-mean
-2-d atmosphere or land surface data (longitude, latitude, time:month)</p>
-
-<p style='margin-top:0in;margin-right:0in;margin-bottom:0in;margin-left:1.0in;
-margin-bottom:.0001pt;text-indent:-.25in'><a
-href="#Table_A1b">Table A1b</a>:
-Time-independent 2-d land surface data (longitude, latitude)</p>
-
-<p style='margin-top:0in;margin-right:0in;margin-bottom:0in;margin-left:1.0in;
-margin-bottom:.0001pt;text-indent:-.25in'><a
-href="#Table_A1c">Table A1c</a>: Monthly-mean
-3-d atmosphere data (longitude, latitude, pressure, time:month)</p>
-
-<p style='margin-top:0in;margin-right:0in;margin-bottom:0in;margin-left:1.0in;
-margin-bottom:.0001pt;text-indent:-.25in'><a
-href="#Table_O1a">Table O1a</a>: Monthly-mean
-1-d ocean data (latitude, region, time:month</p>
-
-<p style='margin-top:0in;margin-right:0in;margin-bottom:0in;margin-left:1.0in;
-margin-bottom:.0001pt;text-indent:-.25in'><a
-href="#Table_O1b">Table O1b</a>: Monthly-mean
-2-d ocean data (latitude, depth, region, time:month)</p>
-
-<p style='margin-top:0in;margin-right:0in;margin-bottom:0in;margin-left:1.0in;
-margin-bottom:.0001pt;text-indent:-.25in'><a
-href="#Table_O1c">Table O1c</a>: Monthly-mean
-0-d or 2-d ocean or sea ice data (longitude, latitude, time:month)</p>
-
-<p style='margin-top:0in;margin-right:0in;margin-bottom:0in;margin-left:1.0in;
-margin-bottom:.0001pt;text-indent:-.25in'><a
-href="#Table_O1d">Table O1d</a>:
-Time-independent 2-d ocean data (longitude, latitude)</p>
-
-<p style='margin-top:0in;margin-right:0in;margin-bottom:0in;margin-left:1.0in;
-margin-bottom:.0001pt;text-indent:-.25in'><a
-href="#Table_O1e">Table O1e</a>: Monthly-mean
-3-d ocean data (longitude, latitude, depth, time:month)</p>
-
-<p style='margin-top:0in;margin-right:0in;margin-bottom:0in;margin-left:1.0in;
-margin-bottom:.0001pt;text-indent:-.25in'><a
-href="#Table_A2a">Table A2a</a>: Daily-mean 2-d
-atmosphere data (longitude, latitude, time:day)</p>
-
-<p style='margin-top:0in;margin-right:0in;margin-bottom:0in;margin-left:1.0in;
-margin-bottom:.0001pt;text-indent:-.25in'><a
-href="#Table_A2b">Table A2b</a>: Daily-mean 3-d
-atmosphere data (longitude, latitude, pressure, time:day)</p>
-
-<p style='margin-top:0in;margin-right:0in;margin-bottom:0in;margin-left:1.0in;
-margin-bottom:.0001pt;text-indent:-.25in'><a
-href="#Table_A3">Table A3</a>: 3-bourly 2-d
-atmosphere data (longitude, latitude, time:3hour at 0, 3, 6, 9, 12, 15, 18, 21
-Z)</p>
-
-<p style='margin-top:0in;margin-right:0in;margin-bottom:0in;margin-left:1.0in;
-margin-bottom:.0001pt;text-indent:-.25in'><a
-href="#Table_A4">Table A4</a>: Extremes indices
-(longitude, latitude, time:year) from Frich et al. (their Table 1)</p>
-
-<p style='margin-top:0in;margin-right:0in;margin-bottom:0in;margin-left:1.0in;
-margin-bottom:.0001pt;text-indent:-.25in'> </p>
-
-<h2 style='margin-top:0in;margin-right:0in;margin-bottom:0in;margin-left:.5in;
-margin-bottom:.0001pt;text-indent:-.25in;line-height:150%'><span
-style='font-size:12.0pt;line-height:150%;font-family:Symbol;font-weight:normal'>�</span><span
-style='font-size:7.0pt;line-height:150%;font-weight:normal'>       
-</span><span style='font-size:12.0pt;line-height:150%'><a
-href="#Lower_priority_output">Lower
-priority output fields</a></span></h2>
-
-<p style='margin-top:0in;margin-right:0in;margin-bottom:0in;margin-left:1.0in;
-margin-bottom:.0001pt;text-indent:-.25in'><a
-href="#Table_A1d">Table A1d</a>: Monthly-mean
-ISCCP simulator data (longitude, latitude, pressure2, tau, time)</p>
-
-<p style='margin-top:0in;margin-right:0in;margin-bottom:0in;margin-left:1.0in;
-margin-bottom:.0001pt;text-indent:-.25in'><a
-href="#Table_A5">Table A5</a>: Monthly-mean 2-d
-radiative forcing data (longitude, latitude, time)</p>
-
-<p style='margin-top:0in;margin-right:0in;margin-bottom:0in;margin-left:1.0in;
-margin-bottom:.0001pt;text-indent:-.25in'><a
-href="#Table_A1e">Table A1e</a>: Monthly-mean
-2-d and 3-d sulfate aerosol fields</p>
-
-<p style='margin-top:0in;margin-right:0in;margin-bottom:0in;margin-left:1.0in;
-margin-bottom:.0001pt;text-indent:-.25in'><a
-href="#Table_O1f">Table O1f</a>: Monthly-mean
-1-d and 2-d ocean fields</p>
-
-<p style='margin-top:0in;margin-right:0in;margin-bottom:0in;margin-left:1.0in;
-margin-bottom:.0001pt;text-indent:-.25in'><a
-href="#Table_O1g">Table O1g</a>: Monthly-mean
-2-d sea ice fields (longitude, latitude, time:month)</p>
-
-<p style='margin-top:0in;margin-right:0in;margin-bottom:0in;margin-left:1.0in;
-margin-bottom:.0001pt;text-indent:-.25in'><a
-href="#Table_A1f">Table A1f</a>: Monthly-mean
-surface fields and prescribed land surface characteristics</p>
-
-<p style='margin-top:0in;margin-right:0in;margin-bottom:0in;margin-left:1.0in;
-margin-bottom:.0001pt;text-indent:-.25in'> </p>
-
-<h2 style='margin-top:0in;margin-right:0in;margin-bottom:0in;margin-left:.5in;
-margin-bottom:.0001pt;text-indent:-.25in;line-height:150%'><span
-style='font-size:12.0pt;line-height:150%;font-family:Symbol;font-weight:normal'>�</span><span
-style='font-size:7.0pt;line-height:150%;font-weight:normal'>       
-</span><span style='font-size:12.0pt;line-height:150%'><a
-href="#Coordinate_dimensions.">Coordinate
-dimensions</a></span></h2>
-
-<h2 style='margin-top:0in;margin-right:0in;margin-bottom:0in;margin-left:.5in;
-margin-bottom:.0001pt;text-indent:-.25in;line-height:150%'><span
-style='font-size:12.0pt;line-height:150%;font-family:Symbol;font-weight:normal'>�</span><span
-style='font-size:7.0pt;line-height:150%;font-weight:normal'>       
-</span><span style='font-size:12.0pt;line-height:150%'><a
-href="#Experiments">Experiments and time
-periods for which data should be submitted</a></span></h2>
-
-<p style='margin-top:0in;margin-right:0in;margin-bottom:0in;margin-left:.5in;
-margin-bottom:.0001pt;text-indent:-.25in'> </p>
-
-<h2><a name=Introduction>Introduction and format requirements</a></h2>
-
-<p>The following list of standard output for coupled GCMs is intended both to
-serve the immediate needs of the IPCC and to become a recommended "core
-set" of variables for CMIP. </p>
-
-<p>Modeling groups contributing output to the IPCC and CMIP database must
-ensure that it meets rather strict format and metadata requirements. 
-These requirements yield files produced in network Common Data Form (netCDF;
-see <a href="http://www.unidata.ucar.edu/packages/netcdf">http://www.unidata.ucar.edu/packages/netcdf)</a>,
-which has become the most popular form for exchanging ocean-atmosphere model
-output.  The files will be "self-describing" and the metadata
-contained in the files will conform with the NetCDF Climate and Forecast (CF)
-Metadata Conventions (see <a
-href="http://www.cgd.ucar.edu/cms/eaton/cf-metadata">http://www.cgd.ucar.edu/cms/eaton/cf-metadata)</a>. 
-The new CF conventions for netCDF data generalize and extend the Cooperative   Ocean / Atmosphere Research Data Service (COARDS) conventions developed in
-the 1990s. Note that the CF convention establishes standard names for climate
-and weather variables, which identify the physical quantity. These standard
-names are given in the tables below. Note that more than one field can be
-associated with the same standard name because different fields sampled in
-different ways (e.g., surface air temperature vs. upper air temperature) refer
-to the same physical quantity.  Nevertheless, one can uniquely identify
-each stored field by considering additional metadata stored in the file (e.g.,
-dimension information). Extended definitions of CF standard names, which
-basically answer the question "What do you mean precisely by this
-quantity?", may be found on the Web at <a
-href="http://www.cgd.ucar.edu/cms/eaton/cf-metadata/standard_name.html">http://www.cgd.ucar.edu/cms/eaton/cf-metadata/standard_name.html.</a></p>
-
-<p><b><i>The detailed requirements</i></b> for CMIP / IPCC contributions are
-contained in the document <a
-href="http://www-pcmdi.llnl.gov/ipcc/IPCC_output_requirements.htm">http://www-pcmdi.llnl.gov/ipcc/IPCC_output_requirements.htm.</a>
-This document should be read carefully before preparing contributions. Perhaps
-the easiest way to meet these requirements is to rewrite your model output
-through CMOR, a software library available from PCMDI and further described in
-the next paragraph. Put briefly, the requirements involve metadata, coordinate
-systems, and file organization. Units and sign conventions of the data must
-conform to the tables below. Latitude-longitude grids must be rectilinear,
-i.e., have a unique set of longitudes that applies to all latitudes. Data on
-non-rectilinear grids (typically occurring for ocean output) must be
-interpolated to rectilinear grids before transmission to the PCMDI. (In this
-case, the original "native grid" data, if deemed of sufficient value,
-may also be provided to the PCMDI.) Vertical coordinates must be depth for
-ocean variables and pressure for atmosphere variables (with the exception of
-cloudiness, which as noted below should be provided on model levels).
-Three-dimensional atmosphere variables must be interpolated to standard
-pressure levels given below. We also recommend -- but do not require -- that
-the ocean depth  levels match Levitus observations. Finally, we require
-that submitted files contain only one output variable per file, though they may
-have many time points per file. This file organization contrasts with the
-typical model output history files, which contain all variables for a single
-time step. </p>
-
-<p>To facilitate adherence to these standards, the PCMDI has written (in FORTRAN
-90) a standard output code called CMOR (pronounced "see more"; see <a
-href="http://www-pcmdi.llnl.gov/software-portal/cmor">http://www-pcmdi.llnl.gov/software-portal/cmor</a>).
-This code structures the data uniformly and writes netCDF files in full compliance
-with IPCC requirements. Use of CMOR is being encouraged (and in some cases
-required) by various ongoing model intercomparison projects.� The CMOR
-documentation in pdf format is available at <a
-href="http://www-pcmdi.llnl.gov/software/cmor/cmor_users_guide.pdf">http://www-pcmdi.llnl.gov/software/cmor/cmor_users_guide.pdf</a>,
-and the source code is available at� <a
-href="http://www-pcmdi.llnl.gov/software-portal/cmor/download">http://www-pcmdi.llnl.gov/software-portal/cmor/download</a>.
-For further information, contact <a href="mailto:taylor13 at llnl.gov">taylor13 at llnl.gov.</a></p>
-
-<p>The notes that appear in the following tables are meant to provide precise
-definitions of the requested fields.  Sometimes it may be impossible to
-satisfy the requests; in these cases, any deviations from the specifications
-below should be described in the "history" and/or "comment"
-attributes associated with the variable</p>
-
-<h2><a name=overview>Model output overview</a></h2>
-
-<p>The model output fields listed below are identified as either being
-"highest priority" (tables A1a-A1c, A2-A4, and O1a-O1e) or
-"lower priority" (tables A1d-A1f, A5, and O1f-O1g).  The fields
-appearing in the "lower priority" tables will in some cases be
-essential for carrying out analyses of high interest (e.g., the radiative
-forcing fields are needed to help determine why models have different responses
-to anthropogenic influences); placement in the "lower priority" table
-may reflect one or more of the following factors: 1) perceived to be difficult
-to calculate (or lack of agreement as to calculation method), 2) nominated
-late, after the "highest priority" tables had been officially
-released, or 3) generally perceived to be of somewhat less interest than other
-fields. </p>
-
-<p>Some of the variables in the tables below were required for the original
-1997 version of <a href="http://www-pcmdi.llnl.gov/projects/cmip/announ.php">CMIP2
-</a>or have been requested for contributions to the CMIP pilot project
-"20th Century Climate in Coupled Models" (<a
-href="http://www-pcmdi.llnl.gov/projects/cmip/ann_20c3m.php">20C3M</a>). Many
-of the additional fields were requested by AMIP, the atmosphere-only
-counterpart of CMIP in which ocean surface and sea ice boundary conditions are
-prescribed to match observations over the late 20th century (see <a
-href="http://www-pcmdi.llnl.gov/projects/amip/OUTPUT/AMIP2/outlist.php">AMIP2
-standard output). </a> Suggestions for additions or changes to these
-tables are welcome and will be considered for future model intercomparison and
-IPCC exercises.</p>
-
-<p>In most cases, variables that appear in the same table will all be
-associated with a single climate component (i.e., atmosphere, ocean, land, or
-sea ice) and will all be a function of the same spatial dimensions.  Also
-the temporal sampling (3-hourly, daily, monthly, or time-independent) and any
-spatial or temporal averaging will in most cases be the same within each table.</p>
-
-<h2><a name="Highest_priority_output">Highest priority output fields</a></h2>
-
-<h3><span style='color:navy'>Monthly-mean and time-independent data</span></h3>
-
-<table class=MsoNormalTable border=1 cellspacing=0 cellpadding=0
- style='border-collapse:collapse;border:none'>
- <tr style='page-break-inside:avoid;height:44.25pt'>
-  <td colspan=5 style='border:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:44.25pt'>
-  <p><a name="Table_A1a"><b><i>Table A1a: </i>Monthly-mean 2-d atmosphere or
-  land surface data (longitude, latitude, time:month).</b></a></p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:44.25pt'>
-  <td style='border:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:44.25pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b> </b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:44.25pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>CF standard_name
-  </b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:44.25pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>output variable
-  name </b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:44.25pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>units </b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:44.25pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>notes </b></p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:15.75pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:15.75pt'>
-  <p class=MsoNormal align=center style='text-align:center'>1 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:15.75pt'>
-  <p class=MsoNormal align=center style='text-align:center'>air_pressure_at_sea_level
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:15.75pt'>
-  <p class=MsoNormal align=center style='text-align:center'>psl </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:15.75pt'>
-  <p class=MsoNormal align=center style='text-align:center'>Pa </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:15.75pt'>
-  <p class=MsoNormal> </p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:16.5pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:16.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>2 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:16.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>precipitation_flux </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:16.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>pr </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:16.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>kg m<sup>-2</sup> s<sup>-1</sup>
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:16.5pt'>
-  <p class=MsoNormal>includes both liquid and solid phases.</p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:58.5pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:58.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>3 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:58.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>air_temperature</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:58.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>tas </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:58.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>K </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:58.5pt'>
-  <p class=MsoNormal>near-surface (usually, 2 meter) air temperature; the CMOR
-  singleton dimension default value of 2 m can be overridden, if absolutely
-  necessary, by redefining axis "height1".</p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:129.75pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:129.75pt'>
-  <p class=MsoNormal align=center style='text-align:center'>4 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:129.75pt'>
-  <p class=MsoNormal align=center style='text-align:center'>moisture_content_of_soil_layer</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:129.75pt'>
-  <p class=MsoNormal align=center style='text-align:center'>mrsos </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:129.75pt'>
-  <p class=MsoNormal align=center style='text-align:center'>kg m<sup>-2</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:129.75pt'>
-  <p class=MsoNormal>water in all phases in the upper 0.1 meters of soil, and
-  averaged over the land portion of the grid cell (i.e., compute by dividing
-  the total mass of water contained in the soil layer of the grid cell by the
-  land area in the grid cell); report as "missing" or 0.0 where the
-  land fraction is 0;  the CMOR singleton dimension default value of 0.1 m
-  can be overridden, if absolutely necessary, by redefining axis
-  "depth1".</p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:87.0pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:87.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>5 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:87.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>soil_moisture_content</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:87.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>mrso </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:87.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>kg m<sup>-2</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:87.0pt'>
-  <p class=MsoNormal>water in all phases summed over all soil layers, and
-  averaged over the land portion of the grid cell (i.e., compute by dividing the
-  total mass of water contained in the soil layer of the grid cell by the land
-  area in the grid cell); report as "missing" or 0.0 where the land
-  fraction is 0.</p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:15.75pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:15.75pt'>
-  <p class=MsoNormal align=center style='text-align:center'>6 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:15.75pt'>
-  <p class=MsoNormal align=center style='text-align:center'>surface_downward_eastward_stress
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:15.75pt'>
-  <p class=MsoNormal align=center style='text-align:center'>tauu </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:15.75pt'>
-  <p class=MsoNormal align=center style='text-align:center'>Pa </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:15.75pt'>
-  <p class=MsoNormal> </p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:15.75pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:15.75pt'>
-  <p class=MsoNormal align=center style='text-align:center'>7 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:15.75pt'>
-  <p class=MsoNormal align=center style='text-align:center'>surface_downward_northward_stress
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:15.75pt'>
-  <p class=MsoNormal align=center style='text-align:center'>tauv </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:15.75pt'>
-  <p class=MsoNormal align=center style='text-align:center'>Pa </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:15.75pt'>
-  <p class=MsoNormal> </p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:115.5pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:115.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>8 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:115.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>surface_snow_thickness
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:115.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>snd </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:115.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>m </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:115.5pt'>
-  <p class=MsoNormal>this thickness when multiplied by the average area of the
-  grid cell covered by snow yields the time-mean snow volume.  Thus, for
-  time means, compute as the weighted sum of thickness (averaged over the
-  snow-covered portion of the grid cell) divided by the sum of the weights,
-  with the weights equal to the area covered by snow.  report as 0.0 in
-  snow-free regions.</p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:16.5pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:16.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>9 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:16.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>surface_upward_latent_heat_flux
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:16.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>hfls </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:16.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>W m<sup>-2</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:16.5pt'>
-  <p class=MsoNormal> </p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:16.5pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:16.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>10 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:16.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>surface_upward_sensible_heat_flux
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:16.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>hfss </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:16.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>W m<sup>-2</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:16.5pt'>
-  <p class=MsoNormal> </p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:16.5pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:16.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>11 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:16.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>surface_downwelling_longwave_flux_in_air</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:16.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>rlds </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:16.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>W m<sup>-2</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:16.5pt'>
-  <p class=MsoNormal> </p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:16.5pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:16.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>12 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:16.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>surface_upwelling_longwave_flux_in_air</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:16.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>rlus </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:16.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>W m<sup>-2</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:16.5pt'>
-  <p class=MsoNormal> </p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:16.5pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:16.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>13 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:16.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>surface_downwelling_shortwave_flux_in_air</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:16.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>rsds </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:16.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>W m<sup>-2</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:16.5pt'>
-  <p class=MsoNormal> </p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:16.5pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:16.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>14 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:16.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>surface_upwelling_shortwave_flux_in_air</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:16.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>rsus </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:16.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>W m<sup>-2</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:16.5pt'>
-  <p class=MsoNormal> </p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:15.75pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:15.75pt'>
-  <p class=MsoNormal align=center style='text-align:center'>15 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:15.75pt'>
-  <p class=MsoNormal align=center style='text-align:center'>surface_temperature
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:15.75pt'>
-  <p class=MsoNormal align=center style='text-align:center'>ts </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:15.75pt'>
-  <p class=MsoNormal align=center style='text-align:center'>K </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:15.75pt'>
-  <p class=MsoNormal>"skin" temperature (i.e., SST for open ocean)</p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:15.75pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:15.75pt'>
-  <p class=MsoNormal align=center style='text-align:center'>16 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:15.75pt'>
-  <p class=MsoNormal align=center style='text-align:center'>surface_air_pressure
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:15.75pt'>
-  <p class=MsoNormal align=center style='text-align:center'>ps </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:15.75pt'>
-  <p class=MsoNormal align=center style='text-align:center'>Pa </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:15.75pt'>
-  <p class=MsoNormal><i>not </i>mean sea-level pressure</p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:16.5pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:16.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>17 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:16.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>snowfall_flux </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:16.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>prsn </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:16.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>kg m<sup>-2</sup> s<sup>-1</sup>
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:16.5pt'>
-  <p class=MsoNormal> </p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:16.5pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:16.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>18 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:16.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>convective_precipitation_flux
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:16.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>prc </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:16.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>kg m<sup>-2</sup> s<sup>-1</sup>
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:16.5pt'>
-  <p class=MsoNormal> </p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:30.0pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>19 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>atmosphere_water_vapor_content
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>prw </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>kg m<sup>-2</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal>vertically integrated through the atmospheric column</p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:87.0pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:87.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>20 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:87.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>soil_frozen_water_content</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:87.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>mrfso </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:87.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>kg m<sup>-2</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:87.0pt'>
-  <p class=MsoNormal>summed over all soil layers, and averaged over the land
-  portion of the grid cell (i.e., compute by dividing the total mass of frozen
-  water contained in the soil layer of the grid cell by the land area in the
-  grid cell); report as "missing" or 0.0 where the land fraction is
-  0.</p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:58.5pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:58.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>21 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:58.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>surface_runoff_flux</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:58.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>mrros </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:58.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>kg m<sup>-2</sup> s<sup>-1</sup>
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:58.5pt'>
-  <p class=MsoNormal>compute as the total surface runoff leaving the land
-  portion of the grid cell divided by the land area in the grid cell; report as
-  "missing" or 0.0 where the land fraction is 0.</p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:58.5pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:58.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>22 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:58.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>runoff_flux</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:58.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>mrro </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:58.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>kg m<sup>-2</sup> s<sup>-1</sup>
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:58.5pt'>
-  <p class=MsoNormal>compute as the total runoff (including
-  "drainage" through the base of the soil model) leaving the land
-  portion of the grid cell divided by the land area in the grid cell; report as
-  "missing" or 0.0 where the land fraction is 0.</p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:72.75pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:72.75pt'>
-  <p class=MsoNormal align=center style='text-align:center'>23 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:72.75pt'>
-  <p class=MsoNormal align=center style='text-align:center'>surface_snow_amount_where_land</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:72.75pt'>
-  <p class=MsoNormal align=center style='text-align:center'>snw </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:72.75pt'>
-  <p class=MsoNormal align=center style='text-align:center'>kg m<sup>-2</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:72.75pt'>
-  <p class=MsoNormal>compute as the mass of surface snow on the land portion of
-  the grid cell divided by the land area in the grid cell; report as
-  "missing" or 0.0 where the land fraction is 0; exclude snow on
-  vegetation canopy or on sea ice.</p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:30.0pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>24 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>surface_snow_area_fraction_where_land</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>snc </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>% </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal>fraction of grid cell covered by snow that lies on land;
-  exclude snow that lies on sea ice.</p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:72.75pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:72.75pt'>
-  <p class=MsoNormal align=center style='text-align:center'>25 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:72.75pt'>
-  <p class=MsoNormal align=center style='text-align:center'>surface_snow_melt_flux_where_land</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:72.75pt'>
-  <p class=MsoNormal align=center style='text-align:center'>snm </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:72.75pt'>
-  <p class=MsoNormal align=center style='text-align:center'>kg m<sup>-2</sup> s<sup>-1</sup>
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:72.75pt'>
-  <p class=MsoNormal>compute as the total surface melt water on the land
-  portion of the grid cell divided by the land area in the grid cell; report as
-  0.0 for snow-free land regions; report as 0.0 or "missing" where
-  the land fraction is 0.</p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:58.5pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:58.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>26 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:58.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>eastward_wind</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:58.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>uas </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:58.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>m s<sup>-1</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:58.5pt'>
-  <p class=MsoNormal>near-surface (usually, 10 meters) eastward component of
-  wind; the CMOR singleton dimension default value of 10 m can be overridden,
-  if absolutely necessary, by redefining axis "height2". </p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:58.5pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:58.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>27 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:58.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>northward_wind</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:58.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>vas </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:58.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>m s<sup>-1</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:58.5pt'>
-  <p class=MsoNormal>near-surface (usually, 10 meters) northward component of
-  wind; the CMOR singleton dimension default value of 10 m can be overridden,
-  if absolutely necessary, by redefining axis "height2". </p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:58.5pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:58.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>28 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:58.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>specific_humidity</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:58.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>huss </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:58.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>1 (i.e., dimensionless
-  fraction)</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:58.5pt'>
-  <p class=MsoNormal>near-surface (usually, 2meters) specific humidity; the
-  CMOR singleton dimension default value of 2 m can be overridden, if
-  absolutely necessary, by redefining axis "height1". </p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:16.5pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:16.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>29 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:16.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>toa_incoming_shortwave_flux
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:16.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>rsdt </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:16.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>W m<sup>-2</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:16.5pt'>
-  <p class=MsoNormal>incident shortwave at the top of the atmosphere</p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:16.5pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:16.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>30 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:16.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>toa_outgoing_shortwave_flux
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:16.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>rsut </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:16.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>W m<sup>-2</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:16.5pt'>
-  <p class=MsoNormal>at the top of the atmosphere</p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:30.0pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>31 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>toa_outgoing_longwave_flux
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>rlut </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>W m<sup>-2</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal>at the top of the atmosphere (to be compared with
-  satellite measurements)</p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:30.0pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>32 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>net_downward_radiative_flux_at_top_of_
-  atmosphere_model </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>rtmt </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>W m<sup>-2</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal>i.e., at the top of that portion of the atmosphere where
-  dynamics are explicitly treated by the model.</p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:58.5pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:58.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>33 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:58.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>net_downward_shortwave_flux_in_air</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:58.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>rsntp </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:58.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>W m<sup>-2</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:58.5pt'>
-  <p class=MsoNormal>at 200 hPa only; the CMOR singleton dimension default
-  value of 200 hPa can be overridden, if absolutely necessary, by redefining
-  axis "pressure1".</p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:12.0pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:12.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>34 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:12.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>net_upward_longwave_flux_in_air</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:12.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>rlntp </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:12.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>W m<sup>-2</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:12.0pt'>
-  <p class=MsoNormal>at 200 hPa only; the CMOR singleton dimension default
-  value of 200 hPa can be overridden, if absolutely necessary, by redefining
-  axis "pressure1".</p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:30.0pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>35 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>net_downward_shortwave_flux_in_air_
-  assuming_clear_sky</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>rsntpcs </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>W m<sup>-2</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal>at 200 hPa only; method "2" is recommended for
-  calculating clear-sky fluxes; the CMOR singleton dimension default value of
-  200 hPa can be overridden, if absolutely necessary, by redefining axis
-  "pressure1".</p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:30.0pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>36 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>net_upward_longwave_flux_in_air_
-  assuming_clear_sky</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>rlntpcs </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>W m<sup>-2</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal>at 200 hPa only; method "2" is recommended for
-  calculating clear-sky fluxes; the CMOR singleton dimension default value of
-  200 hPa can be overridden, if absolutely necessary, by redefining axis
-  "pressure1".</p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:30.0pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>37 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>surface_downwelling_shortwave_flux_in_
-  air_assuming_clear_sky </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>rsdscs </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>W m<sup>-2</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal>method "2" is recommended for calculating
-  clear-sky fluxes</p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:30.0pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>38 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>surface_upwelling_shortwave_flux_in_
-  air_assuming_clear_sky </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>rsuscs </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>W m<sup>-2</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal>method "2" is recommended for calculating
-  clear-sky fluxes</p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:30.0pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>39 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>surface_downwelling_longwave_flux_in_
-  air_assuming_clear_sky </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>rldscs </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>W m<sup>-2</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal>method "2" is recommended for calculating
-  clear-sky fluxes</p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:30.0pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>40 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>toa_outgoing_longwave_flux_assuming_
-  clear_sky </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>rlutcs </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>W m<sup>-2</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal>method "2" is recommended for calculating
-  clear-sky fluxes</p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:30.0pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>41 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>toa_outgoing_shortwave_flux_assuming_
-  clear_sky </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>rsutcs </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>W m<sup>-2</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal>method "2" is recommended for calculating
-  clear-sky fluxes</p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:30.0pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>42 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>cloud_area_fraction
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>clt </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>% </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal>for the whole atmospheric column, as seen from the surface
-  or the top of the atmosphere. Include both large-scale and convective cloud.</p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:30.0pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>43 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>atmosphere_cloud_condensed_water_content
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>clwvi </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>kg m<sup>-2</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal>include both liquid and ice phases, consider all the mass
-  of condensed water in the column and divide by its area (in the
-  longitude-latitude plane) </p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:30.0pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>44 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>atmosphere_cloud_ice_content
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>clivi </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>kg m<sup>-2</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal>consider all the mass of ice-phase water in the column and
-  divide by its area (in the longitude-latitude plane)</p>
-  </td>
- </tr>
-</table>
-
-<p> </p>
-
-<table class=MsoNormalTable border=1 cellspacing=0 cellpadding=0
- style='border-collapse:collapse;border:none'>
- <tr>
-  <td colspan=5 style='border:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p><a name="Table_A1b"><b><i>Table A1b: </i>Time-independent 2-d land surface
-  data (longitude, latitude).</b></a></p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b> </b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>CF standard_name
-  </b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>output variable
-  name </b></p>
-  </td>
-  <td width=50 style='width:37.5pt;border:inset #111111 1.0pt;border-left:none;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>units </b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>notes </b></p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>1 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>surface_altitude </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>orog </p>
-  </td>
-  <td width=50 style='width:37.5pt;border-top:none;border-left:none;border-bottom:
-  inset #111111 1.0pt;border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>m </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>height above the geoid; as defined here, "the
-  geoid" is a surface of constant geopotential that, if the ocean were at
-  rest, would coincide with mean sea level. Under this definition, the geoid
-  changes as the mean volume of the ocean changes (e.g., due to glacial melt,
-  or global warming of the ocean).  Report here the height above the
-  present-day geoid.  Over ocean, report as 0.0</p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>2 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>land_area_fraction </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>sftlf </p>
-  </td>
-  <td width=50 style='width:37.5pt;border-top:none;border-left:none;border-bottom:
-  inset #111111 1.0pt;border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>% </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal> </p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>3 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>land_ice_area_fraction</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>sftgif</p>
-  </td>
-  <td width=50 style='width:37.5pt;border-top:none;border-left:none;border-bottom:
-  inset #111111 1.0pt;border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>% </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>fraction of grid cell occupied by "permanent"
-  ice (i.e., glaciers).</p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>4 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>soil_moisture_content_at_
-  field_capacity </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>mrsofc </p>
-  </td>
-  <td width=50 style='width:37.5pt;border-top:none;border-left:none;border-bottom:
-  inset #111111 1.0pt;border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>kg m<sup>-2</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>divide the total water holding capacity of all the soil in
-  the grid cell by the land area in the grid cell;  report as
-  "missing" or 0.0 outside land areas.</p>
-  </td>
- </tr>
-</table>
-
-<p> </p>
-
-<span style='font-size:12.0pt;font-family:"Times New Roman"'><br clear=all
-style='page-break-before:always'>
-</span>
-
-<p> </p>
-
-<table class=MsoNormalTable border=1 cellspacing=0 cellpadding=0
- style='border-collapse:collapse;border:none'>
- <tr>
-  <td colspan=5 style='border:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p><a name="Table_A1c"><b><i>Table A1c: </i>Monthly-mean 3-d atmosphere data
-  (longitude, latitude, pressure, time:month).</b> Except for cloud area
-  fraction, this data must be provided on pressure levels, including at least
-  the following standard levels:1000, 925, 850, 700, 600, 500, 400, 300, 250,
-  200, 150, 100, 70, 50, 30, 20, 10 hPa. </a></p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b> </b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>CF standard_name
-  </b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>output variable
-  name </b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>units </b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b> notes </b></p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>1 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>cloud_area_fraction_in_atmosphere_layer
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>cl </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>% </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>unlike all other fields in this table, the cloud fraction
-  should be reported for each model layer (not interpolated to standard
-  pressures).  Include both large-scale and convective cloud.</p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>2 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>air_temperature </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>ta </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>K </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal> </p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>3 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>eastward_wind </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>ua </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>m s<sup>-1</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal> </p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>4 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>northward_wind </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>va </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>m s<sup>-1</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal> </p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>5 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>specific_humidity </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>hus </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>1 (i.e.,
-  dimensionless fraction)</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal> </p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>6 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>lagrangian_tendency_of_air_pressure
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>wap</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>Pa s<sup>-1</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>commonly referred to as "omega", this represents
-  the vertical component of velocity in pressure coordinates (positive down)</p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>7 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>geopotential_height
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>zg </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>m </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal> </p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>8 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>relative_humidity </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>hur </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>% </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal> </p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>9 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>mole_fraction_of_o3_in_air
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>tro3 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>1e-9 (i.e., ppbv)</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>if climatologically specified, report only for 1 year.</p>
-  </td>
- </tr>
-</table>
-
-<p> </p>
-
-<span style='font-size:12.0pt;font-family:"Times New Roman"'><br clear=all
-style='page-break-before:always'>
-</span>
-
-<p> </p>
-
-<table class=MsoNormalTable border=1 cellspacing=0 cellpadding=0
- style='border-collapse:collapse;border:none'>
- <tr>
-  <td colspan=5 style='border:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p><a name="Table_O1a"><b><i>Table O1a: </i>Monthly-mean 1-d ocean data
-  (latitude, region, time:month). </b>Zonal mean over all oceans and also zonal
-  mean for individual ocean basins (</a>Atlantic, Indian, and Pacific basins:
-  divide roughly at 20E and 120E). </p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b> </b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>CF standard_name
-  </b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>output variable
-  name </b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>units </b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b> notes </b></p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>1 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>northward_ocean_heat_transport
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>hfogo </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>W </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>transport by all ocean-related processes, both explicitly
-  simulated and parameterized (e.g., any contribution from the 'bolus velocity'
-  in the Gent-McWilliams parameterization), including sea water and sea ice
-  contributions.</p>
-  </td>
- </tr>
-</table>
-
-<p> </p>
-
-<table class=MsoNormalTable border=1 cellspacing=0 cellpadding=0 width=898
- style='width:673.5pt;border-collapse:collapse;border:none'>
- <tr>
-  <td colspan=5 style='border:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p><a name="Table_O1b"><b><i>Table O1b: </i>Monthly-mean 2-d ocean data
-  (latitude, depth, region, time:month). </b>Zonal mean over all oceans and
-  also zonal mean for individual ocean basins (</a>Atlantic, Indian, and
-  Pacific basins: divide roughly at 20E and 120E). Data must be provided on
-  depth levels.  We recommend that these match the 33 standard levels of
-  Levitus observations: 0, 10, 20, 30, 50, 75, 100, 125, 150, 200, 250, 300,
-  400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500, 1750, 2000,
-  2500, 3000, 3500, 4000, 4500, 5000, and 5500 meters.</p>
-  </td>
- </tr>
- <tr>
-  <td width=10 style='width:.1in;border:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b> </b></p>
-  </td>
-  <td width=276 style='width:207.0pt;border:inset #111111 1.0pt;border-left:
-  none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>CF standard_name
-  </b></p>
-  </td>
-  <td width=78 style='width:58.5pt;border:inset #111111 1.0pt;border-left:none;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>output variable
-  name </b></p>
-  </td>
-  <td width=44 style='width:33.0pt;border:inset #111111 1.0pt;border-left:none;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>units </b></p>
-  </td>
-  <td width=466 style='width:349.5pt;border:inset #111111 1.0pt;border-left:
-  none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>notes</b></p>
-  </td>
- </tr>
- <tr>
-  <td width=10 style='width:.1in;border:inset #111111 1.0pt;border-top:none;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>1 </p>
-  </td>
-  <td width=276 style='width:207.0pt;border-top:none;border-left:none;
-  border-bottom:inset #111111 1.0pt;border-right:inset #111111 1.0pt;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>ocean_meridional_overturning_streamfunction
-  </p>
-  </td>
-  <td width=78 style='width:58.5pt;border-top:none;border-left:none;border-bottom:
-  inset #111111 1.0pt;border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>stfmmc</p>
-  </td>
-  <td width=44 style='width:33.0pt;border-top:none;border-left:none;border-bottom:
-  inset #111111 1.0pt;border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>m<sup>3</sup> s<sup>-1</sup>
-  </p>
-  </td>
-  <td width=466 style='width:349.5pt;border-top:none;border-left:none;
-  border-bottom:inset #111111 1.0pt;border-right:inset #111111 1.0pt;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>Note that the units do not include mass.  This should
-  include only the explicitly calculated, purely advective component and should
-  exclude contributions of the 'bolus velocity' that arise, for example, in the
-  Gent-McWilliams parameterization.</p>
-  </td>
- </tr>
-</table>
-
-<p> </p>
-
-<span style='font-size:12.0pt;font-family:"Times New Roman"'><br clear=all
-style='page-break-before:always'>
-</span>
-
-<p> </p>
-
-<table class=MsoNormalTable border=1 cellspacing=0 cellpadding=0 width="100%"
- style='width:100.0%;border-collapse:collapse;border:none'>
- <tr style='page-break-inside:avoid'>
-  <td colspan=5 style='border:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p><a name="Table_O1c"><b><i>Table O1c:</i> Monthly-mean 0-d or 2-d ocean or
-  sea ice data (longitude, latitude, time:month).</b></a></p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid'>
-  <td style='border:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b> </b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>CF standard_name
-  </b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>output variable
-  name </b></p>
-  </td>
-  <td width=65 style='width:48.75pt;border:inset #111111 1.0pt;border-left:
-  none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>units </b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>notes </b></p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>1 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>sea_surface_height_above_geoid</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>zos</p>
-  </td>
-  <td width=65 style='width:48.75pt;border-top:none;border-left:none;
-  border-bottom:inset #111111 1.0pt;border-right:inset #111111 1.0pt;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>m </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>this height, when multiplied by the area fraction of the
-  grid cell covered by ocean (or sea ice), yields the volume of sea water above
-  the geoid.  As defined here, "the geoid" is a surface of
-  constant geopotential that, if the ocean were at rest, would coincide with
-  mean sea level. Under this definition, the geoid changes as the mean volume
-  of the ocean changes (e.g., due to glacial melt, or global warming of the
-  ocean).  Report zos as "missing" over grid cells that are
-  entirely land.  There are a couple of acceptable options for reporting
-  this field: 1) if the geoid is defined to relate to the instantaneous volume
-  of the ocean, the global mean of zos will always be zero, and 2) if the geoid
-  is defined relative to a time-mean sea level over some period, then the
-  global mean of zos will be time-dependent.  In either case a global mean
-  time-series of sea level should also be reported as described in the next two
-  table entries immediately below.  In general IPCC analysis of global
-  mean sea level changes will not rely on zos.  It is recommended that in
-  reporting zos, the atmospheric "inverted barometer" effect be
-  omitted, since it can be easily calculated from the reported mean sea level
-  pressure field.  The "comment" attribute associated with zos
-  should indicate whether or not the  atmospheric "inverted
-  barometer"  influence on zos has been included. Additionally, it should
-  be noted in the "comment" attribute whether zos is obtained
-  directly, as in a free-surface model, or has been derived, for example, from
-  geostrophy using diagnosed velocities at some level or from geostrophy
-  relative to an assumed level of quiescence. </p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p align=center style='text-align:center'>2</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>global_average_thermosteric_
-  sea_level_change</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>zostoga</p>
-  </td>
-  <td width=65 style='width:48.75pt;border-top:none;border-left:none;
-  border-bottom:inset #111111 1.0pt;border-right:inset #111111 1.0pt;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>m</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>a function only of time, zostoga is the contribution to
-  change in global mean sea level, relative to some fixed distance from the
-  center of the earth, due only to thermal structure changes. The fixed
-  reference height should be invariant across all IPCC simulations by a
-  model.   In a rigid-lid model this quantity can be calculated by
-  using a reference 3D salinity field to compute density as the 3D temperature
-  field evolves.  If only the total sea level change (due to thermosteric
-  changes, water flux input from land/glaciers/atmosphere, and salinity
-  influences on density) is available, omit zostoga, and report only zosga (see
-  next table entry below).  Please note in the "comment"
-  attribute any assumptions or methodological details related to calculation of
-  this time-series.</p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p align=center style='text-align:center'>3</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>global_average_sea_level_change</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>zosga</p>
-  </td>
-  <td width=65 style='width:48.75pt;border-top:none;border-left:none;
-  border-bottom:inset #111111 1.0pt;border-right:inset #111111 1.0pt;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>m</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>a function only of time, zosga is the total change in
-  global mean sea level, relative to some fixed distance from the center of the
-  earth, due to thermosteric changes, water flux input from
-  land/glaciers/atmosphere, and salinity influences on density.  If the
-  model cannot be trusted to provide estimates of the water flux input from
-  land/glaciers, there is no need to report zosga (since salinity influences
-  are of secondary importance and the thermosteric contribution is reported by zostoga). 
-  Note that to good approximation the difference between zostoga and zosga
-  yields the global mean change in sea level due to water budget imbalances
-  (presumably, resulting largely from changes in glacial mass).  Please
-  note in the "comment" attribute any assumptions or methodological
-  details related to calculation of this time-series.</p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>4</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>sea_surface_temperature
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>tos</p>
-  </td>
-  <td width=65 style='width:48.75pt;border-top:none;border-left:none;
-  border-bottom:inset #111111 1.0pt;border-right:inset #111111 1.0pt;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>K </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>this may differ from "surface temperature" in
-  regions of sea ice.</p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>5 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>sea_ice_area_fraction</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>sic </p>
-  </td>
-  <td width=65 style='width:48.75pt;border-top:none;border-left:none;
-  border-bottom:inset #111111 1.0pt;border-right:inset #111111 1.0pt;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>% </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>fraction of grid cell covered by sea ice.</p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>6</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>sea_ice_thickness</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>sit </p>
-  </td>
-  <td width=65 style='width:48.75pt;border-top:none;border-left:none;
-  border-bottom:inset #111111 1.0pt;border-right:inset #111111 1.0pt;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>m </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>this thickness, when multiplied by the average area of the
-  grid cell covered by sea ice, yields the time-mean sea ice volume. 
-  Thus, for time means, compute as the weighted sum of thickness (averaged over
-  the sea ice-covered portion of the grid cell) divided by the sum of the
-  weights, with the weights equal to the area covered by sea-ice; Report as 0.0
-  in regions free of sea ice.</p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>7</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>eastward_sea_ice_velocity
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>usi</p>
-  </td>
-  <td width=65 style='width:48.75pt;border-top:none;border-left:none;
-  border-bottom:inset #111111 1.0pt;border-right:inset #111111 1.0pt;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>m s<sup>-1</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>report as "missing" in regions free of sea ice.</p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>8</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>northward_sea_ice_velocity
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>vsi</p>
-  </td>
-  <td width=65 style='width:48.75pt;border-top:none;border-left:none;
-  border-bottom:inset #111111 1.0pt;border-right:inset #111111 1.0pt;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>m s<sup>-1</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>report as "missing" in regions free of sea ice.</p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>9</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>water_flux_into_ocean</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>wfo</p>
-  </td>
-  <td width=65 style='width:48.75pt;border-top:none;border-left:none;
-  border-bottom:inset #111111 1.0pt;border-right:inset #111111 1.0pt;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>kg m<sup>-2</sup> s<sup>-1</sup>
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>precipitation minus evaporation, plus runoff, melting of
-  sea ice and any water flux correction calculated considering only the
-  ocean-portion of each grid cell</p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>10</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>ocean_barotropic_streamfunction
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>stfbarot </p>
-  </td>
-  <td width=65 style='width:48.75pt;border-top:none;border-left:none;
-  border-bottom:inset #111111 1.0pt;border-right:inset #111111 1.0pt;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>m<sup>3</sup> s<sup>-1</sup></p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>units do not include mass.</p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>11</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>heat_flux_correction_where_ocean</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>hfcorr </p>
-  </td>
-  <td width=65 style='width:48.75pt;border-top:none;border-left:none;
-  border-bottom:inset #111111 1.0pt;border-right:inset #111111 1.0pt;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>W m<sup>-2</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>if applicable, should be positive down (i.e., added to
-  ocean); the total flux correction entering the ocean portion of the grid cell
-  should be divided by the ocean area in the grid cell (in this context, ocean
-  includes sea ice); report only for a single year and a single run, assuming this
-  field is the same from year to year and for all runs.</p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>12</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>water_flux_correction_where_ocean</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>wfcorr </p>
-  </td>
-  <td width=65 style='width:48.75pt;border-top:none;border-left:none;
-  border-bottom:inset #111111 1.0pt;border-right:inset #111111 1.0pt;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>kg m<sup>-2 </sup>s<sup>-1</sup>
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>if applicable, should be positive down (i.e., added to
-  ocean); the total flux correction entering the ocean portion of the grid cell
-  should be divided by the ocean area in the grid cell (in this context, ocean
-  includes sea ice); report only for a single year and a single run, assuming
-  this field is the same from year to year and for all runs.</p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>13 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>eastward_momentum_flux_
-  correction_where_ocean</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>tauucorr </p>
-  </td>
-  <td width=65 style='width:48.75pt;border-top:none;border-left:none;
-  border-bottom:inset #111111 1.0pt;border-right:inset #111111 1.0pt;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>Pa </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>if applicable, should be positive down (i.e., added to
-  ocean); the total flux correction entering the ocean portion of the grid cell
-  should be divided by the ocean area in the grid cell (in this context, ocean
-  includes sea ice); report only for a single year and a single run, assuming
-  this field is the same from year to year and for all runs.</p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>14 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>northward_momentum_flux_
-  correction_where_ocean</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>tauvcorr </p>
-  </td>
-  <td width=65 style='width:48.75pt;border-top:none;border-left:none;
-  border-bottom:inset #111111 1.0pt;border-right:inset #111111 1.0pt;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>Pa </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>if applicable, should be positive down (i.e., added to
-  ocean); the total flux correction entering the ocean portion of the grid cell
-  should be divided by the ocean area in the grid cell (in this context, ocean
-  includes sea ice); report only for a single year and a single run, assuming
-  this field is the same from year to year and for all runs.</p>
-  </td>
- </tr>
-</table>
-
-<p> </p>
-
-<span style='font-size:12.0pt;font-family:"Times New Roman"'><br clear=all
-style='page-break-before:always'>
-</span>
-
-<p> </p>
-
-<table class=MsoNormalTable border=1 cellspacing=0 cellpadding=0 width=906
- style='width:679.5pt;border-collapse:collapse;border:none'>
- <tr>
-  <td width=906 colspan=5 style='width:679.5pt;border:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p><a name="Table_O1d"><b><i>Table O1d: </i>Time-independent 2-d ocean data
-  (longitude, latitude).</b></a></p>
-  </td>
- </tr>
- <tr>
-  <td width=12 style='width:9.05pt;border:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b> </b></p>
-  </td>
-  <td width=252 style='width:188.85pt;border:inset #111111 1.0pt;border-left:
-  none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>CF standard_name
-  </b></p>
-  </td>
-  <td width=73 style='width:54.9pt;border:inset #111111 1.0pt;border-left:none;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>output variable
-  name </b></p>
-  </td>
-  <td width=48 style='width:36.1pt;border:inset #111111 1.0pt;border-left:none;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>units </b></p>
-  </td>
-  <td width=521 style='width:390.6pt;border:inset #111111 1.0pt;border-left:
-  none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>notes </b></p>
-  </td>
- </tr>
- <tr>
-  <td width=12 style='width:9.05pt;border:inset #111111 1.0pt;border-top:none;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>1 </p>
-  </td>
-  <td width=252 style='width:188.85pt;border-top:none;border-left:none;
-  border-bottom:inset #111111 1.0pt;border-right:inset #111111 1.0pt;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>sea_floor_depth_below_geoid</p>
-  </td>
-  <td width=73 style='width:54.9pt;border-top:none;border-left:none;border-bottom:
-  inset #111111 1.0pt;border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>zobt </p>
-  </td>
-  <td width=48 style='width:36.1pt;border-top:none;border-left:none;border-bottom:
-  inset #111111 1.0pt;border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>m </p>
-  </td>
-  <td width=521 style='width:390.6pt;border-top:none;border-left:none;
-  border-bottom:inset #111111 1.0pt;border-right:inset #111111 1.0pt;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>this height, when multiplied by the area fraction of the
-  grid cell covered by ocean (or sea ice), yields the volume of water below the
-  geoid. As defined here, "the geoid" is a surface of constant
-  geopotential that, if the ocean were at rest, would coincide with mean sea
-  level. Under this definition, the geoid changes as the mean volume of the
-  ocean changes (e.g., due to glacial melt, or global warming of the
-  ocean).  Report here the sea floor depth for present day.</p>
-  </td>
- </tr>
- <tr>
-  <td width=12 style='width:9.05pt;border:inset #111111 1.0pt;border-top:none;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>2</p>
-  </td>
-  <td width=252 style='width:188.85pt;border-top:none;border-left:none;
-  border-bottom:inset #111111 1.0pt;border-right:inset #111111 1.0pt;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p align=center style='margin:0in;margin-bottom:.0001pt;text-align:center'>prescribed_heat_flux_into_slab_ocean</p>
-  </td>
-  <td width=73 style='width:54.9pt;border-top:none;border-left:none;border-bottom:
-  inset #111111 1.0pt;border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>qflux</p>
-  </td>
-  <td width=48 style='width:36.1pt;border-top:none;border-left:none;border-bottom:
-  inset #111111 1.0pt;border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>W m<sup>-2</sup> </p>
-  </td>
-  <td width=521 style='width:390.6pt;border-top:none;border-left:none;
-  border-bottom:inset #111111 1.0pt;border-right:inset #111111 1.0pt;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p style='margin:0in;margin-bottom:.0001pt'>the so-called q-flux added to
-  slab ocean cell, which is meant to account for convergence (or divergence) of
-  heat by the ocean circulation.  It should be computed as the total qflux
-  energy added to the ocean-portion of the grid cell divided by the ocean area
-  in the grid cell; report as "missing" or 0.0 where the ocean
-  fraction is 0.  Report only for slab ocean experiments.</p>
-  </td>
- </tr>
-</table>
-
-<p> </p>
-
-<table class=MsoNormalTable border=1 cellspacing=0 cellpadding=0
- style='border-collapse:collapse;border:none'>
- <tr>
-  <td colspan=5 style='border:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p><a name="Table_O1e"><b><i>Table O1e: </i>Monthly-mean 3-d ocean data
-  (longitude, latitude, depth, time:month).</b> Data must be provided on depth
-  levels.  We recommend that these match the 33 standard levels of Levitus
-  observations: 0, 10, 20, 30, 50, 75, 100, 125, 150, 200, 250, 300, 400, 500,
-  600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500, 1750, 2000, 2500,
-  3000, 3500, 4000, 4500, 5000, and 5500 meters.  For the 3-d ocean
-  fields, it is likely that storage space constraints will limit relatively
-  quick access to output from only a single member of each ensemble, so in
-  prioritizing your processing, consider initially sending PCMDI  the 3-d
-  ocean output from only 1 member of the ensemble.  </a></p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b> </b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>CF standard_name
-  </b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>output variable
-  name </b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>units </b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>notes </b></p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>1 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>sea_water_salinity </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>so </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>1e-3 (i.e., ppt) </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>The unit of salinity is PSU (expressed here as parts per
-  thousand).</p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>2 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>sea_water_potential_temperature
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>thetao</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>K </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>assume reference height is sea level </p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>3 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>sea_water_potential_density
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>rhopoto</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>kg m<sup>-3</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>assume reference height is sea level </p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>4 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>eastward_sea_water_velocity
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>uo </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>m s<sup>-1</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal> </p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>5 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>northward_sea_water_velocity
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>vo </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>m s<sup>-1</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal> </p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>6 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>upward_sea_water_velocity
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>wo </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>m s<sup>-1</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal> </p>
-  </td>
- </tr>
-</table>
-
-<p> </p>
-
-<p> </p>
-
-<h3><span style='color:navy'>Daily-mean data</span></h3>
-
-<table class=MsoNormalTable border=1 cellspacing=0 cellpadding=0
- style='border-collapse:collapse;border:none'>
- <tr>
-  <td colspan=5 style='border:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p><a name="Table_A2a"><b><i>Table A2a: </i></b>Daily-mean 2-d atmosphere
-  data (longitude, latitude, time:day).  It is recommended that the daily
-  means be computed for intervals beginning at 0 Z and ending the following </a>midnight at 0Z.  Except for  the temperature (mean, min., and max.) and
-  precipitation fields, the following daily-mean data should be provided for
-  just one ensemble member per scenario.  Also report data only for the
-  years specified in the table at the end of this document. </p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b> </b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>CF standard_name
-  </b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>output variable
-  name </b></p>
-  </td>
-  <td width=65 style='width:48.75pt;border:inset #111111 1.0pt;border-left:
-  none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>units </b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>notes </b></p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>1 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>air_pressure_at_sea_level
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>psl </p>
-  </td>
-  <td width=65 style='width:48.75pt;border-top:none;border-left:none;
-  border-bottom:inset #111111 1.0pt;border-right:inset #111111 1.0pt;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>Pa </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal> </p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>2 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>precipitation_flux </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>pr </p>
-  </td>
-  <td width=65 style='width:48.75pt;border-top:none;border-left:none;
-  border-bottom:inset #111111 1.0pt;border-right:inset #111111 1.0pt;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>kg m<sup>-2</sup> s<sup>-1</sup>
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>includes both liquid and solid phases.</p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>3 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>air_temperature</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>tasmin </p>
-  </td>
-  <td width=65 style='width:48.75pt;border-top:none;border-left:none;
-  border-bottom:inset #111111 1.0pt;border-right:inset #111111 1.0pt;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>K </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>daily-minimum near-surface (usually, 2 meter) air
-  temperature.  Consistent with the CF-conventions, the cell_methods
-  attribute should specify "time: minimum" (automatically done by
-  CMOR);  The CMOR singleton dimension default value of 2 m can be
-  overridden, if absolutely necessary, by redefining axis "height1".</p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>4 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>air_temperature</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>tasmax </p>
-  </td>
-  <td width=65 style='width:48.75pt;border-top:none;border-left:none;
-  border-bottom:inset #111111 1.0pt;border-right:inset #111111 1.0pt;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>K </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>daily-maximum near-surface (usually, 2 meter) air
-  temperature.  Consistent with the CF-conventions, the cell_methods
-  attribute should specify "time: maximum" (automatically done by
-  CMOR).  The CMOR singleton dimension default value of 2 m can be
-  overridden, if absolutely necessary, by redefining axis "height1".</p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>5 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>air_temperature</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>tas </p>
-  </td>
-  <td width=65 style='width:48.75pt;border-top:none;border-left:none;
-  border-bottom:inset #111111 1.0pt;border-right:inset #111111 1.0pt;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>K </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>daily-mean near-surface (usually, 2 meter) air
-  temperature;  The CMOR singleton dimension default value of 2 m can be
-  overridden, if absolutely necessary, by redefining axis "height1".</p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>6 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>surface_upward_latent_heat_flux
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>hfls </p>
-  </td>
-  <td width=65 style='width:48.75pt;border-top:none;border-left:none;
-  border-bottom:inset #111111 1.0pt;border-right:inset #111111 1.0pt;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>W m<sup>-2</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal> </p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>7 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>surface_upward_sensible_heat_flux
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>hfss </p>
-  </td>
-  <td width=65 style='width:48.75pt;border-top:none;border-left:none;
-  border-bottom:inset #111111 1.0pt;border-right:inset #111111 1.0pt;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>W m<sup>-2</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal> </p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>8 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>surface_downwelling_longwave_flux_in_air</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>rlds </p>
-  </td>
-  <td width=65 style='width:48.75pt;border-top:none;border-left:none;
-  border-bottom:inset #111111 1.0pt;border-right:inset #111111 1.0pt;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>W m<sup>-2</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal> </p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>9 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>surface_upwelling_longwave_flux_in_air
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>rlus </p>
-  </td>
-  <td width=65 style='width:48.75pt;border-top:none;border-left:none;
-  border-bottom:inset #111111 1.0pt;border-right:inset #111111 1.0pt;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>W m<sup>-2</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal> </p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>10 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>surface_downwelling_shortwave_flux_in_air
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>rsds </p>
-  </td>
-  <td width=65 style='width:48.75pt;border-top:none;border-left:none;
-  border-bottom:inset #111111 1.0pt;border-right:inset #111111 1.0pt;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>W m<sup>-2</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal> </p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>11 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>surface_upwelling_shortwave_flux_in_air
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>rsus </p>
-  </td>
-  <td width=65 style='width:48.75pt;border-top:none;border-left:none;
-  border-bottom:inset #111111 1.0pt;border-right:inset #111111 1.0pt;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>W m<sup>-2</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal> </p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>12 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>eastward_wind</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>uas </p>
-  </td>
-  <td width=65 style='width:48.75pt;border-top:none;border-left:none;
-  border-bottom:inset #111111 1.0pt;border-right:inset #111111 1.0pt;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>m s<sup>-1</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>near-surface (usually, 10 meters) eastward component of
-  wind.  The CMOR singleton dimension default value of 10 m can be
-  overridden, if absolutely necessary, by redefining axis "height2".</p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>13 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>northward_wind</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>vas </p>
-  </td>
-  <td width=65 style='width:48.75pt;border-top:none;border-left:none;
-  border-bottom:inset #111111 1.0pt;border-right:inset #111111 1.0pt;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>m s<sup>-1</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>near-surface (usually, 10 meters) northward component of
-  wind.  The CMOR singleton dimension default value of 10 m can be
-  overridden, if absolutely necessary, by redefining axis "height2".</p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>14 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>toa_outgoing_longwave_flux
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>rlut </p>
-  </td>
-  <td width=65 style='width:48.75pt;border-top:none;border-left:none;
-  border-bottom:inset #111111 1.0pt;border-right:inset #111111 1.0pt;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>W m<sup>-2</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>at the top of the atmosphere (to be compared with
-  satellite measurements)</p>
-  </td>
- </tr>
-</table>
-
-<p> </p>
-
-<table class=MsoNormalTable border=1 cellspacing=0 cellpadding=0
- style='border-collapse:collapse;border:none'>
- <tr>
-  <td colspan=5 style='border:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p><a name="Table_A2b"><b><i>Table A2b: </i></b>Daily-mean 3-d atmosphere
-  data (longitude, latitude, pressure, time:day).  It is recommended that
-  the daily means be computed for intervals beginning at 0 Z and ending the
-  following </a>midnight at 0Z.  This data should be provided for just one
-  ensemble member per scenario, and for only the years specified in the table
-  at the end of this document. Also this data must be provided on pressure
-  levels, including at least the following subset of standard levels:1000, 925,
-  850, 700, 600, 500, 400, 300, 200 hPa.</p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b> </b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>CF standard_name
-  </b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>output variable
-  name </b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>units </b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b> notes </b></p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>1 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>air_temperature </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>ta </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>K </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal> </p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>2 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>eastward_wind </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>ua </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>m s<sup>-1</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal> </p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>3 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>northward_wind </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>va </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>m s<sup>-1</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal> </p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>4 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>specific_humidity </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>hus </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>1 (i.e.,
-  dimensionless fraction) </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal> </p>
-  </td>
- </tr>
-</table>
-
-<p> </p>
-
-<b><span style='font-size:13.5pt;font-family:"Times New Roman";color:navy'><br
-clear=all style='page-break-before:always'>
-</span></b>
-
-<h3><span style='color:navy'>3-hourly data</span></h3>
-
-<table class=MsoNormalTable border=1 cellspacing=0 cellpadding=0
- style='border-collapse:collapse;border:none'>
- <tr>
-  <td colspan=5 style='border:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p><a name="Table_A3"><b><i>Table A3: </i>3-bourly 2-d atmosphere data
-  (longitude, latitude, time:3hour at 0, 3, 6, 9, 12, 15, 18, 21 Z). </b>The
-  data should be provided for just one ensemble member per scenario, and for the
-  years specified in the table at the end of this document.  3-hourly
-  precipitation should be an average over the 3-hour intervals, 0-3Z, 3-6Z, ...
-  21-24Z; all other 3-hourly data should be instantaneous "snapshots"
-  at 0, 3, 6, ... 21Z.</a></p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b> </b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>CF standard_name
-  </b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>output variable
-  name </b></p>
-  </td>
-  <td width=65 style='width:48.75pt;border:inset #111111 1.0pt;border-left:
-  none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>units </b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>notes </b></p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>1 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>air_pressure_at_sea_level
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>psl </p>
-  </td>
-  <td width=65 style='width:48.75pt;border-top:none;border-left:none;
-  border-bottom:inset #111111 1.0pt;border-right:inset #111111 1.0pt;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>Pa </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal> </p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>2 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>precipitation_flux </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>pr </p>
-  </td>
-  <td width=65 style='width:48.75pt;border-top:none;border-left:none;
-  border-bottom:inset #111111 1.0pt;border-right:inset #111111 1.0pt;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>kg m<sup>-2</sup> s<sup>-1</sup>
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>includes both liquid and solid phases.</p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>3 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>air_temperature</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>tas </p>
-  </td>
-  <td width=65 style='width:48.75pt;border-top:none;border-left:none;
-  border-bottom:inset #111111 1.0pt;border-right:inset #111111 1.0pt;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>K </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>near-surface (usually, 2 meter) air temperature (CMOR
-  singleton dimension table entry is "height1").</p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>4 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>surface_upward_latent_heat_flux
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>hfls </p>
-  </td>
-  <td width=65 style='width:48.75pt;border-top:none;border-left:none;
-  border-bottom:inset #111111 1.0pt;border-right:inset #111111 1.0pt;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>W m<sup>-2</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal> </p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>5 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>surface_upward_sensible_heat_flux
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>hfss </p>
-  </td>
-  <td width=65 style='width:48.75pt;border-top:none;border-left:none;
-  border-bottom:inset #111111 1.0pt;border-right:inset #111111 1.0pt;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>W m<sup>-2</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal> </p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>6 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>surface_downwelling_longwave_flux_in_air</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>rlds </p>
-  </td>
-  <td width=65 style='width:48.75pt;border-top:none;border-left:none;
-  border-bottom:inset #111111 1.0pt;border-right:inset #111111 1.0pt;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>W m<sup>-2</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal> </p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>7 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>surface_upwelling_longwave_flux_in_air</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>rlus </p>
-  </td>
-  <td width=65 style='width:48.75pt;border-top:none;border-left:none;
-  border-bottom:inset #111111 1.0pt;border-right:inset #111111 1.0pt;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>W m<sup>-2</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal> </p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>8 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>surface_downwelling_shortwave_flux_in_air</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>rsds </p>
-  </td>
-  <td width=65 style='width:48.75pt;border-top:none;border-left:none;
-  border-bottom:inset #111111 1.0pt;border-right:inset #111111 1.0pt;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>W m<sup>-2</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal> </p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>9 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>surface_upwelling_shortwave_flux_in_air</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>rsus </p>
-  </td>
-  <td width=65 style='width:48.75pt;border-top:none;border-left:none;
-  border-bottom:inset #111111 1.0pt;border-right:inset #111111 1.0pt;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>W m<sup>-2</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal> </p>
-  </td>
- </tr>
-</table>
-
-<p> </p>
-
-<p> </p>
-
-<b><span style='font-size:13.5pt;font-family:"Times New Roman";color:navy'><br
-clear=all style='page-break-before:always'>
-</span></b>
-
-<h3><span style='color:navy'>Extremes indices</span></h3>
-
-<p>The following ten "extremes indices" are described in Frich, P,
-Alexander LV, Della-Marta P, Gleason B, Haylock M, Klein Tank AMG, Peterson T,
-2002: Observed coherent changes in climate extremes during the second half of
-the twentieth century, <i>Climate Research 19</i>: 193-212. Frich et al.
-describe these as "derived data in the form of annual indicator time
-series" and present them (as derived from observations) as a function of
-longitude, latitude, and year. See <a
-href="http://www.cru.uea.ac.uk/cru/projects/stardex">http://www.cru.uea.ac.uk/cru/projects/stardex</a>
-for sample computer code and documentation. </p>
-
-<table class=MsoNormalTable border=1 cellspacing=0 cellpadding=0
- style='border-collapse:collapse;border:none'>
- <tr>
-  <td colspan=4 style='border:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p><a name="Table_A4"><b><i>Table A4: </i>Extremes indices (longitude,
-  latitude, time:year) from Frich et al. (their Table 1). </b></a></p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b> </b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>output variable
-  name </b></p>
-  </td>
-  <td width=70 style='width:52.5pt;border:inset #111111 1.0pt;border-left:none;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>units </b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>notes </b></p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>1 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>fd </p>
-  </td>
-  <td width=70 style='width:52.5pt;border-top:none;border-left:none;border-bottom:
-  inset #111111 1.0pt;border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>days </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>Total number of frost days (days with absolute minimum
-  temperature < 0 deg C)</p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>2 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>etr </p>
-  </td>
-  <td width=70 style='width:52.5pt;border-top:none;border-left:none;border-bottom:
-  inset #111111 1.0pt;border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>K </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>Intra-annual extreme temperature range: difference between
-  the highest temperature of any given calendar year (T<sub>h</sub>) and the
-  lowest temperature of the same calendar year (T<sub>i</sub>)</p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>3 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>gsl </p>
-  </td>
-  <td width=70 style='width:52.5pt;border-top:none;border-left:none;border-bottom:
-  inset #111111 1.0pt;border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>days </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>Growing season length: period between when T<sub>day</sub>
-  > 5 deg C for > 5 d and T<sub>day</sub> < 5 deg C for > 5 d</p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>4 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>hwdi </p>
-  </td>
-  <td width=70 style='width:52.5pt;border-top:none;border-left:none;border-bottom:
-  inset #111111 1.0pt;border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>days </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>Heat wave duration index: maximum period > 5
-  consecutive days with T<sub>max</sub> > 5 deg C above the 1961-1990 daily
-  T<sub>max</sub> normal</p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>5 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>tn90 </p>
-  </td>
-  <td width=70 style='width:52.5pt;border-top:none;border-left:none;border-bottom:
-  inset #111111 1.0pt;border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>% </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>Fraction (expressed as a percentage) of time T<sub>min</sub>
-  > 90th percentile of daily minimum temperature, where percentiles are for
-  the 1961-1990 base period.</p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>6 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>r10 </p>
-  </td>
-  <td width=70 style='width:52.5pt;border-top:none;border-left:none;border-bottom:
-  inset #111111 1.0pt;border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>days </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>No. of days with precipitation greater than or equal to 10
-  mm d<sup>-1</sup></p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>7 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>cdd </p>
-  </td>
-  <td width=70 style='width:52.5pt;border-top:none;border-left:none;border-bottom:
-  inset #111111 1.0pt;border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>days </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>Maximum number of consecutive dry days (R<sub>day</sub>
-  < 1 mm)</p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>8 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>r5d </p>
-  </td>
-  <td width=70 style='width:52.5pt;border-top:none;border-left:none;border-bottom:
-  inset #111111 1.0pt;border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>kg m<sup>-2</sup> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>Maximum 5 d precipitation total</p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>9 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>sdii </p>
-  </td>
-  <td width=70 style='width:52.5pt;border-top:none;border-left:none;border-bottom:
-  inset #111111 1.0pt;border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>kg m<sup>-2 </sup>s<sup>-1</sup>
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>Simple daily intensity index: annual total / number of R<sub>day</sub>
-  greater than or equal to 1 mm d<sup>-1</sup></p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>10 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>r95t </p>
-  </td>
-  <td width=70 style='width:52.5pt;border-top:none;border-left:none;border-bottom:
-  inset #111111 1.0pt;border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>% </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>Fraction (expressed as a percentage) of annual total
-  precipitation due to events exceeding the 1961-1990 95th percentile</p>
-  </td>
- </tr>
-</table>
-
-<p> </p>
-
-<p> </p>
-
-<h2><a name="Lower_priority_output">Lower priority output fields</a></h2>
-
-<h3><span style='color:navy'>ISCCP simulator output </span></h3>
-
-<p>Cloud-related output that matches the quantities observed by the
-International Satellite Cloud Climatology Project. This output is produced by
-the ISCCP simulator code and which usually must be run in the climate model,
-not as a post-processing step. See the Cloud Forcing Model Intercomparison Web
-site <a href="http://www.cfmip.net">(http://www.cfmip.net)</a> for details of
-the ISCCP simulator -- where to get code, settings for climate models, etc.</p>
-
-<table class=MsoNormalTable border=1 cellspacing=0 cellpadding=0
- style='border-collapse:collapse;border:none'>
- <tr>
-  <td colspan=4 style='border:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p><a name="Table_A1d"><b><i>Table A1d: Monthly-mean ISCCP simulator data
-  (longitude, latitude, pressure2, tau, time).  </i></b>Data should be
-  sampled no less frequently than every 15 hours.  The ISCCP cloud layers
-  refer to the following ranges (hPa): 800 and higher, 800-680, 680-560,
-  560-440, 440-310, 310-180, and 180-0.  The ISCCP optical depth (tau)
-  categories refer to the following ranges: 0-0.3, 0.3-1.3, 1.3-3.6, 3.6-9.4,
-  9.4-23, 23-60, and >60.  The preferred time periods and experiments
-  for which this data will be collected have not be agreed upon yet, but
-  discussions are underway.  Anyone having an opinion about this is
-  invited to participate in the discussion.</a></p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>CF standard_name
-  </b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>output variable
-  name </b></p>
-  </td>
-  <td width=50 style='width:37.5pt;border:inset #111111 1.0pt;border-left:none;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>units </b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>notes</b></p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>isccp_cloud_area_fraction</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>clisccp</p>
-  </td>
-  <td width=50 style='width:37.5pt;border-top:none;border-left:none;border-bottom:
-  inset #111111 1.0pt;border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>1 (i.e.,
-  dimensionless fraction)</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>as seen from above, mean fraction of grid column occupied
-  by cloud of optical depths and heights specified by the tau and pressure
-  intervals given above;  for each longitude and latitude grid column, the
-  ISCCP simulator output comprises a 7x7 (pressure x tau) matrix of values matching
-  those of the satellite. With CMOR, use "pressure2" to define the
-  vertical coordinates for this variable.</p>
-  </td>
- </tr>
-</table>
-
-<p> </p>
-
-<h3><span style='color:navy'>Radiative forcing </span></h3>
-
-<p>To enable an analysis of feedbacks, which explain differences in model
-sensitivity, the WGCM urges groups to calculate, if at all practical, the
-clear-sky and all-sky shortwave and longwave radiative forcing. These four
-fields should be a function of longitude latitude and time (monthly sampling).
-No standard method for calculating radiative forcing has been agreed on by the
-WGCM, but one good option would be to follow the method suggested in Appendix A
-of a letter from the IPCC co-chairs (see <a href="Appendix_A.php">http://www-pcmdi.llnl.gov/ipcc/Appendix_A.php</a>).
-The highest priority (and easiest) calculation of this kind is to calculate
-monthly-mean values of radiative forcing for doubled CO2. Calculation of
-clear-sky radiative forcing as well as all-sky forcing will make it possible to
-estimate the importance of cloud feedbacks in the 1% / year CO2 simulations and
-the 2xCO2 equilibrium simulations (assuming the radiative forcing scales with
-the logarithm of CO2 concentration). The evolution of forcing fields for any
-and all other climate change agents are also welcome.  A rough priority
-for forcing calculations follows:</p>
-
-<ol start=1 type=1>
- <li class=MsoNormal>CO2 doubling (<i>Please provide this at the very least!</i>)</li>
- <li class=MsoNormal>Total forcing (from all anthropogenic influences) for SRES
-     A1b, B1, and A2 (reported at least at the end of the simulation, and as
-     frequently as necessary to characterize, approximately, the forcing changes
-     throughout the experiment.</li>
- <li class=MsoNormal>CO2 quadrupling( to check that logarithmic scaling holds).</li>
- <li class=MsoNormal>Total anthropogenic forcing for the historical run
-     (sampled every 10 years or more frequently)</li>
- <li class=MsoNormal>Total natural forcing (if any) for the historical run
-     (sampled as frequently as necessary)</li>
- <li class=MsoNormal>Forcing due to individual constituents (e.g., volcanic
-     aerosols, anthropogenic aerosols, individual greenhouse gases) for the
-     historical run.</li>
- <li class=MsoNormal>Forcing due to individual constituents for the experiments
-     listed in 2.</li>
-</ol>
-
-<table class=MsoNormalTable border=1 cellspacing=0 cellpadding=0
- style='border-collapse:collapse;border:none'>
- <tr>
-  <td colspan=5 style='border:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p><a name="Table_A5"><b><i>Table A5:</i> Monthly-mean 2-d radiative forcing
-  data (longitude, latitude, time). </b>For the following output fields choose
-  the variable name corresponding to the method you used to calculate radiative
-  forcing and replace the "?" suffix with one of the following
-  abbreviations for different forcing agents: g (all greenhouse gases), co2
-  (carbon dioxide only), s (total sulfate aerosol), sd  (direct effect
-  only of sulfate aersol), si (indirect effect only of sulfate aerosols), bc
-  ("black carbon"), o (ozone), to (tropospheric ozone only), so
-  (stratospheric ozone only), l (vegetation and other land surface
-  changes),  a (all anthropogenic factors, inclusive), v (volcanic
-  aerosols), sun (solar constant changes), or n (all natural factors,
-  inclusive).  Use the term that is most specific (e.g., if the only
-  anthropogenic effect included in the model simulation is an increase in
-  carbon dioxide, use "co2", not "a" or
-  "g").  A complete example is: rsftoaa_a.</a></p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b> </b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>CF standard_name
-  </b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>output variable
-  name </b></p>
-  </td>
-  <td width=50 style='width:37.5pt;border:inset #111111 1.0pt;border-left:none;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>units </b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>notes</b></p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>1 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p align=center style='margin:0in;margin-bottom:.0001pt;text-align:center'>toa_adjusted_shortwave_forcing</p>
-  <p align=center style='margin:0in;margin-bottom:.0001pt;text-align:center'>tropopause_adjusted_shortwave_forcing</p>
-  <p align=center style='margin:0in;margin-bottom:.0001pt;text-align:center'>toa_instantaneous_shortwave_forcing</p>
-  <p align=center style='margin:0in;margin-bottom:.0001pt;text-align:center'>tropopause_instantaneous_shortwave_forcing</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p align=center style='margin:0in;margin-bottom:.0001pt;text-align:center'>rsftoaa_?</p>
-  <p align=center style='margin:0in;margin-bottom:.0001pt;text-align:center'>rsftropa_?</p>
-  <p align=center style='margin:0in;margin-bottom:.0001pt;text-align:center'>rsftoai_?</p>
-  <p align=center style='margin:0in;margin-bottom:.0001pt;text-align:center'>rsftropi_?</p>
-  </td>
-  <td width=50 style='width:37.5pt;border-top:none;border-left:none;border-bottom:
-  inset #111111 1.0pt;border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>W m<sup>-2</sup> 
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>all-sky conditions, defined to be positive down. Choose
-  appropriate variable, and indicate in the "comment" attribute
-  (associated with the variable) any particulars (e.g., 200 hPa taken as
-  approximate tropopause). For tropopause, CMOR will by default record a
-  singleton dimension value of 200 hPa.  To override this value redefine
-  pressure1.</p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>2 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p align=center style='margin:0in;margin-bottom:.0001pt;text-align:center'>toa_adjusted_longwave_forcing</p>
-  <p align=center style='margin:0in;margin-bottom:.0001pt;text-align:center'>tropopause_adjusted_longwave_forcing</p>
-  <p align=center style='margin:0in;margin-bottom:.0001pt;text-align:center'>toa_instantaneous_longwave_forcing</p>
-  <p align=center style='margin:0in;margin-bottom:.0001pt;text-align:center'>tropopause_instantaneous_longwave_forcing</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p align=center style='margin:0in;margin-bottom:.0001pt;text-align:center'>rlftoaa_?</p>
-  <p align=center style='margin:0in;margin-bottom:.0001pt;text-align:center'>rlftropa_?</p>
-  <p align=center style='margin:0in;margin-bottom:.0001pt;text-align:center'>rlftoai_?</p>
-  <p align=center style='margin:0in;margin-bottom:.0001pt;text-align:center'>rlftropi_?</p>
-  </td>
-  <td width=50 style='width:37.5pt;border-top:none;border-left:none;border-bottom:
-  inset #111111 1.0pt;border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>W m<sup>-2</sup></p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>all-sky conditions, defined to be positive down. Choose
-  appropriate variable, and indicate in the "comment" attribute
-  (associated with the variable) any particulars (e.g., 200 hPa taken as
-  approximate tropopause).  For tropopause, CMOR will by default record a
-  singleton dimension value of 200 hPa.   To override this value
-  redefine pressure1.</p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>3 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p align=center style='margin:0in;margin-bottom:.0001pt;text-align:center'>toa_adjusted_shortwave_forcing_assuming_clear_sky</p>
-  <p align=center style='margin:0in;margin-bottom:.0001pt;text-align:center'>tropopause_adjusted_shortwave_forcing_assuming_clear_sky</p>
-  <p align=center style='margin:0in;margin-bottom:.0001pt;text-align:center'>toa_instantaneous_shortwave_forcing_assuming_clear_sky</p>
-  <p align=center style='margin:0in;margin-bottom:.0001pt;text-align:center'>tropopause_instantaneous_shortwave_forcing_assuming_clear_sky</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p align=center style='margin:0in;margin-bottom:.0001pt;text-align:center'>rsftoaacs_?</p>
-  <p align=center style='margin:0in;margin-bottom:.0001pt;text-align:center'>rsftropacs_?</p>
-  <p align=center style='margin:0in;margin-bottom:.0001pt;text-align:center'>rsftoaics_?</p>
-  <p align=center style='margin:0in;margin-bottom:.0001pt;text-align:center'>rsftropics_?</p>
-  </td>
-  <td width=50 style='width:37.5pt;border-top:none;border-left:none;border-bottom:
-  inset #111111 1.0pt;border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>W m<sup>-2</sup></p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>clear-sky calculation, defined to be positive down. Choose
-  appropriate variable, and indicate in the "comment" attribute
-  (associated with the variable) any particulars (e.g., 200 hPa taken as
-  approximate tropopause).  For tropopause, CMOR will by default record a
-  singleton dimension value of 200 hPa.   To override this value
-  redefine pressure1.</p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>4 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p align=center style='margin:0in;margin-bottom:.0001pt;text-align:center'>toa_adjusted_longwave_forcing_assuming_clear_sky</p>
-  <p align=center style='margin:0in;margin-bottom:.0001pt;text-align:center'>tropopause_adjusted_longwave_forcing_assuming_clear_sky</p>
-  <p align=center style='margin:0in;margin-bottom:.0001pt;text-align:center'>toa_instantaneous_longwave_forcing_assuming_clear_sky</p>
-  <p align=center style='margin:0in;margin-bottom:.0001pt;text-align:center'>tropopause_instantaneous_longwave_forcing_assuming_clear_sky</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p align=center style='margin:0in;margin-bottom:.0001pt;text-align:center'>rlftoaacs_?</p>
-  <p align=center style='margin:0in;margin-bottom:.0001pt;text-align:center'>rlftropacs_?</p>
-  <p align=center style='margin:0in;margin-bottom:.0001pt;text-align:center'>rlftoaics_?</p>
-  <p align=center style='margin:0in;margin-bottom:.0001pt;text-align:center'>rlftropics_?</p>
-  </td>
-  <td width=50 style='width:37.5pt;border-top:none;border-left:none;border-bottom:
-  inset #111111 1.0pt;border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>W m<sup>-2</sup></p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>clear-sky calculation, defined to be positive down. Choose
-  appropriate variable, and indicate in the "comment" attribute
-  (associated with the variable) any particulars (e.g., 200 hPa taken as
-  approximate tropopause).  For tropopause, CMOR will by default record a
-  singleton dimension value of 200 hPa.   To override this value
-  redefine pressure1.</p>
-  </td>
- </tr>
-</table>
-
-<p> </p>
-
-<b><span style='font-size:13.5pt;font-family:"Times New Roman";color:navy'><br
-clear=all style='page-break-before:always'>
-</span></b>
-
-<h3><span style='color:navy'>Sulfate aerosol data </span></h3>
-
-<p>Provide both the column integrated 2-D fields and the 3-D fields on the
-following pressure levels: 1004, 983, 953, 910, 848, 765, 663, 546, 425, 318,
-238, 183, 140, 103, 72, 47, 27, 13, and 4 hPa.</p>
-
-<table class=MsoNormalTable border=1 cellspacing=0 cellpadding=0
- style='border-collapse:collapse;border:none'>
- <tr style='height:30.0pt'>
-  <td colspan=5 style='border:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p><a name="Table_A1e"><b><i>Table A1e:</i> Monthly-mean 2-d and 3-d sulfate
-  aerosol fields.</b></a></p>
-  </td>
- </tr>
- <tr style='height:30.0pt'>
-  <td style='border:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:30.0pt'>
-  <p align=center style='text-align:center'><b> </b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:30.0pt'>
-  <p align=center style='text-align:center'><b>CF standard_name </b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:30.0pt'>
-  <p align=center style='text-align:center'><b>output variable name </b></p>
-  </td>
-  <td width=80 style='width:60.0pt;border:inset #111111 1.0pt;border-left:none;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p align=center style='text-align:center'><b>units </b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:30.0pt'>
-  <p align=center style='text-align:center'><b>notes</b></p>
-  </td>
- </tr>
- <tr style='height:16.5pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:16.5pt'>
-  <p>1</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:16.5pt'>
-  <p align=center style='text-align:center'>mass_concentration_of_sulfate_aerosol_in_air
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:16.5pt'>
-  <p align=center style='text-align:center'>trsul</p>
-  </td>
-  <td width=80 style='width:60.0pt;border-top:none;border-left:none;border-bottom:
-  inset #111111 1.0pt;border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:16.5pt'>
-  <p align=center style='text-align:center'>1e-9 kg m<sup>-3</sup></p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:16.5pt'>
-  <p>3-d field (longitude, latitude, pressure3, time)</p>
-  </td>
- </tr>
- <tr style='height:25.5pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:25.5pt'>
-  <p>2</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:25.5pt'>
-  <p align=center style='text-align:center'>atmosphere_content_of_sulfate_aerosol</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:25.5pt'>
-  <p align=center style='text-align:center'>trsult</p>
-  </td>
-  <td width=80 style='width:60.0pt;border-top:none;border-left:none;border-bottom:
-  inset #111111 1.0pt;border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:25.5pt'>
-  <p align=center style='text-align:center'>1e-6 kg m<sup>-2</sup></p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:25.5pt'>
-  <p>2-d field, vertically integrated through atmospheric column (longitude,
-  latitude, time)</p>
-  </td>
- </tr>
-</table>
-
-<p> </p>
-
-<h3><span style='color:navy'>Additional Monthly-mean fields </span></h3>
-
-<table class=MsoNormalTable border=1 cellspacing=0 cellpadding=0
- style='border-collapse:collapse;border:none'>
- <tr>
-  <td colspan=5 style='border:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p><a name="Table_O1f"><b><i>Table O1f: </i>Monthly-mean 1-d and 2-d ocean
-  fields. </b></a></p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b> </b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>CF standard_name
-  </b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>output variable
-  name </b></p>
-  </td>
-  <td width=70 style='width:52.5pt;border:inset #111111 1.0pt;border-left:none;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>units </b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>notes</b></p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>1</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>ocean_mixed_layer_thickness</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>zmlo</p>
-  </td>
-  <td width=70 style='width:52.5pt;border-top:none;border-left:none;border-bottom:
-  inset #111111 1.0pt;border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>m</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>mixed layer depth; (longitude, latitude, time).  No
-  agreement has been reached as to the precise definition of the mixed layer
-  depth, so this field may be of limited value.</p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>2</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>northward_ocean_heat_transport_due_to_diffusion</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>htovdiff</p>
-  </td>
-  <td width=70 style='width:52.5pt;border-top:none;border-left:none;border-bottom:
-  inset #111111 1.0pt;border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>W</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>vertically integrated northward heat transport by
-  unresolved processes, summed over longitude for each of 3 basins (Atlantic,
-  Indian, Pacific) and global ocean; (latitude, region, time); include
-  specifically contributions of the 'bolus velocity' that arise, for example,
-  in the Gent-McWilliams parameterization.</p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>3</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>northward_ocean_heat_transport_due_to_gyre</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>htovgyre</p>
-  </td>
-  <td width=70 style='width:52.5pt;border-top:none;border-left:none;border-bottom:
-  inset #111111 1.0pt;border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>W</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>vertically integrated northward heat transport by gyre
-  circulation (including heat advection by sea ice), summed over longitude for
-  each of 3 basins (Atlantic, Indian, Pacific) and global ocean; (latitude,
-  region, time); exclude contributions of the 'bolus velocity' that arise, for
-  example, in the Gent-McWilliams parameterization.</p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>4</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>northward_ocean_heat_transport_due_to_overturning</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>htovovrt</p>
-  </td>
-  <td width=70 style='width:52.5pt;border-top:none;border-left:none;border-bottom:
-  inset #111111 1.0pt;border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>W</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>vertically integrated northward heat transport by
-  overturning circulation, summed over longitude for each of 3 basins
-  (Atlantic, Indian, Pacific) and global ocean; (latitude, region, time);
-  exclude contributions of the 'bolus velocity' that arise, for example, in the
-  Gent-McWilliams parameterization.</p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>5</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>northward_ocean_salt_transport_due_to_diffusion</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>sltovdiff</p>
-  </td>
-  <td width=70 style='width:52.5pt;border-top:none;border-left:none;border-bottom:
-  inset #111111 1.0pt;border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>kg s<sup>-1</sup></p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>vertically integrated northward salt transport by
-  unresolved processes, summed over longitude for each of 3 basins (Atlantic, Indian, Pacific) and global ocean; (latitude, region, time)</p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>6</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>northward_ocean_salt_transport_due_to_gyre</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>sltovgyre</p>
-  </td>
-  <td width=70 style='width:52.5pt;border-top:none;border-left:none;border-bottom:
-  inset #111111 1.0pt;border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>kg s<sup>-1</sup></p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>vertically integrated northward salt transport by gyre
-  circulation (including salt advection by sea ice), summed over longitude for
-  each of 3 basins (Atlantic, Indian, Pacific) and global ocean; (latitude,
-  region, time)</p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>7</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>northward_ocean_salt_transport_due_to_overturning</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>sltovovrt</p>
-  </td>
-  <td width=70 style='width:52.5pt;border-top:none;border-left:none;border-bottom:
-  inset #111111 1.0pt;border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>kg s<sup>-1</sup></p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>vertically integrated northward salt transport by
-  overturning circulation, summed over longitude for each of 3 basins (Atlantic, Indian, Pacific) and global ocean; (latitude, region, time)</p>
-  </td>
- </tr>
-</table>
-
-<p> </p>
-
-<span style='font-size:12.0pt;font-family:"Times New Roman"'><br clear=all
-style='page-break-before:always'>
-</span>
-
-<p> </p>
-
-<table class=MsoNormalTable border=1 cellspacing=0 cellpadding=0
- style='border-collapse:collapse;border:none'>
- <tr>
-  <td colspan=5 style='border:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p><a name="Table_O1g"><b><i>Table O1g: </i>Monthly-mean 2-d sea ice fields
-  (longitude, latitude, time:month).</b></a></p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b> </b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>CF standard_name
-  </b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>output variable
-  name </b></p>
-  </td>
-  <td width=75 style='width:56.25pt;border:inset #111111 1.0pt;border-left:
-  none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>units </b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>notes</b></p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>1</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>water_evaporation_flux_where_sea_ice</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>sbl</p>
-  </td>
-  <td width=75 style='width:56.25pt;border-top:none;border-left:none;
-  border-bottom:inset #111111 1.0pt;border-right:inset #111111 1.0pt;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>kg m<sup>-2</sup> s<sup>-1</sup></p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>Compute the average rate that water mass evaporates (or
-  sublimates) from the sea ice surface (i.e., kg/s) divided by the average area
-  of the grid cell covered by sea ice. This quantity multiplied both by the
-  average area covered by sea ice and by the length of the month should yield
-  the total mass of water evaporated (or sublimated) from the sea ice. 
-  Report as 0.0 in regions free of sea ice.</p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>2</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>upward_sea_ice_basal_heat_flux</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>hfsib</p>
-  </td>
-  <td width=75 style='width:56.25pt;border-top:none;border-left:none;
-  border-bottom:inset #111111 1.0pt;border-right:inset #111111 1.0pt;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>W m<sup>-2</sup></p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>Compute the average rate that heat flows up at the base of
-  the sea ice (i.e., Watts) divided by the average area of the grid cell
-  covered by sea ice. This quantity multiplied both by the average area covered
-  by sea ice and by the length of the month should yield the total energy
-  flowing into the ice from below. Report as 0.0 in regions free of sea ice.</p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>3</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>downward_sea_ice_basal_salt_flux</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>sltfsib</p>
-  </td>
-  <td width=75 style='width:56.25pt;border-top:none;border-left:none;
-  border-bottom:inset #111111 1.0pt;border-right:inset #111111 1.0pt;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>kg m<sup>-2</sup> s<sup>-1</sup></p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>Compute the average rate that salt mass flows down at the
-  base of the sea ice (i.e., kg/s) divided by the average area of the grid cell
-  covered by sea ice. This quantity multiplied both by the average area covered
-  by sea ice and by the length of the month should yield the total salt mass
-  flowing into the ocean at the base of the sea ice. Report as 0.0 in regions
-  free of sea ice.</p>
-  </td>
- </tr>
-</table>
-
-<p> </p>
-
-<span style='font-size:12.0pt;font-family:"Times New Roman"'><br clear=all
-style='page-break-before:always'>
-</span>
-
-<p> </p>
-
-<table class=MsoNormalTable border=1 cellspacing=0 cellpadding=0
- style='border-collapse:collapse;border:none'>
- <tr style='height:44.25pt'>
-  <td colspan=5 style='border:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:44.25pt'>
-  <p><a name="Table_A1f"><b><i>Table A1f: </i>Monthly-mean surface fields, and
-  prescribed land surface characteristics.</b></a></p>
-  </td>
- </tr>
- <tr style='height:44.25pt'>
-  <td style='border:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:44.25pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b> </b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:44.25pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>CF standard_name
-  </b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:44.25pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>output variable
-  name </b></p>
-  </td>
-  <td width=65 style='width:48.75pt;border:inset #111111 1.0pt;border-left:
-  none;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:44.25pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>units </b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:44.25pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>notes</b></p>
-  </td>
- </tr>
- <tr style='height:58.5pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:58.5pt'>
-  <p class=MsoNormal>1</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:58.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>precipitation_flux_onto_canopy</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:58.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>prveg</p>
-  </td>
-  <td width=65 style='width:48.75pt;border-top:none;border-left:none;
-  border-bottom:inset #111111 1.0pt;border-right:inset #111111 1.0pt;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt;height:58.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>kg m<sup>-2</sup> s<sup>-1</sup>
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:58.5pt'>
-  <p class=MsoNormal>As a function of longitude, latitude, and time, report the
-  precipitation flux intercepted by vegetation canopy (if present in model),
-  averaged over only the land portion of the grid cell; report as
-  "missing" or 0.0 where the land fraction is 0;  </p>
-  </td>
- </tr>
- <tr style='height:58.5pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:58.5pt'>
-  <p class=MsoNormal>2</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:58.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>water_evaporation_flux_from_canopy</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:58.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>evspsblveg</p>
-  </td>
-  <td width=65 style='width:48.75pt;border-top:none;border-left:none;
-  border-bottom:inset #111111 1.0pt;border-right:inset #111111 1.0pt;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt;height:58.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>kg m<sup>-2</sup> s<sup>-1</sup>
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:58.5pt'>
-  <p class=MsoNormal>As a function of longitude, latitude, and time, report the
-  canopy evaporation+sublimation (if present in model), averaged only over the
-  land portion of the grid cell; report as "missing" or 0.0 where the
-  land fraction is 0;  </p>
-  </td>
- </tr>
- <tr style='height:44.25pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:44.25pt'>
-  <p class=MsoNormal>3</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:44.25pt'>
-  <p class=MsoNormal align=center style='text-align:center'>atmosphere_boundary_layer_thickness</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:44.25pt'>
-  <p class=MsoNormal align=center style='text-align:center'>zmla</p>
-  </td>
-  <td width=65 style='width:48.75pt;border-top:none;border-left:none;
-  border-bottom:inset #111111 1.0pt;border-right:inset #111111 1.0pt;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt;height:44.25pt'>
-  <p class=MsoNormal align=center style='text-align:center'>m</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:44.25pt'>
-  <p class=MsoNormal>As a function of longitude, latitude, and time, report the
-  height of the atmospheric boundary layer (if defined in model); No agreement
-  has been reached as to the precise definition of this quantity, so this field
-  may be of limited value.</p>
-  </td>
- </tr>
- <tr style='height:.75pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:.75pt'>
-  <p class=MsoNormal>4</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:.75pt'>
-  <p class=MsoNormal align=center style='text-align:center'>root_depth</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:.75pt'>
-  <p class=MsoNormal align=center style='text-align:center'>rootd</p>
-  </td>
-  <td width=65 style='width:48.75pt;border-top:none;border-left:none;
-  border-bottom:inset #111111 1.0pt;border-right:inset #111111 1.0pt;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt;height:.75pt'>
-  <p class=MsoNormal align=center style='text-align:center'>m</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:.75pt'>
-  <p class=MsoNormal>As a function of longitude and latitude, report the
-  maximum soil depth reachable by plant roots, i.e., the maximum soil depth
-  from which they can extract moisture (if defined in model); report as
-  "missing" or 0.0 where the land fraction is 0;  </p>
-  </td>
- </tr>
- <tr style='height:.75pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:.75pt'>
-  <p class=MsoNormal>5</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:.75pt'>
-  <p class=MsoNormal align=center style='text-align:center'>air_temperature</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:.75pt'>
-  <p class=MsoNormal align=center style='text-align:center'>tasmin </p>
-  </td>
-  <td width=65 style='width:48.75pt;border-top:none;border-left:none;
-  border-bottom:inset #111111 1.0pt;border-right:inset #111111 1.0pt;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt;height:.75pt'>
-  <p class=MsoNormal align=center style='text-align:center'>K </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:.75pt'>
-  <p class=MsoNormal>monthly mean of the daily-minimum near-surface (usually, 2
-  meter) air temperature.  Consistent with the CF-conventions, the
-  cell_methods attribute should specify "time: minimum within days time:
-  mean over days" (automatically done by CMOR);  The CMOR singleton
-  dimension default value of 2 m can be overridden, if absolutely necessary, by
-  redefining axis "height1".</p>
-  </td>
- </tr>
- <tr style='height:.75pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:.75pt'>
-  <p class=MsoNormal>6</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:.75pt'>
-  <p class=MsoNormal align=center style='text-align:center'>air_temperature</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:.75pt'>
-  <p class=MsoNormal align=center style='text-align:center'>tasmax </p>
-  </td>
-  <td width=65 style='width:48.75pt;border-top:none;border-left:none;
-  border-bottom:inset #111111 1.0pt;border-right:inset #111111 1.0pt;
-  padding:1.5pt 1.5pt 1.5pt 1.5pt;height:.75pt'>
-  <p class=MsoNormal align=center style='text-align:center'>K </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:.75pt'>
-  <p class=MsoNormal>monthly mean of the daily-maximum near-surface (usually, 2
-  meter) air temperature.  Consistent with the CF-conventions, the
-  cell_methods attribute should specify "time: maximum within days time:
-  mean over days" (automatically done by CMOR);  The CMOR singleton
-  dimension default value of 2 m can be overridden, if absolutely necessary, by
-  redefining axis "height1".</p>
-  </td>
- </tr>
-</table>
-
-<div class=MsoNormal align=center style='text-align:center'>
-
-<hr size=2 width="100%" align=center>
-
-</div>
-
-<p> </p>
-
-<h2><a name="Coordinate_dimensions.">Coordinate dimensions.</a></h2>
-
-<p>In the tables given above, variables are a function of various coordinate
-variables, which are stored in the netCDF files with the following names and
-units:</p>
-
-<table class=MsoNormalTable border=1 cellspacing=0 cellpadding=0
- style='border-collapse:collapse;border:none'>
- <tr>
-  <td colspan=7 style='border:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p><b><i>Table of Coordinate Dimensions.</i></b></p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b> </b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>CF standard_name
-  </b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>output
-  coordinate variable name </b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>CMOR table
-  "entry" I.D.</b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>units</b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>default value of
-  scalar dimension</b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b> notes </b></p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>1 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>longitude </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>lon</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>longitude</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>degrees_east</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal> </p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>2 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>latitude </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>lat </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>latitude</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>degrees_north</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal> </p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>3 </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>time </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>time</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>time</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p>days_since_??</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>where ?? should be specified in the form year-month-day
-  (e.g., days_since_1800-1-1).</p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>4</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>time</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>time</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>time1</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>days_since_??</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>used for 3-hourly "snapshot" fields in Table A3,
-  where the cell_bounds attribute should be omitted for the time dimension.</p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>5</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>air_pressure</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>plev </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>pressure</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>Pa</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>used for all fields that are a function of pressure except
-  those listed in the next 3 rows below.</p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>6</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>air_pressure</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>plev</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>pressure1</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>Pa</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>20000.</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>used by some near-tropopause radiation fluxes (Table A1a,
-  entries 33-36), and some radiative forcing fields (Table A5, entries 1-4)</p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>7</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>air_pressure</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>plev</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>pressure2</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>Pa</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>used by clisccp in Table A1d</p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>8</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>air_pressure</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>plev</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>pressure3</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>Pa</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>used by trsul in Table A1e</p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>9</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>height</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>height </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>height1</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'> m</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>2.</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>used by tas, huss, tasmin and tasmax in Tables A1a, A2a,
-  and A3.</p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>10</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>height</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>height </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>height2</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>m</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>10.</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>used by uas and vas in Tables A1a and A2a.</p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>11</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>depth</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>depth</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>depth1</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>m </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>0.05</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>used by mrsos in Table A1a; bounds for this scalar
-  dimension should be 0.0 and 0.1 m.</p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>12</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>cloud_optical_depth</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>tau</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>tau</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>1</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>used by clisccp in Table A1d</p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>13</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>atmosphere_sigma_coordinate
-  </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>lev </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>standard_sigma</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>1 (dimensionless)</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>one choice of dimensionless vertical coordinate needed for
-  cl field (cloud fraction).  The following parameters (specified by the
-  CF-standard) are also needed to fully describe this coordinate: ptop, sigma,
-  and ps.</p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>14</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>atmosphere_hybrid_sigma_
-  pressure_coordinate</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>lev</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>standard_hybrid_sigma</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>1 (dimensionless)</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>one choice of dimensionless vertical coordinate needed for
-  cl field (cloud fraction). The following parameters (specified by the
-  CF-standard) are also needed to fully describe this coordinate: p0, a, b, and
-  ps.</p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>15</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>atmosphere_hybrid_sigma_
-  pressure_coordinate</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>lev</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>alternate_hybrid_sigma</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>1 (dimensionless)</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>one choice of dimensionless vertical coordinate needed for
-  cl field (cloud fraction).  The following parameters (specified by the
-  CF-standard) are also needed to fully describe this coordinate: p0, ap, b,
-  and ps.</p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>16</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>atmosphere_hybrid_</p>
-  <p class=MsoNormal align=center style='text-align:center'>height_coordinate</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>lev</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>hybrid_height</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>1</p>
-  <p class=MsoNormal align=center style='text-align:center'>(dimensionless)</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>one choice of dimensionless vertical coordinate needed for
-  cl field (cloud fraction).� The following parameters (specified by the
-  CF-standard) are also needed to fully describe this coordinate: a, b, and
-  orog.</p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>17</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>depth</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>depth</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>depth</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>m</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>for some ocean fields</p>
-  </td>
- </tr>
- <tr>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>18</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>region</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>region</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>none</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'> </p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt'>
-  <p class=MsoNormal>this coordinate is a simple index.  A variable named
-  geo_region must also be stored with the four values:
-  "atlantic_ocean", "indian_ocean",
-  "pacific_ocean", and "global_ocean".</p>
-  </td>
- </tr>
-</table>
-
-<p> </p>
-
-<p> </p>
-
-<b><span style='font-size:18.0pt;font-family:"Times New Roman"'><br clear=all
-style='page-break-before:always'>
-</span></b>
-
-<h2><a name=Experiments>Experiments and time periods for which data should be
-submitted:</a></h2>
-
-<p>A figure summarizing the reporting periods is available at <a
-href="http://www-pcmdi.llnl.gov/ipcc/IPCC_output_requirements.htm">http://www-pcmdi.llnl.gov/ipcc/output_periods.pdf</a>,
-but more precise information is provided below. The following table indicates
-for each IPCC simulation the years for which output should be submitted to the
-PCMDI archive.  All time intervals should be interpreted as extending from
-the beginning of the first year indicated through the end of the last year
-indicated.  For example, years 1961-2000 means 0Z 1-1-2000 through 0Z 1-1-2001.</p>
-
-<table class=MsoNormalTable border=1 cellspacing=0 cellpadding=0
- style='border-collapse:collapse;border:none'>
- <tr style='page-break-inside:avoid;height:58.5pt'>
-  <td colspan=6 style='border:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:58.5pt'>
-  <p><b><i>Table of Experiments.</i></b></p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:58.5pt'>
-  <td style='border:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:58.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b> </b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:58.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>Experiment Name</b></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:58.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>Monthly Data and
-  Yearly Data (Extreme Indices)  </b><span style='font-size:10.0pt'>(submit
-  for each member of ensemble)</span></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:58.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>Daily Data </b><span
-  style='font-size:10.0pt'>(temperature and precipitation data should be
-  submitted for each member of ensemble, but all other fields should be submitted
-  for only a single ensemble member)</span></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:58.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b>3-Hourly Data </b><span
-  style='font-size:10.0pt'>(submit for a single ensemble member)</span></p>
-  </td>
-  <td style='border:inset #111111 1.0pt;border-left:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:58.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'><b> Notes </b></p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:30.0pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>1</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal>pre-industrial control experiment</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>> 100
-  years  (~500 years)</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>40 years that can
-  best be compared to years 1961-2000 (i.e., through the end of year 2000) of the
-  20C3M expt.</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>last year of
-  reported daily data (i.e., corresponding to year 2000 of the 20C3M expt.)</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal>control for experiments 3-7 and for some models also the
-  control for experiments 8-9.  There will be no anthropogenic or natural
-  forcing in this control.  The control experiment should be long enough
-  to extend to the furthest point in time reached by the end of the
-  perturbation experiments (which presumably branch from it).  Thus the
-  control should allow us to subtract any residual, unforced drift from all perturbation
-  simulations.</p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:30.0pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>2</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal>present-day control experiment</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>> 100
-  years  (~300 years)</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>last 20 years</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>last year</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal>for most models this experiment is not needed, but for
-  some it is the control for experiments 8-9.  There will be no natural
-  forcing and anthropogenic influences will be set at present-day level. 
-  The control experiment should be long enough to extend to the furthest point
-  in time reached by the end of the perturbation experiments (which branch from
-  it).  Thus the control should allow us to subtract any residual,
-  unforced drift from the perturbation simulations.</p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:30.0pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>3</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal>climate of the 20th Century experiment (20C3M)</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>~1850 - present</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>1961 - 2000 (i.e.,
-  through the end of year 2000)</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>1991-2000 (i.e.,
-  through the end of year 2000)</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal>should initialize from a point early enough in the
-  pre-industrial control run to ensure that the end of all the perturbed runs
-  branching from the end of this 20C3M run end before the end of the
-  control.  This will enable us to subtract any residual drift in the
-  control from all runs that will be compared to it.</p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:30.0pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>4</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal>committed climate change experiment</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>present - 2100</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>2046-2065, 2081 -
-  2100</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>2050, 2100</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal>should take the end of the 20C3M run as its initial
-  condition.</p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:30.0pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>5</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal>SRES A2 experiment</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>present - 2100</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>2046 - 2065, 2081 -
-  2100</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>2050, 2100</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal>should take the end of the 20C3M run as its initial
-  condition.</p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:44.25pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:44.25pt'>
-  <p class=MsoNormal align=center style='text-align:center'>6</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:44.25pt'>
-  <p class=MsoNormal>720 ppm stabilization experiment (SRES A1B)</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:44.25pt'>
-  <p class=MsoNormal align=center style='text-align:center'>present - 2300
-  (present - 2200)</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:44.25pt'>
-  <p class=MsoNormal align=center style='text-align:center'>2046 - 2065,
-  2081-2100, 2181-2200, 2281-2300</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:44.25pt'>
-  <p class=MsoNormal align=center style='text-align:center'>2050, 2100, 2150,
-  2200, 2300</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:44.25pt'>
-  <p class=MsoNormal>Impose SRES A1B conditions and initialize with conditions
-  from the end of the 20C3M simulation and run to 2100, after which hold
-  concentrations fixed and continue run to 2200.  One member of the
-  ensemble should be extended for an additional 100 years (to 2300), continuing
-  to hold concentrations fixed.</p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:44.25pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:44.25pt'>
-  <p class=MsoNormal align=center style='text-align:center'>7</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:44.25pt'>
-  <p class=MsoNormal>550 ppm stabilization experiment (SRES B1)</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:44.25pt'>
-  <p class=MsoNormal align=center style='text-align:center'>present - 2300
-  (present - 2200)</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:44.25pt'>
-  <p class=MsoNormal align=center style='text-align:center'>2046 - 2065,
-  2081-2100, 2181-2200, 2281-2300</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:44.25pt'>
-  <p class=MsoNormal align=center style='text-align:center'>2050, 2100, 2150,
-  2200, 2300</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:44.25pt'>
-  <p class=MsoNormal>Impose SRES B1 conditions and initialize with conditions
-  from the end of the 20C3M simulation and run to 2100, after which hold
-  concentrations fixed and continue run to 2200.  One member of the
-  ensemble should be extended for an additional 100 years (to 2300), continuing
-  to hold concentrations fixed.</p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:44.25pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:44.25pt'>
-  <p class=MsoNormal align=center style='text-align:center'>8</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:44.25pt'>
-  <p class=MsoNormal>1%/year CO2 increase experiment (to doubling)</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:44.25pt'>
-  <p class=MsoNormal align=center style='text-align:center'>~70 years to
-  doubling + an additional 150 years</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:44.25pt'>
-  <p class=MsoNormal align=center style='text-align:center'>20 years centered
-  on time of doubling + last 20 years</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:44.25pt'>
-  <p class=MsoNormal align=center style='text-align:center'>at doubling and 150
-  years after doubling</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:44.25pt'>
-  <p class=MsoNormal>Hold CO2 fixed after reaching doubled concentration. 
-  This run should be initialized from a point either within a present-day
-  control run or a pre-industrial control run.  Make sure that the initial
-  time is early enough in the control run to subtract out any residual
-  (unforced) drift that might occur over the 220 years of this experiment.</p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:44.25pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:44.25pt'>
-  <p class=MsoNormal align=center style='text-align:center'>9</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:44.25pt'>
-  <p class=MsoNormal>1%/year CO2 increase experiment (to quadrupling)</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:44.25pt'>
-  <p class=MsoNormal align=center style='text-align:center'>~140 years to
-  quadrupling + an additional 150 years</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:44.25pt'>
-  <p class=MsoNormal align=center style='text-align:center'>20 years centered
-  on time of quadrupling + last 20 years</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:44.25pt'>
-  <p class=MsoNormal align=center style='text-align:center'>at quadrupling and
-  150 years after quadrupling</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:44.25pt'>
-  <p class=MsoNormal>Hold CO2 fixed after reaching quadrupled concentration. 
-  This run should be initialized from a point either within a pre-industrial
-  control run or a present-day control run.  Make sure that the initial
-  time is early enough in the control run to subtract out any residual
-  (unforced) drift that might occur over the 290 years of this experiment.</p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:25.5pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:25.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>10</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:25.5pt'>
-  <p class=MsoNormal>slab ocean control experiment</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:25.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>~100 years??</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:25.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>last 20 years</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:25.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>last year</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:25.5pt'>
-  <p class=MsoNormal>slab ocean control for experiment 11.  Be sure to run
-  long enough to reach a true equilibrium state and to produce stable
-  statistics (at least 20 years beyond equilibrium).</p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:30.0pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>11</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal>2xCO2 equilibrium experiment</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>~100 years??</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>last 20 years</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal align=center style='text-align:center'>last year</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:30.0pt'>
-  <p class=MsoNormal>slab ocean experiment with an instantaneous
-  doubling.  There is interest in the transient response to the
-  instantaneous doubling, so please report all years and be sure to run long
-  enough to reach a true equilibrium state and to produce stable statistics (at
-  least 20 years beyond equilibrium).</p>
-  </td>
- </tr>
- <tr style='page-break-inside:avoid;height:25.5pt'>
-  <td style='border:inset #111111 1.0pt;border-top:none;padding:1.5pt 1.5pt 1.5pt 1.5pt;
-  height:25.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>12</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:25.5pt'>
-  <p class=MsoNormal>AMIP simulation</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:25.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>1979 - present</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:25.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>all years</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:25.5pt'>
-  <p class=MsoNormal align=center style='text-align:center'>2000</p>
-  </td>
-  <td style='border-top:none;border-left:none;border-bottom:inset #111111 1.0pt;
-  border-right:inset #111111 1.0pt;padding:1.5pt 1.5pt 1.5pt 1.5pt;height:25.5pt'>
-  <p class=MsoNormal>atmospheric component should be identical to that used in
-  the above experiments</p>
-  </td>
- </tr>
-</table>
-
-<p> </p>
-
-</div>
-
-</body>
-
-</html>
diff --git a/Doc/standard_output.pdf b/Doc/standard_output.pdf
deleted file mode 100644
index 31d4f09..0000000
Binary files a/Doc/standard_output.pdf and /dev/null differ
diff --git a/Doc/standard_output_updates.htm b/Doc/standard_output_updates.htm
deleted file mode 100644
index e8f6e11..0000000
--- a/Doc/standard_output_updates.htm
+++ /dev/null
@@ -1,256 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv="Content-Language" content="en-us">
-<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
-<meta name="ProgId" content="FrontPage.Editor.Document">
-<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
-<title>History of Changes Made to IPCC Standard Output</title>
-<style>
-<!--
- li.MsoNormal
-	{mso-style-parent:"";
-	margin-bottom:.0001pt;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	margin-left:0in; margin-right:0in; margin-top:0in}
- table.MsoNormalTable
-	{mso-style-parent:"";
-	font-size:10.0pt;
-	font-family:"Times New Roman"}
--->
-</style>
-</head>
-
-<body>
-
-<p align="center"><b><font size="4">History of Changes Made to IPCC Standard 
-Output</font></b></p>
-<p align="left"><b>16 October 2007:</b></p>
-<ol>
-  <li>
-<p align="left">Corrected notes for entry 44 in table A1a (clivi) to indicate that
- only the solid-phase water (not the liquid or vapor)should be considered in 
-calculating the atmosphere cloud ice content. </p>
-  </li>
-</ol>
-<p align="left"><b>15 September 2005:</b></p>
-<ol>
-  <li>
-<p align="left">Added accommodation for the hybrid height coordinate, which 
-appears in the Hadley Centre models.  Also included depth coordinate for 
-ocean fields, which had been previously inadvertently omitted.</p>
-  </li>
-</ol>
-<p align="left"><b>7 December 2004:</b></p>
-<ol>
-  <li>
-<p align="left">Added the following clarification for the 
-global_average_thermosteric_sea_level_change: "<span style="font-size: 12.0pt; font-family: Times New Roman">In 
-a rigid-lid model this quantity can be calculated by using a reference 3D 
-salinity field to compute density as the 3D temperature field evolves."</span></p>
-  </li>
-  <li>
-<p align="left"><span style="font-family: Times New Roman">Added a 
-recommendation that daily mean data be computed for intervals beginning at 
-midnight, i.e., 0 Z (UTC), and ending the following midnight at 0 Z.</span></p>
-  </li>
-</ol>
-<p align="left"><b>22 November 2004:</b></p>
-<ol>
-  <li>
-<p align="left">Replace occurrences of zostogm with zostoga and zosgm with zosga.</p>
-  </li>
-</ol>
-<p align="left"><b>17 November 2004:</b></p>
-<ol>
-  <li>
-<p align="left">Clarified how zos should be computed.</p>
-  </li>
-  <li>
-<p align="left">Added zostoga and zosga to list of high priority output 
-variables (Table 
-O1c).</p>
-  </li>
-  <li>
-<p align="left">Added to Table O1d the "qflux" as a high priority 
-field for slab ocean experiments.</p>
-  </li>
-  <li>
-<p align="left">Added monthly-mean tasmin and tasmax to Table A1f.</p>
-  </li>
-  <li>
-<p align="left">For mrfso, indicated explicitly in the comment column that it 
-was frozen water only that should be considered.</p>
-  </li>
-  <li>
-<p align="left">Expanded descriptions of clwvi and clivi.</p>
-  </li>
-  <li>
-<p align="left">Indicated that ISSCP simulator output should be generated from 
-data sampled no less frequently than every 15 hours.</p>
-  </li>
-  <li>
-<p align="left">Noted that htovgyre and htovovrt should exlcude 'bolus velocity' 
-contributions from the Gent-McWilliams parameterization; further noted that 
-htovdiff and
-hfogo should include any 'bolus velocity' contribution.</p>
-  </li>
-  <li>
-<p align="left">Specified that in calculating wfo, zos, and zobt, only the ocean portion of 
-each grid cell should be considered.</p>
-  </li>
-  <li>
-<p align="left">Changed 'atmospheric_boundary_layer_thickness' to 'atmosphere_boundary_layer_thickness'.</p>
-  </li>
-  <li>
-<p align="left">We now request that in identifying forcing agents (table A5) the 
-term that is "most specific", not "most general" should be used (e.g., if the only anthropogenic effect included in the 
-model simulation is an increase in carbon dioxide, use "co2", not "a" or "g").  </p>
-  </li>
-  <li>
-<p align="left">Corrected the cell_methods attribute associated with the 
-time-dimension for daily maximum and minimum surface air temperature.</p>
-  </li>
-</ol>
-<p align="left"><b>30 September 2004:</b></p>
-<ol>
-  <li>
-<p align="left">Corrected length of first ensemble member requested for the 550 
-ppm stabilization experiment (SRES B1): changed last year from 2200 to 2300.</p>
-  </li>
-  <li>
-<p align="left">Added 20 year interval to the daily data requested for each of 
-the 1%/yr CO2 experiments: 20 years centered on time of doubling for doubling 
-experiment. and 20 years centered on time of quadrupling for the quadrupling 
-experiment.</p>
-  </li>
-  <li>
-<p align="left">Included a table of contents with links to sections of the 
-document.</p>
-  </li>
-</ol>
-<p align="left"><b>15 September 2004:</b></p>
-<ol>
-  <li>
-<p align="left">Noted that 3-hourly precipitation data should be averaged over 
-the intervals 0-3Z, 3-6Z, ... 21-24Z, whereas the "snapshots" should be sampled 
-at 0, 3, 6, ... 21Z.</p>
-  </li>
-  <li>
-<p align="left">Noted that stfmmc should exclude 'bolus velocity' contribution 
-from the Gent-McWilliams parameterization.</p>
-  </li>
-  <li>Clarified that all time intervals in the last table of experiments should 
-  be interpreted as extending from the beginning of the first year indicated 
-  through the end of the last year indicated.  For example, years 1961-2000 
-  means 0Z 1-1-2000 through 0Z 1-1-2001.</li>
-  <li>Added a row to the coordinate dimension table for 'time1' which is needed 
-  in the 3-hourly table (A3) to define the time axis for "snapshot" (rather than 
-  time-mean) data (i.e., all but the precipitation field in this table).</li>
-</ol>
-<p align="left"><b>3 September 2004:</b></p>
-<p align="left">Revised web links to be consistent with new PCMDI web site.</p>
-<p align="left"><b>25 August 2004:</b></p>
-<ol>
-  <li>
-<p align="left">Clarified in the last table that yearly data (i.e., extreme 
-indices) should be submitted for the same years as the monthly data.</p>
-  </li>
-</ol>
-<p align="left"><b>2 August 2004:</b></p>
-<ol>
-  <li>
-<p align="left">Changed period for which 3-hourly data should be reported in the 
-"pre-industrial control experiment" from "last year" to "last year of reported 
-daily data (i.e., corresponding to year 2000 of the 20C3M expt.)".</p>
-  </li>
-  <li>
-<p align="left">Modified description of a few fields to make them clearer.</p>
-  </li>
-</ol>
-<p align="left"><b>20 July 2004:</b></p>
-<ol>
-  <li>
-<p align="left">Changed years requested for the committed climate change 
-experiment from tables A2a,b to be consistent with other experiments (i.e., 
-2046-2065, not 2031-2050).</p>
-  </li>
-</ol>
-<p align="left"><b>19 July 2004:</b></p>
-<ol>
-  <li>
-<p align="left">Changed one of the experiment names in the last table of the 
-document: 'climate of the 20<sup>th</sup> Century (20C3M)' was changed to 
-'climate of the 20<sup>th</sup> Century experiment (20C3M)'.</p>
-  </li>
-</ol>
-<p align="left"><b>14 July 2004:</b></p>
-<ol>
-  <li>
-<p align="left">Added table of experiments and years of requested data.</p>
-  </li>
-  <li>
-<p align="left">Moved dimension table to near the end of the document.</p>
-  </li>
-  <li>
-<p align="left">Noted that "flux-correction" fields need to be reported only for 
-a single year, assuming it applies to all experiments.</p>
-  </li>
-  <li>
-<p align="left">Noted that disk space constraints will likely limit quick access 
-to monthly-mean 3-d ocean output to a single member of each ensemble.</p>
-  </li>
-  <li>
-<p align="left">Noted that daily data should only be reported for a single 
-member of each ensemble, except for the surface air temperature (mean, max. and 
-min.) and precipitation, which should be reported for all members.</p>
-  </li>
-</ol>
-<p><b>5 July 2004:</b></p>
-<ol>
-  <li>The requested fields listed under  
-  "Highest priority output fields" were not changed, but some of the 
-  information given there was modified.</li>
-  <li>The "PCMDI names" are now identified as "output variable names", because 
-  these are the variable names that should appear in the netCDF files.  
-  These also serve as unique reference names for CMOR.  Several names were 
-  changed in this version to make them consistent with the existing CMIP data 
-  base: ssh ==> zos, sst ==> tos, siu==>usi, siv==>vsi, prme==>wfo, sftbaro==>stfbarot, 
-  topot==>thetao, and rhopot==>rhopoto</li>
-  <li>The following units were changed:  for ocean meridional overturning 
-  stream function, kg<sup>3</sup> s<sup>-1</sup>  ==> m<sup>3</sup>  s<sup>-1</sup>.  
-  for ocean barotropic stream function, kg<sup>3</sup> s<sup>-1</sup>  ==> m<sup>3</sup>  s<sup>-1</sup>.  For several variables, percent ==> % (nb. CMOR will accept "percent" as an 
-  alias for "%", but the netCDF file will show "%").</li>
-  <li>A few corrections were made to the "standard_names"</li>
-  <li>The "source" column in the tables was replaced by a "notes" column 
-  providing explanatory information.  These notes should be studied 
-  carefully to ensure conformance with IPCC requirements.</li>
-  <li>Dimensionless units are now expressed simply as a numeric factor (e.g.,  
-  '1' or '1e-3') or as '%', but not as a dimensionless ratio (e.g.,  
-  'kg/kg').</li>
-  <li>Tables were constructed and detailed information was provided (for the 
-  first time) for the "Lower priority fields" (previously identified as 
-  "optional")..</li>
-  <li>The following lower priority fields were eliminated: sea surface salinity 
-  (already collected as part of the 3-d salinity field), the vertical and 
-  horizontal components of temperature and salinity fluxes as a function of 
-  longitude, latitude, model layer, and month (this was the only field requested 
-  on model levels and is difficult to treat uniformly; interpolating to depth 
-  levels would make it impossible to treat precisely and might not be any better 
-  an approximation than multiplying velocity times salinity or temperature, 
-  which is possible from fields collected as high priority), temperature on all sea 
-  ice model levels (too difficult to uniformly treat sea ice models with 
-  different vertical coordinates, and although this field would be useful for 
-  energy budget studies, other terms in the budget are not being collected), 
-  surface snow thickness (already collected as high priority field),  "tendency of sea ice thickness due to thermodynamics" 
-  (of little value without all the other terms needed to balance the sea ice 
-  equation), and certain land surface fields, including total 
-  heat storage, albedo, soil types, vegetation fraction etc (difficult to 
-  define uniformly across models).</li>
-  <li>A table with dimension information was added.</li>
-</ol>
-
-</body>
-
-</html>
diff --git a/INSTALL b/INSTALL
deleted file mode 100644
index c7f7454..0000000
--- a/INSTALL
+++ /dev/null
@@ -1,105 +0,0 @@
-INSTALLATION INSTRUCTIONS  
-------------------------- 
-Climate Model Output Rewriter (CMOR) version 2.0 installation instructions.
-
- 
-DOWNLOAD 
---------
-You can get the latest version of the software from the CMOR homepage
-http://www2-pcmdi.llnl.gov/cmor/
-
-
-INSTALLATION
------------- 
-CMOR 2 requires external packages that need to be installed first. 
-It can be compiled/linked against either NetCDF3 or NetCDF4. If you
-decide to go with NetCDF4 be sure to build NetCDF4 with the
- --enable-netcdf-4 option! 
-Also make sure to install UDUNITS version 2 and not version 1 !
-NetCDF4 wil give you access to compression/chunking capabilities.
-NOTE: CMIP5 REQUIRES NetCDF3 output files
-These packages do NOT require to be built with the Fortran interface, cmor is only
-calling their C interface.
-
-FIRST:
- Install external dependencies: 
-  Option 1: linkeng against NetCDF3
-     - NetCDF3: available at: http://www.unidata.ucar.edu/downloads/netcdf/netcdf-3_6_3/index.jsp
-  Option 2: NetCDF4 (if you want to use compression/chunking for other projects than CMIP5)
-     - zlib (usually already present on most system), http://zlib.net
-     - HDF5: available at: http://hdf.ncsa.uiuc.edu/HDF5
-     - NetCDF4: available at: http://www.unidata.ucar.edu/software/netcdf/
-                DOT NOT FORGET to build with --enable-netcdf-4 option
-  Always:
-     - udunits2: (not 1) http://www.unidata.ucar.edu/software/udunits/udunits-2/udunits2.html
-     - libuuid: I used the version at http://www.ossp.org/pkg/lib/uuid
-
- NOTES: it strongly recommend to use the --disable-shared argument to the 
-        ./configure when building udunits2, hdf5 and netcdf4. Otherwise make 
-        sure the path to hdf5 and netcdf4 lib directory is in your search path 
-        or in your LD_LIBRARY_PATH environment variable.
-        Also with building NetCDF4, it is very important (although extremeley 
-        counter-intuitive) to add the --enable-netcdf-4 argument, otherwise 
-        support for netcdf4 will not be enabled...
-
- NOTES2: You only need to install the C libraries for these. Usually you can turn off
-	 the fortran using --disable-fortran
- 
- NOTES3: on 64bit systems make SURE both C and FORTRAN compiler are running in same 32/64 bit mode. This is especially true for users migrating their Mac OS 10.5 machines to 10.6 since gfortran does not come standard the old 32bit is usually transfered.
-
-SECOND: Install CMOR (version 2) library
-        run the configuration script, build and install
-
-        ./configure --prefix=/path/to/where/you/want/cmor --with-netcdf=/path/to/NetCDF4 --with-hdf5=/path/to/HDF5 --with-udunits2=/path/to/udunits2
-        make
-        make install
-
-   NOTE: at the configure stage there are some influential variables:
-        CC       : C comipler to use
-        CPPFLAGS : C preprocessing macros
-        CFLAGS   : C compilation flags
-        FC       : Fortran compiler to use
-        FFLAGS   : Fortan Compilation flags
-        LDFLAGS  : Linking time compilation flags
-        
-        CMOR will "Best-guess" your system and set these, but if you need 
-        specific values for your system make sure to set these environment 
-        variables first
-        
-*) installing the python version
-        /path/to/your/python/bin/python setup.py install
-        or simply
-        make python 
-        the later picks up whatever python is in your path
-
-CLEANING:
-    make clean
-    or to completely clean (i.e. remove the built lib):
-    make distclean    
-    
-UNINSTALLING
-    make uninstall
-      Note: the keyword, "uninstall", removes the library and include
-              files from the location specified by "PREFIX" at configure time.
-
-TESTING:
-    multiple tests are available
-        make test
-        make test_python
-
-LINKING ---------------------------------------------
-
-        You will need to link against libcmor.a and the netcdf4 hdf5
-
-Example of linking with a fortran comipler:
-/opt/ibmcmp/xlf/8.1/bin/xlf90 -qsuffix=f=f90   $(DEBUG)  Test/test_fortran_example_00.f90 -L/lgm/cmor2/lib -L. -lcmor  -I/lgm/NetCDF4/include  -L/lgm/NetCDF4/lib -lnetcdf  -lhdf5_hl -lhdf5 -lm -lz  -ludunits2  -o test_fortran_example_00
-
-        You can  look in the Makefile under the testipcc section for an example 
-        compilation on your system.
-
-
-MINI F.A.Q. is compilation
-
-If you get an error similar to this one:
-Error: Generic function 'cmor_write' at (1) is not an intrinsic function
-It probably means that the argument type you passed to the fortran are wrong and that the compiler canot find a matching function in the cmor_write interface 
diff --git a/Lib/__init__.py b/Lib/__init__.py
deleted file mode 100644
index 49c36f0..0000000
--- a/Lib/__init__.py
+++ /dev/null
@@ -1,9 +0,0 @@
-from cmor_const import *
-
-from pywrapper import axis,variable,write,setup,load_table,dataset,set_table,zfactor,close,grid,set_grid_mapping,time_varying_grid_coordinate,set_cur_dataset_attribute,get_cur_dataset_attribute,has_cur_dataset_attribute,create_output_path
-
-try:
-  from check_CMOR_compliant import checkCMOR
-except Exception,err:
-  print err
-  pass
diff --git a/Lib/check_CMOR_compliant.py b/Lib/check_CMOR_compliant.py
deleted file mode 100644
index f2ddede..0000000
--- a/Lib/check_CMOR_compliant.py
+++ /dev/null
@@ -1,1622 +0,0 @@
-import cdms2
-import os
-import unidata
-import genutil
-import numpy
-import cdtime
-import cmor
-import time
-VERBOSE=-999
-
-#ok now we are going online to pull the file that has the control md5s
-try:
-    f=open("Tables/md5s")
-    ctrl_md5s=eval(f.read())
-except:
-    try:
-        import urllib2
-        url=urllib2.urlopen("http://esg-repo.llnl.gov/gitweb/?p=cmor.git;a=blob_plain;f=Tables/md5s;hb=HEAD")
-        ctrl_md5s=eval(url.read())
-        url.close()
-        del(url)
-    except:
-        ctrl_md5s={}
-
-
-class CMORError(Exception):
-    def __init__(self,value=None):
-        self.value=value
-    def __str__(self):
-        color=31
-        msg = "%c[%d;%d;%dm%s%c[%dm" % (0X1B,2,color,47,self.value,0X1B,0)
-        return msg
-
-def hyphenize(value):
-    out=str(value)
-    for c in [' ',"_",'(',')','.',';',',','[',']',':','/','*','?','<','>','"',"'",'{','}','&']:
-        out=out.replace(c,"-")
-    return out
-
-def drs_check_pos(i,path,fout,noerror,val,name):
-    dic = { 1:"",2:"second to ",3:"third to "}
-    posstr = dic.get(i,"%ith to " % i)
-    if path[-i]!=val:
-        return manageLog(fout, noerror, 'Error file directory does not conform to DRS structure, %slast directory should be the %s (%s vs %s)' % (posstr, name, path[-i],val))
-    return 0
-
-def addcoloring(fout,error):
-    #warning blue: 34
-    #error red: 31
-    if error == cmor.CMOR_NORMAL:
-        color=31
-    elif error == cmor.CMOR_WARNING:
-        color=34
-    else:
-        return
-    print >> fout, "%c[%d;%d;%dm" % (0X1B,2,color,47)
-    return
-
-def delcoloring(fout):
-    print >> fout,"%c[%dm" % (0X1B,0)
-    return
-    
-def manageLog(fout,error,*msg_bits):
-    """ Print error message or raise an exception depending on noerror flag)"""
-    msg=''
-    for m in msg_bits:
-        msg+=" "+str(m)
-    msg=msg.lstrip()
-        
-##     print >>fout, 'No error is:',noerror
-    if error == cmor.CMOR_CRITICAL:
-        raise CMORError,[msg,]
-    elif error == VERBOSE:
-        fout.write( msg)
-        if msg_bits[-1]!="":
-            print >> fout
-        return
-        
-    addcoloring(fout,error)
-    print >>fout, '@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%'
-    print >>fout, '@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%'
-    if error == cmor.CMOR_NORMAL:
-        print >>fout, '@#%@#%@#%@#%@#%           ERROR          %@#%@#%@#%@#%@#%@#%@#%'
-    elif error == cmor.CMOR_WARNING:
-        print >>fout, '@#%@#%@#%@#%@#%          WARNING         %@#%@#%@#%@#%@#%@#%@#%'
-    print >>fout, '@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%'
-    print >>fout, '@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%'
-    delcoloring(fout)
-    print >>fout
-    addcoloring(fout,error)
-    print >>fout, msg
-    delcoloring(fout)
-    print >>fout
-    addcoloring(fout,error)
-    print >>fout, '@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%'
-    print >>fout, '@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%@#%'
-    delcoloring(fout)
-    print >>fout
-    return 1
-
-def split_expt_ids(val):
-    long_vals=[]
-    short_vals = []
-    for v in val:
-        i = v.find("'")
-        if i>-1:
-            j=v[i+1:].find("'")
-            if j>-1:
-                long_vals.append(v[:i])
-                short_vals.append(v[j+i+2:])
-            else:
-                long_vals.append(v)
-                short_vals.append("")
-        else:
-            long_vals.append(v)
-            short_vals.append("")
-    return long_vals,short_vals
-
-def readTable(table):
-    lists_kw=['requested','bounds_requested','z_factors','z_bounds_requested','dimensions','required','ignored','optional']
-    f=open(table,'r')
-    import hashlib
-    m5=hashlib.md5(f.read())
-    m5=m5.hexdigest()
-    f.seek(0)
-    ln=f.readlines()
-    f.close()
-    header=1
-    gen_attributes={'actual_md5':m5}
-    while header:
-        l = ln.pop(0)[:-1]
-        l=l.strip()
-        if l=='' or l[0]=='!':
-            continue
-        sp=l.split('_entry')
-        if len(sp)>1:
-            ln.insert(0,l+'\n')
-            header=0
-            continue
-        sp=l.split(':')
-        kw=sp[0]
-        st="".join(sp[1:])
-        st=st.split('!')[0].strip()
-        if st[0]=="'":
-            st=st[1:-1]
-        if gen_attributes.has_key(kw):
-            if isinstance(gen_attributes[kw],str):
-                gen_attributes[kw]=[gen_attributes[kw],st]
-            else:
-                gen_attributes[kw].append(st)
-        else:
-            gen_attributes[kw]=st
-    e={} # entries dictionnary
-    while len(ln)>0:
-        l = ln.pop(0)
-        sp=l.split('_entry:')
-        entry_type=sp[0]
-        entry=sp[1].strip()
-        if not e.has_key(entry_type):
-            e[entry_type]={}
-        e[entry_type][entry]=e[entry_type].get(entry,{})
-            
-##         print >>fout, e[entry_type][entry]
-        cont=1
-        while cont:
-            l = ln.pop(0)[:-1]
-            l=l.strip()
-            if l=='' or l[0]=='!':
-                if len(ln)==0:
-                    cont=0
-                continue
-            sp=l.split('_entry:')
-            if len(sp)>1:
-                ln.insert(0,l+'\n')
-                cont=0
-            sp=l.split(':')
-            kw=sp[0].strip()
-            val=":".join(sp[1:]).split('!')[0].strip()
-            ## print  'dic is:',e[entry_type][entry]
-            if e[entry_type][entry].has_key(kw):
-                if kw in lists_kw:
-                    e[entry_type][entry][kw]="".join(e[entry_type][entry][kw])
-                e[entry_type][entry][kw]+=' '+val
-            else:
-                e[entry_type][entry][kw]=val
-##             print >>fout, 'After:',e[entry_type][entry][kw]
-            if kw in lists_kw:
-##                 print >>fout, 'splitting:',kw,e[entry_type][entry][kw].split()
-                e[entry_type][entry][kw]=e[entry_type][entry][kw].split()
-            if len(ln)==0:
-                cont=0
-    e['general']=gen_attributes
-##     for type in e.keys():
-##         print >>fout, 'Type:',type
-##         for k in e[type].keys():
-##             print >>fout, '\t Entry:',k
-##             for a in e[type][k].keys():
-##                 print >>fout, '\t\t',a,':',e[type][k][a]
-    return e
-
-
-def checkCMOR(fout,file,table,noerror=cmor.CMOR_CRITICAL,variable=None,from_bounds=None,other_tables=None,dodrs=True):
-
-    req_glbl_att = ['title','Conventions','source','experiment','source','institution','project_id','table_id','realization',]
-    opt_glbl_att = ['cmor_version','history','references','comment','parent_experiment']
-
-    nerr=0
-    nwarn=0
-    ncheck=0
-    IPCC_std_vars=[]
-    IPCC_std_axes=[]
-    
-    tables=[table,]
-    if other_tables is not None:
-        for t in other_tables:
-            if not t in tables and t is not None:
-                tables.append(t)
-
-    etables = []
-    for tbl in tables:
-        manageLog(fout,VERBOSE, 'Reading table:',tbl)
-        e=readTable(tbl)
-        etables.append(e)
-        Vars=e['variable']
-        Axes=e['axis']
-        extra_req = e['general'].get('required_global_attributes','').split()
-        for ex in extra_req:
-            if not ex in req_glbl_att:
-                req_glbl_att.append(ex)
-        for v in Vars.keys():
-            IPCC_std_vars.append(Vars[v].get('out_name',v))
-        for a in Axes.keys():
-            onm = Axes[a].get('out_name',a)
-            if not onm in IPCC_std_axes:
-                IPCC_std_axes.append(onm)
-    ##         if IPCC_std_axes[-1]=='lev' :
-    ##             IPCC_std_axes.pop(-1)
-    ##             IPCC_std_axes.append('eta')
-    ##             Axes[a]['out_name']='eta'
-
-    ver = e['general'].get('cmor_version',2.0)
-    ver = '%g' % float(ver)
-    spver = ver.split('.')
-    major = int(spver[0])
-    if major>1:
-        req_glbl_att+=["contact",'experiment_id','physics_version','initialization_method','institute_id','institution','tracking_id','product','frequency','model_id','creation_date','frequency','modeling_realm']
-    else:
-        opt_glbl_att+=["contact",'experiment_id','physics_version','initialization_method','institute_id','institution','tracking_id','product','frequency','model_id','forcing','creation_date','frequency','modeling_realm']
-    if isinstance(file,str):
-        fnm=file
-        file=cdms2.open(file)
-    elif isinstance(file,cdms2.dataset.CdmsFile):
-        fnm=str(file).split('file')[1].split(',')[0].strip()[1:-1]
-    else:
-        nerr+=manageLog(fout, noerror, 'You  must pass a file name or cdms2 file object')
-
-    if fnm.split("_")[-1]=="clim.nc":
-        is_clim = True
-    else:
-        is_clim = False
-
-
-    pthroot, shrt_fnm = os.path.split(fnm)
-    if variable is None:
-        manageLog(fout,VERBOSE, 'Checking file argument',IPCC_std_axes)
-        manageLog(fout,VERBOSE, 'Checking path structure for path:',pthroot)
-        manageLog(fout,VERBOSE, 'Checking file structure for file:',fnm)
-        print >> fout, 'Checking the file starts with variable name'
-        ok = False
-        for v in IPCC_std_vars:
-            n = len(v)
-            if shrt_fnm[:n] == v and shrt_fnm[n]=='_':
-                ok = True
-                break
-        if not ok:
-            nerr+=manageLog(fout, noerror, ''+shrt_fnm+' does not start with standard %s variable name followed by _' % file.project_id)
-        vf=v
-        #Check the variable is actually in the file
-        if not v in file.variables.keys():
-            nerr+=manageLog(fout,noerror,"Your file name says it contains variable",v,"but it is not in your file, your file contains:",file.variables.keys())
-        if hasattr(file,'cmor_version'):
-            up = False
-            rew = False
-            ver = getattr(file,'cmor_version')
-            if isinstance(ver,numpy.ndarray): ver = '%g' % float(ver[0])
-            spver = ver.split('.')
-            fmajor = int(spver[0])
-            if len(spver)>1 :
-                minor = int(spver[1])
-                if len(spver)>2:
-                    patch = int(spver[2])
-                else:
-                    patch = 0
-            else:
-                minor=0
-                patch=0
-            if fmajor>cmor.CMOR_VERSION_MAJOR:
-                up = True
-            elif fmajor<cmor.CMOR_VERSION_MAJOR:
-                rew=True
-            else: # Major matches
-                if minor>cmor.CMOR_VERSION_MINOR:
-                    up = True
-                elif minor<cmor.CMOR_VERSION_MINOR:
-                    rew = True
-                else: # minor matches
-                    if patch>cmor.CMOR_VERSION_PATCH:
-                        up = True
-                    elif patch<cmor.CMOR_VERSION_PATCH:
-                        rew = True
-
-            ncheck+=1
-            if up:
-                if fmajor==cmor.CMOR_VERSION_MAJOR:
-                    nwarn+=manageLog(fout,cmor.CMOR_WARNING,"You are using cmor version: %i.%i.%i, these files have been written with version: %i.%i.%i, you should upgrade your cmor" % (cmor.CMOR_VERSION_MAJOR,cmor.CMOR_VERSION_MINOR,cmor.CMOR_VERSION_PATCH,fmajor,minor,patch))
-                else:
-                    nerr+=manageLog(fout,noerror,"You are using cmor version: %i.%i.%i, these files have been written with version: %i.%i.%i, you need to upgrade cmor to check these files" % (cmor.CMOR_VERSION_MAJOR,cmor.CMOR_VERSION_MINOR,cmor.CMOR_VERSION_PATCH,fmajor,minor,patch))
-
-            ncheck+=1
-            if rew:
-                nwarn+=manageLog(fout,cmor.CMOR_WARNING,"You are using cmor version: %i.%i.%i, these files have been written with version: %i.%i.%i, you should consider rewriting these files" % (cmor.CMOR_VERSION_MAJOR,cmor.CMOR_VERSION_MINOR,cmor.CMOR_VERSION_PATCH,fmajor,minor,patch))
-                
-        ## 32bit systems only
-        if os.uname()[-1].find("64")==-1:
-            sz=os.path.getsize(fnm)
-            manageLog(fout,VERBOSE, 'Checking file size (32bit systems only):',sz)
-            if sz>2**31:
-                if major>1:
-                    ncheck+=1
-                    nwarn+=1
-                    ec =cmor.CMOR_WARNING
-                else:
-                    ec=noerror
-                manageLog(fout,ec, 'File size too large',sz,' (>2Gb)!')
-                #nerr+=manageLog(fout, noerror, 'file size too large (>2Gb)!')
-
-        manageLog(fout,VERBOSE, 'Checking that file contains required global attributes')
-        for att in req_glbl_att:
-            val=e['general'].get('expt_id_ok',None)
-            long_vals,shrt_vals = split_expt_ids(val)
-            if not hasattr(file,att) and not att in shrt_vals:
-                i = req_glbl_att.index(att)
-                if i==0 or req_glbl_att[i-1] not in shrt_vals:
-                    nerr+=manageLog(fout, noerror, 'File must have global attribute: '+att)
-                else:
-                    pr = req_gbl_att[i-1]
-                    expt = getattr(file,"experiment","")
-                    shrt = shrt_vals[long_vals.index(expt)]
-                    if shrt == pr:
-                        nerr+=manageLog(fout, noerror, 'File must have global attribute: '+att) 
-            fval=getattr(file,att,'')
-            if att=='experiment_id':
-                ok = False
-                for e in etables:
-                    val=e['general'].get('expt_id_ok',None)
-                    long_vals,shrt_vals = split_expt_ids(val)
-                    for lv in shrt_vals:
-                        if fval==lv or (lv[-4:] =='XXXX' and fval[:-4]==lv[:-4]) or (lv[-4:] =='DDHH' and fval[:-10]==lv[:-10]):
-                            ok = True
-                            break
-                if not ok: 
-                    nerr+=manageLog(fout, noerror, 'experiment_id file attribute must be one of : %s, you have: %s' % (str(shrt_vals), fval) )
-            elif att=='experiment':
-                ok = False
-                for e in etables:
-                    val=e['general'].get('expt_id_ok',None)
-                    long_vals,shrt_vals = split_expt_ids(val)
-                    for lv in long_vals:
-                        if fval==lv or (lv[-4:] =='XXXX' and fval[:-4]==lv[:-4]) or (lv[-4:] =='DDHH' and fval[:-10]==lv[:-10]):
-                            ok = True
-                            break
-                if not ok: 
-                    nerr+=manageLog(fout, noerror, 'experiment file attribute must be one of : %s, you have: %s' % (str(long_vals), fval) )
-            elif att=='parent_experiment_id':
-                if fval == getattr(file,"experiment_id",""):
-                    nerr+=manageLog(fout,noerror,"parent_experiment_id and experiment_id cannot be the same you have %s for both" % fval)
-                ok = False
-                for e in etables:
-                    val=e['general'].get('expt_id_ok',None)
-                    long_vals,shrt_vals = split_expt_ids(val)
-                    shrt_vals.append("N/A")
-                    for lv in shrt_vals:
-                        if fval==lv or (lv[-4:] =='XXXX' and fval[:-4]==lv[:-4]) or (lv[-4:] =='DDHH' and fval[:-10]==lv[:-10]):
-                            ok = True
-                            break
-                if not ok: 
-                    nerr+=manageLog(fout, noerror, 'parent_experiment_id file attribute must be one of : %s, you have: %s' % (str(shrt_vals), fval) )
-            elif att == 'forcing':
-                sp = fval.split(',')
-                forcings=e['general'].get("forcings")
-                for vl in sp:
-                    if not vl.strip() in forcings:
-                        nerr+=manageLog(fout,noerror,"file attribute forcing must be a comma separated list with values in: %s, yours is: %s (offending value: %s)" % (forcings,fval,vl.strip()))
-            elif att == 'frequency':
-                if not fval in ['yr','mon','day','6hr','3hr','subhr','fx','monClim']:
-                    nerr+=manageLog(fout,noerror, 'frequency must be one of:','yr','mon','day','6hr','3hr','subhr','fx','monClim')
-            elif att in ['realization']:
-                if isinstance(fval,numpy.ndarray):
-                    if len(fval)>1:
-                        nerr+=manageLog(fout, noerror, 'realization attribute must be an integer')
-                    fval=fval[0]
-                if not isinstance(fval,(int,numpy.int,numpy.int32)):
-                    nerr+=manageLog(fout, noerror, 'realization attribute must be an integer')
-            elif att in ['table_id']:
-                manageLog(fout,VERBOSE, '\ttable_id is: ', fval)
-            elif att == "creation_date":
-                # checks that it matches: YYYY-MM-DDTHH:MM:SSZ
-                fmt = "%Y-%m-%dT%H:%M:%SZ"
-                try:
-                    t =time.strptime(fval,fmt)
-                except:
-                    nerr+=manageLog(fout, noerror, 'Creation Date must be in format: %s yours is: %s' % (fmt,fval))
-            elif att == "branch_time":
-                try:
-                    myval=float(fval)
-                except:
-                    nerr+=manageLog(fout, noerror, 'branch_time must be convertible to float, you have %s' % (fval))
-                if getattr(file,"parent_experiment_id","").strip()=="N/A":
-                    if float(fval)!=0.:
-                        nerr+=manageLog(fout, noerror, 'if global attribute parent_experiment_id is N/A then branch_time must be 0., you have %s' % (fval))
-
-                
-            elif att == "project_id":
-                if e['general'].get("project_id") != fval:
-                    nerr+=manageLog(fout, noerror, 'project_id must be %s' % (e['general'].get("project_id")))
-            else:
-                val=e['general'].get(att,None)
-                if isinstance(fval,str) : fval=fval.strip().lower()
-                if isinstance(val,str) : val=val.strip().lower()
-                if val is not None:
-                    if isinstance(fval,str):
-                        res=fval.find(val)
-                        if res==-1:
-                            res=False
-                        else:
-                            res=True
-                    else:
-                        res=fval==val
-                        manageLog(fout,VERBOSE, '**************',att,val,fval)
-                    if not res:
-                        nerr+=manageLog(fout, noerror, 'attribute '+att+' must be set to: -'+val+'- +'+fval+'+ '+str(res))
-
-
-        for att in opt_glbl_att:
-            ncheck+=1
-            if not hasattr(file,att):
-                nwarn+=1
-                manageLog(fout,cmor.CMOR_WARNING, '\t\tIt is often helpful to define the global attribute: ',att)
-
-        for att in file.attributes.keys():
-            ncheck+=1
-            if not att in req_glbl_att and not att in opt_glbl_att:
-                nwarn+=1
-                manageLog(fout,cmor.CMOR_WARNING, '\t\tYou have global attribute: %s which is neither required nor optional ' % att)
-
-
-        if major>=2: # more file structure there
-            try:
-                tmp_tbl_nm = getattr(file,'table_id')
-                tbl_id = tmp_tbl_nm.split()[1]
-                tbl_date= tmp_tbl_nm.split('(')[1].split(')')[0].strip()
-                try:
-                    tbl_md5 = tmp_tbl_nm.split('(')[1].split(')')[1].strip()
-                    if len(tbl_md5)==32:
-                        ncheck+=1
-                        #ok it looks like we got an md5 tag
-                        if tbl_md5!=e['general']['actual_md5']:
-                            nwarn+=1
-                            manageLog(fout,cmor.CMOR_WARNING, '\t\tYour file claims it has been generated with a table whose md5 was %s, but you are sending a table with md5: %s to the checker ' % (tbl_md5,e['general']['actual_md5']))
-                        ncheck+=1
-                        pmd5s=ctrl_md5s.get(file.project_id,{})
-                        if pmd5s=={}:
-                            nwarn+=1
-                            manageLog(fout,cmor.CMOR_WARNING, '\t\tCould not obtain any control md5s for any table for project %s ' % (file.project_id))
-                        else:
-                            ncheck+=1
-                            tmd5s=pmd5s.get(tbl_id,{})
-                            if tmd5s=={}:
-                                nwarn+=1
-                                manageLog(fout,cmor.CMOR_WARNING, '\t\tCould not obtain any control md5s for table %s for project %s ' % (tbl_id,file.project_id))
-                            else:
-                                ncheck+=1
-                                ctrlmd5=tmd5s.get(tbl_date,None)
-                                if ctrlmd5 is None:
-                                    nwarn+=1
-                                    manageLog(fout,cmor.CMOR_WARNING, '\t\tCould not obtain control md5s for table %s for project %s dated on %s, valid tables dates are: ' % (tbl_id,file.project_id,tbl_date),sorted(tmd5s.keys()))
-                                else:
-                                    ncheck+=1
-                                    if ctrlmd5!=tbl_md5:
-                                        nwarn+=1
-                                        manageLog(fout,cmor.CMOR_WARNING, '\t\tYour file claims it has been ran through table id %s, dated %s for project_id %s, with an md5 of: %s, but our control files indicate the md5 should be: %s' % (tbl_id,tbl_date,file.project_id,tbl_md5,ctrlmd5))
-                                        
-
-                        
-                except Exception,err:
-                    #no md5 stored in file
-                    pass
-                ttbl_id = e['general'].get("table_id").split()[1]
-                ttbl_date = e['general'].get("table_date").strip()
-                if tbl_date!=ttbl_date:
-                    nwarn+=1
-                    ncheck+=1
-                    manageLog(fout,cmor.CMOR_WARNING,"File says table date was %s, but the table you passed to the checker is dated from: %s" %( tbl_date,ttbl_date))
-
-                if tbl_id!=ttbl_id:
-                    nerr+=manageLog(fout, noerror, 'your file indicates a table id of %s while your table id is %s' % (tbl_id,ttbl_id))
-                
-            except:
-                manageLog(fout,VERBOSE,"File says table is %s, this is not a correct name, correct format is something like: Table 3hr (24 May 2010) af8b1d3d63376942a55d779d0fb9f504" % (tmp_tbl_nm))
-
-
-
-            sp = shrt_fnm.split(v)[1].split("_")
-            t = file[v].getTime()
-            if t is not None:
-                n=6
-                t=t.clone()
-            else:
-                n=4
-            if is_clim:
-                n+=1
-            expt = getattr(file,"experiment","")
-            try:
-                shrt = shrt_vals[long_vals.index(expt)]
-            except:
-                #Ok we must be in one of the XXXX or DDHH cases...
-                for i in range(len(long_vals)):
-                    if long_vals[i][:-4]==expt[:-4]:
-                        shrt=shrt_vals[i][:-4]+expt[-4:]
-                        break
-                    if long_vals[i][:-10]==expt[:-10]:
-                        shrt=shrt_vals[i][:-10]+expt[-10:]
-                        break
-
-            if shrt=="":
-                n-=1
-                spoffset=-1
-            else:
-                spoffset=0
-                
-            print len(sp)
-            if len(sp)<n:
-                nerr+=manageLog(fout, noerror, 'your file name does not seem to match the profile: varid_tableid_modelid_exptid_rid[iid][pid][_startdate-enddate][_suffix][_clim].nc')
-                
-            if sp[1]!=tbl_id:
-                nerr+=manageLog(fout, noerror, 'your file name indicates a table id of %s while your table id should be %s' % (sp[1],tbl_id))
-
-            if sp[2]!=getattr(file,'model_id'):
-                fmodid = hyphenize(getattr(file,'model_id'))
-                if sp[2]!=fmodid:
-                    nerr+=manageLog(fout, noerror, 'your file name indicates model_id is: %s but your file says it is: %s' % (sp[2],getattr(file,'model_id')))
-            if shrt!="":
-                if shrt!=sp[3]:
-                    nerr+=manageLog(fout, noerror, 'your file name indicates exp_id is: %s but your file says it should be: %s' % (sp[3],shrt))
-
-            real = sp[4+spoffset]
-            rsp=real.split("p")
-            if hasattr(file,"physics_version"):
-                if len(rsp)==1:
-                    nerr+=manageLog(fout, noerror, 'your file name does not indicate physics_version but your file says it should be: %s' % (file.physics_version))
-                elif int(rsp[0].split('i')[0][1:])!=int(file.physics_version):
-                    nerr+=manageLog(fout, noerror, 'your file name indicates physics_version is: %s but your file says it should be: %s' % (rsp[1],file.physics_version))
-            elif len(rsp)!=1:
-                    nerr+=manageLog(fout, noerror, 'your file name indicates physics_version to be %s but your file says it has not physics: %s' % (rsp[1]))
-
-            real=rsp[0]
-            rsp=real.split("i")
-            if hasattr(file,"initialization_method"):
-                if len(rsp)==1:
-                    nerr+=manageLog(fout, noerror, 'your file name does not indicate initialization_method but your file says it should be: %s' % (file.initialization_method))
-                elif int(rsp[1])!=int(file.initialization_method):
-                    nerr+=manageLog(fout, noerror, 'your file name indicates initialization_method is: %s but your file says it should be: %s' % (rsp[1],file.initialization_method))
-            elif len(rsp)!=1:
-                    nerr+=manageLog(fout, noerror, 'your file name indicates initialization_method to be %s but your file says it has not initialization_method: %s' % (rsp[1]))
-            real=rsp[0]
-                
-            if int(real[1:])!=int(getattr(file,'realization')):
-                nerr+=manageLog(fout, noerror, 'your file name indicates realization is: %s but your file says it is: %i' % (sp[3][3:],int(getattr(file,'realization'))))
-            ## skip the following if it has no time
-            if t is not None:
-                # here we check the clim b4 going further checking into date
-                clim_att = getattr(t,'climatology',None)
-                if clim_att is None:
-                    has_clim = False
-                else:
-                    has_clim = True
-                if is_clim!=has_clim:
-                    if is_clim:
-                        nerr+=manageLog(fout, noerror, 'your file name indicates climatology, but the time axis does not have the climatology attribute')
-                    else:
-                        nerr+=manageLog(fout, noerror, 'your file name does not indicates climatology (_clim.nc), but the time axis has the climatology attribute')
-
-
-                if is_clim:
-                    tmp = file(t.climatology,slice(0,1))
-                    ft0 = tmp[0][0]
-                    tmp = file(t.climatology,slice(-1,None))
-                    ft1 = tmp[-1][1]
-                else:
-                    ft0=t[0]
-                    ft1=t[-1]
-                ft0= cdtime.reltime(ft0,t.units).tocomp(t.getCalendar())
-                ft1= cdtime.reltime(ft1,t.units).tocomp(t.getCalendar())
-
-                dates = sp[5+spoffset].split("-")
-
-                # now determines the frequency
-                units = t.units.split("since")[0].strip()
-                interval = float(e['general'].get("approx_interval"))
-                interval = genutil.udunits(interval,units).to("s").value
-
-
-                # determine what the frequency drname should be
-                if (interval<2500.) :
-                    frequency = "subhr"
-                elif (interval<15000.):
-                    frequency = "3hr"
-                elif (interval<30000.):
-                    frequency = "6hr"
-                elif (interval<100000.):
-                    frequency = "day"
-                elif (interval<3.E6):
-                    frequency = "mon"
-                else:
-                    frequency  = "yr"
-      
-                if (interval == 0.):
-                    strcpy(tmp,"fx")
-
-                #Now checks the frequecny attribute matches the one we just decided
-                if file.frequency[-4:]=='Clim':
-                    frequency=frequency+"Clim"
-                if file.frequency!=frequency:
-                    nerr+=manageLog(fout, noerror, 'your file indicates a frequency of "%s" but the approximate_interval suggests it should be: "%s"' % (file.frequency,frequency))
-
-
-                try:
-                    yr0=int(dates[0][:4])
-                except:
-                        nerr+=manageLog(fout, noerror, 'could not convert the years section start date iun your file',dates[0][:4])
-
-                frequency = 'yr'
-                if interval<29.E6:
-                    frequency='mon'
-                    if len(dates[0])<6:
-                        nerr+=manageLog(fout, noerror, 'your file name indicates a start time with years only when the approximate interval says it should have months')
-                    try:
-                        m0 = int(dates[0][4:6])
-                    except:
-                        nerr+=manageLog(fout, noerror, 'could not convert the months section start date iun your file',dates[0][4:6])
-                else:
-                    m0=ft0.month
-
-                if interval < 2E6:
-                    frequency='mon'
-                    if len(dates[0])<8:
-                        nerr+=manageLog(fout, noerror, 'your file name indicates a start time with years and months only when the approximate interval says it should have days')
-                    try:
-                        d0 = int(dates[0][6:8])
-                    except:
-                        nerr+=manageLog(fout, noerror, 'could not convert the day section start date iun your file',dates[0][6:8])
-
-                else:
-                    d0=ft0.day
-
-                if interval < 86000:
-                    if len(dates[0])<12:
-                        nerr+=manageLog(fout, noerror, 'your file name indicates a start time with years, months, days and hours only when the approximate interval says it should have minutes')
-                    try:
-                        h0 = int(dates[0][8:10])
-                    except:
-                        nerr+=manageLog(fout, noerror, 'could not convert the hours section start date iun your file',dates[0][8:10])
-                    try:
-                        mn0 = int(dates[0][10:12])
-                    except:
-                        nerr+=manageLog(fout, noerror, 'could not convert the miuntes section start date iun your file',dates[0][10:12])
-                else:
-                    h0= ft0.hour
-                    mn0=ft0.minute
-
-                if interval < 3000:
-                    if len(dates[0])<14:
-                        nerr+=manageLog(fout, noerror, 'your file name indicates a start time with years, months, days, hours and minutes only when the approximate interval says it should have seconds')
-                    try:
-                        s0 = int(dates[0][12:14])
-                    except:
-                        nerr+=manageLog(fout, noerror, 'could not convert the seconds section start date iun your file',dates[0][12:14])
-
-                else:
-                    s0=ft0.second
-                t0 = cdtime.comptime(yr0,m0,d0,h0,mn0,s0)
-                try:
-                    yr1=int(dates[1][:4])
-                except:
-                    nerr+=manageLog(fout, noerror, 'could not convert the years section end date iun your file',dates[1][:4])
-
-                if interval<29.E6:
-                    if len(dates[1])<6:
-                        nerr+=manageLog(fout, noerror, 'your file name indicates a start time with years only when the approximate interval says it should have months')
-                    try:
-                        m1 = int(dates[1][4:6])
-                    except:
-                        nerr+=manageLog(fout, noerror, 'could not convert the months section end date iun your file',dates[1][4:6])
-
-                else:
-                    m1=ft1.month
-
-                if interval < 2.E6:
-                    if len(dates[1])<8:
-                        nerr+=manageLog(fout, noerror, 'your file name indicates a start time with years and months only when the approximate interval says it should have days')
-                    try:
-                        d1 = int(dates[1][6:8])
-                    except:
-                        nerr+=manageLog(fout, noerror, 'could not convert the days section end date iun your file',dates[1][6:8])
-                else:
-                    d1=ft1.day
-
-                if interval < 90000:
-                    if len(dates[1])<10:
-                        nerr+=manageLog(fout, noerror, 'your file name indicates a start time with years, months and days only when the approximate interval says it should have hours')
-                    try:
-                        h1 = int(dates[1][8:10])
-                    except:
-                        nerr+=manageLog(fout, noerror, 'could not convert the hours section end date iun your file',dates[1][8:10])
-
-                else:
-                    h1=ft1.hour
-                if interval < 4000:
-                    if len(dates[1])<12:
-                        nerr+=manageLog(fout, noerror, 'your file name indicates a start time with years, months, days and hours only when the approximate interval says it should have minutes')
-                    try:
-                        mn1 = int(dates[1][10:12])
-                    except:
-                        nerr+=manageLog(fout, noerror, 'could not convert the minutes section end date iun your file',dates[1][10:12])
-
-                else:
-                    mn1=ft1.minute
-                if interval < 100:
-                    if len(dates[1])<14:
-                        nerr+=manageLog(fout, noerror, 'your file name indicates a start time with years, months, days, hours and minutes only when the approximate interval says it should have seconds')
-                    try:
-                        s1 = int(dates[1][12:14])
-                    except:
-                        nerr+=manageLog(fout, noerror, 'could not convert the seconds section end date iun your file',dates[1][12:14])
-
-                else:
-                    s1=ft1.second
-                t1 = cdtime.comptime(yr1,m1,d1,h1,mn1,s1)
-
-
-                if (ft0.year!=t0.year) or (ft0.month!=t0.month) or (ft0.day!=t0.day):
-                    nerr+=manageLog(fout, noerror, 'your file name indicates a start time of %i-%i-%i but the actual value in the file says: %i-%i-%i' % (t0.year,t0.month,t0.day,ft0.year,ft0.month,ft0.day))
-                if (ft1.year!=t1.year) or (ft1.month!=t1.month) or (ft1.day!=t1.day):
-                    nerr+=manageLog(fout, noerror, 'your file name indicates an end time of %i-%i-%i but the actual value in the file says: %i-%i-%i' % (t1.year,t1.month,t1.day,ft1.year,ft1.month,ft1.day))
-
-
-        
-            
-        manageLog(fout,VERBOSE, 'Checking that file contains only 1 variable')
-        vars=file.listvariable()
-        ## removes dims and other complementary vars
-        # First bounds
-    ##     manageLog(fout,VERBOSE, vars)
-        vars2=file.listvariable()
-        vars3=[]
-        vars4=[]
-        for v in vars2:
-    ##         manageLog(fout,VERBOSE, v)
-            V=file[v]
-            b=getattr(V,'bounds',None)
-            if b is not None:
-                vars.pop(vars.index(b))
-            b=getattr(V,'ancillary_variables',None)
-            if b is not None:
-                for sp in b.split():
-                    if sp.trip() in vars:
-                        vars.pop(sp.strip())
-            for ax in V.getAxisList():
-                b=getattr(ax,'bounds',None)
-                if b is not None:
-                    if b in vars:
-                        vars.pop(vars.index(b))
-                    Ab=file[b] # recovers associated bounds with axis
-                    f=getattr(Ab,'formula_terms',None)
-                    if f is not None:
-                        ## figures out the names of formula_terms
-                        sp=f.split(':')
-    ##                     manageLog(fout,VERBOSE, sp)
-                        for t in sp:
-    ##                         manageLog(fout,VERBOSE, 't is:',t)
-                            t=t.split()[-1]
-    ##                         manageLog(fout,VERBOSE, 'Now it is:',t)
-                            sp2=f.split(t+':')[1].split()[0]
-                            if sp2 in vars:
-                                vars3.append(vars.pop(vars.index(sp2)))
-                                vars4.append(True)
-                f=getattr(ax,'formula_terms',None)
-                if f is not None:
-                    ## figures out the names of formula_terms
-                    sp=f.split(':')
-    ##                 manageLog(fout,VERBOSE, sp)
-                    for t in sp:
-    ##                     manageLog(fout,VERBOSE, 't is:',t)
-                        t=t.split()[-1]
-    ##                     manageLog(fout,VERBOSE, 'Now it is:',t)
-                        sp2=f.split(t+':')[1].split()[0]
-                        if sp2 in vars:
-                            vars3.append(vars.pop(vars.index(sp2)))
-                            vars4.append(False)
-
-
-            coords=getattr(V,'coordinates',None)
-            if coords is not None:
-                coords = coords.split()
-                for c in coords:
-                    if c in vars:
-                        vars.pop(vars.index(c))
-            if hasattr(V,"grid_mapping"):
-                if V.grid_mapping in vars:
-                    vars.pop(vars.index(V.grid_mapping))
-                manageLog(fout,VERBOSE, "Grid_mapping attribute found, we cannot check these files yet")
-                ncheck+=1
-                nwarn+=1
-                return nwarn,ncheck,nerr
-
-
-            t = V.getTime()
-            if t is not None and hasattr(t,"climatology"):
-                c = t.climatology
-                if c in vars:
-                    vars.pop(vars.index(c))
-
-        if len(vars)!=1:
-            nerr+=manageLog(fout, noerror, 'file must contain only 1 variable, you have: '+str(len(vars))+':'+str(vars))
-
-        var=vars[0]
-        if major>=2 and dodrs:
-            #Now checks for the DRS file structure
-            prj_id = file.project_id.strip().replace(" ","_")
-            prod = file.product
-            inst = file.institute_id
-            if inst == 'not specified' :
-                inst = "INSTITUTE_ID"
-            mod = file.model_id
-            exp = file.experiment_id
-            #by pass no sht for now...
-            noff=0
-                
-            fq = file.frequency
-            realm = file.modeling_realm
-            r = str(int(file.realization))
-            if hasattr(file,"initialization_method"):
-                r+="i"+str(int(file.initialization_method))
-            if hasattr(file,"physics_version"):
-                r+="p"+str(int(file.physics_version))
-            path = os.path.dirname(fnm).split("/")
-            nerr += drs_check_pos(1,path,fout,noerror,'r%s' % r, 'realization')
-            nerr += drs_check_pos(2,path,fout,noerror,var, 'variable')
-            nerr += drs_check_pos(3,path,fout,noerror,realm, 'modeling realm')
-            nerr += drs_check_pos(4,path,fout,noerror,fq, 'frequency')
-            if exp == file.experiment:
-                noff=1
-            else:
-                nerr += drs_check_pos(5,path,fout,noerror,exp, 'experiment id')
-            nerr += drs_check_pos(6-noff,path,fout,noerror,hyphenize(mod), 'model id')
-            nerr += drs_check_pos(7-noff,path,fout,noerror,inst, 'insitution id')
-            nerr += drs_check_pos(8-noff,path,fout,noerror,prod, 'product')
-            nerr += drs_check_pos(9-noff,path,fout,noerror,prj_id, 'project id')
-                            
-    fb=False
-    if variable is not None:
-        var=variable
-        fb=from_bounds
-        manageLog(fout,VERBOSE, 'Ok user asked to check the following variable:',variable,'with from bounds =',fb)
-    manageLog(fout,VERBOSE, 'Checking variable name is %s compliant' % file.project_id)
-    if not var in IPCC_std_vars:
-        if var in Vars.keys():
-            nerr+=manageLog(fout, noerror, var+' is not valid, did you mean :'+Vars[var]['out_name']+' ?')
-        else:
-            nerr+=manageLog(fout, noerror, 'Variable name :'+var+' is not %s compliant' % file.project_id)
-    if variable is None:
-        manageLog(fout,VERBOSE, 'Checking that variable name in file matches file indications')
-        if not var == vf:
-            nerr+=manageLog(fout, noerror, 'File indicates it stores variable:'+vf+' but actually '+var+' is stored in it')
-    
-    V=file[var]
-
-    axes=V.getAxisList()
-    hasLat=0
-    hasLon=0
-    hasTime=0
-    hasLevel=0
-
-    ax_dict_name=[]
-    for ax in axes:
-        manageLog(fout,VERBOSE, 'Checking axis name is valid for:',ax.id,'on var:',V.id)
-        if not ax.id in IPCC_std_axes:
-            if ax.id in Axes.keys():
-                if major <2:
-                    ncheck+=1
-                    nwarn+=1
-                    nerr+=manageLog(fout,cmor.CMOR_WARNING, '\t\t'+ax.id+' is not preferred. We suggest you rename it:'+Axes[ax.id]['out_name'])
-                else:
-                    manageLog(fout,noerror, '\t\tAxis name '+ax.id+' is not valid. We require you rename it:'+Axes[ax.id]['out_name'])
-            elif (fb == False) or (fb == True and V.rank()!=2):
-                nerr+=manageLog(fout, noerror, 'axis id: '+ax.id+' is not a valid IPCC name')
-        if ax.isLatitude():
-            hasLat=1
-        if ax.isLongitude():
-            hasLon=1
-        if ax.isTime():
-            hasTime=1
-        if ax.isLevel():
-            hasLevel=1
-
-    old_ordering=0
-    o=V.getOrder(ids=1)
-    if old_ordering:
-        manageLog(fout,VERBOSE, 'Checking dimensions order')
-        if hasTime:
-            manageLog(fout,VERBOSE, '\tChecking time position')
-            if o[0]=='t':
-                o=o[1:]
-            else:
-                nerr+=manageLog(fout, noerror, 'time must be first dimension your ordering is:'+o)
-
-        manageLog(fout,VERBOSE, '\tChecking none tzxy dims position')
-        sp=o.split('(')
-        if len(sp)>1:
-            if o[0]!='(':
-                nerr+=manageLog(fout, noerror, 'none zyx dimensions must come right after time dimension, you have:'+o)
-            o=o.split(')')[-1]
-        manageLog(fout,VERBOSE, '\tChecking level position')
-        if hasLevel:
-            if o[0]=='z':
-                o=o[1:]
-            else:
-                nerr+=manageLog(fout, noerror, 'level must be ordered after time your order is:'+o)
-        manageLog(fout,VERBOSE, '\tChecking latitude position')
-        if hasLat:
-            if o[0]=='y':
-                o=o[1:]
-            else:
-                nerr+=manageLog(fout, noerror, 'latitude must be ordered after time and level your order is:'+o)
-        manageLog(fout,VERBOSE, '\tChecking longitude position')
-        if hasLon:
-            if o[0]=='x':
-                o=o[1:]
-            else:
-                nerr+=manageLog(fout, noerror, 'longitude must be ordered after time, level and latitude your order is:'+o)
-        
-    g=None
-    if hasLat and hasLon:
-        manageLog(fout,VERBOSE, 'Checking grid')
-        g=V.getGrid()
-        if not isinstance(g,cdms2.grid.AbstractRectGrid):
-            nerr+=manageLog(fout, noerror, 'lat/lon variable ('+var+') must have Rectilinear grids')
-
-    axes_nmes=Vars[var].get('dimensions',None)
-
-    if axes_nmes is not None:
-        manageLog(fout,VERBOSE, 'Checking rest of things on axes')
-        axes_nmes=axes_nmes[::-1]
-        axes_nmes_for_ordering=Vars[var]['dimensions'][::-1]
-        coord=getattr(V,'coordinates',None)
-        for nm in axes_nmes:
-            req_Att=['standard_name','units']
-            anm = nm
-            if nm in [ 'alevel','olevel','zlevel']:
-                gnm=nm
-                manageLog(fout,VERBOSE, '\tChecking special case %s, i.e' % (nm),'')
-                tmpax=V.getLevel()
-                print>>fout,  tmpax.id,tmpax.standard_name
-                for x in Axes.keys():
-                    tmp=Axes[x].get('standard_name',None)
-                    if tmp is not None: tmp=tmp.strip()
-                    if tmp is not None and tmp==tmpax.standard_name:
-                        nm=x
-                        Nm=Axes[x]['out_name']
-                        anm=x
-                        req_Att.append('formula')
-                        req_Att.append('formula_terms')
-                        if getattr(tmpax,"formula","")==Axes[x]['formula']:
-                            break
-                axes_nmes_for_ordering[axes_nmes_for_ordering.index(gnm)]=nm
-            elif not nm in V.getAxisIds():
-                try:
-                    Nm=Axes[nm]['out_name']
-                except:
-                    nerr+=manageLog(fout, noerror, 'with axis: '+nm+' not found for variable: '+var, noerror)
-            else:
-                Nm=nm
-            if major>1:
-                if Axes[anm].get("must_have_bounds","no")=="yes":
-                    req_Att.append("bounds")
-                if Axes[anm].get("axis",None) is not None:
-                    req_Att.append("axis")
-            else:
-                req_Att.append("bounds")
-
-            if nm == 'time' and is_clim:
-                req_Att.pop(req_Att.index("bounds"))
-                
-            manageLog(fout,VERBOSE, '\tChecking',Nm)
-            axindx=V.getAxisIndex(Nm)
-            val=Axes[nm].get('value',None)
-            if val is not None: #singleton dimension ?
-                manageLog(fout,VERBOSE, '\t\tSingleton dimension')
-                if val is None:
-                    nerr+=manageLog(fout, noerror, 'cannot retrieve needed axis:'+Nm)
-                else:
-                    val=float(val)
-                    if axindx!=-1:
-                        nerr+=manageLog(fout, noerror, 'singleton dimension '+Nm+' must be defined via coordinates attributes on variable '+var+' not as an axis')
-                    else:
-                        manageLog(fout,VERBOSE, '\t\tChecking coordinates attribute exists on '+var)
-                        aval=getattr(V,'coordinates',None)
-                        if aval is None:
-                            nerr+=manageLog(fout, noerror, 'singleton dimension must be defined via coordinates attribute')
-                        manageLog(fout,VERBOSE, '\t\tChecking coordinates attribute matches for '+var)
-                        if not Nm in aval.split():
-                            nerr+=manageLog(fout, noerror, 'coordinates atrtribute on '+var+' should be '+Nm+' it is '+aval)
-
-                        ax=file[Nm]
-                        mn,mx=Axes[nm].get('valid_min',None), Axes[nm].get('valid_max',None)
-                        manageLog(fout,VERBOSE, '\t\tChecks for value')
-                        if ax != val:
-                            manageLog(fout,VERBOSE, '\t\t\tNot matching, checking if valid range is defined in table')
-                            if mn is None and mx is None:
-                                nerr+=manageLog(fout, noerror, 'singleton dimension value for '+Nm+' must be '+str(val))
-                            manageLog(fout,VERBOSE, '\t\t\tChecking if value is within range defined in table')
-                            if mn is not None:
-                                if mx is not None:
-                                    if not( float(mn)<ax<float(mx)):
-                                        nerr+=manageLog(fout, noerror, 'invalid value for singleton dimension '+Nm+': '+str(ax)+' must be between '+mn+' and '+mx)
-                                elif ax<float(mn):
-                                    nerr+=manageLog(fout, noerror, 'invalid min for singleton dimension '+Nm+': '+str(ax)+' must be greater than '+mn)
-                            elif ax>float(mx):
-                                    nerr+=manageLog(fout, noerror, 'invalid max for singleton dimension '+Nm+': '+str(ax)+' must be less than '+mx)
-                        manageLog(fout,VERBOSE, '\t\tChecking for bounds information')
-                        b=getattr(ax,'bounds',None)
-                        bv=Axes[nm].get('bounds_values',None)
-                        if bv is not None:
-                            manageLog(fout,VERBOSE, '\t\t\tBounds information defined in table, checking vs file')
-                            bv=bv.split()
-                            bv=float(bv[0]),float(bv[1])
-                            if b is not None:
-                                manageLog(fout,VERBOSE, '\t\t\tBounds information defined in file, checking if matches')
-                                abv=file[b]
-                                ncheck+=1
-                                if abv[0]!=bv[0] or abv[1]!=bv[1]:
-                                    nwarn+=1
-                                    manageLog(fout,cmor.CMOR_WARNING, '\t\t\t\tbounds_value for singleton dimension '+Nm+': '+str(abv)+' do not match requested bounds:'+str(bv))
-                            else:
-                                nerr+=manageLog(fout, noerror, 'singleton dimension: '+Nm+' bounds required')
-                        else:
-                            ncheck+=1
-                            if b is not None:
-                                nwarn+=1
-                                manageLog(fout,cmor.CMOR_WARNING, '\t\t\t\tSingleton dimension: '+Nm+' bounds should not be included')
-
-                axes_nmes_for_ordering.pop(0)
-                continue # singleton dimension checked no need to continue further
-
-            if axindx==-1:
-                nerr+=manageLog(fout, noerror, 'Variable '+var+' should have an axis called '+Axes[Nm])
-            ax=V.getAxis(axindx)
-            manageLog(fout,VERBOSE, '\t\tChecking that dimension order is positioned:',axes_nmes_for_ordering.index(nm)+1,axes_nmes)
-            if axindx!=axes_nmes_for_ordering.index(nm):
-                nerr+=manageLog(fout, noerror, 'in ordering for dimension '+nm+' position is: '+str(axindx)+' but it should be: '+str(axes_nmes_for_ordering.index(nm)))
-            if ('cell_bounds' in Axes[nm].get('ignored',[])) or ('cell_bounds' in Axes[nm].get('forbidden',[])) or ('cell_bounds' in Axes[nm].get('optional',[])):
-                req_Att.pop(req_Att.index('bounds'))
-            if 'units' in Axes[nm].get('ignored',[]) or 'units' in Axes[nm].get('optional',[]):
-                try:
-                    req_Att.pop(req_Att.index('units'))
-                except:
-                    pass
-            ## Ok here we're trying to do the region thing, i.e coordinate attribute exist
-            docoord=False
-            if coord is not None:
-                for c in coord.split():
-                    nax=file[c]
-                    if ax.id in nax.getAxisIds():
-                        oldax=ax
-                        ax=nax
-                        docoord=True
-            manageLog(fout,VERBOSE, '\t\tChecking if required attributes are set:','')
-            for r in req_Att:
-                manageLog(fout,VERBOSE, r,'')
-                val=getattr(ax,r,None)
-                if val is None:
-                    print >>fout
-                    nerr+=manageLog(fout, noerror, 'attribute '+r+' is required for axis '+ax.id)
-                if r!='units':
-                    good_val=Axes[nm].get(r,None)
-                    if good_val is not None:
-                        if val!=good_val:
-                            nerr+=manageLog(fout, noerror, 'axis attribute '+r+' should be: '+str(good_val)+' but is:'+str(val))
-                if r=='formula_terms':
-                    print 'Formula:',Axes[anm]['formula'],val
-            print >>fout
-            if not 'units' in Axes[nm].get('ignored',[]):
-                if not 'units' in Axes[nm].get('optional',[]) or ('units' in Axes[nm].get('optional',[]) and hasattr(ax,'units')):
-                    if not ax.isTime():
-                        manageLog(fout,VERBOSE, '\t\tChecking units',ax.units)
-                        if major<2:
-                            u1=genutil.udunits(1,ax.units)
-                            try:
-                                u2=u1.to(Axes[nm]['units'])
-                                if u2.value!=1:
-                                    nerr+=manageLog(fout, noerror, 'units:'+ax.units+' are not compatible with required:'+Axes[nm]['units'])
-                            except:
-                                nerr+=manageLog(fout, noerror, 'units:'+ax.units+' are not compatible with required:'+Axes[nm]['units'])
-                        else:
-                            if ax.units != Axes[nm]['units']:
-                                nerr+=manageLog(fout, noerror, 'units: '+ax.units+' are not the required units:'+Axes[nm]['units'])
-
-                    else:
-                        manageLog(fout,VERBOSE, '\t\tChecking units',ax.units)
-                        if major>1:
-                            if ax.units.lower().find("days since")==-1:
-                                nerr+=manageLog(fout,noerror,'Time units must be in "days since", you have:',ax.units)
-                            bnds = ax.getBounds()
-                            if bnds is not None:
-                                for i in range(len(ax)):
-                                    if ax[i]!=(bnds[i][0]+bnds[i][1])/2.:
-                                        nerr+=manageLog(fout,noerror,"Time values are not average of time bounds")
-                        try:
-                            u=cdtime.reltime(1,ax.units)
-                        except:
-                            nerr+=manageLog(fout, noerror, 'invalid time units:'+ax.units+', should be in the form: "'+Axes[nm]['units']+'"')
-                        try:
-                            c=ax.calendar
-                        except:
-                            c='none'
-                        if not c in ["gregorian","standard", "proleptic_gregorian","noleap","365_day","360_day","julian","none","non_standard"]:
-                            nerr+=manageLog(fout,noerror,"calendar must be one of [","gregorian","standard", "proleptic_gregorian","noleap","365_day","360_day","julian","none","non_standard ] yours is",c)
-                        if c=='365_day':
-                            c=cdtime.NoLeapCalendar
-                        else:
-                            c=ax.getCalendar()
-                        manageLog(fout,VERBOSE, '\t\tView First and Last times:\t',ax.asComponentTime(c)[0],'\t',ax.asComponentTime(c)[-1])
-                        tmpbnds=ax.getBounds()
-                        if tmpbnds is not None:
-                            manageLog(fout,VERBOSE, '\t\tView Bounds for first time:\t',cdtime.reltime(tmpbnds[0,0],ax.units).tocomp(c),'\t',cdtime.reltime(tmpbnds[0,1],ax.units).tocomp(c))
-                            manageLog(fout,VERBOSE, '\t\tView Bounds for last time:\t',cdtime.reltime(tmpbnds[-1,0],ax.units).tocomp(c),'\t',cdtime.reltime(tmpbnds[-1,1],ax.units).tocomp(c))
-                        else:
-                            manageLog(fout,VERBOSE,'\t\tNo Bounds for time')
-                            
-
-            tp=Axes[nm].get('type','double')
-            manageLog(fout,VERBOSE, '\t\tChecking axis is type',tp)
-
-            if tp == 'double' : tp='d'
-            elif tp == 'real' : tp='f'
-            elif tp == 'character' : tp='c'
-            elif tp == 'integer' : tp='l'
-            else:
-                nerr+=manageLog(fout, noerror, 'encountered unknown type:'+tp)
-            if ax.typecode()!=tp:
-                nerr+=manageLog(fout, noerror, 'required typecode for '+Nm+' should be '+tp+' not '+ax.typecode())
-
-            if ax.isLongitude():
-                manageLog(fout,VERBOSE, '\t\tChecking for axis attribute')
-                a=getattr(ax,'axis',None)
-                if a is None:
-                    nerr+=manageLog(fout, noerror, 'longitude axis must have associated axis attribute')
-                if a!='X':
-                    nerr+=manageLog(fout, noerror, 'longitude axis must have associated axis attribute set to X not: '+a)
-                manageLog(fout,VERBOSE, '\t\tChecking name')
-                if not ax.id in ['lon','longitude']:
-                    nerr+=manageLog(fout, noerror, 'longitude axis name must be longitude or lon (prefered) not: '+ax.id)
-##                 else:
-##                     ncheck+=1
-##                     if ax.id=='longitude':
-##                         nwarn+=1
-##                         manageLog(fout,cmor.CMOR_WARNING, '\t\t\tWe recomend longitude axis name to be: "lon"')
-                manageLog(fout,VERBOSE, '\t\tChecking that the first point is >= 0')
-                if ax[0]<0:
-                    nerr+=manageLog(fout, noerror, 'first longitude must be >= 0 degrees_east')
-                manageLog(fout,VERBOSE, '\t\tChecking that the longitude are in degrees (not rads)')
-                min,max=genutil.minmax(ax[:])
-                if 0.<max-min<6.3:
-                    nerr+=manageLog(fout, noerror, 'longitude must be stored in degree span is:'+str(max-min)+' looks like rad')
-            elif ax.isLatitude():
-                manageLog(fout,VERBOSE, '\t\tChecking for axis attribute')
-                a=getattr(ax,'axis',None)
-                if a is None:
-                    nerr+=manageLog(fout, noerror, 'latitude axis must have associated axis attribute')
-                if a!='Y':
-                    nerr+=manageLog(fout, noerror, 'latitude axis must have associated axis attribute set to Y not: '+a)
-                manageLog(fout,VERBOSE, '\t\tChecking name')
-                if not ax.id in ['lat','latitude']:
-                    nerr+=manageLog(fout, noerror, 'latitude axis name must be latitude or lat (prefered) not: '+ax.id)
-##                 else:
-##                     ncheck+=1
-##                     if ax.id=='latitude':
-##                         nwarn+=1
-##                         manageLog(fout,cmor.CMOR_WARNING, '\t\t\tWe recomend latitude axis name to be: "lat"')
-                manageLog(fout,VERBOSE, '\t\tChecking that the latitude are in degrees (not rads)')
-                min,max=genutil.minmax(ax[:])
-                if 0.<max-min<3.2:
-                    print ax[:]
-                    nerr+=manageLog(fout, noerror, 'latitude must be stored in degree span is:'+str(max-min)+' looks like rad')
-            elif ax.isTime() and len(ax[:])>1:
-                manageLog(fout,VERBOSE, '\t\tChecking for axis attribute')
-                a=getattr(ax,'axis',None)
-                if a is None:
-                    nerr+=manageLog(fout, noerror, 'time axis must have associated axis attribute')
-                if a!='T':
-                    nerr+=manageLog(fout, noerror, 'time axis must have associated axis attribute set to T not: '+a)
-                manageLog(fout,VERBOSE, '\t\tView calendar attribute: ','')
-                c=getattr(ax,'calendar',None)
-                if c is None:
-                    print >>fout
-                    nerr+=manageLog(fout, noerror, 'calendar attribute must be defined on time axis')
-                else:
-                    manageLog(fout,VERBOSE, c)
-                    
-            elif ax.isLevel():
-                manageLog(fout,VERBOSE, '\t\tChecking for axis attribute')
-                a=getattr(ax,'axis',None)
-                if a is None:
-                    nerr+=manageLog(fout, noerror, 'vertical axis must have associated axis attribute')
-                if a!='Z':
-                    nerr+=manageLog(fout, noerror, 'vertical axis must have associated axis attribute set to Z not: '+a)
-                manageLog(fout,VERBOSE, '\t\tChecking that level are stored with first level closest from surface')
-                ## ???
-                manageLog(fout,VERBOSE, '\t\tChecking positive attribute')
-                p=getattr(ax,'positive',None)
-                if not nm in [ 'zlevel', 'alevel','olevel']:
-                    ncheck+=1
-                if p is None:
-                    if nm in ['zlevel','alevel','olevel']:
-                        nerr+=manageLog(fout, noerror, 'vertical dimensions must have positive attribute')
-                    else:
-                        nwarn+=1
-                        manageLog(fout,cmor.CMOR_WARNING, 'The "positive" attribute should be defined for vertical dimensions.','name was:',nm,gnm)
-                        
-                elif not p in ['up','down']:
-                    nerr+=manageLog(fout, noerror, 'positive attribute on vertical dimension must be be up or down not: '+p)
-                if hasattr(ax,'formula_terms'):
-                    ncheck+=1
-                    if not hasattr(ax,'formula'):
-                        manageLog(fout,cmor.CMOR_WARNING, '\t\t\tLevel dimension has no attribute formula!')
-                        nwarn+=1
-                    ncheck+=1
-                    manageLog(fout,VERBOSE, '\t\tChecking that formula terms variables are stored')
-                    ft=getattr(ax,'formula_terms',None)
-                    ## figures out the names of formula_terms
-                    sp=ft.split(':')
-    ##                 manageLog(fout,VERBOSE, sp)
-                    for t in sp:
-    ##                     manageLog(fout,VERBOSE, 't is:',t)
-                        t=t.split()[-1]
-    ##                     manageLog(fout,VERBOSE, 'Now it is:',t)
-                        sp2=ft.split(t+':')[1].split()[0]
-                        if not sp2 in file.variables.keys():
-                            nerr+=manageLog(fout, noerror, 'formula_terms attribute indicates variable '+sp2+' should be stored in file')
-
-            if not docoord:
-                dirc=Axes[nm].get('stored_direction','increasing').lower()
-                if dirc == 'increasing':
-                    func=numpy.greater
-                elif dirc == 'decreasing':
-                    func=numpy.less
-                else:
-                    nerr+=manageLog(fout, noerror, 'unknown value for stored_direction:',dirc)
-                manageLog(fout,VERBOSE, '\t\tChecking that axis is stored '+dirc+'ly')
-                prev=ax[0]
-                for a in ax[1:]:
-                    if not func(a,prev):
-                        nerr+=manageLog(fout, noerror, 'axis values for '+Nm+' must be stored:'+dirc+'ly')
-                    prev=a
-                Mn,Mx=genutil.minmax(ax[:])
-                mn=Axes[nm].get('valid_min',None)
-                if mn is not None:
-                    manageLog(fout,VERBOSE, '\t\tChecking valid min',mn)
-                    if Mn<float(mn):
-                        nerr+=manageLog(fout, noerror, 'axis '+Nm+' invalid min:'+str(Mn)+' cannot be less than:'+mn)
-                mx=Axes[nm].get('valid_max',None)
-                if mx is not None:
-                    manageLog(fout,VERBOSE, '\t\tChecking valid max',mx)
-                    if Mx>float(mx):
-                        nerr+=manageLog(fout, noerror, 'axis '+Nm+' invalid max:'+str(Mx)+' cannot be greater than:'+mx)
-            rq=Axes[nm].get('requested',None)
-            if rq is not None:
-                manageLog(fout,VERBOSE, '\t\tChecking that requested values are present:',rq)
-                tol=float(Axes[nm].get('tol_on_requests',1.e-3))
-                for ir in range(len(rq)):
-                    r=rq[ir]
-                    found=0
-                    if docoord:
-                        for iv in range(len(ax[:])):
-                            v=ax[iv]
-                            st=''
-                            for vv in v:
-                                st+=str(vv)
-                            if r.strip().lower()==st.strip().lower():
-                                found=1
-                                ifound=iv
-                                break
-                    else:
-                        r=float(r)
-                        for iv in range(len(ax[:])):
-                            v=ax[iv]
-                            if abs(v-r)<tol:
-                                found=1
-                                ifound=iv
-                                break
-                    if found==0:
-                        nerr+=manageLog(fout, noerror, 'on axis '+Nm+' requested value '+str(r)+' not found')
-##                     elif ifound!=ir:
-##                         nerr+=manageLog(fout, noerror, 'on axis '+Nm+' requested value "'+str(r)+'" present but not in the correct order, it is at position '+str(ifound)+' but should be ordered '+str(ir)+' ( actual order should be: '+str(rq)+' )')
-
-            if 'bounds' in req_Att:
-                manageLog(fout,VERBOSE, '\t\tChecking for bounds')
-                b=getattr(ax,'bounds',None)
-                if b is None:
-    ##                 if ax.isLevel():
-    ##                     manageLog(fout,cmor.CMOR_WARNING, '\t\t\tLevel dimension has no bounds!')
-    ##                     nwarn+=1
-    ##                     ncheck+=1
-    ##                 if ax.isTime():
-    ##                     manageLog(fout,cmor.CMOR_WARNING, '\t\t\tTime dimension has no bounds!')
-    ##                     nwarn+=1
-    ##                     ncheck+=1
-    ##                 else:
-                        nerr+=manageLog(fout, noerror, 'dimension:'+Nm+' has no associated bounds')
-                else:
-                    manageLog(fout,VERBOSE, '\t\tChecking that defined bounds variable is in file')
-                    if not b in file.variables.keys():
-                        nerr+=manageLog(fout, noerror, 'dimension '+Nm+' associated bounds are defined to be '+b+' but the variable is not present in file')
-                    if ax.isTime():
-                        interv = Axes[nm].get('interval',None)
-                        tinterv = e['general'].get('approx_interval',None)
-                        if float(tinterv) == 30. and interv!=0:
-                            manageLog(fout,VERBOSE, '\t\tChecking that bounds are at beg and end of month')
-                            bnds=ax.getBounds()
-                            for ib in range(len(ax[:])):
-                                b=bnds[ib]
-                                c=ax.calendar
-                                if c=='365_day':
-                                    c=cdtime.NoLeapCalendar
-                                else:
-                                    c=ax.getCalendar()
-
-##                                 print 'Used calendar:',c
-                                beg=cdtime.reltime(b[0],ax.units).tocomp(c)
-                                end=cdtime.reltime(b[1],ax.units).tocomp(c)
-                                mid=cdtime.reltime(ax[ib],ax.units).tocomp(c)
-                                if beg.month!=mid.month:
-                                    nerr+=manageLog(fout, noerror, 'at time value: '+str(mid)+' (index: '+str(ib)+' ) bounds do not start in the same month than time value: '+str(beg))
-                                if beg.cmp(cdtime.comptime(beg.year,beg.month))!=0:
-                                    nerr+=manageLog(fout, noerror, 'at time value: '+str(mid)+' (index: '+str(ib)+' ) bounds do not start at begining of the month: '+str(beg))
-                                if end.month!=mid.add(1,cdtime.Month).month:
-                                    nerr+=manageLog(fout, noerror, 'at time value: '+str(mid)+' (index: '+str(ib)+' ) bounds do not end in the following month than time value: '+str(end))
-                                if end.cmp(beg.add(1,cdtime.Month))!=0:
-                                    nerr+=manageLog(fout, noerror, 'at time value: '+str(mid)+' (index: '+str(ib)+' ) bounds do not end at end of the month: '+str(end))
-
-    manageLog(fout,VERBOSE, 'Checking variable:',var)
-    req_var_Att = ['standard_name','units']
-    opt_var_Att=['original_name','history','long_name','comment','coordinates','cell_methods','original_units',"cell_measures"]
-    for etmp in etables:
-        ev = etmp['variable']
-        for v in ev.keys():
-            if v == var:
-                for p in ev[v].get("optional",[]):
-                    if p in req_var_Att:
-                        req_var_Att.pop(req_var_Att.index(p))
-    if major >1 and variable is None:
-        req_var_Att.append("associated_files")
-        req_var_Att.append("associated_files")
-        req_var_Att.append("long_name")
-        opt_var_Att.append("missing_value")
-        opt_var_Att.append("_FillValue")
-    if major>1:
-        for att in ['units','standard_name']:
-            if ev[var].get(att,None) is None:
-                req_var_Att.pop(req_var_Att.index(att))
-        for att in ['cell_measures','cell_methods','flag_values']:
-            if ev[var].get(att,None) is not None:
-                req_var_Att.append(att)
-        
-        
-    for o in Vars[var].get('optional',[]):
-        if not o in opt_var_Att:
-            opt_var_Att.append(o)
-    manageLog(fout,VERBOSE, '\tChecking if required attributes are set:','')
-    for r in req_var_Att:
-        manageLog(fout,VERBOSE, r,'')
-        val = getattr(V,r,None)
-        if val is None:
-            nerr+=manageLog(fout, noerror, 'Attribute '+r+' is required but not set for var '+var)
-        elif r!='units' and r.strip().lower()!='standard_name':
-            good_val=Vars[var].get(r,None)
-            if good_val is not None:
-                if val!=good_val:
-                    nerr+=manageLog(fout, noerror, 'variable attribute '+r+' should be: '+str(good_val)+' but is:'+str(val))
-            elif r=='associated_files':
-                if val.find("baseURL:") == -1:
-                    nerr+=manageLog(fout,noerror,"associated_files attributes must contain a baseURL")
-                elif val.find(e['general']['baseURL'].replace("http","http:")) == -1:
-                    nerr+=manageLog(fout,noerror,"wrong baseURL, should be: '%s', you have: " % e['general']['baseURL'].replace("http","http:"),val)
-                if Vars[var].get("cell_measures",None) is not None:
-                    sp=Vars[var].get("cell_measures").split()
-                    for i in range(len(sp)/2):
-                        if val.find(sp[i+1]+"_")==-1:
-                            nerr+=manageLog(fout,noerror,"associated files should point to file containing:",sp[i+1],'you have:',val)
-                            
-    print >>fout
-    tp=Vars[V.id].get('type','real')
-    manageLog(fout,VERBOSE, '\tChecking Variable typecode is',tp)
-    if tp == 'double' : tp='d'
-    elif tp == 'real' : tp='f'
-    elif tp == 'character' : tp='c'
-    elif tp == 'integer' : tp='l'
-    else:
-        nerr+=manageLog(fout, noerror, 'encountered unknown type:'+tp)
-    if V.typecode()!=tp:
-        nerr+=manageLog(fout, noerror, 'variable typecode must be '+tp+', it is:'+V.typecode())
-
-    if 'units' in req_var_Att:
-        manageLog(fout,VERBOSE, '\tChecking defined units')
-        U1=unidata.udunits(1,V.units)
-        try:
-            U2=U1.to(Vars[var]['units'])
-            if U2.value!=1:
-                nerr+=manageLog(fout, noerror, 'variable units:'+V.units+' do not match IPCC units:'+Vars[var]['units']+'\n'+\
-                      '1 '+V.units+' is actually :'+str(U2))
-        except:
-            nerr+=manageLog(fout, noerror, 'variable units:'+V.units+' do not match IPCC units:'+Vars[var]['units'])
-    if 'standard_name' in Vars[var].keys():
-        manageLog(fout,VERBOSE, '\tChecking standard name (case independent)')
-        if getattr(V,'standard_name','').lower().strip()!=Vars[var]['standard_name']:
-            nerr+=manageLog(fout, noerror, 'standard_name for '+var+' should be:'+Vars[var]['standard_name'])
-
-##     if hasattr(V,'_FillValue'):
-##         manageLog(fout,VERBOSE, '\tChecking for _FillValue')
-##         tp=Vars[V.id].get('type','real')
-##         if tp == 'double' :
-##             tpv=numpy.array([float(e['general'].get('double_missing_value',1.e20)),],'d')
-##         elif tp == 'real' :
-##             tpv=numpy.array([float(e['general'].get('missing_value',1.e20)),],'f')
-##         elif tp == 'integer' :
-##             tpv=numpy.array([int(e['general'].get('integer_missing_value',-192837)),],'i')
-##         else:
-##             nerr+=manageLog(fout, noerror, 'encountered unknown type:'+tp)
-##         print V.id,'type is:',tp,V._FillValue,tpv
-##         if getattr(V,'_FillValue')!=tpv:
-##             nerr+=manageLog(fout, noerror, '_FillValue must be '+str(tpv)+' (in the typecode of variable)')
-
-    manageLog(fout,VERBOSE, '\tChecking for warnings')
-    if hasattr(V,'_FillValue'):
-        if not hasattr(V,'missing_value'):
-            if major<2:
-                ncheck+=1        
-                manageLog(fout,cmor.CMOR_WARNING, '\t\tYou defined _FillValue. We recommend you also define missing_value')
-                nwarn+=1
-            else:
-                manageLog(fout,cmor.CMOR_WARNING, '\t\tYou defined _FillValue, You must also define missing_value')
-        elif V.missing_value!=V._FillValue:
-            nerr+=manageLog(fout, noerror, 'missing_value and _FillValue attributes are different')
-    if hasattr(V,'missing_value'):
-        if not hasattr(V,'_FillValue'):
-            if major<2:
-                ncheck+=1        
-                manageLog(fout,cmor.CMOR_WARNING, '\t\tYou defined missing_value. We recommend you also define _FillValue')
-                nwarn+=1
-            else:
-                manageLog(fout,cmor.CMOR_WARNING, '\t\tYou defined missing_value, You must also define _FillValue')
-        elif V.missing_value!=V._FillValue:
-            nerr+=manageLog(fout, noerror, 'missing_value and _FillValue attributes are different')
-        elif V.missing_value!=1.e20:
-            nerr+=manageLog(fout,noerror,'missing_value and _FillValue must be set to 1.e20f')
-        
-    if variable is None:
-        cm=Vars[var].get('cell_methods',[])
-        if cm!=[]:
-            manageLog(fout,VERBOSE, '\tChecking for cell_methods: ','')
-            if not hasattr(V,'cell_methods'):
-                print >> fout
-                nerr+=manageLog(fout, noerror, 'Variable '+var+' should have "cell_methods" attribute')
-            else:
-                 print >> fout,V.cell_methods
-               
-            cmv=getattr(V,'cell_methods','')
-            sp=cm.split('(')
-            cm=sp[0]
-            for s in sp[1:]:
-                cm+=s.split(')')[-1]
-            sp=cmv.split('(')
-            cmv=sp[0]
-            for s in sp[1:]:
-                cmv+=s.split(')')[-1]
-            sp=cm.split(':')
-            dic={}
-            kw=sp[0].strip()
-            for s in sp[1:]:
-                dic[kw]=s.split()[0].strip()
-                kw=s.split()[-1].strip()
-            sp=cmv.split(':')
-            dicv={}
-            kw=sp[0].strip()
-            for s in sp[1:]:
-                dicv[kw]=s.split()[0].strip()
-                kw=s.split()[-1].strip()
-            for kw in dic.keys():
-                if not kw in dicv.keys():
-                    nerr+=manageLog(fout, noerror, 'cell_methods must include '+kw+' defined (to: '+dic[kw]+' )')
-                elif not dicv[kw]==dic[kw]:
-                    nerr+=manageLog(fout, noerror, 'cell_method: '+kw+' definition does not match table, it is :'+dicv[kw]+' but should be: '+dic[kw])
-        for att in opt_var_Att:
-            ncheck+=1
-            if not hasattr(V,att):
-                nwarn+=1
-                manageLog(fout,cmor.CMOR_WARNING, '\t\tWhen appropriate, it is often helpful to define the variable attribute: ',att)
-        for att in V.attributes.keys():
-            ncheck+=1
-            if not att in req_var_Att and not att in opt_var_Att:
-                nwarn+=1
-                manageLog(fout,cmor.CMOR_WARNING, '\t\tYou have attribute: %s, which is neither required nor optional ' % (att))
-
-        manageLog(fout,VERBOSE, '\n**********************************************************************************************\n')
-        manageLog(fout,VERBOSE, 'Done with main variable moving on to sub-variables')
-        for iv in range(len(vars3)):
-            manageLog(fout,VERBOSE, '\n----------------------------------------------------------------------------------------------\n')
-            v=vars3[iv]
-            fb=vars4[iv]
-            manageLog(fout,VERBOSE, 'Now Checking sub-variable:',v)
-            manageLog(fout,VERBOSE, '\n----------------------------------------------------------------------------------------------\n')
-            nwarn_add,ncheck_add,nerr_add=checkCMOR(fout,file,table,variable=v,from_bounds=fb,noerror=noerror)
-            nwarn+=nwarn_add
-            ncheck+=ncheck_add
-            nerr+=nerr
-        manageLog(fout,cmor.CMOR_WARNING, '%d warnings issued out of %d checked for (%5.2f%%)' % (nwarn,ncheck,float(nwarn)/ncheck*100))
-        if nerr!=0:
-            print 'Nerr:',nerr
-            raise CMORError,'%i CMOR errors were raise, please check output and correct your file !!!!' % (nerr)
-
-        file.close()
-    return nwarn,ncheck,nerr
-            
-if __name__=='__main__':
-    import getopt,sys
-
-    var=None
-
-    file='Test/tas_diurnal_A1_pcmdi-01_run01_20300101_20300301_clim.nc'
-    table='Test/climatology_test_table_A'
-    nargs = len(sys.argv)
-    
-    grid_table = None
-    
-    noerror=cmor.CMOR_CRITICAL
-    out='screen'
-    
-    help="""
-    Verify that a file is CMOR compliant
-
-    Usage:
-    """+sys.argv[0]+""" [--help] [-f /--file=filename] [-t /--table=tablename]
-    Where:
-      --help/-?/-h this message
-      --table/-t : specify table file to use
-      --file/-f specify file to check
-      --noerror/-e do not allow error on/off (default "on")
-      --out/-o screen or file name (file sends to inputfile.out)
-      """
-
-    kw=['file=','help','table=','noerror=','out=']
-    cmd='f:h?t:e:o:'
-    
-    opt=getopt.getopt(sys.argv[1:],cmd,kw)
-
-    if opt[1]!=[]:
-        file=opt[1][-1]
-    for o,p in opt[0]:
-        if o in ['--file','-f']:
-            file=p
-        if o in ['--table','-t']:
-            table=p
-        if o in ['--variable','-v']:
-            var=p
-        if o in ['--grid_table','-g']:
-            grid_table=p
-        if o in ['--help','-h','-?']:
-            print help
-            sys.exit()
-        if o in ['--noerror','-e']:
-            if p.lower() in ['off','0']:
-                noerror=cmor.VERBOSE
-            elif p.lower() in ['on','1']:
-                noerror=cmor.CMOR_CRITICAL
-        if o in ['--out','-o']:
-            out=p
-
-    print 'File is:',file,file.find('*')
-    if os.path.isdir(file):
-        files=os.popen('ls '+file+'/*.nc').readlines()
-    elif file.find('*')>=0:
-        files=os.popen('ls '+file).readlines()
-    else:
-        files=[file]
-    print 'Files:',files
-    for file in files:
-        print 'Dealing with ',file.strip()
-        if out.lower()=='screen':
-            fout=sys.stdout
-        elif out.lower()=='file':
-            fout=".".join(file.strip().split('.')[:-1])+'.out'
-            fout=open(fout,'w')
-        else:
-            fout=open(out,'w')
-        if noerror==VERBOSE:
-            checkCMOR(fout,file.strip(),table,other_tables=[grid_table,],noerror=noerror,variable=var)
-        else:
-            try:
-                checkCMOR(fout,file.strip(),table,other_tables=[grid_table,],noerror=noerror,variable=var)
-            except Exception,err:
-                print err
-           
diff --git a/Lib/cmor_const.py b/Lib/cmor_const.py
deleted file mode 100644
index 1b15cb5..0000000
--- a/Lib/cmor_const.py
+++ /dev/null
@@ -1,41 +0,0 @@
-import _cmor
-atts = """
-CMOR_MAX_STRING
-CMOR_MAX_ELEMENTS
-CMOR_MAX_AXES
-CMOR_MAX_VARIABLES
-CMOR_MAX_GRIDS
-CMOR_MAX_DIMENSIONS
-CMOR_MAX_ATTRIBUTES
-CMOR_MAX_ERRORS
-CMOR_MAX_TABLES
-CMOR_MAX_GRID_ATTRIBUTES
-CMOR_QUIET
-CMOR_EXIT_ON_MAJOR
-CMOR_EXIT
-CMOR_EXIT_ON_WARNING
-CMOR_VERSION_MAJOR
-CMOR_VERSION_MINOR
-CMOR_VERSION_PATCH
-CMOR_CF_VERSION_MAJOR
-CMOR_CF_VERSION_MINOR
-CMOR_WARNING
-CMOR_NORMAL
-CMOR_CRITICAL
-CMOR_N_VALID_CALS
-CMOR_PRESERVE
-CMOR_APPEND
-CMOR_REPLACE
-CMOR_PRESERVE_3
-CMOR_APPEND_3
-CMOR_REPLACE_3
-CMOR_PRESERVE_4
-CMOR_APPEND_4
-CMOR_REPLACE_4
-"""
-
-for att in atts.split():
-    attnm=att
-    exec("%s = _cmor.getCMOR_defaults_include('%s')" % (att,att))
-    
-    
diff --git a/Lib/git2svn.py b/Lib/git2svn.py
deleted file mode 100644
index 0a80afa..0000000
--- a/Lib/git2svn.py
+++ /dev/null
@@ -1,31 +0,0 @@
-import os,sys
-
-svn=sys.argv[1]
-
-git = os.popen("git status").readlines()
-
-modfiles =[]
-delfiles=[]
-newfiles=[]
-for l in git:
-    if l.find("new file:")>-1:
-        newfiles.append(l.split()[3])
-    if l.find("modified:")>-1:
-        modfiles.append(l.split()[2])
-    if l.find("deleted:")>-1:
-        delfiles.append(l.split()[2])
-
-for f in modfiles+newfiles:
-    cmd = "cp -pf %s %s/%s" % (f,svn,f)
-    print 'Cp:',cmd
-    os.popen(cmd).readlines()
-
-for f in newfiles:
-    cmd = "cd %s ; svn add %s" % (svn,f)
-    print 'svn add :',cmd
-    os.popen(cmd).readlines()
-
-for f in delfiles:
-    cmd = "cd %s ; svn delete --force %s" % (svn,f)
-    print 'svn del :',cmd
-    os.popen(cmd).readlines()
diff --git a/Lib/pywrapper.py b/Lib/pywrapper.py
deleted file mode 100644
index 1ff9a37..0000000
--- a/Lib/pywrapper.py
+++ /dev/null
@@ -1,904 +0,0 @@
-
-import cmor_const,numpy,os,_cmor
-
-try:
-    import cdtime
-    has_cdtime = True
-except:
-    has_cdtime = False
-
-try:
-    import cdms2
-    has_cdms2 = True
-except:
-    has_cdms2 = False
-
-try:
-    import MV2
-    has_MV2 = True
-except:
-    has_MV2 = False
-
-try:
-    import numpy.oldnumeric.ma.MaskedArray
-    has_oldma = True
-except:
-    has_oldma = False
-
-def time_varying_grid_coordinate(grid_id, table_entry,units,type='f',missing_value=None):
-    """ Create a cmor variable for grid coordinates in case of time varying grids
-    Usage:
-    coord_grid_id = grid_time_varying_coordinate(grid_id, table_entry,units,type='f',missing_value=None)
-    Where:
-    grid_id : The grid_id return by a call to cmor.grid
-    table_entry: The name of the variable in the CMOR table
-    units: variable units
-    type: type of the missing_value, which must be the same as the type of the array  that will be passed to cmor_write.  The options are: 'd' (double), 'f' (float), 'l' (long) or 'i' (int).
-    missing_value : scalar that is used to indicate missing data for this variable.  It must be the same type as the data that will be passed to cmor_write.  This missing_value will in general be replaced by a standard missing_value specified in the MIP table.  If there are no missing data, and the user chooses not to declare the missing value, then this argument may be either omitted or assigned the value 'none' (i.e., missing_value='none').
-    """
-    if not isinstance(table_entry,str):
-        raise Exception, "Error you must pass a string for the variable table_entry"
-    
-    if not isinstance(units,str):
-        raise Exception, "Error you must pass a string for the variable units"
-    if not isinstance(type,str):
-        raise Exception, "error tpye must a a string"
-    type = type.lower()
-    if type == 's':
-        type ='c'
-    if not type in ["c","d","f","l","i"]:
-        raise Exception, 'error unknown type: "%s", must be one of: "c","d","f","l","i"'
-
-    if not isinstance(grid_id,(int,numpy.int,numpy.int32)):
-        raise Exception, "error grid_id must be an integer"
-    grid_id = int(grid_id)
-
-    if missing_value is not None:
-        if not isinstance(missing_value,(float,int,numpy.float,numpy.float32,numpy.int,numpy.int32)):
-            raise Exception, "error missing_value must be a number, you passed: %s" % type(missing_value)
-        missing_value = float(missing_value)
-        
-    return _cmor.time_varying_grid_coordinate(grid_id,table_entry,units,type,missing_value)
-    
-
-def grid(axis_ids,latitude=None,longitude=None,latitude_vertices=None,longitude_vertices=None,nvertices=None):
-    """ Creates a cmor grid
-    Usage:
-    grid_id = grid(axis_ids,latitude,longitude,latitude_vertices=None,longitude_vertices=None)
-    Where:
-    axis_ids : array contianing the axes ids for this grid.
-    latitude/longitude: the values for longitude/latitude arrays (unless it is a time varying grid)
-    latitude_vertices/longitude_vertices: coordinates of vertices for each latitude/latitude (unless it is a time varying grid)
-    """
-    if numpy.ma.isMA(axis_ids):
-        axis_ids = numpy.ascontiguousarray(axis_ids.filled())
-    elif has_oldma and numpy.oldnumeric.ma.isMA(axis_ids):
-        axis_ids = numpy.ascontiguousarray(axis_ids.filled())
-    elif has_cdms2 and cdms2.isVariable(axis_ids):
-        axis_ids = numpy.ascontiguousarray(axis_ids.filled())
-    elif has_cdms2 and cdms2.isVariable(axis_ids):
-        axis_ids = numpy.ascontiguousarray(axis_ids.filled())
-    elif isinstance(axis_ids,(list,tuple)):
-        axis_ids = numpy.ascontiguousarray(axis_ids)
-    elif not isinstance(axis_ids, numpy.ndarray):
-        raise Exception, "Error could not convert axis_ids list to a numpy array"
-
-    if numpy.rank(axis_ids)>1:
-        raise Exception, "error axes list/array must be 1D"
-
-    if latitude is not None:
-        if not isinstance(latitude,numpy.ndarray):
-            try:
-                latitude = numpy.ascontiguousarray(latitude.filled())
-            except:
-                raise Exception, "Error could not convert latitude to a numpy array"
-            if numpy.rank(latitude)!=len(axis_ids):
-                raise Exception, "latitude's rank does not match number of axes passed via axis_ids"
-
-        type = latitude.dtype.char
-        nvert = 0
-        if not type in ['d','f','i','l']:
-            raise Exception, "latitude array must be of type 'd','f','l' or 'i'"
-
-        if not isinstance(longitude,numpy.ndarray):
-            try:
-                longitude = numpy.ascontiguousarray(longitude.filled())
-            except:
-                raise Exception, "Error could not convert longitude to a numpy array"
-            if numpy.rank(longitude)!=len(axis_ids):
-                raise Exception, "longitude's rank does not match number of axes passed via axis_ids"
-    ##     print 'longitude type:',longitude.dtype.char
-        if longitude.dtype.char!=type:
-            longitude = longitude.astype(type)
-    elif longitude is not None:
-        raise Exception, "latitude and longitude must be BOTH an array or None"
-    else:
-        type='f'
-        if nvertices is None :
-            nvert=0
-        else:
-            nvert = nvertices
-        
-    if latitude_vertices is not None:
-        if not isinstance(latitude_vertices,numpy.ndarray):
-            try:
-                latitude_vertices = numpy.ascontiguousarray(latitude_vertices.filled())
-            except:
-                raise Exception, "Error could not convert latitude_vertices to a numpy array"
-            if numpy.rank(latitude_vertices)!=len(axis_ids)+1:
-                raise Exception, "latitude_vertices's rank does not match number of axes passed via axis_ids +1 (for vertices)"
-##         print 'latitude_vert type:',latitude_vertices.dtype.char
-        if latitude_vertices.dtype.char!=type:
-            latitude_vertices = latitude_vertices.astype(type)
-        nvert = latitude_vertices.shape[-1]
-        if nvertices is not None:
-            if nvert!=nvertices:
-                raise Exception,"you passed nvertices as: %i, but from your latitude_vertices it seems to be: %i" % (nvertices,nvert)
-        
-    if longitude_vertices is not None:
-        if not isinstance(longitude_vertices,numpy.ndarray):
-            try:
-                longitude_vertices = numpy.ascontiguousarray(longitude_vertices.filled())
-            except:
-                raise Exception, "Error could not convert longitude_vertices to a numpy array"
-            if numpy.rank(longitude_vertices)!=len(axis_ids)+1:
-                raise Exception, "longitude_vertices's rank does not match number of axes passed via axis_ids +1 (for vertices)"
-##         print 'longitude_vert type:',longitude_vertices.dtype.char
-        if longitude_vertices.dtype.char!=type:
-            longitude_vertices = longitude_vertices.astype(type)
-        nvert2 = longitude_vertices.shape[-1]
-        if latitude_vertices is None:
-            nvert = nvert2
-        elif nvert!=nvert2:
-            raise Exception, "error in shape longitude_vertices and latitude_vertices seem to have different # of vertices: %i vs %i, %s" % (nvert,nvert2, str(longitude_vertices.shape ))
-        if nvertices is not None:
-            if nvert!=nvertices:
-                raise Exception,"you passed nvertices as: %i, but from your longitude_vertices it seems to be: %i" % (nvertices,nvert)
-
-        
-##     if area is not None:
-##         if not isinstance(area,numpy.ndarray):
-##             try:
-##                 area = numpy.ascontiguousarray(area.filled())
-##             except:
-##                 raise Exception, "Error could not convert area to a numpy array"
-##             if numpy.rank(area)!=len(axis_ids):
-##                 raise Exception, "area's rank does not match number of axes passed via axis_ids"
-##         if area.dtype.char!=type:
-##             area = area.astype(type)
-    n = len(axis_ids)
-    axis_ids=axis_ids.astype('i');
-    return _cmor.grid(n,axis_ids,type,latitude,longitude,nvert,latitude_vertices,longitude_vertices)
-
-
-def set_grid_mapping(grid_id,mapping_name,parameter_names,parameter_values=None,parameter_units=None):
-    """Sets the grid mapping for CF convention
-    Usage:
-       set_grid_mapping(grid_id,mapping_name,parameter_names,parameter_values,parameter_units)
-    Where:
-       grid_id :: grid_id return by cmor.grid
-       mapping_name     :: name of the mapping (see CF conventions)
-       parameter_names  :: list of parameter names or dictionary with name as keys and values can be either [value,units] list/tuple or dictionary with "values"/"units" as keys
-       parameter_values :: array/list of parameter values in the same order of parameter_names (ignored if parameter_names is ditcionary)
-       parameter_units  :: array/list of parameter units  in the same order of parameter_names (ignored if parameter_names is ditcionary)
-    """
-    if not isinstance(grid_id,(numpy.int32,int,long)):
-        raise Exception, "grid_id must be an integer: %s"%type(grid_id)
-    if not isinstance(mapping_name,str):
-        raise Exception, "mapping name must be a string"
-
-    if isinstance(parameter_names,dict):
-        pnams = []
-        pvals = []
-        punit = []
-        for k in parameter_names.keys():
-            pnams.append(k)
-            val = parameter_names[k]
-            if isinstance(val,dict):
-                ks = val.keys()
-                if not 'value' in ks or not 'units' in ks:
-                    raise Exception, "error parameter_names key '%s' dictionary does not contain both 'units' and 'value' keys" % k
-                pvals.append(val['value'])
-                punit.append(val['units'])
-            elif isinstance(val,(list,tuple)):
-                if len(val)>2:
-                    raise Exception, "parameter_names '%s' as more than 2 values" % k
-                for v in val:
-                    if isinstance(v,str):
-                        punit.append(v)
-                    try:
-                        pvals.append(float(v))
-                    except:
-                        pass
-                if len(pvals)!=len(punits) or len(pvals)!=len(pnams):
-                    raise Exception, "could not figure out values for parameter_name: '%s' " % k
-            else:
-                raise Exception, "could not figure out values for parameter_name: '%s' " % k
-    elif isinstance(parameter_names,(list,tuple)):
-        pnms = list(parameter_names)
-        # now do code for parameter_units
-        if parameter_values is None:
-            raise Exception, "you must pass a list or array for parameter_values"
-        if parameter_units is None:
-            raise Exception, "you must pass a list for parameter_units"
-        if not isinstance(parameter_units,(list,tuple)):
-            raise Exception, "you must pass a list for parameter_units"
-        if len(parameter_units)!=len(pnms):
-            raise Exception, "length of parameter_units list does not match length of parameter_names"
-        punit = list(parameter_units)
-        if isinstance(parameter_values,(list,tuple)):
-            pvals = list(parameter_values)
-        else:
-            try:
-                pvals = numpy.ascontiguousarray(parameter_values.filled())
-            except:
-                raise Exception, "Error could not convert parameter_values to a numpy array"
-        if len(pvals) != len(parameter_names):
-            raise Exception, "length of parameter_values list does not match length of parameter_names"
-    else:
-        raise Exception, "parameter_names must be either dictionary or list"
-
-    pvals = numpy.ascontiguousarray(pvals).astype('d')
-    return _cmor.set_grid_mapping(grid_id,mapping_name,pnms,pvals,punit)
-
-    
-
-def axis(table_entry,units=None,length=None,coord_vals=None,cell_bounds=None,interval=None):
-    """ Creates an cmor_axis
-    Usage:
-    axis_id = axis(table_entry,units=None,length=None,coord_vals=None,cell_bounds=None,interval=None)
-    Where:
-    table_entry: table_entry in the cmor table
-    units: the axis units
-    length: the number of coord_vals to actuall y use, or simply the number of coord_vals in case in index_only axes
-    coord_vals: cmds2 axis or numpy/MV2 array (1D)
-    cell_bounds: numpy or MV2 array, if coord_vals is a cdms2 axis then will try to obtain bounds from it
-    interval: a string used for time axes only (???)
-    """
-    if not isinstance(table_entry,str):
-        raise Exception, "You need to pass a table_entry to match in the cmor table"
-
-    if coord_vals is None:
-        if cell_bounds is not None:
-            raise Exception, "you passed cell_bounds but no coords"
-    else:
-        if has_cdms2 and isinstance(coord_vals,cdms2.axis.TransientAxis):
-            if units is None:
-                if hasattr(coord_vals,"units"):
-                    units = coord_vals.units
-            if cell_bounds is None:
-                cell_bounds = coord_vals.getBounds()
-
-            if interval is None and hasattr(coord_vals,"interval"):
-                interval = coord_vals.interval
-            coord_vals = numpy.ascontiguousarray(coord_vals[:])
-        elif isinstance(coord_vals,(list,tuple)):
-            coord_vals = numpy.ascontiguousarray(coord_vals)
-        elif has_cdms2 and cdms2.isVariable(coord_vals):
-            if units is None:
-                if hasattr(coord_vals,"units"):
-                    units = coord_vals.units
-            if interval is None and hasattr(coord_vals,"interval"):
-                interval = coord_vals.interval
-            coord_vals = numpy.ascontiguousarray(coord_vals.filled())
-        elif has_oldma and numpy.oldnumeric.ma.isMA(coord_vals):
-            coord_vals = numpy.ascontiguousarray(coord_vals.filled())
-        elif numpy.ma.isMA(coord_vals):
-            coord_vals = numpy.ascontiguousarray(coord_vals.filled())
-
-        if not isinstance(coord_vals,numpy.ndarray):
-            raise Exception, "Error coord_vals must be an array or cdms2 axis or list/tuple"
-
-        if numpy.rank(coord_vals)>1:
-            raise Exception, "Error, you must pass a 1D array!"
-
-    if numpy.ma.isMA(cell_bounds):
-        cell_bounds = numpy.ascontiguousarray(cell_bounds.filled())
-    elif has_oldma and numpy.oldnumeric.ma.isMA(cell_bounds):
-        cell_bounds = numpy.ascontiguousarray(cell_bounds.filled())
-    elif has_cdms2 and cdms2.isVariable(cell_bounds):
-        cell_bounds = numpy.ascontiguousarray(cell_bounds.filled())
-    elif has_cdms2 and cdms2.isVariable(cell_bounds):
-        cell_bounds = numpy.ascontiguousarray(cell_bounds.filled())
-    elif isinstance(cell_bounds,(list,tuple)):
-        cell_bounds = numpy.ascontiguousarray(cell_bounds)
-        
-    if cell_bounds is not None:
-        if numpy.rank(cell_bounds)>2:
-            raise Exception, "Error cell_bounds rank must be at most 2"
-        if numpy.rank(cell_bounds)==2:
-            if cell_bounds.shape[0]!=coord_vals.shape[0]:
-                raise Exception, "Error, coord_vals and cell_bounds do not have the same length"
-            if cell_bounds.shape[1]!=2:
-                raise Exception, "Error, cell_bounds' second dimension must be of length 2"
-            cbnds = 2
-            cell_bounds = numpy.ascontiguousarray(numpy.ravel(cell_bounds))
-        else:
-            cbnds = 1
-            if len(cell_bounds)!=len(coord_vals)+1:
-                raise Exception, "error cell_bounds are %i long and axes coord_vals are %i long this is not consistent" % (len(cell_bounds),len(coord_vals))
-    else:
-        cbnds = 0
-
-    if coord_vals is not None:
-        l = len(coord_vals)
-        type = coord_vals.dtype.char[0]
-
-        if not type in ['i','l','f','d','S']:
-            raise Exception, "error allowed data type are: i,l,f,d or S"
-
-        if type == 'S':
-            type = 'c'
-            cbnds = 0
-            for s in coord_vals:
-                #print 'testing:',s,len(s)
-                if len(s)>cbnds:
-                    cbnds = len(s)
-            #cbnds+=1
-    else:
-        l = 0
-        type = 'd'
-        
-    if cell_bounds is not None:
-        if type !=cell_bounds.dtype.char:
-            cell_bounds = cell_bounds.astype(type)
-            
-    if units is None:
-        if coord_vals is not None:
-            raise Exception, "Error you need to provide the units your coord_vals are in"
-        else:
-            units = "1"
-    
-    if interval is None:
-        interval = ""
-
-    if length is not None:
-        l = int(length)
-        
-    return _cmor.axis(table_entry,units,l,coord_vals,type,cell_bounds,cbnds,interval)
-
-def variable(table_entry,units,axis_ids,type='f',missing_value=None,tolerance = 1.e-4,positive=None,original_name=None,history=None,comment=None):
-    
-    if not isinstance(table_entry,str):
-        raise Exception, "Error you must pass a string for the variable table_entry"
-    
-    if not isinstance(units,str):
-        raise Exception, "Error you must pass a string for the variable units"
-
-    if original_name is not None:
-        if not isinstance(original_name,str):
-            raise Exception, "Error you must pass a string for the variable original_name"
-    else:
-        original_name = ""
-        
-    if history is not None:
-        if not isinstance(history,str):
-            raise Exception, "Error you must pass a string for the variable history"
-    else:
-        history = ""
-        
-    if comment is not None:
-        if not isinstance(comment,str):
-            raise Exception, "Error you must pass a string for the variable comment"
-    else:
-        comment = ""
-        
-    if numpy.ma.isMA(axis_ids):
-        axis_ids = numpy.ascontiguousarray(axis_ids.filled())
-    elif has_oldma and numpy.oldnumeric.ma.isMA(axis_ids):
-        axis_ids = numpy.ascontiguousarray(axis_ids.filled())
-    elif has_cdms2 and cdms2.isVariable(axis_ids):
-        axis_ids = numpy.ascontiguousarray(axis_ids.filled())
-    elif isinstance(axis_ids,(list,tuple)):
-        axis_ids = numpy.ascontiguousarray(axis_ids)
-    elif not isinstance(axis_ids, numpy.ndarray):
-        raise Exception, "Error could not convert axis_ids list to a numpy array"
-
-    if numpy.rank(axis_ids)>1:
-        raise Exception, "error axis_ids list/array must be 1D"
-
-    if not isinstance(type,str):
-        raise Exception, "error tpye must a a string"
-    type = type.lower()
-    if type == 's':
-        type ='c'
-    if not type in ["c","d","f","l","i"]:
-        raise Exception, 'error unknown type: "%s", must be one of: "c","d","f","l","i"'
-
-    ndims = len(axis_ids)
-
-    if positive is None:
-        positive = ""
-    else:
-        positive = str(positive)
-
-    if history is None:
-        history = ""
-    else:
-        history = str(history)
-
-    if comment is None:
-        comment = ""
-    else:
-        comment = str(comment)
-
-    if not isinstance(tolerance,(float,int,numpy.float,numpy.float32,numpy.int,numpy.int32)):
-        raise Exception, "error tolerance must be a number"
-
-    tolerance = float(tolerance)
-
-    if missing_value is not None:
-        if not isinstance(missing_value,(float,int,numpy.float,numpy.float32,numpy.int,numpy.int32)):
-            raise Exception, "error missing_value must be a number, you passed: %s" % repr(missing_value)
-
-        missing_value = float(missing_value)
-
-    axis_ids=axis_ids.astype('i')
-    return _cmor.variable(table_entry,units,ndims,axis_ids,type,missing_value,tolerance,positive,original_name,history,comment)
-    
-def zfactor(zaxis_id,zfactor_name,units="",axis_ids=None,type=None,zfactor_values=None,zfactor_bounds=None):
-
-    if not isinstance(zaxis_id,(int,numpy.int,numpy.int32)):
-        raise Exception, "error zaxis_id must be a number"
-    zaxis_id = int(zaxis_id)
-
-    if not isinstance(zfactor_name,str):
-        raise Exception, "Error you must pass a string for the variable zfactor_name"
-    
-    if not isinstance(units,str):
-        raise Exception, "Error you must pass a string for the variable units"
-
-    if numpy.ma.isMA(axis_ids):
-        axis_ids = numpy.ascontiguousarray(axis_ids.filled())
-    elif has_oldma and numpy.oldnumeric.ma.isMA(axis_ids):
-        axis_ids = numpy.ascontiguousarray(axis_ids.filled())
-    elif has_cdms2 and cdms2.isVariable(axis_ids):
-        axis_ids = numpy.ascontiguousarray(axis_ids.filled())
-    elif has_cdms2 and cdms2.isVariable(axis_ids):
-        axis_ids = numpy.ascontiguousarray(axis_ids.filled())
-    elif isinstance(axis_ids,(list,tuple)):
-        axis_ids = numpy.ascontiguousarray(axis_ids)
-    elif axis_ids is None:
-        pass
-    elif isinstance(axis_ids,(int,numpy.int,numpy.int32)):
-        axis_ids = numpy.array([axis_ids,])
-    elif not isinstance(axis_ids, numpy.ndarray):
-        raise Exception, "Error could not convert axis_ids list to a numpy array"
-
-    if numpy.rank(axis_ids)>1:
-        raise Exception, "error axis_ids list/array must be 1D"
-
-    if axis_ids is None:
-        ndims = 0
-        axis_ids = numpy.array(1)
-    else:
-        ndims = len(axis_ids)
-
-##     if ndims>1 and zfactor_values is not None:
-##         raise Exception, "Error you can only pass zfactor_values for zfactor with rank <=1"
-##     if ndims>1 and zfactor_bounds is not None:
-##         raise Exception, "Error you can only pass zfactor_bounds for zfactor with rank <=1"
-
-    if zfactor_values is not None:
-        if isinstance(zfactor_values,(float,int,numpy.float,numpy.float32,numpy.int,numpy.int32)):
-            zfactor_values = numpy.array((zfactor_values,))
-        elif numpy.ma.isMA(zfactor_values):
-            zfactor_values = numpy.ascontiguousarray(zfactor_values.filled())
-        elif has_oldma and numpy.oldnumeric.ma.isMA(zfactor_values):
-            zfactor_values = numpy.ascontiguousarray(zfactor_values.filled())
-        elif has_cdms2 and cdms2.isVariable(zfactor_values):
-            zfactor_values = numpy.ascontiguousarray(zfactor_values.filled())
-        elif isinstance(zfactor_values,(list,tuple)):
-            zfactor_values = numpy.ascontiguousarray(zfactor_values)
-        elif not isinstance(zfactor_values, numpy.ndarray):
-            raise Exception, "Error could not convert zfactor_values to a numpy array"
-
-        if type is None:
-            try:
-                type = zfactor_values.dtype.char
-            except:
-                if isinstance(zfactor_values,(float,numpy.float,numpy.float32)):
-                    type = 'f'
-                elif isinstance(zfactor_values,(int,numpy.int,numpy.int32)):
-                    type = 'd'
-                else:
-                    raise Exception, "Error unknown type for zfactor_values: %s" % repr(zfactor_values)
-    elif type is None:
-        type='d'
-        
-        
-    if not isinstance(type,str):
-        raise Exception, "error tpye must a a string"
-    type = type.lower()
-    if type == 's':
-        type ='c'
-    if not type in ["c","d","f","l","i"]:
-        raise Exception, 'error unknown type: "%s", must be one of: "c","d","f","l","i"'
-    
-    if zfactor_bounds is not None:
-        if numpy.ma.isMA(zfactor_bounds):
-            zfactor_bounds = numpy.ascontiguousarray(zfactor_bounds.filled())
-        elif has_oldma and numpy.oldnumeric.ma.isMA(zfactor_bounds):
-            zfactor_bounds = numpy.ascontiguousarray(zfactor_bounds.filled())
-        elif has_cdms2 and cdms2.isVariable(zfactor_bounds):
-            zfactor_bounds = numpy.ascontiguousarray(zfactor_bounds.filled())
-        elif isinstance(zfactor_bounds,(list,tuple)):
-            zfactor_bounds = numpy.ascontiguousarray(zfactor_bounds)
-        elif not isinstance(zfactor_bounds, numpy.ndarray):
-            raise Exception, "Error could not convert zfactor_bounds to a numpy array"
-        if numpy.rank(zfactor_bounds)>2:
-            raise Exception, "error zfactor_bounds must be rank 2 at most"
-        elif numpy.rank(zfactor_bounds)==2:
-            if zfactor_bounds.shape[1]!=2:
-                raise Exception, "error zfactor_bounds' 2nd dimension must be of length 2"
-            bnds =[]
-            b = zfactor_bounds[0]
-            for i in range(zfactor_bounds.shape[0]):
-                b = zfactor_bounds[i]
-                bnds.append(b[0])
-                if (i<zfactor_bounds.shape[0]-1) and (b[1]!=zfactor_bounds[i+1][0]):
-                    raise Exception, "error zfactor_bounds have gaps between them"
-            bnds.append(zfactor_bounds[-1][1])
-            zfactor_bounds=numpy.array(bnds)
-    axis_ids = axis_ids.astype('i')
-    return _cmor.zfactor(zaxis_id,zfactor_name,units,ndims,axis_ids,type,zfactor_values,zfactor_bounds)
-
-def write(var_id,data,ntimes_passed=None,file_suffix="",time_vals=None,time_bnds=None,store_with=None):
-
-    if not isinstance(var_id,(int,numpy.int,numpy.int32)):
-        raise Exception, "error var_id must be an integer"
-    var_id = int(var_id)
-
-    if not isinstance(file_suffix,str):
-        raise Exception,  "Error file_suffix must be a string"
-
-    if store_with is not None:
-        if not isinstance(store_with,(int,numpy.int,numpy.int32)):
-            raise Exception, "error store_with must be an integer"
-        store_with = int(store_with)
-
-    if numpy.ma.isMA(data):
-        data = numpy.ascontiguousarray(data.filled())
-    elif has_oldma and numpy.oldnumeric.ma.isMA(data):
-        data = numpy.ascontiguousarray(data.filled())
-    elif has_cdms2 and cdms2.isVariable(data):
-        if time_vals is None:
-            time_vals = data.getTime() 
-        data = numpy.ascontiguousarray(data.filled())
-    elif isinstance(data,(list,tuple)):
-        data = numpy.ascontiguousarray(data)
-    elif not isinstance(data, numpy.ndarray):
-            raise Exception, "Error could not convert data to a numpy array"
-
-
-    if time_vals is None:
-        pass
-    elif numpy.ma.isMA(time_vals):
-        time_vals = numpy.ascontiguousarray(time_vals.filled())
-    elif has_oldma and numpy.oldnumeric.ma.isMA(time_vals):
-        time_vals = numpy.ascontiguousarray(time_vals.filled())
-    elif has_cdms2 and isinstance(time_vals,cdms2.axis.TransientAxis):
-        if time_bnds is None:
-            time_bnds = time_vals.getBounds()
-        time_vals = numpy.ascontiguousarray(time_vals[:])
-    elif has_cdms2 and cdms2.isVariable(time_vals):
-        time_vals = numpy.ascontiguousarray(time_vals.filled())
-    elif isinstance(time_vals,(list,tuple)):
-        time_vals = numpy.ascontiguousarray(time_vals)
-    elif not isinstance(time_vals, numpy.ndarray):
-        try:
-            time_vals = numpy.ascontiguousarray(time_vals)
-        except:
-            raise Exception, "Error could not convert time_vals to a numpy array"
-
-    if time_vals is not None:
-        type = time_vals.dtype.char
-        if not type in ['f','d','i','l']:
-            raise Exception, "Error time_vals type must one of: 'f','d','i','l', please convert first"
-        time_vals=time_vals.astype("d")
-       
-
-    if ntimes_passed is None:
-        if time_vals is None:
-            ntimes_passed = 0
-        else:
-            ntimes_passed = len(time_vals)
-    if not isinstance(ntimes_passed,(int,numpy.int,numpy.int32)):
-        raise Exception, "error ntimes_passed must be an integer"
-    ntimes_passed = int(ntimes_passed)
-
-
-    #At that ponit we check that shapes matches!
-    goodshape = _cmor.get_original_shape(var_id,1)
-    osh = data.shape
-    ogoodshape=list(goodshape)
-    sh=list(osh)
-    j=0
-    while sh.count(1)>0:
-        sh.remove(1)
-    while goodshape.count(1)>0:
-        goodshape.remove(1)
-    for i in range(len(goodshape)):
-        if goodshape[i]!=0:
-            if sh[j]!=goodshape[i]:
-                if goodshape[i]!=1:
-                    raise Exception,"error your data shape (%s) does not match the expect variable shape (%s)" % (str(osh),str(ogoodshape))
-            j+=1
-        elif ntimes_passed!=1:
-            j+=1
-
-
-
-    data = numpy.ascontiguousarray(numpy.ravel(data))
-
-
-    if time_bnds is not None:
-        if numpy.ma.isMA(time_bnds):
-            time_bnds = numpy.ascontiguousarray(time_bnds.filled())
-        elif has_oldma and numpy.oldnumeric.ma.isMA(time_bnds):
-            time_bnds = numpy.ascontiguousarray(time_bnds.filled())
-        elif has_cdms2 and cdms2.isVariable(time_bnds):
-            if time_vals is None:
-                time_vals = time_bnds.getTime() 
-            time_bnds = numpy.ascontiguousarray(time_bnds.filled())
-        elif isinstance(time_bnds,(list,tuple)):
-            time_bnds = numpy.ascontiguousarray(time_bnds)
-        elif not isinstance(time_bnds, numpy.ndarray):
-            raise Exception, "Error could not convert time_bnds to a numpy array"
-
-        if numpy.rank(time_bnds)>2:
-            raise Exception, "bounds rank cannot be greater than 2"
-        elif numpy.rank(time_bnds)==2:
-            if time_bnds.shape[1]!=2:
-                raise Exception, "error time_bnds' 2nd dimension must be of length 2"
-            bnds =[]
-            if time_bnds.shape[0] > 1:
-                _check_time_bounds_contiguous(time_bnds)
-                bnds = _flatten_time_bounds(time_bnds)
-            else:
-                bnds = time_bnds.ravel()
-            time_bnds=numpy.array(bnds)
-        else: # ok it is a rank 1!
-            if numpy.rank(time_vals)==0:
-                ltv=1
-            else:
-                ltv=len(time_vals)
-            if len(time_bnds)!=ltv+1:
-                raise Excpetion,"error time_bnds if 1D must be 1 elt greater than time_vals, you have %i vs %i" % (len(time_bnds),ltv)
-            bnds=[]
-            for i in range(ltv):
-                bnds.append([time_bnds[i],time_bnds[i+1]])
-            bnds=numpy.array(bnds)
-            bnds = _flatten_time_bounds(bnds)
-            time_bnds=numpy.array(bnds)
-
-    if time_bnds is not None:
-        type = time_bnds.dtype.char
-        if not type in ['f','d','i','l']:
-            raise Exception, "Error time_bnds type must one of: 'f','d','i','l', please convert first"
-        time_bnds=time_bnds.astype("d")
-
-    type = data.dtype.char
-    if not type in ['f','d','i','l']:
-        raise Exception, "Error data type must one of: 'f','d','i','l', please convert first"
-
-    return _cmor.write(var_id,data,type,file_suffix,ntimes_passed,time_vals,time_bnds,store_with)
-
-def _check_time_bounds_contiguous(time_bnds):
-    '''
-    checks that time bounds are contiguous
-    '''
-    for i in range(time_bnds.shape[0] - 1 ):
-        b = time_bnds[i]
-        if b[1]!=time_bnds[i+1][0]:
-            raise Exception, "error time_bnds have gaps between them"
-
-def _flatten_time_bounds(time_bnds):
-    '''
-    return a 1-d list of the time_bnds flattened appropriate for the C call
-    '''
-    bnds = list()
-    for i in range(time_bnds.shape[0]):
-        bnds.extend([time_bnds[i][0], time_bnds[i][1]])
-    return bnds
-
-def setup(inpath='.',netcdf_file_action=cmor_const.CMOR_PRESERVE,set_verbosity=cmor_const.CMOR_NORMAL,exit_control=cmor_const.CMOR_NORMAL,logfile=None,create_subdirectories=1):
-    """
-    Usage cmor_setup(inpath='.',netcdf_file_action=cmor.CMOR_PRESERVE,set_verbosity=cmor.CMOR_NORMAL,exit_control=cmor.CMOR_NORMAL)
-    Where:
-    path:                  Alternate directory where to find tables if not in current directory
-    netcdf_file_action:    What to do when opening the netcdf file, valid options are:
-                           CMOR_PRESERVE, CMOR_APPEND, CMOR_REPLACE, CMOR_PRESERVE_4, CMOR_APPEND_4, CMOR_REPLACE_4, CMOR_PRESERVE_3, CMOR_APPEND_3 or CMOR_REPLACE_3
-                           The _3 means netcdf will be created in the old NetCDF3 format (no compression nor chunking), _4 means use NetCDF4 classic format. No _ is equivalent to _3
-
-    set_verbosity:         CMOR_QUIET or CMOR_NORMAL
-    exit_control:          CMOR_EXIT_ON_WARNING, CMOR_EXIT_ON_MAJOR, CMOR_NORMAL
-    create_subdirectories: 1 to create subdirectories structure, 0 to dump files directly where cmor_dataset tells to
-"""
-    if not isinstance(exit_control,int) or not exit_control in [ cmor_const.CMOR_EXIT_ON_WARNING, cmor_const.CMOR_EXIT_ON_MAJOR, cmor_const.CMOR_NORMAL]:
-        raise Exception, "exit_control must an integer valid values are: CMOR_EXIT_ON_WARNING, CMOR_EXIT_ON_MAJOR, CMOR_NORMAL"
-
-    if not isinstance(netcdf_file_action,int) or not netcdf_file_action in [ cmor_const.CMOR_PRESERVE, cmor_const.CMOR_APPEND, cmor_const.CMOR_REPLACE, cmor_const.CMOR_PRESERVE_3, cmor_const.CMOR_APPEND_3, cmor_const.CMOR_REPLACE_3,cmor_const.CMOR_PRESERVE_4, cmor_const.CMOR_APPEND_4, cmor_const.CMOR_REPLACE_4 ]:
-        raise Exception, "netcdf_file_action must be an integer. Valid values are: CMOR_PRESERVE, CMOR_APPEND, CMOR_REPLACE, CMOR_PRESERVE_3, CMOR_APPEND_3 or CMOR_REPLACE_3, CMOR_PRESERVE_4, CMOR_APPEND_4 or CMOR_REPLACE_4"
-
-    if not isinstance(set_verbosity,int) or not set_verbosity in [ cmor_const.CMOR_QUIET, cmor_const.CMOR_NORMAL]:
-        raise Exception, "set_verbosity must an integer valid values are: CMOR_QUIET, CMOR_NORMAL"
-
-    if not isinstance(inpath,str) and not os.path.exists(inpath):
-        raise Exception, "path must be a Valid path"
-    if logfile is None:
-        logfile = ""
-
-    if not create_subdirectories in [0,1]:
-        raise Exception, "create_subdirectories must be 0 or 1"
-    return _cmor.setup(inpath,netcdf_file_action,set_verbosity,exit_control,logfile,create_subdirectories)
-
-def load_table(table):
-    """ loads a cmor table
-    Usage:
-    load_table(table)
-    """
-    if not isinstance(table,str):
-        raise Exception, "Error, must pass a string"
-##     if not os.path.exists(table):
-##         raise Exception, "Error, the table you specified (%s) does not exists" % table
-    return _cmor.load_table(table)
-
-def dataset(experiment_id,institution,source,calendar,outpath='.',realization=1,contact="",history="",comment="",references="",leap_year=0,leap_month=0,month_lengths=None,model_id="",forcing="",initialization_method=None,physics_version=None,institute_id="",parent_experiment_id="",branch_time=None):
-    """ Initialize a cmor dataset 
-    Usage:
-    dataset(experiment_id,institution,source,outpath='.',calendar=None,realization=None,contact=None,history="",comment="",references="",leap_year=None,leap_month=None,month_lengths=None,model_id="",forcing="",initialization_method=None,physics_version=None,institute_id="",parent_experiment_id="",branch_time=None)
-    """
-
-    if isinstance(calendar,int):
-        if has_cdtime: # put this in a try loop in case cdtime is not available on the system 
-            if calendar == cdtime.Calendar360:
-                calendar = "360_day"
-            elif calendar == cdtime.ClimCalendar:
-                calendar = "clim"
-            elif calendar == cdtime.DefaultCalendar:
-                calendar = "proleptic_gregorian"
-            elif calendar == cdtime.GregorianCalendar:
-                calendar = "gregorian"
-            elif calendar == cdtime.JulianCalendar:
-                calendar = "julian"
-            elif calendar == cdtime.MixedCalendar:
-                calendar= "mixed"
-            elif calendar == cdtime.NoLeapCalendar:
-                calendar = "noleap"
-            elif calendar == cdtime.StandardCalendar:
-                calendar = "standard"
-            elif calendar == cdtime.ClimLeapCalendar:
-                calendar = "climleap"
-    elif calendar is None:
-        calendar ="none"
-                
-    for st in [outpath,experiment_id,institution,source,contact,history,comment,references,model_id,forcing,institute_id,parent_experiment_id]:
-        if not isinstance(st,str):
-            for o in dir():
-                if locals()[o] is st:
-                    raise Exception, "Error argument %s must be a string" % o
-
-    calendar = calendar.lower()
-    
-    for i in [realization,leap_year,leap_month]:
-        if not isinstance(i,int):
-            for o in dir():
-                if locals()[o] is i:
-                    raise Exception, "Error argument %s must be an integer" % o
-    if isinstance(month_lengths,(list,tuple)):
-        month_lengths = numpy.array(month_lengths)
-    elif has_cdms2 and cdms2.isVariable(month_lengths):
-        month_lengths = month_lengths.filled()
-    elif isinstance(month_lengths,(numpy.ma.core.MaskedArray)):
-        month_lengths = month_lengths.filled()
-    elif has_oldma and isinstance(month_lengths,numpy.oldnumeric.ma.MaskedArray):
-        month_lengths = month_lengths.filled()
-        
-    if isinstance(month_lengths,numpy.ndarray):
-        if not numpy.rank(month_lengths)==1:
-            raise Exception, "Error month_lengths must be 1D"
-        if len(month_lengths)!=12:
-            raise Exception, "Error month_lengths must have 12 elements exactly"
-        months_lengths = numpy.ascontiguousarray(month_lengths)
-    elif month_lengths is not None:
-        raise Exception, "Error month_lengths must be a 12 elts array or list"
-    if initialization_method is not None:
-        if not isinstance(initialization_method,int):
-            raise Exception, "initialization_method must be an int"
-    else:
-        initialization_method=0
-    if physics_version is not None:
-        if not isinstance(physics_version,int):
-            raise Exception, "physics_version must be an int"
-    else:
-        physics_version=0
-
-    if branch_time is not None:
-        if not isinstance(branch_time,(float,int,numpy.float,numpy.float32,numpy.int,numpy.int32)):
-            raise Exception,"branch_time must be a float"
-        else:
-            branch_time=float(branch_time)
-
-    return _cmor.dataset(outpath,experiment_id,institution,source,calendar,realization,contact,history,comment,references,leap_year,leap_month,month_lengths,model_id,forcing,initialization_method,physics_version,institute_id,parent_experiment_id,branch_time)
-
-def set_table(table):
-    if not isinstance(table,int):
-        raise Exception, "error you need to pass and integer as the table id"
-    return _cmor.set_table(table)
-
-def close(var_id=None,file_name=False, preserve=False):
-    """ Close CMOR variables/file
-    Usage:
-      cmor.close(varid=None)
-    Where:
-      var_id: id of variable to close, if passing None, means close every open ones.
-      [file_name] True/False (default False) if True: return name of the file just closed
-      [preserve] True/False (default False) if True: close the file but preserve the var definition in CMOR to write more data with this variable (into a new file)
-      """
-    if var_id is not None and not isinstance(var_id,int):
-        raise Exception, "Error var_id must be none or a integer"
-
-    if (preserve is False):
-        if (file_name is False):
-            return _cmor.close(var_id,0,0)
-        else:
-            return _cmor.close(var_id,1,0)
-    else:
-        if (file_name is False):
-            return _cmor.close(var_id,0,1)
-        else:
-            return _cmor.close(var_id,1,1)
-        
-
-def set_cur_dataset_attribute(name,value):
-    """Sets an attribute onto the current cmor dataset
-    Usage:
-      cmor.set_cur_dataset_attribute(name,value)
-    Where:
-      name: is the name of the attribute
-      value: is the value for this attribute
-    """
-    if value is None:
-        val=""
-    else:
-        val = str(value)
-    return _cmor.set_cur_dataset_attribute(name,val)
-
-def has_cur_dataset_attribute(name,value):
-    """determines if the current cmor dataset has an attribute
-    Usage:
-      cmor.het_cur_dataset_attribute(name)
-    Where:
-      name: is the name of the attribute
-    Returns True if the dataset has the attribute, False otherwise
-    """
-    test = _cmor.has_cur_dataset_attribute(name)
-    if test == 0 :
-        return True
-    else:
-        return False
-
-def get_cur_dataset_attribute(name):
-    """Gets an attribute onto the current cmor dataset
-    Usage:
-      cmor.get_cur_dataset_attribute(name)
-    Where:
-      name: is the name of the attribute
-    Returns none if attribute is non-existant
-    """
-    if has_cur_dataset_attribute(name):
-        return _cmor.get_cur_dataset_attribute(name)
-    else:
-        return None
-    
-    
-def create_output_path(varid):
-    """returns the output path where a variable would be stored, given a varid (as returned by a call to cmor.variable)
-    Usage:
-      path = create_output_path(var_id)
-    Where:
-      var_id : id to variable as returned by a call to variable(...)
-    Returns: the path where the file will be created
-    """
-    return _cmor.create_output_path(varid)
diff --git a/Makefile.in b/Makefile.in
deleted file mode 100644
index ffa1e0c..0000000
--- a/Makefile.in
+++ /dev/null
@@ -1,225 +0,0 @@
-#!/usr/bin/env sh
-FC=@FC@
-CPPFLAGS_USER=""
-FFLAGS_USER="-fPIC"
-#MODULE_SUFFIX="mod"
-PREFIX=@prefix@
-FCFLAGS=@FCFLAGS@
-PYTHONEXEC=@PYTHONEXEC@
-NO_COLOR2=\x1b[0m
-OK_COLOR2=\x1b[2;34m
-NO_COLOR=${@NO_COLOR@}
-OK_COLOR=${@OK_COLOR@}
-
-
-# Library name
-LIBNAME = libcmor.a
-
-# Library sources
-#LIBSOURCES = Src/cmor.c Src/cmor_variables.c Src/cmor_axes.c Src/cmor_tables.c Src/cmor_grids.c Src/cdTime/cdTimeConv.c Src/cdTime/cdUtil.c Src/cdTime/timeConv.c Src/cdTime/timeArith.c
-LIBSOURCES = @LIBSOURCES@
-LIBFSOURCES = @LIBFSOURCES@
-
-LIBFILES = @LIBFILES@
-
-#Include Files
-INCFILES = @INCFILES@
-
-# Temporary Files
-TMPFILES = *~ $(LIBFILES) *.mod a.out *.stb Test/*.nc Test/IPCC_Fourth_Assessment *.LOG* *.dSYM Test/IPCC Test/CMIP5 CMIP5
-DISTFILES = libcmor.a
-DEPEND= makedepend -c @DEBUG@ @CFLAGS@  @NCCFLAGS@ @UDUNITS2FLAGS@ @UUIDFLAGS@ @ZFLAGS@
-
-all:    cmor
-	@echo
-depend:  $(LIBSOURCES)
-	${DEPEND}  $(LIBSOURCES)
-cmor.o: Src/cmor.c include/cmor.h include/cmor_func_def.h
-	@CC@ -c @DEBUG@ @MACROS@ @CFLAGS@  @NCCFLAGS@ @UDUNITS2FLAGS@ @UUIDFLAGS@ @ZFLAGS@ Src/cmor.c
-cmor_variables.o: Src/cmor_variables.c include/cmor.h include/cmor_func_def.h
-	@CC@ -c @DEBUG@ @MACROS@ @CFLAGS@  @NCCFLAGS@ @UDUNITS2FLAGS@ @UUIDFLAGS@ @ZFLAGS@ Src/cmor_variables.c
-cmor_axes.o: Src/cmor_axes.c include/cmor.h include/cmor_func_def.h
-	@CC@ -c @DEBUG@ @MACROS@ @CFLAGS@  @NCCFLAGS@ @UDUNITS2FLAGS@ @UUIDFLAGS@ @ZFLAGS@ Src/cmor_axes.c
-cmor_tables.o: Src/cmor_tables.c include/cmor.h include/cmor_func_def.h
-	@CC@ -c @DEBUG@ @MACROS@ @CFLAGS@  @NCCFLAGS@ @UDUNITS2FLAGS@ @UUIDFLAGS@ @ZFLAGS@ Src/cmor_tables.c
-cmor_grids.o: Src/cmor_grids.c include/cmor.h include/cmor_func_def.h
-	@CC@ -c @DEBUG@ @MACROS@ @CFLAGS@  @NCCFLAGS@ @UDUNITS2FLAGS@ @UUIDFLAGS@ @ZFLAGS@ Src/cmor_grids.c
-cmor_md5.o: Src/cmor_md5.c include/cmor.h include/cmor_func_def.h include/cmor_md5.h
-	@CC@ -c @DEBUG@ @MACROS@ @CFLAGS@  @NCCFLAGS@ @UDUNITS2FLAGS@ @UUIDFLAGS@ @ZFLAGS@ Src/cmor_md5.c
-cmor_cfortran_interface.o: Src/cmor_cfortran_interface.c include/cmor.h include/cmor_func_def.h
-	@CC@ -c @DEBUG@ @MACROS@ @CFLAGS@  @NCCFLAGS@ @UDUNITS2FLAGS@ @UUIDFLAGS@ @ZFLAGS@ Src/cmor_cfortran_interface.c
-cdTimeConv.o: Src/cdTime/cdTimeConv.c include/cmor.h include/cmor_func_def.h
-	@CC@ -c @DEBUG@ @MACROS@ @CFLAGS@  @NCCFLAGS@ @UDUNITS2FLAGS@ @UUIDFLAGS@ @ZFLAGS@ Src/cdTime/cdTimeConv.c
-cdUtil.o: Src/cdTime/cdUtil.c include/cmor.h include/cmor_func_def.h
-	@CC@ -c @DEBUG@ @MACROS@ @CFLAGS@  @NCCFLAGS@ @UDUNITS2FLAGS@ @UUIDFLAGS@ @ZFLAGS@ Src/cdTime/cdUtil.c
-timeConv.o: Src/cdTime/timeConv.c include/cmor.h include/cmor_func_def.h
-	@CC@ -c @DEBUG@ @MACROS@ @CFLAGS@  @NCCFLAGS@ @UDUNITS2FLAGS@ @UUIDFLAGS@ @ZFLAGS@ Src/cdTime/timeConv.c
-timeArith.o:Src/cdTime/timeArith.c include/cmor.h include/cmor_func_def.h
-	@CC@ -c @DEBUG@ @MACROS@ @CFLAGS@  @NCCFLAGS@ @UDUNITS2FLAGS@ @UUIDFLAGS@ @ZFLAGS@ Src/cdTime/timeArith.c
-cmor_fortran_interface.o: Src/cmor_fortran_interface.f90
-	@FC@ -c @FCFLAGS@ @DEBUG@ @MACROS@ Src/cmor_fortran_interface.f90
-cmor:  $(LIBFILES) @MAKEDEPPYTHON@
-	@ar crv $(LIBNAME) $(LIBFILES) 
-	@ranlib $(LIBNAME)
-clean:
-	@echo "Cleaning [$(WHEREAMI)] ..."
-	@rm -rf $(TMPFILES)
-distclean: clean
-	@echo "Completely cleaning [$(WHEREAMI)]..."
-	@rm -f $(DISTFILES)
-install: cmor
-	mkdir -p @prefix@/lib
-	mkdir -p @prefix@/include
-	mkdir -p @prefix@/include/cdTime
-	mkdir -p @prefix@/include/cdTime/cdunifpp
-	cp -p $(LIBNAME) @prefix@/lib
-	cp -pr include/*.h @MODFILES@ @prefix@/include
-	cp -pr include/cdTime/*.h @prefix@/include/cdTime
-	cp -pr include/cdTime/cdunifpp/*.h @prefix@/include/cdTime/cdunifpp
-uninstall: distclean 
-	rm @prefix@/lib/$(LIBNAME)    
-	cd @prefix@ ; rm $(INCFILES)  
-backup: clean
-	@echo "Creating full backup tar file..."
-	@(cd ..; \
-	@TGZNAME=$(TGZDIR)/cmor_`$(TIMESTAMP)`_full.tgz; \
-	@tar cfz $$TGZNAME Cmor; \
-	@touch $(TIMESTAMPDIR)/cmor_`$(TIMESTAMP)`_full.time; \
-	@echo "Full backup tar file created : $$TGZNAME")
-test:  cmor test_C @TEST_FORTRAN@ @MAKETESTPYTHON@
-	@echo "All C and Fortran Test passed successfully"
-test_C: cmor 
-	@rm -f ./ipcc_test_code ; @CC@ @CFLAGS@ @CPPFLAGS@  Test/ipcc_test_code.c -L at prefix@/lib -I at prefix@/include  -L. -lcmor @NCCFLAGS@ @NCLDFLAGS@ @UDUNITS2LDFLAGS@ @UDUNITS2FLAGS@ @UUIDLDFLAGS@ @UUIDFLAGS@ -o ipcc_test_code  @VERB@; ./ipcc_test_code @VERB@
-	@rm -f test_grid ; @CC@ @CFLAGS@ @CPPFLAGS@  Test/test_grid.c -L at prefix@/lib -I at prefix@/include  -L. -lcmor @NCCFLAGS@ @NCLDFLAGS@ @UDUNITS2LDFLAGS@ @UDUNITS2FLAGS@ @UUIDLDFLAGS@ @UUIDFLAGS@ -o test_grid @VERB@; ./test_grid @VERB@;
-	@rm -f test_lots_of_variables ; @CC@ @CFLAGS@ @CPPFLAGS@  Test/test_lots_of_variables.c -L at prefix@/lib -I at prefix@/include  -L. -lcmor @NCCFLAGS@ @NCLDFLAGS@ @UDUNITS2LDFLAGS@ @UDUNITS2FLAGS@ @UUIDLDFLAGS@ @UUIDFLAGS@ -o test_lots_of_variables @VERB@; ./test_lots_of_variables @VERB@;
-python:
-	@echo "Building Python interface"
-	@${PYTHONEXEC} setup.py install @CDATPREFIX@
-test_a_python:
-	@echo "${OK_COLOR}Testing ${TEST_NAME} ${NO_COLOR}"
-	${PYTHONEXEC} ${TEST_NAME} @VERB@
-test_python: python
-	@env TEST_NAME=Test/test_python_direct_calls.py make test_a_python
-	@env TEST_NAME=Test/test_python_user_interface_00.py make test_a_python
-	@env TEST_NAME=Test/test_python_user_interface_01.py make test_a_python
-	@env TEST_NAME=Test/test_python_user_interface_03.py make test_a_python
-	@env TEST_NAME=Test/test_python_common.py make test_a_python
-	@env TEST_NAME=Test/cmor_speed_and_compression.py make test_a_python
-	@env TEST_NAME=Test/cmor_speed_and_compression_01.py make test_a_python
-#	@env TEST_NAME=Test/cmor_speed_and_compression_02.py make test_a_python
-	@env TEST_NAME=Test/test_compression.py make test_a_python
-	@env TEST_NAME=Test/test_python_appending.py make test_a_python
-	@env TEST_NAME=Test/test_python_bounds_request.py make test_a_python
-	@env TEST_NAME=Test/test_python_new_tables.py make test_a_python
-#	@env TEST_NAME=Test/test_python_index_coord.py make test_a_python
-	@env TEST_NAME=Test/test_python_jamie.py make test_a_python
-	@env TEST_NAME=Test/test_python_jamie_2.py make test_a_python
-	@env TEST_NAME=Test/test_python_jamie_3.py make test_a_python
-	@env TEST_NAME=Test/test_python_jamie_4.py make test_a_python
-	@env TEST_NAME=Test/test_python_jamie_6.py make test_a_python
-	@env TEST_NAME=Test/test_python_memory_check.py make test_a_python
-	@env TEST_NAME=Test/test_python_open_close_cmor_multiple.py make test_a_python
-	@env TEST_NAME=Test/test_python_jamie_7.py make test_a_python
-	@env TEST_NAME=Test/test_python_joerg_1.py make test_a_python
-	@env TEST_NAME=Test/test_python_joerg_2.py make test_a_python
-	@env TEST_NAME=Test/test_python_joerg_3.py make test_a_python
-	@env TEST_NAME=Test/test_python_YYYMMDDHH_exp_fmt.py make test_a_python
-	@env TEST_NAME=Test/test_python_region.py make test_a_python
-
-test_case:
-	@echo "${OK_COLOR}Testing: "${TEST_NAME}" with input file: ${INPUT_FILE}${NO_COLOR}"
-	@rm -f ./${TEST_NAME} 2>/dev/null ; @FC@ @FCFLAGS@ @DEBUG@  Test/${TEST_NAME}.f90 -L at prefix@/lib -L. -lcmor @NCCFLAGS@ @NCLDFLAGS@ @UDUNITS2LDFLAGS@ @UDUNITS2FLAGS@ @UUIDLDFLAGS@ @UUIDFLAGS@ @ZFLAGS@ @ZLDFLAGS@ -o ${TEST_NAME} ;
-	@./${TEST_NAME} @VERB@ < ${INPUT_FILE} ;
-	@ rm ./${TEST_NAME}
-ifeq (@MAKEDEPPYTHON@,python)
-	@env TEST_NAME=Test/check_results.py ${TEST_NAME} make test_a_python
-endif
-test_case_old_cmor_tables:
-	@echo "Testing: "${TEST_NAME}" with input file: "${INPUT_FILE}
-	@rm -f ./${TEST_NAME} 2>/dev/null ; @FC@ @FCFLAGS@ @DEBUG@  Test/old_cmor_tables/${TEST_NAME}.f90 -L at prefix@/lib -L. -lcmor @NCCFLAGS@ @NCLDFLAGS@ @UDUNITS2LDFLAGS@ @UDUNITS2FLAGS@ @UUIDLDFLAGS@ @UUIDFLAGS@ @ZFLAGS@ @ZLDFLAGS@ -o ${TEST_NAME} ;
-	@./${TEST_NAME} @VERB@ < ${INPUT_FILE} ;
-	@ rm ./${TEST_NAME}
-ifeq (@MAKEDEPPYTHON@,python)
-	@env TEST_NAME=Test/check_results.py old_cmor_tables_${TEST_NAME} make test_a_python
-endif
-test_fortran_old_cmor_tables: cmor
-	@env TEST_NAME="test_any_from_asc" INPUT_FILE="Test/tas_3D_noreorder.input" make test_case_old_cmor_tables
-	@env TEST_NAME="test_any_from_asc" INPUT_FILE="Test/3D_txy.input" make test_case_old_cmor_tables
-	@env TEST_NAME="test_any_from_asc" INPUT_FILE="Test/3D_txy_split_lon.input" make test_case_old_cmor_tables
-	@env TEST_NAME="test_any_from_asc" INPUT_FILE="Test/3D_xty_split_lon.input" make test_case_old_cmor_tables
-	@env TEST_NAME="test_any_from_asc_d" INPUT_FILE="Test/tas_3D_noreorder.input" make test_case_old_cmor_tables
-	@env TEST_NAME="test_any_from_asc_d" INPUT_FILE="Test/3D_txy.input" make test_case_old_cmor_tables
-	@env TEST_NAME="test_any_from_asc_d" INPUT_FILE="Test/3D_txy_split_lon.input" make test_case_old_cmor_tables
-	@env TEST_NAME="test_any_from_asc_d" INPUT_FILE="Test/3D_xty_split_lon.input" make test_case_old_cmor_tables
-	@env TEST_NAME="karls_test" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
-	@env TEST_NAME="test1" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
-	@env TEST_NAME="test2" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
-	@env TEST_NAME="test3" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
-	@env TEST_NAME="test4" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
-	@env TEST_NAME="main_prog" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
-	@env TEST_NAME="test_any_from_asc_i" INPUT_FILE="Test/tas_mytest_3d_i.input" make test_case_old_cmor_tables
-	@env TEST_NAME="mytest_4d_r" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
-	@env TEST_NAME="rewrite_harvardf_data" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
-	@env TEST_NAME="test_3h" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
-	@env TEST_NAME="test_dimensionless" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
-	@env TEST_NAME="test_fortran_example_00" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
-	@env TEST_NAME="test_fortran_example_01" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
-	@env TEST_NAME="test_station_data" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
-	@env TEST_NAME="test_region" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
-	@env TEST_NAME="test_sigma" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
-	@env TEST_NAME="test_singleton" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
-	@env TEST_NAME="mytest_4d_r_big_array" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
-	@env TEST_NAME="mytest_4d_d_big_array_2" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
-	@env TEST_NAME="mytest_4d_d_big_array_3" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
-	@env TEST_NAME="mytest_4d_d_big_array_4" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
-	@env TEST_NAME="mytest_4d_d_big_array_5" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
-	@env TEST_NAME="climatology_test_code" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
-	@env TEST_NAME="test_lots_of_variables" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
-	@env TEST_NAME="test_shrt_exp_nm_set_att_initi" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
-	@env TEST_NAME="test_sophie" INPUT_FILE="Test/noinput" make test_case_old_cmor_tables
-test_fortran: cmor
-	@env TEST_NAME="test_any_from_asc" INPUT_FILE="Test/tas_3D_noreorder.input" make test_case
-	@env TEST_NAME="test_any_from_asc" INPUT_FILE="Test/3D_txy.input" make test_case
-	@env TEST_NAME="test_any_from_asc" INPUT_FILE="Test/3D_txy_split_lon.input" make test_case
-	@env TEST_NAME="test_any_from_asc" INPUT_FILE="Test/3D_xty_split_lon.input" make test_case
-	@env TEST_NAME="test_any_from_asc_d" INPUT_FILE="Test/tas_3D_noreorder.input" make test_case
-	@env TEST_NAME="test_any_from_asc_d" INPUT_FILE="Test/3D_txy.input" make test_case
-	@env TEST_NAME="test_any_from_asc_d" INPUT_FILE="Test/3D_txy_split_lon.input" make test_case
-	@env TEST_NAME="test_any_from_asc_d" INPUT_FILE="Test/3D_xty_split_lon.input" make test_case
-	@env TEST_NAME="karls_test" INPUT_FILE="Test/noinput" make test_case
-	@env TEST_NAME="test1" INPUT_FILE="Test/noinput" make test_case
-	@env TEST_NAME="test2" INPUT_FILE="Test/noinput" make test_case
-	@env TEST_NAME="test3" INPUT_FILE="Test/noinput" make test_case
-	@env TEST_NAME="test4" INPUT_FILE="Test/noinput" make test_case
-	@env TEST_NAME="main_prog" INPUT_FILE="Test/noinput" make test_case
-	@env TEST_NAME="test_any_from_asc_i" INPUT_FILE="Test/tas_mytest_3d_i.input" make test_case
-	@env TEST_NAME="mytest_4d_r" INPUT_FILE="Test/noinput" make test_case
-	@env TEST_NAME="rewrite_harvardf_data" INPUT_FILE="Test/noinput" make test_case
-	@env TEST_NAME="test_3h" INPUT_FILE="Test/noinput" make test_case
-	@env TEST_NAME="test_dimensionless" INPUT_FILE="Test/noinput" make test_case
-	@env TEST_NAME="test_fortran_example_00" INPUT_FILE="Test/noinput" make test_case
-	@env TEST_NAME="test_fortran_example_01" INPUT_FILE="Test/noinput" make test_case
-	@env TEST_NAME="test_station_data" INPUT_FILE="Test/noinput" make test_case
-	@env TEST_NAME="test_cmor_grid_alejandro" INPUT_FILE="Test/alejandro.txt" make test_case
-	@env TEST_NAME="test_cmor_grid_alejandro" INPUT_FILE="Test/alejandro_1.txt" make test_case
-	@env TEST_NAME="test_cmor_grid_alejandro" INPUT_FILE="Test/alejandro_2.txt" make test_case
-	@env TEST_NAME="test_region" INPUT_FILE="Test/noinput" make test_case
-	@env TEST_NAME="test_sigma" INPUT_FILE="Test/noinput" make test_case
-	@env TEST_NAME="test_singleton" INPUT_FILE="Test/noinput" make test_case
-	@env TEST_NAME="mytest_4d_r_big_array" INPUT_FILE="Test/noinput" make test_case
-	@env TEST_NAME="mytest_4d_d_big_array_2" INPUT_FILE="Test/noinput" make test_case
-	@env TEST_NAME="mytest_4d_d_big_array_3" INPUT_FILE="Test/noinput" make test_case
-	@env TEST_NAME="mytest_4d_d_big_array_4" INPUT_FILE="Test/noinput" make test_case
-	@env TEST_NAME="mytest_4d_d_big_array_5" INPUT_FILE="Test/noinput" make test_case
-	@env TEST_NAME="climatology_test_code" INPUT_FILE="Test/noinput" make test_case
-	@env TEST_NAME="test_lots_of_variables" INPUT_FILE="Test/noinput" make test_case
-	@env TEST_NAME="test_shrt_exp_nm_set_att_initi" INPUT_FILE="Test/noinput" make test_case
-	@env TEST_NAME="test_sophie" INPUT_FILE="Test/noinput" make test_case
-	@env TEST_NAME="ipcc_test_code" INPUT_FILE="Test/noinput" make test_case
-atest: cmor
-#	@env TEST_NAME="mytest_4d_d_big_array_2" INPUT_FILE="Test/noinput" make test_case
-	@env TEST_NAME="test_lots_of_variables" INPUT_FILE="Test/noinput" make test_case
-#	@env TEST_NAME="wegner_test" INPUT_FILE="Test/noinput" make test_case
-
-
-
diff --git a/Src/_cmormodule.c b/Src/_cmormodule.c
deleted file mode 100644
index 1987caa..0000000
--- a/Src/_cmormodule.c
+++ /dev/null
@@ -1,771 +0,0 @@
-#include <Python.h>
-#include "numpy/arrayobject.h"
-#include "cmor.h"
-
-static PyObject *
-  PyCMOR_get_original_shape(PyObject *self,PyObject *args)
-{
-  int tmp,i,shape_array[CMOR_MAX_DIMENSIONS],var_id,blank_time;
-  i=CMOR_MAX_DIMENSIONS;
-  PyObject *mylist;
-  if (!PyArg_ParseTuple(args,"ii",&var_id,&blank_time))
-    return NULL;
-  tmp = cmor_get_original_shape(&var_id,&shape_array[0],&i,blank_time);
-
-  mylist = PyList_New(0); 
-  for (i=0;i<CMOR_MAX_DIMENSIONS;i++) {
-    if (shape_array[i]!=-1) {
-      PyList_Append(mylist,PyInt_FromLong(shape_array[i]));
-    }
-  }
-  Py_INCREF(mylist);
-  return mylist;
-}
-
-static PyObject *
-  PyCMOR_create_output_path(PyObject *self,PyObject *args)
-{
-  char path[CMOR_MAX_STRING];
-  int var_id;
-  if (!PyArg_ParseTuple(args,"i",&var_id))
-    return NULL;
-  cmor_create_output_path(var_id,path);
-  return Py_BuildValue("s",path);
-}
-static PyObject *
-  PyCMOR_set_cur_dataset_attribute(PyObject *self,PyObject *args)
-{
-  char *name;
-  char *value;
-  int ierr;
-  if (!PyArg_ParseTuple(args,"ss",&name,&value))
-    return NULL;
-  ierr = cmor_set_cur_dataset_attribute(name,value,1);
-  if (ierr != 0 ) return NULL;
-  /* Return NULL Python Object */
-  Py_INCREF(Py_None);
-  return Py_None;
-}
-static PyObject *
-  PyCMOR_get_cur_dataset_attribute(PyObject *self,PyObject *args)
-{
-  char *name;
-  char value[CMOR_MAX_STRING];
-  int ierr;
-  if (!PyArg_ParseTuple(args,"s",&name))
-    return NULL;
-  ierr = cmor_get_cur_dataset_attribute(name,value);
-  if (ierr != 0 ) return NULL;
-  return Py_BuildValue("s",value);
-}
-
-static PyObject *
-  PyCMOR_has_cur_dataset_attribute(PyObject *self,PyObject *args)
-{
-  char *name;
-  int ierr;
-  if (!PyArg_ParseTuple(args,"s",&name))
-    return NULL;
-  ierr = cmor_has_cur_dataset_attribute(name);
-  return Py_BuildValue("i",ierr);
-}
-
-static PyObject *
-  PyCMOR_setup(PyObject *self,PyObject *args)
-{
-  int mode,ierr,netcdf,verbosity,createsub;
-  char *path;
-  char *logfile;
-  if (!PyArg_ParseTuple(args,"siiisi",&path,&netcdf,&verbosity,&mode,&logfile,&createsub))
-    return NULL;
-  if (strcmp(logfile,"")==0) {
-    ierr = cmor_setup(path,&netcdf,&verbosity,&mode,NULL,&createsub);
-  }
-  else {
-    ierr = cmor_setup(path,&netcdf,&verbosity,&mode,logfile,&createsub);
-  }
-  if (ierr != 0 ) return NULL;
-  /* Return NULL Python Object */
-  Py_INCREF(Py_None);
-  return Py_None;
-}
-
-static PyObject *
-  PyCMOR_getincvalues(PyObject *self,PyObject *args)
-{
-  char *att_name;
-
-  if (!PyArg_ParseTuple(args,"s",&att_name)) {
-    return NULL;
-  }
-  if (strcmp(att_name,"CMOR_MAX_STRING")==0) {
-    return Py_BuildValue("i",CMOR_MAX_STRING);
-  }
-  else if (strcmp(att_name,"CMOR_MAX_ELEMENTS")==0) {
-    return Py_BuildValue("i",CMOR_MAX_ELEMENTS);
-  }
-  else if (strcmp(att_name,"CMOR_MAX_AXES")==0) {
-    return Py_BuildValue("i",CMOR_MAX_AXES);
-  }
-  else if (strcmp(att_name,"CMOR_MAX_VARIABLES")==0) {
-    return Py_BuildValue("i",CMOR_MAX_VARIABLES);
-  }
-  else if (strcmp(att_name,"CMOR_MAX_GRIDS")==0) {
-    return Py_BuildValue("i",CMOR_MAX_GRIDS);
-  }
-  else if (strcmp(att_name,"CMOR_MAX_DIMENSIONS")==0) {
-    return Py_BuildValue("i",CMOR_MAX_DIMENSIONS);
-  }
-  else if (strcmp(att_name,"CMOR_MAX_ATTRIBUTES")==0) {
-    return Py_BuildValue("i",CMOR_MAX_ATTRIBUTES);
-  }
-  else if (strcmp(att_name,"CMOR_MAX_ERRORS")==0) {
-    return Py_BuildValue("i",CMOR_MAX_ERRORS);
-  }
-  else if (strcmp(att_name,"CMOR_MAX_TABLES")==0) {
-    return Py_BuildValue("i",CMOR_MAX_TABLES);
-  }
-  else if (strcmp(att_name,"CMOR_MAX_GRID_ATTRIBUTES")==0) {
-    return Py_BuildValue("i",CMOR_MAX_GRID_ATTRIBUTES);
-  }
-  else if (strcmp(att_name,"CMOR_QUIET")==0) {
-    return Py_BuildValue("i",CMOR_QUIET);
-  }
-  else if (strcmp(att_name,"CMOR_EXIT_ON_MAJOR")==0) {
-    return Py_BuildValue("i",CMOR_EXIT_ON_MAJOR);
-  }
-  else if (strcmp(att_name,"CMOR_EXIT")==0) {
-    return Py_BuildValue("i",CMOR_EXIT);
-  }
-  else if (strcmp(att_name,"CMOR_EXIT_ON_WARNING")==0) {
-    return Py_BuildValue("i",CMOR_EXIT_ON_WARNING);
-  }
-  else if (strcmp(att_name,"CMOR_VERSION_MAJOR")==0) {
-    return Py_BuildValue("i",CMOR_VERSION_MAJOR);
-  }
-  else if (strcmp(att_name,"CMOR_VERSION_MINOR")==0) {
-    return Py_BuildValue("i",CMOR_VERSION_MINOR);
-  }
-  else if (strcmp(att_name,"CMOR_VERSION_PATCH")==0) {
-    return Py_BuildValue("i",CMOR_VERSION_PATCH);
-  }
-  else if (strcmp(att_name,"CMOR_CF_VERSION_MAJOR")==0) {
-    return Py_BuildValue("i",CMOR_CF_VERSION_MAJOR);
-  }
-  else if (strcmp(att_name,"CMOR_CF_VERSION_MINOR")==0) {
-    return Py_BuildValue("i",CMOR_CF_VERSION_MINOR);
-  }
-  else if (strcmp(att_name,"CMOR_WARNING")==0) {
-    return Py_BuildValue("i",CMOR_WARNING);
-  }
-  else if (strcmp(att_name,"CMOR_NORMAL")==0) {
-    return Py_BuildValue("i",CMOR_NORMAL);
-  }
-  else if (strcmp(att_name,"CMOR_CRITICAL")==0) {
-    return Py_BuildValue("i",CMOR_CRITICAL);
-  }
-  else if (strcmp(att_name,"CMOR_N_VALID_CALS")==0) {
-    return Py_BuildValue("i",CMOR_N_VALID_CALS);
-  }
-  else if (strcmp(att_name,"CMOR_PRESERVE")==0) {
-    return Py_BuildValue("i",CMOR_PRESERVE);
-  }
-  else if (strcmp(att_name,"CMOR_APPEND")==0) {
-    return Py_BuildValue("i",CMOR_APPEND);
-  }
-  else if (strcmp(att_name,"CMOR_REPLACE")==0) {
-    return Py_BuildValue("i",CMOR_REPLACE);
-  }
-  else if (strcmp(att_name,"CMOR_PRESERVE_3")==0) {
-    return Py_BuildValue("i",CMOR_PRESERVE_3);
-  }
-  else if (strcmp(att_name,"CMOR_APPEND_3")==0) {
-    return Py_BuildValue("i",CMOR_APPEND_3);
-  }
-  else if (strcmp(att_name,"CMOR_REPLACE_3")==0) {
-    return Py_BuildValue("i",CMOR_REPLACE_3);
-  }
-  else if (strcmp(att_name,"CMOR_PRESERVE_4")==0) {
-    return Py_BuildValue("i",CMOR_PRESERVE_4);
-  }
-  else if (strcmp(att_name,"CMOR_APPEND_4")==0) {
-    return Py_BuildValue("i",CMOR_APPEND_4);
-  }
-  else if (strcmp(att_name,"CMOR_REPLACE_4")==0) {
-    return Py_BuildValue("i",CMOR_REPLACE_4);
-  }
-  else {
-    /* Return NULL Python Object */
-    Py_INCREF(Py_None);
-    return Py_None;
-  }
-}
-static PyObject *
-  PyCMOR_dataset(PyObject *self,PyObject *args)
-{
-  char *outpath; 
-  char *experiment_id; 
-  char *institution; 
-  char *source; 
-  char *calendar; 
-  int  realization; 
-  char *contact; 
-  char *history; 
-  char *comment; 
-  char *references; 	 
-  char *model_id; 	 
-  char *forcing; 
-  char *institute_id;	 
-  char *parent_exp_id;	 
-  int  leap_year; 
-  int  leap_month; 
-  int  *month_lengths;
-  int initialization_method;
-  int physics_version;
-  int ierr;
-  double *branch_time=NULL,bt;
-  PyObject *month_lengths_obj;
-  PyObject *branch_time_obj;
-  PyArrayObject *month_lengths_array_obj=NULL;
-
-  if (!PyArg_ParseTuple(args,"sssssissssiiOssiissO",&outpath,&experiment_id,&institution,&source,&calendar,&realization,&contact,&history,&comment,&references,&leap_year,&leap_month,&month_lengths_obj,&model_id,&forcing,&initialization_method,&physics_version,&institute_id,&parent_exp_id,&branch_time_obj))
-    return NULL;
-  if (month_lengths_obj == Py_None) {
-    month_lengths = NULL;
-  }
-  else {
-    month_lengths_array_obj =(PyArrayObject *) PyArray_ContiguousFromObject(month_lengths_obj,PyArray_NOTYPE,1,0);
-    month_lengths = (int *)month_lengths_array_obj->data;
-  }
-  if (branch_time_obj == Py_None) {
-    branch_time = NULL;
-  }
-  else {
-    bt = (double) PyFloat_AsDouble(branch_time_obj);
-    branch_time = &bt;
-  }
-    
-  ierr = cmor_dataset(outpath,experiment_id,institution,source,calendar,realization,contact,history,comment,references,leap_year,leap_month,month_lengths,model_id,forcing,initialization_method,physics_version,institute_id,parent_exp_id,branch_time);
-  if (month_lengths_array_obj!=NULL) {Py_DECREF(month_lengths_array_obj);}
-  if (ierr != 0 ) return NULL;
-  /* Return NULL Python Object */
-  Py_INCREF(Py_None);
-  return Py_None;
-}
-
-static PyObject *
-  PyCMOR_load_table(PyObject *self,PyObject *args)
-{
-  int ierr,table_id;
-  char *table;
-  if (!PyArg_ParseTuple(args,"s",&table))
-    return NULL;
-  ierr = cmor_load_table(table,&table_id);
-  if (ierr != 0 ) {
-    return NULL;
-  }
-  return Py_BuildValue("i",table_id);
-}
-
-static PyObject *
-  PyCMOR_axis(PyObject *self,PyObject *args)
-{
-  int ierr,axis_id,n=0;
-  char *name; 
-  char *units; 
-  char *interval; 
-  int length;
-  char type;
-  void *coord_vals;
-  void *cell_bounds;
-  int cell_bounds_ndim;
-  char *tmpstr=NULL;
-  PyObject *coords_obj,*bounds_obj;
-  PyArrayObject *coords=NULL,*bounds=NULL;
-
-  /* HUGE assumtion here is that the data is contiguous! */
-  if (!PyArg_ParseTuple(args,"ssiOcOis",&name,&units,&length,&coords_obj,&type,&bounds_obj,&cell_bounds_ndim,&interval))
-    return NULL;
-
-  if (coords_obj == Py_None) {
-    coord_vals = NULL;
-  }
-  else {
-    coords =(PyArrayObject *) PyArray_ContiguousFromObject(coords_obj,PyArray_NOTYPE,1,0);
-
-    if (coords->nd!=1) {
-      printf("ok we need to pass contiguous flattened arrays only!\n");
-      return NULL;
-    }
-    
-    if (type!='c') {
-      coord_vals = (void *)coords->data;
-      n = cell_bounds_ndim;
-    }
-    else {
-      tmpstr=(char *)malloc(sizeof(char)*length*(cell_bounds_ndim+1));
-      for (ierr=0;ierr<length;ierr++) {
-	coord_vals = (void *)PyArray_GETPTR1(coords,ierr);
-	strncpy(&tmpstr[ierr*(cell_bounds_ndim+1)],coord_vals,cell_bounds_ndim);
-	tmpstr[ierr*(cell_bounds_ndim+1)+cell_bounds_ndim]='\0';
-      }
-      coord_vals=&tmpstr[0];
-      n = cell_bounds_ndim + 1;
-      for (ierr=0;ierr<length;ierr++) {
-      }
-    }
-  }
-
-  if (bounds_obj == Py_None) {
-    cell_bounds = NULL;
-  }
-  else {
-    bounds =(PyArrayObject *) PyArray_ContiguousFromObject(bounds_obj,PyArray_NOTYPE,1,0);
-    if (bounds->nd!=1) {
-      printf("ok we need to pass contiguous flattened arrays only!\n");
-      return NULL;
-    }
-    cell_bounds = (void *)bounds->data;
-  }
-  
-  ierr = cmor_axis(&axis_id,name,units,length,coord_vals,type,cell_bounds,n,interval);
-
-
-  if (coords!=NULL) {Py_DECREF(coords);}
-  if (bounds!=NULL) {Py_DECREF(bounds);}
-
-  if (ierr != 0 ) return NULL;
-
-  if (type=='c') {
-    free(tmpstr);
-  }
-
-
-  return Py_BuildValue("i",axis_id);
-}
-
-static PyObject *
-  PyCMOR_set_table(PyObject *self,PyObject *args)
-{
-  int table,ierr;
-  if (!PyArg_ParseTuple(args,"i",&table))
-    return NULL;
-  ierr = cmor_set_table(table);
-  if (ierr != 0 ) return NULL;
-  /* Return NULL Python Object */
-  Py_INCREF(Py_None);
-  return Py_None;
-}
-
-static PyObject *
-  PyCMOR_variable(PyObject *self,PyObject *args)
-{
-  int ierr,var_id;
-  char *name; 
-  char *units; 
-  char *comment; 
-  char *positive;
-  char *original_name;
-  char *history;
-  int ndims;
-  char type;
-  double missing;
-  float fmissing;
-  int imissing;
-  long lmissing;
-  double tol;
-  void *pass_missing=NULL;
-  int *axes_ids;
-  PyObject *axes_obj,*missing_obj;
-  PyArrayObject *axes=NULL;
-
-  /* HUGE assumtion here is that the data is contiguous! */
-  if (!PyArg_ParseTuple(args,"ssiOcOdssss",&name,&units,&ndims,&axes_obj,&type,&missing_obj,&tol,&positive,&original_name,&history,&comment))
-    return NULL;
-
-  axes =(PyArrayObject *) PyArray_ContiguousFromObject(axes_obj,PyArray_NOTYPE,1,0);
-
-  if (axes->nd!=1) {
-    printf("ok we need to pass contiguous flattened arrays only!\n");
-    return NULL;
-  }
-  axes_ids = (int *)axes->data;
-
-  if (missing_obj == Py_None) {
-    pass_missing = NULL;
-  }
-  else {
-    missing = PyFloat_AsDouble(missing_obj);
-    if (type=='d') pass_missing=&missing;
-    else if (type=='f') {
-      fmissing = (float)missing;
-      pass_missing=&fmissing;
-    }
-    else if (type=='l') {
-      lmissing = (long)missing;
-      pass_missing=&lmissing;
-    }
-    else if (type=='i') {
-      imissing = (int)missing;
-      pass_missing=&imissing;
-    }
-  }
-  
-  ierr = cmor_variable(&var_id,name, units, ndims, axes_ids, type, pass_missing, &tol, positive, original_name, history, comment) ;
-  if (axes!=NULL) {Py_DECREF(axes);}
-  if (ierr != 0 ) return NULL;
-  return Py_BuildValue("i",var_id);
-}
-
-static PyObject *
-  PyCMOR_zfactor(PyObject *self,PyObject *args)
-{
-  int ierr,zvar_id;
-  int itmp;
-  int axis_id;
-  char *name; 
-  char *units; 
-  int ndims;
-  char type;
-  int *axes_ids;
-  void *values,*bounds;
-  PyObject *axes_obj,*values_obj,*bounds_obj;
-  PyArrayObject *axes=NULL, *values_array=NULL, *bounds_array=NULL;
-
-  /* HUGE assumtion here is that the data is contiguous! */
-  if (!PyArg_ParseTuple(args,"issiOcOO",&axis_id,&name,&units,&ndims,&axes_obj,&type,&values_obj,&bounds_obj))
-    return NULL;
-
-  if (axes_obj == Py_None) {
-    axes_ids = NULL;
-  }
-  else {
-    if (ndims>1) {
-      axes =(PyArrayObject *) PyArray_ContiguousFromObject(axes_obj,PyArray_NOTYPE,1,0);
-      axes_ids = (void *)axes->data;
-    }
-    else {
-      itmp = (int) PyInt_AsLong(axes_obj);
-      axes_ids = &itmp;
-    }
-  }
-
-
-  if (values_obj == Py_None) {
-    values = NULL;
-  }
-  else {
-    values_array =(PyArrayObject *) PyArray_ContiguousFromObject(values_obj,PyArray_NOTYPE,1,0);
-    values = (void *)values_array->data;
-  }
-
-  if (bounds_obj == Py_None) {
-    bounds = NULL;
-  }
-  else {
-    bounds_array =(PyArrayObject *) PyArray_ContiguousFromObject(bounds_obj,PyArray_NOTYPE,1,0);
-    bounds = (void *)bounds_array->data;
-  }
-  
-  ierr = cmor_zfactor(&zvar_id,axis_id, name, units, ndims, axes_ids, type, values, bounds);
-  if (axes!=NULL) {Py_DECREF(axes);}
-  if (values_array!=NULL) {Py_DECREF(values_array);}
-  if (bounds_array!=NULL) {Py_DECREF(bounds_array);}
-  if (ierr != 0 ) return NULL;
-  return Py_BuildValue("i",zvar_id);
-}
-
-
-static PyObject *
-  PyCMOR_grid_mapping(PyObject *self,PyObject *args)
-{
-  int ierr;
-  PyObject *param_nm_obj,*param_val_obj,*param_un_obj,*tmp;
-  PyArrayObject *param_val_arr=NULL;
-  void *param_val;
-  char *name;
-  int gid,i,n;
-  char nms[CMOR_MAX_GRID_ATTRIBUTES][CMOR_MAX_STRING];
-  char units[CMOR_MAX_GRID_ATTRIBUTES][CMOR_MAX_STRING];
-  /* HUGE assumtion here is that the data is contiguous! */
-  if (!PyArg_ParseTuple(args,"isOOO",&gid,&name,&param_nm_obj,&param_val_obj,&param_un_obj))
-    return NULL;
-
-  param_val_arr = (PyArrayObject *) PyArray_ContiguousFromObject(param_val_obj,PyArray_NOTYPE,1,0);
-  param_val = param_val_arr->data;
-  
-  n = PyList_Size(param_nm_obj);
-  for(i=0;i<n;i++) {
-    tmp  =PyList_GetItem(param_nm_obj,i);
-    strcpy(nms[i],PyString_AsString(tmp));
-    Py_DECREF(tmp);
-    tmp  =PyList_GetItem(param_un_obj,i);
-    strcpy(units[i],PyString_AsString(tmp));
-    Py_DECREF(tmp);
-  }
-  
-  ierr = cmor_set_grid_mapping(gid,name,n,(char **)nms,CMOR_MAX_STRING,param_val,(char **)units,CMOR_MAX_STRING);
-
-  if (param_val_arr!=NULL) {Py_DECREF(param_val_arr);}
-
-  if (ierr!=0) {
-    return NULL;
-  }
-  else {
-    /* Return NULL Python Object */
-    Py_INCREF(Py_None);
-    return Py_None;
-  }
-}
-static PyObject *
-  PyCMOR_write(PyObject *self,PyObject *args)
-{
-  int ierr,var_id;
-  PyObject *data_obj=NULL;
-  PyArrayObject *data_array=NULL;
-  void *data;
-  char *suffix,*itype; 
-  char type;
-  int ntimes;
-  PyObject *times_obj=NULL;
-  PyArrayObject *times_array=NULL;
-  void *times;
-  double itime;
-  PyObject *times_bnds_obj=NULL;
-  PyArrayObject *times_bnds_array=NULL;
-  void *times_bnds;
-  PyObject *ref_obj;
-  int *ref;
-  int iref;
-
-  /* HUGE assumtion here is that the data is contiguous! */
-  if (!PyArg_ParseTuple(args,"iOssiOOO",&var_id,&data_obj,&itype,&suffix,&ntimes,&times_obj,&times_bnds_obj,&ref_obj))
-    return NULL;
-
-  data_array =(PyArrayObject *) PyArray_ContiguousFromObject(data_obj,PyArray_NOTYPE,1,0);
-  data = data_array->data;
-
-  if (times_obj == Py_None) {
-    times = NULL;
-  }
-  else {
-    if (ntimes>1) {
-      times_array =(PyArrayObject *) PyArray_ContiguousFromObject(times_obj,PyArray_NOTYPE,1,0);
-      times = (void *)times_array->data;
-    }
-    else {
-      itime = (double) PyFloat_AsDouble(times_obj);
-      times = &itime;
-    }
-  }
-
-  if (times_bnds_obj == Py_None) {
-    times_bnds = NULL;
-  }
-  else {
-    times_bnds_array =(PyArrayObject *) PyArray_ContiguousFromObject(times_bnds_obj,PyArray_NOTYPE,1,0);
-    times_bnds = (void *)times_bnds_array->data;
-  }
-
-  if (ref_obj == Py_None) {
-    ref = NULL;
-  }
-  else {
-    iref = (int) PyInt_AsLong(ref_obj);
-    ref = &iref;
-  }
-  type = itype[0];
-/*   printf("going in, suffix is: -%s-\n",suffix); */
-  ierr = 0;
-  ierr = cmor_write(var_id, data, type, suffix, ntimes, times, times_bnds, ref);
-  Py_DECREF(data_array);
-  if (times_array!=NULL) {Py_DECREF(times_array);}
-  if (times_bnds_array!=NULL) {Py_DECREF(times_bnds_array);}
-
-  if (ierr != 0 ) return NULL;
-  /* Return NULL Python Object */
- 
-  Py_INCREF(Py_None);
-  return Py_None;
-}
-static PyObject *
-  PyCMOR_close(PyObject *self,PyObject *args)
-{
-  PyObject *var;
-  PyObject *file;
-  PyObject *preserve;
-  int varid,ierr;
-  int dofile=0;
-  int dopreserve=0;
-  int preserved_id;
-  char file_name[CMOR_MAX_STRING];
-  if (!PyArg_ParseTuple(args,"OOO",&var,&file,&preserve)) {
-    return NULL;
-  }
-  
-  if (var == Py_None ) {
-    ierr = cmor_close();
-  }
-  else {
-    varid = (int)PyInt_AsLong(var);
-    dofile =(int)PyInt_AsLong(file);
-    dopreserve =(int)PyInt_AsLong(preserve);
-
-    if (dopreserve==1) {
-      if (dofile==1) { 
-	ierr = cmor_close_variable(varid,&file_name[0],&preserved_id);
-      }
-      else {
-	ierr = cmor_close_variable(varid,NULL,&preserved_id);
-      }
-    }
-    else {
-      if (dofile==1) { 
-	ierr = cmor_close_variable(varid,&file_name[0],NULL);
-      }
-      else {
-	ierr = cmor_close_variable(varid,NULL,NULL);
-      }
-    }
-  }
-
-  if (ierr!=0) {
-    return NULL;
-  }
-  else {
-    if (dofile==1) {
-      return Py_BuildValue("s",file_name);
-    }
-    else {
-      return Py_BuildValue("i",ierr);
-    }
-  }
-}
-
-    
-static PyObject *
-  PyCMOR_time_varying_grid_coordinate(PyObject *self,PyObject *args)
-{
-  int ierr,grid_id,coord_var_id;
-  char *table_entry;
-  char *units;
-  char type;
-  double missing;
-  PyObject *missing_obj;
-  void *pass_missing;
-
- /* HUGE assumtion here is that the data is contiguous! */
-  if (!PyArg_ParseTuple(args,"isscO",&grid_id,&table_entry,&units,&type,&missing_obj))
-    return NULL;
-  if (missing_obj == Py_None) {
-    pass_missing = NULL;
-  }
-  else {
-    missing = PyFloat_AsDouble(missing_obj);
-    pass_missing=(void *)&missing;
-  }
-  ierr = cmor_time_varying_grid_coordinate(&coord_var_id,grid_id, table_entry, units, type, pass_missing, NULL);
-
-  if (ierr != 0 ) return NULL;
-  return Py_BuildValue("i",coord_var_id);  
-}
-static PyObject *
-  PyCMOR_grid(PyObject *self,PyObject *args)
-{
-  int ierr;
-  PyObject *axes_obj,*lat_obj,*lon_obj,*blat_obj,*blon_obj;
-  PyArrayObject *axes_arr=NULL,*lat_arr=NULL,*lon_arr=NULL,*blat_arr=NULL,*blon_arr=NULL;
-  void *axes,*lon,*lat,*blon,*blat;
-  char type;
-  int nvert,ndims;
-  int id;
-  char itype;
-
-  /* HUGE assumtion here is that the data is contiguous! */
-  if (!PyArg_ParseTuple(args,"iOcOOiOO",&ndims,&axes_obj,&itype,&lat_obj,&lon_obj,&nvert,&blat_obj,&blon_obj))
-    return NULL;
-
-  type = itype;
-  axes_arr = (PyArrayObject *) PyArray_ContiguousFromObject(axes_obj,PyArray_NOTYPE,1,0);
-  axes = (void *) axes_arr->data;
-
-  if (lat_obj == Py_None) {
-    lat = NULL;
-  }
-  else {
-    lat_arr = (PyArrayObject *) PyArray_ContiguousFromObject(lat_obj,PyArray_NOTYPE,1,0);
-    lat = (void *)lat_arr->data;
-  }
-
-  if (lon_obj == Py_None) {
-    lon = NULL;
-  }
-  else {
-    lon_arr = (PyArrayObject *) PyArray_ContiguousFromObject(lon_obj,PyArray_NOTYPE,1,0);
-    lon = (void *)lon_arr->data;
-  }
-
-  if (blat_obj == Py_None) {
-    blat = NULL;
-  }
-  else {
-      blat_arr = (PyArrayObject *) PyArray_ContiguousFromObject(blat_obj,PyArray_NOTYPE,1,0);
-      blat = (void *)blat_arr->data;
-  }
-  if (blon_obj == Py_None) {
-    blon = NULL;
-  }
-  else {
-      blon_arr = (PyArrayObject *) PyArray_ContiguousFromObject(blon_obj,PyArray_NOTYPE,1,0);
-      blon = (void *)blon_arr->data;
-  }
-
-  ierr = cmor_grid(&id,ndims,axes,type,lat,lon,nvert,blat,blon);
-
-  if (axes_arr!=NULL) {Py_DECREF(axes_arr);}
-  if (lat_arr!=NULL) {Py_DECREF(lat_arr);}
-  if (blat_arr!=NULL) {Py_DECREF(blat_arr);}
-  if (lon_arr!=NULL) {Py_DECREF(lon_arr);}
-  if (blon_arr!=NULL) {Py_DECREF(blon_arr);}
-  if (ierr != 0 ) return NULL;
-  return Py_BuildValue("i",id);
-}
-
-
-static PyMethodDef MyExtractMethods[]= {
-  {"setup", PyCMOR_setup , METH_VARARGS},
-  {"dataset", PyCMOR_dataset , METH_VARARGS},
-  {"load_table", PyCMOR_load_table , METH_VARARGS},
-  {"axis", PyCMOR_axis , METH_VARARGS},
-  {"set_table", PyCMOR_set_table , METH_VARARGS},
-  {"variable", PyCMOR_variable , METH_VARARGS},
-  {"zfactor", PyCMOR_zfactor , METH_VARARGS},
-  {"write", PyCMOR_write , METH_VARARGS},
-  {"grid", PyCMOR_grid , METH_VARARGS},
-  {"time_varying_grid_coordinate", PyCMOR_time_varying_grid_coordinate , METH_VARARGS},
-  {"set_grid_mapping", PyCMOR_grid_mapping , METH_VARARGS},
-  {"getCMOR_defaults_include",PyCMOR_getincvalues, METH_VARARGS},
-  {"close", PyCMOR_close , METH_VARARGS},
-  {"set_cur_dataset_attribute",PyCMOR_set_cur_dataset_attribute, METH_VARARGS},
-  {"get_cur_dataset_attribute",PyCMOR_get_cur_dataset_attribute, METH_VARARGS},
-  {"has_cur_dataset_attribute",PyCMOR_has_cur_dataset_attribute, METH_VARARGS},
-  {"create_output_path",PyCMOR_create_output_path, METH_VARARGS},
-  {"get_original_shape",PyCMOR_get_original_shape, METH_VARARGS},
-  {NULL, NULL} /*sentinel */
-};
-
-PyMODINIT_FUNC init_cmor(void)
-{
-  (void) Py_InitModule("_cmor", MyExtractMethods);
-  import_array();
-  
-}
-
-/* int main(int argc,char **argv) */
-/* { */
-/*   Py_SetProgramName(argv[0]); */
-/*   Py_Initialize(); */
-/*   init_cmor(); */
-/*   return 0; */
-/* } */
-
diff --git a/Src/cdTime/Makefile.in b/Src/cdTime/Makefile.in
deleted file mode 100644
index b0a1581..0000000
--- a/Src/cdTime/Makefile.in
+++ /dev/null
@@ -1,98 +0,0 @@
-# -*-Mode: indented-text;-*-
-# Makefile:    db_util makefile
-#
-# Copyright:   1996, Regents of the University of California
-#	       This software may not be distributed to others without
-#	       permission of the author.
-#
-# Author:      Bob Drach, Lawrence Livermore National Laboratory
-#              drach at llnl.gov
-#
-# Version:     $Id$
-#
-# Revision History:
-#
-# $Log: Makefile.in,v $
-# Revision 1.2  1997/10/24  18:23:57  drach
-# - Cache netCDF unlimited dimensions
-# - Consistent with GrADS src170
-#
-# Revision 1.1  1996/09/09  18:28:31  drach
-# - Cleaned up minor compilation warnings
-#
-#
-# Note: Makefile is generated from Makefile.in by top level configure
-#
-
-# Install prefix for architecture-independent files
-prefix=         @prefix@
-
-# Install prefix for architecture-dependent files
-exec_prefix=    @exec_prefix@
-
-# Expanded directories
-BINDIR=$(exec_prefix)/bin
-INCLUDEDIR=$(prefix)/include
-LIBDIR=$(exec_prefix)/lib
-MANDIR=$(prefix)/man
-PARMDIR=$(prefix)/lib/lats
-
-CC = @CC@
-CFLAGS = -I../../include @CFLAGS@ $(DEBUG) -Dgrads
-CPPFLAGS = @CPPFLAGS@
-DEBUG = -O
-DEFS = @DEFS@
-FC = @FC@
-FFLAGS = -I../../include @FFLAGS@ $(DEBUG)
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-LDFLAGS = -L../../../lib -lcdms @NCOPTS@ @DRSOPTS@ @LIBS@
-OS = @OS@
-RANLIB = @RANLIB@
-
-# Shell to run make subcommands
-SHELL = /bin/sh
-
-# Do not change values below this line
-#
-LIBRARY		= ../../lib/libcdms.a
-OBJS		= cdTimeConv.o timeConv.o timeArith.o reg_trfm.o cdRegTrfm.o \
-		  cdUtil.o
-
-all:		$(OBJS) FORCE
-		ar rv $(LIBRARY) $(OBJS)
-		$(RANLIB) $(LIBRARY)
-
-cdTimeConv.o:	cdTimeConv.c ../../include/cdmsint.h ../../include/cdms.h ../../include/cdunif.h
-fcdTimeConv.o:	fcdTimeConv.c ../../include/cdmsint.h ../../include/cdms.h ../../include/cdunif.h ../../include/cfortran.h
-timeConv.o:	timeConv.c ../../include/cdmsint.h ../../include/cdms.h ../../include/cdunif.h
-timeArith.o:	timeArith.c ../../include/cdmsint.h ../../include/cdms.h ../../include/cdunif.h
-reg_trfm.o:	reg_trfm.c ../../include/isdb.h	../../include/gaussLats.h
-cdRegTrfm.o:	cdRegTrfm.c ../../include/cdmsint.h ../../include/cdms.h ../../include/cdunif.h ../../include/isdb.h
-
-.SUFFIXES: .F
-
-.c.o:
-	$(CC) $(CPPFLAGS) $(DEFS) $(CFLAGS) -c $<
-
-.c:
-	$(CC) $(CPPFLAGS) $(DEFS) $(CFLAGS) -o $@ $< $(LDFLAGS)
-
-.F:
-	case $(OS) in \
-	     'aix') \
-		    /usr/ccs/lib/cpp -P $(CPPFLAGS) $(CFLAGS) $(INCLUDES) $(DEFS) $< $@.f; \
-		    $(FC) $(FFLAGS) $(LDFLAGS) $(LIBS) $@.f -o $@; \
-		    rm $@.f; \
-		    ;; \
-	     *) \
-		    $(FC) $(CPPFLAGS) $(INCLUDES) $(DEFS) $(FFLAGS) -o $@ $< $(LDFLAGS) $(LIBS); \
-		    ;; \
-	esac
-
-clean:
-	-rm -f *.o core *.~*~
-
-distclean: clean
-
-FORCE:
diff --git a/Src/cdTime/cdRegTrfm.c b/Src/cdTime/cdRegTrfm.c
deleted file mode 100644
index cd88441..0000000
--- a/Src/cdTime/cdRegTrfm.c
+++ /dev/null
@@ -1,139 +0,0 @@
-/* -*-Mode: C;-*-
- * Module:      index <-> x-y <-> latlon wrapper routines
- *              CdXyIndex     - x-y -> index
- *              CdIndexXy     - index -> x-y
- *              CdLatLonXy    - latlon -> x-y
- *              CdXyLatLon    - x-y -> latlon
- *              CdIndexLatLon - index -> latlon
- *              CdLatLonIndex - latlon -> index
- *              CdMapGeom     - map CDMS geom/order to NEONS geom
- *
- * Copyright:	1994, Regents of the University of California
- *		This software may not be distributed to others without
- *		permission of the author.
- *
- * Author:      Bob Drach, Lawrence Livermore National Laboratory
- *              drach at llnl.gov
- *
- * Version:     $Id$
- *
- * Revision History:
- *
- * $Log: cdRegTrfm.c,v $
- * Revision 1.2  1996/02/21  23:56:46  drach
- * - Overlayed cdtime routines in cdTimeConv.c:
- * - Added seconds, julian calendar, changed include to cdmsint.h for old
- *   time routines in timeArith.c and timeConv.c
- *
- * Revision 1.1  1994/08/12  19:03:53  drach
- * Entered into CVS
- *
- *
- */
-
-#include <stdio.h>
-#include <cdmsint.h>
-#include <isdb.h>
-					     /* copy CDMS geom to NEONS ngeom */
-void
-CdCopyGeom(CdRegGeom *geom, REG_GEOM *ngeom)
-{
-	strncpy(ngeom->prjn_name,geom->prjnName,21);
-	ngeom->nx = geom->nx;
-	ngeom->ny = geom->ny;
-	ngeom->lat = geom->lat;
-	ngeom->lon = geom->lon;
-	ngeom->orig_ix = geom->orig_ix;
-	ngeom->orig_iy = geom->orig_iy;
-	ngeom->x_int_dis = geom->x_int_dis;
-	ngeom->y_int_dis = geom->y_int_dis;
-	ngeom->parm_1 = geom->parm_1;
-	ngeom->parm_2 = geom->parm_2;
-	ngeom->parm_3 = geom->parm_3;
-
-	return;
-}
-
-					     /* Copy CDMS geom & order to NEONS ngeom */
-void
-CdMapGeom(CdRegGeom *geom, CdOrder *order, REG_GEOM *ngeom)
-{
-	if(order->lonDir < 0){
-		fprintf(stderr,"CDMS error: longitude direction must be non-negative.\n");
-	}
-
-	if(order->lonDir < order->latDir)
-		if(order->latDir > 0)
-			strcpy(ngeom->stor_dsc,"+x in +y");
-		else
-			strcpy(ngeom->stor_dsc,"+x in -y");
-	else
-		if(order->latDir > 0)
-			strcpy(ngeom->stor_dsc,"+y in +x");
-		else
-			strcpy(ngeom->stor_dsc,"-y in +x");
-
-	CdCopyGeom(geom,ngeom);
-	return;
-}
-
-int
-CdXyIndex(CdRegGeom *geom, CdOrder *order, long ix, long iy, long *index)
-{
-	REG_GEOM ngeom;
-	int status;
-
-	CdMapGeom(geom,order,&ngeom);
-	xy_index(&ngeom,&ix,&iy,index,&status);
-	return (status == 0 ? 0 : 1);
-}
-int
-CdIndexXy(CdRegGeom *geom, CdOrder *order, long index, long *ix, long *iy)
-{
-	REG_GEOM ngeom;
-	int status;
-
-	CdMapGeom(geom,order,&ngeom);
-	index_xy(&ngeom,&index,ix,iy,&status);
-	return (status == 0 ? 0 : 1);
-}
-int
-CdLatLonXy(CdRegGeom *geom, double lat, double lon, double *x, double *y)
-{
-	REG_GEOM ngeom;
-	int status;
-
-	CdCopyGeom(geom,&ngeom);	     /* order is unused */
-	latlon_xy(&ngeom,&lat,&lon,x,y,&status);
-	return (status == 0 ? 0 : 1);
-}
-int
-CdXyLatLon(CdRegGeom *geom, double x, double y, double *lat, double *lon)
-{
-	REG_GEOM ngeom;
-	int status;
-
-	CdCopyGeom(geom,&ngeom);	     /* order is unused */
-	xy_latlon(&ngeom,&x,&y,lat,lon,&status);
-	return (status == 0 ? 0 : 1);
-}
-int
-CdIndexLatLon(CdRegGeom *geom, CdOrder *order, long index, double *lat, double *lon)
-{
-	REG_GEOM ngeom;
-	int status;
-
-	CdMapGeom(geom,order,&ngeom);
-	index_latlon(&ngeom,&index,lat,lon,&status);
-	return (status == 0 ? 0 : 1);
-}
-int
-CdLatLonIndex(CdRegGeom *geom, CdOrder *order, double lat, double lon, long *index)
-{
-	REG_GEOM ngeom;
-	int status;
-
-	CdMapGeom(geom,order,&ngeom);
-	latlon_index(&ngeom,&lat,&lon,index,&status);
-	return (status == 0 ? 0 : 1);
-}
diff --git a/Src/cdTime/cdTimeConv.c b/Src/cdTime/cdTimeConv.c
deleted file mode 100644
index 3a557b4..0000000
--- a/Src/cdTime/cdTimeConv.c
+++ /dev/null
@@ -1,1110 +0,0 @@
-/* -*-Mode: C;-*-
- * Module:      CDMS time conversion and arithmetic routines
- *
- * Copyright:	1995, Regents of the University of California
- *		This software may not be distributed to others without
- *		permission of the author.
- *
- * Author:      Bob Drach, Lawrence Livermore National Laboratory
- *              drach at llnl.gov
- *
- * Version:     $Id$
- *
- * Revision History:
- *
- * $Log: cdTimeConv.c,v $
- * Revision 1.1.1.1  1997/12/09 18:57:40  drach
- * Copied from cirrus
- *
- * Revision 1.3  1996/09/09  18:28:33  drach
- * - Cleaned up minor compilation warnings
- *
- * Revision 1.2  1996/04/04  18:29:04  drach
- * - Added FORTRAN interface to time routines
- * - Added function cdParseDeltaTime
- *
- * Revision 1.1  1996/02/21  23:56:47  drach
- * - Overlayed cdtime routines in cdTimeConv.c:
- * - Added seconds, julian calendar, changed include to cdmsint.h for old
- *   time routines in timeArith.c and timeConv.c
- *
- *
- */
-#include <stdio.h>
-#include <string.h>
-#include <ctype.h>
-#include <math.h>
-#include "cdmsint.h"
-
-void cdComp2RelMixed(cdCompTime ct, cdUnitTime unit, cdCompTime basetime, double *reltime);
-void cdRel2CompMixed(double reltime, cdUnitTime unit, cdCompTime basetime, cdCompTime *comptime);
-extern void
-CdDivDelTime(double begEtm, double endEtm, CdDeltaTime delTime, CdTimeType timeType,
-	     long baseYear, long *nDel);
-extern void
-CdAddDelTime(double begEtm, long nDel, CdDeltaTime delTime, CdTimeType timeType,
-	     long baseYear, double *endEtm);
-
-#define CD_DEFAULT_BASEYEAR "1979"	     /* Default base year for relative time (no 'since' clause) */
-#define VALCMP(a,b) ((a)<(b)?-1:(b)<(a)?1:0)
-
-/* Validate the component time, return 0 if valid, 1 if not */
-int
-cdValidateTime(cdCalenType timetype, cdCompTime comptime)
-{
-	if(comptime.month<1 || comptime.month>12){
-		cdError("Error on time conversion: invalid month = %hd\n",comptime.month);
-		return 1;
-	}
-	if(comptime.day<1 || comptime.day>31){
-		cdError("Error on time conversion: invalid day = %hd\n",comptime.day);
-		return 1;
-	}
-	if(comptime.hour<0.0 || comptime.hour>24.0){
-		cdError("Error on time conversion: invalid hour = %lf\n",comptime.hour);
-		return 1;
-	}
-	return 0;
-}
-
-/* Trim trailing whitespace, up to n characters. */
-/* If no whitespace up to the last character, set */
-/* the last character to null, else set the first */
-/* whitespace character to null. */
-void
-cdTrim(char* s, int n)
-{
-	char* c;
-
-	if(s==NULL)
-		return;
-	for(c=s; *c && c<s+n-1 && !isspace(*c); c++);
-	*c='\0';
-	return;
-}
-					     /* Map to old timetypes */
-int
-cdToOldTimetype(cdCalenType newtype, CdTimeType* oldtype)
-{
-	switch(newtype){
-	  case cdStandard:
-		*oldtype = CdChron;
-		break;
-	  case cdJulian:
-		*oldtype = CdJulianCal;
-		break;
-	  case cdNoLeap:
-		*oldtype = CdChronNoLeap;
-		break;
-	  case cd360:
-		*oldtype = CdChron360;
-		break;
-	  case cdClim:
-		*oldtype = CdClim;
-		break;
-	  case cdClimLeap:
-		*oldtype = CdClimLeap;
-		break;
-	  case cdClim360:
-		*oldtype = CdClim360;
-		break;
-	  default:
-		cdError("Error on relative units conversion, invalid timetype = %d",newtype);
-		return 1;
-	}
-	return 0;
-}
-
-/* Parse relative units, returning the unit and base component time. */
-/* Function returns 1 if error, 0 on success */
-int
-cdParseRelunits(cdCalenType timetype, char* relunits, cdUnitTime* unit, cdCompTime* base_comptime)
-{
-	char charunits[CD_MAX_RELUNITS];
-	char basetime_1[CD_MAX_CHARTIME];
-	char basetime_2[CD_MAX_CHARTIME];
-	char basetime[CD_MAX_CHARTIME];
-/* 	double factor; */
-/* 	CdTime humantime; */
-	int nconv;
-/* 	CdTimeType old_timetype; */
-					     /* Parse the relunits */
-	nconv = sscanf(relunits,"%s since %s %s",charunits,basetime_1,basetime_2);
-	if(nconv==EOF || nconv==0){
-		cdError("Error on relative units conversion, string = %s\n",relunits);
-		return 1;
-	}
-
-					     /* Get the units */
-	cdTrim(charunits,CD_MAX_RELUNITS);
-	if(!strncmp(charunits,"sec",3) || !strcmp(charunits,"s")){
-		*unit = cdSecond;
-	}
-	else if(!strncmp(charunits,"min",3) || !strcmp(charunits,"mn")){
-		*unit = cdMinute;
-	}
-	else if(!strncmp(charunits,"hour",4) || !strcmp(charunits,"hr")){
-		*unit = cdHour;
-	}
-	else if(!strncmp(charunits,"day",3) || !strcmp(charunits,"dy")){
-		*unit = cdDay;
-	}
-	else if(!strncmp(charunits,"week",4) || !strcmp(charunits,"wk")){
-		*unit = cdWeek;
-	}
-	else if(!strncmp(charunits,"month",5) || !strcmp(charunits,"mo")){
-		*unit = cdMonth;
-	}
-	else if(!strncmp(charunits,"season",6)){
-		*unit = cdSeason;
-	}
-	else if(!strncmp(charunits,"year",4) || !strcmp(charunits,"yr")){
-		if(!(timetype & cdStandardCal)){
-			cdError("Error on relative units conversion: climatological units cannot be 'years'.\n");
-			return 1;
-		}
-		*unit = cdYear;
-	}
-	else {
-		cdError("Error on relative units conversion: invalid units = %s\n",charunits);
-		return 1;
-	}
-
-					     /* Build the basetime, if any (default is 1979), */
-					     /* or month 1 for climatological time. */
-	if(nconv == 1){
-		if(timetype & cdStandardCal)
-			strcpy(basetime,CD_DEFAULT_BASEYEAR);
-		else
-			strcpy(basetime,"1");
-	}
-					     /* Convert the basetime to component, then epochal (hours since 1970) */
-	else{
-		if(nconv == 2){
-			cdTrim(basetime_1,CD_MAX_CHARTIME);
-			strcpy(basetime,basetime_1);
-		}
-		else{
-			cdTrim(basetime_1,CD_MAX_CHARTIME);
-			cdTrim(basetime_2,CD_MAX_CHARTIME);
-			sprintf(basetime,"%s %s",basetime_1,basetime_2);
-		}
-	}
-
-	cdChar2Comp(timetype, basetime, base_comptime);
-
-	return 0;
-}
-
-/* Parse delta time. Return 0 if success, 1 on error. */
-int
-cdParseDeltaTime(cdCalenType timetype, char* deltaTime, double* value, cdUnitTime* unit){
-	char charunits[CD_MAX_TIME_DELTA];
-	int nconv;
-
-	nconv = sscanf(deltaTime,"%lf %s",value,charunits);
-	if(nconv==EOF || nconv==0){
-		cdError("Error on delta time conversion, string = %s",deltaTime);
-		return 1;
-	}
-	cdTrim(charunits,CD_MAX_TIME_DELTA);
-	if(!strncmp(charunits,"sec",3) || !strcmp(charunits,"s")){
-		*unit = cdSecond;
-	}
-	else if(!strncmp(charunits,"min",3) || !strcmp(charunits,"mn")){
-		*unit = cdMinute;
-	}
-	else if(!strncmp(charunits,"hour",4) || !strcmp(charunits,"hr")){
-		*unit = cdHour;
-	}
-	else if(!strncmp(charunits,"day",3) || !strcmp(charunits,"dy")){
-		*unit = cdDay;
-	}
-	else if(!strncmp(charunits,"week",4) || !strcmp(charunits,"wk")){
-		*unit = cdWeek;
-	}
-	else if(!strncmp(charunits,"month",5) || !strcmp(charunits,"mo")){
-		*unit = cdMonth;
-	}
-	else if(!strncmp(charunits,"season",6)){
-		*unit = cdSeason;
-	}
-	else if(!strncmp(charunits,"year",4) || !strcmp(charunits,"yr")){
-		if(!(timetype & cdStandardCal)){
-			cdError("Error on delta time conversion: climatological units cannot be 'years'.");
-			return 1;
-		}
-		*unit = cdYear;
-	}
-	else {
-		cdError("Error on delta time conversion: invalid units = %s",charunits);
-		return 1;
-	}
-	return 0;
-}
-
-void
-cdChar2Comp(cdCalenType timetype, char* chartime, cdCompTime* comptime)
-{
-/* 	double hour, sec; */
-	double sec;
-	int ihr, imin, nconv;
-	long year;
-	short day;
-	short month;
-
-	comptime->year = CD_NULL_YEAR;
-	comptime->month = CD_NULL_MONTH;
-	comptime->day = CD_NULL_DAY;
-	comptime->hour = CD_NULL_HOUR;
-	
-	if(timetype & cdStandardCal){
-		nconv = sscanf(chartime,"%ld-%hd-%hd %d:%d:%lf",&year,&month,&day,&ihr,&imin,&sec);
-		if(nconv==EOF || nconv==0){
-			cdError("Error on character time conversion, string = %s\n",chartime);
-			return;
-		}
-		if(nconv >= 1){
-			comptime->year = year;
-		}
-		if(nconv >= 2){
-			comptime->month = month;
-		}
-		if(nconv >= 3){
-			comptime->day = day;
-		}
-		if(nconv >= 4){
-			if(ihr<0 || ihr>23){
-				cdError("Error on character time conversion: invalid hour = %d\n",ihr);
-				return;
-			}
-			comptime->hour = (double)ihr;
-		}
-		if(nconv >= 5){
-			if(imin<0 || imin>59){
-				cdError("Error on character time conversion: invalid minute = %d\n",imin);
-				return;
-			}
-			comptime->hour += (double)imin/60.;
-		}
-		if(nconv >= 6){
-			if(sec<0.0 || sec>60.0){
-				cdError("Error on character time conversion: invalid second = %lf\n",sec);
-				return;
-			}
-			comptime->hour += sec/3600.;
-		}
-	}
-	else{				     /* Climatological */
-		nconv = sscanf(chartime,"%hd-%hd %d:%d:%lf",&month,&day,&ihr,&imin,&sec);
-		if(nconv==EOF || nconv==0){
-			cdError("Error on character time conversion, string = %s",chartime);
-			return;
-		}
-		if(nconv >= 1){
-			comptime->month = month;
-		}
-		if(nconv >= 2){
-			comptime->day = day;
-		}
-		if(nconv >= 3){
-			if(ihr<0 || ihr>23){
-				cdError("Error on character time conversion: invalid hour = %d\n",ihr);
-				return;
-			}
-			comptime->hour = (double)ihr;
-		}
-		if(nconv >= 4){
-			if(imin<0 || imin>59){
-				cdError("Error on character time conversion: invalid minute = %d\n",imin);
-				return;
-			}
-			comptime->hour += (double)imin/60.;
-		}
-		if(nconv >= 5){
-			if(sec<0.0 || sec>60.0){
-				cdError("Error on character time conversion: invalid second = %lf\n",sec);
-				return;
-			}
-			comptime->hour += sec/3600.;
-		}
-	}
-	(void)cdValidateTime(timetype,*comptime);
-	return;
-}
-void
-cdChar2Rel(cdCalenType timetype, char* chartime, char* relunits, double* reltime)
-{
-	cdCompTime comptime;
-
-	cdChar2Comp(timetype, chartime, &comptime);
-	cdComp2Rel(timetype, comptime, relunits, reltime);
-	return;
-}
-void
-cdComp2Char(cdCalenType timetype, cdCompTime comptime, char* time)
-{
-	double dtmp, sec;
-	int ihr, imin;
-	int nskip;
-
-	if(cdValidateTime(timetype,comptime))
-		return;
-	
-	ihr = (int)comptime.hour;
-	dtmp = 60.0 * (comptime.hour - (double)ihr);
-	imin = (int)dtmp;
-	sec = 60.0 * (dtmp - (double)imin);
-
-	nskip = 0;
-	if(sec == 0.0){
-		if(imin == 0)
-			nskip = 2;
-		else
-			nskip = 1;
-	}
-
-	if(timetype & cdStandardCal){
-		if(nskip == 0)
-			sprintf(time,"%ld-%hd-%hd %d:%d:%lf",comptime.year,comptime.month,comptime.day,ihr,imin,sec);
-		else if(nskip == 1)
-			sprintf(time,"%ld-%hd-%hd %d:%d",comptime.year,comptime.month,comptime.day,ihr,imin);
-		else
-			sprintf(time,"%ld-%hd-%hd %d:0",comptime.year,comptime.month,comptime.day,ihr);
-	}
-	else {				     /* Climatological */
-		if(nskip == 0)
-			sprintf(time,"%hd-%hd %d:%d:%lf",comptime.month,comptime.day,ihr,imin,sec);
-		else if(nskip == 1)
-			sprintf(time,"%hd-%hd %d:%d",comptime.month,comptime.day,ihr,imin);
-		else
-			sprintf(time,"%hd-%hd %d:0",comptime.month,comptime.day,ihr);
-	}
-	return;
-}
-void
-cdComp2Rel(cdCalenType timetype, cdCompTime comptime, char* relunits, double* reltime)
-{
-	cdCompTime base_comptime;
-	CdDeltaTime deltime;
-	CdTime humantime;
-	CdTimeType old_timetype;
-	cdUnitTime unit;
-	double base_etm, etm, delta=0.;
-	long ndel, hoursInYear;
-	
-					     /* Parse the relunits */
-	if(cdParseRelunits(timetype, relunits, &unit, &base_comptime))
-		return;
-
-					     /* Handle mixed Julian/Gregorian calendar */
-	if (timetype == cdMixed){
-		switch(unit){
-		case cdWeek: case cdDay: case cdHour: case cdMinute: case cdSecond:
-			cdComp2RelMixed(comptime, unit, base_comptime, reltime);
-			return;
-		case cdYear: case cdSeason: case cdMonth:
-			timetype = cdStandard;
-			break;
-		case cdFraction:
-		  break;
-		}
-	}
-	
-					     /* Convert basetime to epochal */
-	humantime.year = base_comptime.year;
-	humantime.month = base_comptime.month;
-	humantime.day = base_comptime.day;
-	humantime.hour = base_comptime.hour;
-	humantime.baseYear = 1970;
-					     /* Map to old-style timetype */
-	if(cdToOldTimetype(timetype,&old_timetype))
-		return;
-	humantime.timeType = old_timetype;
-	Cdh2e(&humantime,&base_etm);
-
-					     /* Map end time to epochal */
-	humantime.year = comptime.year;
-	humantime.month = comptime.month;
-	humantime.day = comptime.day;
-	humantime.hour = comptime.hour;
-	Cdh2e(&humantime,&etm);
-					     /* Calculate relative time value for months or hours */
-	deltime.count = 1;
-	deltime.units = (CdTimeUnit)unit;
-	switch(unit){
-	  case cdWeek: case cdDay: case cdHour: case cdMinute: case cdSecond:
-		delta = etm - base_etm;
-		if(!(timetype & cdStandardCal)){	/* Climatological time */
-			hoursInYear = (timetype & cd365Days) ? 8760. : (timetype & cdHasLeap) ? 8784. : 8640.;
-					     /* Normalize delta to interval [0,hoursInYear) */
-			if(delta < 0.0 || delta >= hoursInYear)
-				delta -= hoursInYear * floor(delta/hoursInYear);
-		}
-		break;
-	  case cdYear: case cdSeason: case cdMonth:
-		CdDivDelTime(base_etm, etm, deltime, old_timetype, 1970, &ndel);
-		break;
-	  case cdFraction:
-	        break;
-	}
-
-					     /* Convert to output units */
-	switch(unit){
-	  case cdSecond:
-		*reltime = 3600.0 * delta;
-		break;
-	  case cdMinute:
-		*reltime = 60.0 * delta;
-		break;
-	  case cdHour:
-		*reltime = delta;
-		break;
-	  case cdDay:
-		*reltime = delta/24.0;
-		break;
-	  case cdWeek:
-		*reltime = delta/168.0;
-		break;
-	  case cdMonth: case cdSeason: case cdYear: /* Already in correct units */
-		if(timetype & cdStandardCal)
-			*reltime = (base_etm <= etm) ? (double)ndel : (double)(-ndel);
-		else			     /* Climatological time is already normalized*/
-			*reltime = (double)ndel;
-		break;
-	  case cdFraction:
-	        break;
-	}
-
-	return;
-}
-void
-cdRel2Char(cdCalenType timetype, char* relunits, double reltime, char* chartime)
-{
-	cdCompTime comptime;
-
-	cdRel2Comp(timetype, relunits, reltime, &comptime);
-	cdComp2Char(timetype, comptime, chartime);
-
-	return;
-}
-void
-cdRel2Comp(cdCalenType timetype, char* relunits, double reltime, cdCompTime* comptime)
-{
-	CdDeltaTime deltime;
-	CdTime humantime;
-	CdTimeType old_timetype;
-	cdCompTime base_comptime;
-	cdUnitTime unit, baseunits;
-	double base_etm, result_etm;
-/* 	double delta, hour_fraction; */
-	double delta=0.;
-	long idelta=0;
-
-					     /* Parse the relunits */
-	if(cdParseRelunits(timetype, relunits, &unit, &base_comptime))
-		return;
-
-	if (timetype == cdMixed){
-		switch(unit){
-		case cdWeek: case cdDay: case cdHour: case cdMinute: case cdSecond:
-			cdRel2CompMixed(reltime, unit, base_comptime, comptime);
-			return;
-		case cdYear: case cdSeason: case cdMonth:
-			timetype = cdStandard;
-			break;
-		case cdFraction:
-		  break;
-		}
-	}
-
-	switch(unit){
-	  case cdSecond:
-		delta = reltime/3600.0;
-		baseunits = cdHour;
-		break;
-	  case cdMinute:
-		delta = reltime/60.0;
-		baseunits = cdHour;
-		break;
-	  case cdHour:
-		delta = reltime;
-		baseunits = cdHour;
-		break;
-	  case cdDay:
-		delta = 24.0 * reltime;
-		baseunits = cdHour;
-		break;
-	  case cdWeek:
-		delta = 168.0 * reltime;
-		baseunits = cdHour;
-		break;
-	  case cdMonth:
-		idelta = (long)(reltime + (reltime<0 ? -1.e-10 : 1.e-10));
-		baseunits = cdMonth;
-		break;
-	  case cdSeason:
-		idelta = (long)(3.0 * reltime + (reltime<0 ? -1.e-10 : 1.e-10));
-		baseunits = cdMonth;
-		break;
-	  case cdYear:
-		idelta = (long)(12 * reltime + (reltime<0 ? -1.e-10 : 1.e-10));
-		baseunits = cdMonth;
-		break;
-       	  case cdFraction:
-	        break;
-	}
-
-	deltime.count = 1;
-	deltime.units = (CdTimeUnit)baseunits;
-
-	humantime.year = base_comptime.year;
-	humantime.month = base_comptime.month;
-	humantime.day = base_comptime.day;
-	humantime.hour = base_comptime.hour;
-	humantime.baseYear = 1970;
-					     /* Map to old-style timetype */
-	if(cdToOldTimetype(timetype,&old_timetype))
-		return;
-	humantime.timeType = old_timetype;
-
-	Cdh2e(&humantime,&base_etm);
-					     /* If months, seasons, or years, */
-	if(baseunits == cdMonth){
-
-					     /* Calculate new epochal time from integer months. */
-					     /* Convert back to human, then comptime. */
-					     /* For zero reltime, just return the basetime*/
-		if(reltime != 0.0){
-			CdAddDelTime(base_etm,idelta,deltime,old_timetype,1970,&result_etm);
-			Cde2h(result_etm, old_timetype, 1970, &humantime);
-		}
-	}
-					     /* Calculate new epochal time. */
-					     /* Convert back to human, then comptime. */
-	else{
-		Cde2h(base_etm+delta, old_timetype, 1970, &humantime);
-		
-	}
-	comptime->year = humantime.year;
-	comptime->month = humantime.month;
-	comptime->day = humantime.day;
-	comptime->hour = humantime.hour;
-
-	return;
-}
-void
-cdRel2Rel(cdCalenType timetype, char* relunits, double reltime, char* outunits, double* outtime)
-{
-	cdCompTime comptime;
-
-	cdRel2Comp(timetype, relunits, reltime, &comptime);
-	cdComp2Rel(timetype, comptime, outunits, outtime);
-	return;
-}
-
-/* ----------------------------------------------------------------------------------------------*/
-/* Absolute time routines */
-
-					     /* Parse absolute time units, returning */
-					     /* the unit and format components. */
-					     /* For example, "day as %Y%m%d.f" returns */
-					     /* a unit of cdDay, and components [cdYear,cdMonth, */
-					     /* cdDay,cdFraction]. ncompon is the number of components. */
-					     /* Returns 1 on success, 0 on error. */
-int
-cdParseAbsunits(char *absunits, cdUnitTime *unit, int *ncompon, cdUnitTime compon[]){
-	int nconv;
-	char charunits[CD_MAX_ABSUNITS];
-	char format[CD_MAX_ABSUNITS];
-	char *c;
-/* 	int i, iform; */
-	int iform;
-
-	nconv = sscanf(absunits,"%s as %s",charunits,format);
-	if(nconv==EOF || nconv<2){
-		cdError("Error on absolute units conversion, string = %s\n",absunits);
-		return 1;
-	}
-	cdTrim(charunits,CD_MAX_ABSUNITS);
-	if(!strncmp(charunits,"hour",4)){
-		*unit = cdHour;
-	}
-	else if(!strncmp(charunits,"day",3)){
-		*unit = cdDay;
-	}
-	else if(!strncmp(charunits,"calendar_month",14)){
-		*unit = cdMonth;
-	}
-	else if(!strncmp(charunits,"calendar_year",13)){
-		*unit = cdYear;
-	}
-	else if(!strncmp(charunits,"min",3)){
-		*unit = cdMinute;
-	}
-	else if(!strncmp(charunits,"sec",3)){
-		*unit = cdSecond;
-	}
-	else {
-		cdError("Error on absolute units conversion: invalid units = %s\n",charunits);
-		return 1;
-	}
-
-					     /* Parse the format */
-	for(c=format, iform=0; *c && iform<CD_MAX_ABS_COMPON; c++){
-		if(*c=='.')
-			continue;
-		else if(*c=='%'){
-			c++;
-			switch(*c){
-			case 'Y':
-				compon[iform++]=cdYear;
-				break;
-			case 'm':
-				compon[iform++]=cdMonth;
-				break;
-			case 'd':
-				compon[iform++]=cdDay;
-				break;
-			case 'H':
-				compon[iform++]=cdHour;
-				break;
-			case 'M':
-				compon[iform++]=cdMinute;
-				break;
-			case 'S':
-				compon[iform++]=cdSecond;
-				break;
-			case 'f':
-				compon[iform++]=cdFraction;
-				break;
-			default:
-				cdError("Error on absolute units conversion: invalid format = %s\n",format);
-				return 1;
-				
-			}
-		}
-		else {
-			cdError("Error on absolute units conversion: invalid format = %s\n",format);
-			return 1;
-		}
-	}
-	*ncompon=iform;
-	return 0;
-}
-
-					     /* Convert absolute time to component time. */
-					     /* frac is the fractional part, or 0.0 if */
-					     /* abstimetype is cdInt. */
-					     /* */
-					     /* Note: for formats which incorporate the */
-					     /* diurnal phase, the fractional part is */
-					     /* incorporated into comptime->hour. */
-					     /* Return 0 on success, 1 on failure. */
-int 
-cdAbs2Comp(char *absunits, void *abstime, cdType abstimetype, cdCompTime *comptime, double *frac){
-	cdUnitTime unit;
-	int ncompon;
-	cdUnitTime compon[CD_MAX_ABS_COMPON];
-	double dabstime, fraction;
-	long iabstime;
-	int iform;
-
-					     /* Parse the absunits */
-	if (cdParseAbsunits(absunits, &unit, &ncompon, compon)==1)
-		return 1;
-
-					     /* Break the time into integer and fractional parts */
-	switch(abstimetype){
-	case cdFloat:
-		dabstime = (double)(*(float *)abstime);
-		iabstime = (long)dabstime;
-		fraction = dabstime-(double)iabstime;
-		break;
-	case cdDouble:
-		dabstime = *(double *)abstime;
-		iabstime = (long)dabstime;
-		fraction = dabstime-(double)iabstime;
-		break;
-	case cdInt:
-		iabstime = (long)(*(int *)abstime);
-		dabstime = (double)iabstime;
-		fraction = 0.0;
-		break;
-	case cdLong:
-		iabstime = *(long *)abstime;
-		dabstime = (double)iabstime;
-		fraction = 0.0;
-		break;
-	default:
-		cdError("Error converting absolute to component time: invalid datatype = %d\n",abstimetype);
-		return 1;
-	}
-
-					     /* Extract the components */
-	comptime->year = 0;
-	comptime->month = comptime->day = 1;
-	comptime->hour = 0.0;
-	for(iform=ncompon-1; iform>=0; iform--){
-		switch(compon[iform]){
-		case cdYear:
-			comptime->year = iabstime%10000;
-			iabstime /= 10000;
-			break;
-		case cdMonth:
-			comptime->month = iabstime%100;
-			iabstime /= 100;
-			break;
-		case cdDay:
-			comptime->day = iabstime%100;
-			iabstime /= 100;
-			break;
-		case cdHour:
-			comptime->hour = dabstime;
-			break;
-		case cdMinute:
-			comptime->hour = dabstime/60.0;
-			break;
-		case cdSecond:
-			comptime->hour = dabstime/3600.0;
-			break;
-		case cdFraction:
-			if (unit==cdDay)
-				comptime->hour = 24.0*fraction;
-			break;
-		case cdWeek: case cdSeason:
-		  break;
-		}
-	}
-	*frac = fraction;
-	return 0;
-}
-
-					     /* Convert component to absolute time. */
-					     /* absunits is of the form "<unit> as <format>". */
-					     /* abstimetype is either cdFloat, cdDouble, or cdInt. */
-					     /* frac, the fractional part, is only used */
-					     /* if unit is cdMonth or cdYear, and */
-					     /* abstimetype is cdFloat or cdDouble. */
-					     /* Otherwise, it is derived from comptime.hour. */
-					     /* abstime is the absolute time returned. */
-					     /* The function returns 0 on success, 1 on failure. */
-
-int
-cdComp2Abs(cdCompTime comptime, char *absunits, cdType abstimetype, double frac, void *abstime){
-	cdUnitTime unit;
-	int ncompon;
-	cdUnitTime compon[CD_MAX_ABS_COMPON];
-/* 	double dabstime, fraction; */
-	double dabstime;
-	long iabstime;
-	int iform;
-
-					     /* Parse the absunits */
-	if (cdParseAbsunits(absunits, &unit, &ncompon, compon)==1)
-		return 1;
-
-					     /* Set the absolute time */
-	iabstime = 0;
-	dabstime = 0.0;
-	for(iform=0; iform<ncompon; iform++){
-		switch(compon[iform]){
-		case cdYear:
-			iabstime = iabstime*10000+comptime.year;
-			dabstime = (double)iabstime;
-			break;
-		case cdMonth:
-			iabstime = iabstime*100+comptime.month;
-			dabstime = (double)iabstime;
-			break;
-		case cdDay:
-			iabstime = iabstime*100+comptime.day;
-			dabstime = (double)iabstime;
-			break;
-		case cdHour:
-			dabstime = comptime.hour;
-			iabstime = (long)dabstime;
-			break;
-		case cdMinute:
-			dabstime = 60.0*comptime.hour;
-			iabstime = (long)dabstime;
-			break;
-		case cdSecond:
-			dabstime = 3600.0*comptime.hour;
-			iabstime = (long)dabstime;
-			break;
-		case cdFraction:
-			if (unit==cdDay)
-				dabstime += comptime.hour/24.0;
-			else if(unit==cdYear)
-				dabstime += frac;
-			else if(unit==cdMonth)
-				dabstime += frac;
-			break;
-		case cdWeek: case cdSeason:
-		  break;
-		}
-	}
-
-					     /* Cast to the specified datatype */
-	switch(abstimetype){
-	case cdFloat:
-		*(float *)abstime = (float)dabstime;
-		break;
-	case cdDouble:
-		*(double *)abstime = dabstime;
-		break;
-	case cdInt:
-		*(int *)abstime = (int)iabstime;
-		break;
-	case cdLong:
-		*(long *)abstime = iabstime;
-		break;
-	default:
-		cdError("Error converting component to absolute time: invalid datatype = %d\n",abstimetype);
-		return 1;
-	}
-	return 0;
-}
-
-					     /* Return 1 if the time and units are a valid relative */
-					     /* time, 0 if not. If comptime is non-null, return the */
-					     /* components */
-int
-cdDecodeRelativeTime(cdCalenType timetype, char* units, double time, cdCompTime* comptime){
-	int saveOpts, saveOccurred, err;
-	cdCompTime ctime, *pctime;
-
-	pctime = (comptime ? comptime : &ctime);
-
-	saveOpts = cuErrOpts;
-	saveOccurred = cuErrorOccurred;
-	cuErrOpts = 0;			     /* Turn off error reporting */
-
-					     /* If it's absolute, it's not relative */
-	if (cdDecodeAbsoluteTime(units, &time, cdDouble, 0, 0)){
-		cuErrOpts = saveOpts;
-		return 0;
-	}
-	cuErrorOccurred = 0;
-	cdRel2Comp(timetype, units, time, pctime);
-
-	err = (cuErrorOccurred==0);
-	cuErrOpts = saveOpts;
-	cuErrorOccurred = saveOccurred;
-	return err;
-}
-
-					     /* Return 1 if the time and units are a valid absolute */
-					     /* time, 0 if not.*/
-int
-cdDecodeAbsoluteTime(char* units, void* time, cdType abstimetype, cdCompTime* comptime, double* fraction){
-	int saveOpts, err;
-	cdCompTime ctime, *pctime;
-	double frac, *pfrac;
-
-	pctime = (comptime ? comptime : &ctime);
-	pfrac = (fraction ? fraction : &frac);
-
-	saveOpts = cuErrOpts;
-	cuErrOpts = 0;			     /* Turn off error reporting */
-	err = cdAbs2Comp(units, time, abstimetype, pctime, pfrac);
-	
-	cuErrOpts = saveOpts;
-	return (err==0);
-}
-/* ----------------------------------------------------------------------------------------------*/
-/* Mixed Julian/Gregorian calendar routines */
-
-					     /* Return value expressed in hours. */
-double
-cdToHours(double value, cdUnitTime unit){
-
-/* 	double result; */
-  double result=0.; /*initialize to get rid of warning */
-
-	switch(unit){
-	case cdSecond:
-		result = value/3600.0;
-		break;
-	case cdMinute:
-		result = value/60.0;
-		break;
-	case cdHour:
-		result = value;
-		break;
-	case cdDay:
-		result = 24.0 * value;
-		break;
-	case cdWeek:
-		result = 168.0 * value;
-		break;
-	case cdMonth: case cdSeason: case cdYear: case cdFraction:
-	  break;
-	}
-	return result;
-}
-					     /* Value is in hours. Translate to units. */
-double cdFromHours(double value, cdUnitTime unit){
-/* 	double result; */
-  double result=0.; /*initialize to get rid of warning */
-
-	switch(unit){
-	case cdSecond:
-		result = value * 3600.0;
-		break;
-	case cdMinute:
-		result = value * 60.0;
-		break;
-	case cdHour:
-		result = value;
-		break;
-	case cdDay:
-		result = value/24.0;
-		break;
-	case cdWeek:
-		result = value/168.0;
-		break;
-	case cdMonth: case cdSeason: case cdYear: case cdFraction:
-	  break;
-	}
-	return result;
-}
-
-					     /* Add (value,unit) to comptime. */
-					     /* value is in hours. */
-					     /* calendar is anything but cdMixed. */
-void
-cdCompAdd(cdCompTime comptime, double value, cdCalenType calendar, cdCompTime *result){
-
-	double reltime;
-
-	cdComp2Rel(calendar, comptime, "hours", &reltime);
-	reltime += value;
-	cdRel2Comp(calendar, "hours", reltime, result);
-	return;
-}
-
-					     /* ca - cb in Julian calendar */
-					     /* Result is in hours. */
-double
-cdDiffJulian(cdCompTime ca, cdCompTime cb){
-
-	double rela, relb;
-
-	cdComp2Rel(cdJulian, ca, "hours", &rela);
-	cdComp2Rel(cdJulian, cb, "hours", &relb);
-	return (rela - relb);
-}
-
-					     /* ca - cb in Gregorian calendar */
-					     /* Result is in hours. */
-double
-cdDiffGregorian(cdCompTime ca, cdCompTime cb){
-
-	double rela, relb;
-
-	cdComp2Rel(cdStandard, ca, "hours", &rela);
-	cdComp2Rel(cdStandard, cb, "hours", &relb);
-	return (rela - relb);
-}
-
-					     /* Return -1, 0, 1 as ca is less than, equal to, */
-					     /* or greater than cb, respectively. */
-int cdCompCompare(cdCompTime ca, cdCompTime cb){
-
-	int test;
-
-	if ((test = VALCMP(ca.year, cb.year)))
-		return test;
-	else if ((test = VALCMP(ca.month, cb.month)))
-		return test;
-	else if ((test = VALCMP(ca.day, cb.day)))
-		return test;
-	else
-		return (test = VALCMP(ca.hour, cb.hour));
-}
-
-					     /* ca - cb in mixed Julian/Gregorian calendar. */
-					     /* Result is in hours. */
-double
-cdDiffMixed(cdCompTime ca, cdCompTime cb){
-
-	static cdCompTime ZA = {1582, 10, 5, 0.0};
-	static cdCompTime ZB = {1582, 10, 15, 0.0};
-	double result;
-
-	if (cdCompCompare(cb, ZB) == -1){
-		if (cdCompCompare(ca, ZB) == -1) {
-			result = cdDiffJulian(ca, cb);
-		}
-		else {
-			result = cdDiffGregorian(ca, ZB) + cdDiffJulian(ZA, cb);
-		}
-	}
-	else {
-		if (cdCompCompare(ca, ZB) == -1){
-			result = cdDiffJulian(ca, ZA) + cdDiffGregorian(ZB, cb);
-		}
-		else {
-			result = cdDiffGregorian(ca, cb);
-		}
-	}
-	return result;
-}
-
-					     /* Add value in hours to ct, */
-					     /* in the mixed Julian/Gregorian calendar. */
-void
-cdCompAddMixed(cdCompTime ct, double value, cdCompTime *result){
-
-	static cdCompTime ZA = {1582, 10, 5, 0.0};
-	static cdCompTime ZB = {1582, 10, 15, 0.0};
-	double xj, xg;
-
-	if (cdCompCompare(ct, ZB) == -1){
-		xj = cdDiffJulian(ZA, ct);
-		if (value <= xj){
-			cdCompAdd(ct, value, cdJulian, result);
-		}
-		else {
-			cdCompAdd(ZB, value-xj, cdStandard, result);
-		}
-	}
-	else {
-		xg = cdDiffGregorian(ZB, ct);
-		if (value > xg){
-			cdCompAdd(ct, value, cdStandard, result);
-		}
-		else {
-			cdCompAdd(ZA, value-xg, cdJulian, result);
-		}
-	}
-	return;
-}
-
-					     /* Convert ct to relunits (unit, basetime) */
-					     /* in the mixed Julian/Gregorian calendar. */
-					     /* unit is anything but year, season, month. unit and basetime are */
-					     /* from the parsed relunits. Return result in reltime. */
-void
-cdComp2RelMixed(cdCompTime ct, cdUnitTime unit, cdCompTime basetime, double *reltime){
-
-	double hourdiff;
-
-	hourdiff = cdDiffMixed(ct, basetime);
-	*reltime = cdFromHours(hourdiff, unit);
-	return;
-}
-
-					     /* Convert relative time (reltime, unit, basetime) to comptime in the */
-					     /* mixed Julian/Gregorian calendar. unit is anything but */
-					     /* year, season, month. unit and basetime are */
-					     /* from the parsed relunits. Return result in comptime. */
-void
-cdRel2CompMixed(double reltime, cdUnitTime unit, cdCompTime basetime, cdCompTime *comptime){
-
-	reltime = cdToHours(reltime, unit);
-	cdCompAddMixed(basetime, reltime, comptime);
-	return;
-}
diff --git a/Src/cdTime/cdUtil.c b/Src/cdTime/cdUtil.c
deleted file mode 100644
index 903309a..0000000
--- a/Src/cdTime/cdUtil.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/* -*-Mode: C;-*-
- * Module:      CDMS utility functions
- *
- * Copyright:	1996, Regents of the University of California
- *		This software may not be distributed to others without
- *		permission of the author.
- *
- * Author:      Bob Drach, Lawrence Livermore National Laboratory
- *              drach at llnl.gov
- *
- * Version:     $Id$
- *
- * Revision History:
- *
- * $Log: cdUtil.c,v $
- * Revision 1.1.1.1  1997/12/09 18:57:40  drach
- * Copied from cirrus
- *
- * Revision 1.1  1997/10/24  18:28:26  drach
- * - Initial repository version
- *
- *
- */
-
-#include <stdarg.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include "cdmsint.h"
-
-int cuErrorOccurred = 0;
-void cdError(char *fmt, ...){
-	va_list args;
-	
-	cuErrorOccurred = 1;
-	if(cuErrOpts & CU_VERBOSE){
-		va_start(args,fmt);
-		fprintf(stderr, "CDMS error: ");
-		vfprintf(stderr, fmt, args);
-		fprintf(stderr, "\n");
-		va_end(args);
-	}
-	if(cuErrOpts & CU_FATAL)
-		exit(1);
-	return;
-}
-
diff --git a/Src/cdTime/fcdTimeConv.c b/Src/cdTime/fcdTimeConv.c
deleted file mode 100644
index 9337a96..0000000
--- a/Src/cdTime/fcdTimeConv.c
+++ /dev/null
@@ -1,118 +0,0 @@
-/* -*-Mode: C;-*-
- * Module:      CDMS Fortran time conversion and arithmetic routines
- *
- * Copyright:	1996, Regents of the University of California
- *		This software may not be distributed to others without
- *		permission of the author.
- *
- * Author:      Bob Drach, Lawrence Livermore National Laboratory
- *              drach at llnl.gov
- *
- * Version:     $Id$
- *
- * Revision History:
- *
- * $Log: fcdTimeConv.c,v $
- * Revision 1.2  1996/09/09  18:28:34  drach
- * - Cleaned up minor compilation warnings
- *
- * Revision 1.1  1996/04/04  19:02:28  drach
- * - Initial version
- *
- *
- */
-
-#include "cdmsint.h"
-#include "cfortran.h"
-
-/* Map C comptime struct to Fortran args
- */
-
-#ifdef CRAY
-void cdfChar2Comp(int timetype, char* chartime, int* year, int* month, int* day, float* hour){
-#else
-void cdfChar2Comp(int timetype, char* chartime, int* year, int* month, int* day, double* hour){
-#endif
-	cdCompTime comptime;
-
-	cdChar2Comp(timetype, chartime, &comptime);
-	*year = comptime.year;
-	*month = comptime.month;
-	*day = comptime.day;
-	*hour = comptime.hour;
-
-	return;
-}
-
-#ifdef CRAY
-void cdfComp2Char(int timetype, int year, int month, int day, float hour, char* time){
-#else
-void cdfComp2Char(int timetype, int year, int month, int day, double hour, char* time){
-#endif
-	cdCompTime comptime;
-
-	comptime.year = year;
-	comptime.month = month;
-	comptime.day = day;
-	comptime.hour = hour;
-	cdComp2Char(timetype, comptime, time);
-
-	return;
-}
-
-#ifdef CRAY
-void cdfComp2Rel(int timetype, int year, int month, int day, double hour, char* relunits, float* reltime){
-	double dreltime;
-#else
-void cdfComp2Rel(int timetype, int year, int month, int day, double hour, char* relunits, double* reltime){
-#endif
-	cdCompTime comptime;
-
-	comptime.year = year;
-	comptime.month = month;
-	comptime.day = day;
-	comptime.hour = hour;
-#ifdef CRAY
-	cdComp2Rel(timetype, comptime, relunits, &dreltime);
-	*reltime=(float)dreltime;
-#else
-	cdComp2Rel(timetype, comptime, relunits, reltime);
-#endif
-
-	return;
-}
-
-#ifdef CRAY
-void cdfRel2Comp(int timetype, char* relunits, float reltime, int* year, int* month, int* day, double* hour){
-#else
-void cdfRel2Comp(int timetype, char* relunits, double reltime, int* year, int* month, int* day, double* hour){
-#endif
-	cdCompTime comptime;
-
-	cdRel2Comp(timetype, relunits, reltime, &comptime);
-	
-	*year = comptime.year;
-	*month = comptime.month;
-	*day = comptime.day;
-	*hour = comptime.hour;
-
-	return;
-}
-
-#ifdef CRAY
-FCALLSCSUB6(cdfChar2Comp,FCDCHAR2COMP,fcdchar2comp,INT,STRING,PINT,PINT,PINT,PFLOAT)
-FCALLSCSUB4(cdChar2Rel,FCDCHAR2REL,fcdchar2rel,INT,STRING,STRING,PFLOAT)
-FCALLSCSUB6(cdfComp2Char,FCDCOMP2CHAR,fcdcomp2char,INT,INT,INT,INT,FLOAT,PSTRING)
-FCALLSCSUB7(cdfComp2Rel,FCDCOMP2REL,fcdcomp2rel,INT,INT,INT,INT,FLOAT,STRING,PFLOAT)
-FCALLSCSUB4(cdRel2Char,FCDREL2CHAR,fcdrel2char,INT,STRING,FLOAT,PSTRING)
-FCALLSCSUB7(cdfRel2Comp,FCDREL2COMP,fcdrel2comp,INT,STRING,FLOAT,PINT,PINT,PINT,PFLOAT)
-FCALLSCSUB5(cdRel2Rel,FCDREL2REL,fcdrel2rel,INT,STRING,FLOAT,STRING,PFLOAT)
-#else
-FCALLSCSUB6(cdfChar2Comp,FCDCHAR2COMP,fcdchar2comp,INT,STRING,PINT,PINT,PINT,PDOUBLE)
-FCALLSCSUB4(cdChar2Rel,FCDCHAR2REL,fcdchar2rel,INT,STRING,STRING,PDOUBLE)
-FCALLSCSUB6(cdfComp2Char,FCDCOMP2CHAR,fcdcomp2char,INT,INT,INT,INT,DOUBLE,PSTRING)
-FCALLSCSUB7(cdfComp2Rel,FCDCOMP2REL,fcdcomp2rel,INT,INT,INT,INT,DOUBLE,STRING,PDOUBLE)
-FCALLSCSUB4(cdRel2Char,FCDREL2CHAR,fcdrel2char,INT,STRING,DOUBLE,PSTRING)
-FCALLSCSUB7(cdfRel2Comp,FCDREL2COMP,fcdrel2comp,INT,STRING,DOUBLE,PINT,PINT,PINT,PDOUBLE)
-FCALLSCSUB5(cdRel2Rel,FCDREL2REL,fcdrel2rel,INT,STRING,DOUBLE,STRING,PDOUBLE)
-#endif
diff --git a/Src/cdTime/reg_trfm.c b/Src/cdTime/reg_trfm.c
deleted file mode 100644
index e7a5cee..0000000
--- a/Src/cdTime/reg_trfm.c
+++ /dev/null
@@ -1,962 +0,0 @@
-
-/*
- * set of routines to transform between x-y and lat-lon on registered grids
- */
-#include <stdio.h> 
-#include <math.h> 
-#include <isdb.h> 
-#include "gaussLats.h"
-
-#define LOGE10   2.302585093		/* natural log of 10 */
-#define ERTH_RAD 6371.229		/* mean earth radius (km) */
-#define PI180    0.017453293		/*  pi / 180.  */ 
-#define MIN_LAT  -90.
-#define MAX_LAT   90.
-#define MIN_LON  -180.
-#define MAX_LON   180.
-
-/***************************************************************/
-/*
- * transform from x, y coordinates within a registered grid to the index
- */
-void xy_index(geom, ix, iy, index, status)
-REG_GEOM *geom;			/* registered geometry structure from isdb.h */	
-long	 *ix;			/* column number, left column is 1 */
-long	 *iy;			/* row number, top row is 1 */
-long	 *index;		/* index within grid */
-int	 *status;		/* return status */
-{
-
-/*  Check ix is within 1, nx */
-    if ((*ix < 1) || (*ix > geom->nx)) {
-	*status = -1;
-	return;
-    }
-
-/*  Check iy is within 1, ny */
-    if ((*iy < 1) || (*iy > geom->ny)) {
-	*status = -1;
-	return;
-    }
-
-/*  Compute index from ix, iy depending on storage order of points in grid */
-/*  Next portion of code can be speeded up */
-    if (strcmp(geom->stor_dsc, "+x in -y") == 0) {
-	*index = (*iy - 1) * geom->nx + *ix;
-
-    } else if (strcmp(geom->stor_dsc, "+x in +y") == 0) {
-	*index = (geom->ny - *iy) * geom->nx + *ix; 
-
-    } else if (strcmp(geom->stor_dsc, "-y in +x") == 0) {
-	*index = (*ix - 1) * geom->ny + *iy;
-
-    } else if (strcmp(geom->stor_dsc, "+y in +x") == 0) {
-	*index = (*ix - 1) * geom->ny + geom->ny - *iy + 1;
-
-    } else {
-	fprintf(stderr, "Error in xy_index;  stor_dsc: %s not supported\n",
-		geom->stor_dsc);
-	*status = -1;
-	return;
-    }
-    *status = 0;
-    return;
-
-}
-
-/***************************************************************/
-/*
- * transform from the index within a registered grid to x, y coordinates 
- */
-void index_xy(geom, index, ix, iy, status)
-REG_GEOM *geom;			/* registered geometry structure from isdb.h */	
-long	 *index;		/* index within grid */
-long	 *ix;			/* column number, left column is 1 */
-long	 *iy;			/* row number, top row is 1 */
-int	 *status;		/* return status */
-{
-
-/*  Check index is within 1, nx*ny */
-    if ((*index < 1) || (*index > geom->nx * geom->ny)) {
-	fprintf(stderr, "Error in index_xy;  index: %d  nx*ny: %d\n",
-		*index, geom->nx * geom->ny);
-	*status = -1;
-	return;
-    }
-
-/*  Compute ix, iy from index depending on storage order of points in grid */
-/*  Next portion of code can be speeded up */
-    if (strcmp(geom->stor_dsc, "+x in -y") == 0) {
-	*iy = (*index + (geom->nx - 1)) / geom->nx; 
-	*ix = *index - (*iy - 1) * geom->nx;
-
-    } else if (strcmp(geom->stor_dsc, "+x in +y") == 0) {
-	*iy = (geom->nx * geom->ny - *index + geom->nx) / geom->nx; 
-	*ix = *index - (geom->ny - *iy) * geom->nx;
-
-    } else if (strcmp(geom->stor_dsc, "-y in +x") == 0) {
-	*ix = (*index - 1) / geom->ny + 1; 
-	*iy = *index - (*ix - 1) * geom->ny;
-
-    } else if (strcmp(geom->stor_dsc, "+y in +x") == 0) {
-	*ix = (*index - 1) / geom->ny + 1; 
-	*iy = *ix * geom->ny - *index + 1;
-
-    } else {
-	fprintf(stderr, "Error in index_xy;  stor_dsc: %s not supported\n",
-		geom->stor_dsc);
-	*status = -1;
-	return;
-    }
-    *status = 0;
-    return;
-
-}
-
-/***************************************************************/
-/*
- * transform from latitude and longitude to x, y coordinates within 
- * a registered grid
- */
-void latlon_xy(geom, lat, lon, x, y, status)
-REG_GEOM *geom;			/* registered geometry structure from isdb.h */	
-double	 *lat;			/* latitude in degrees */
-double	 *lon;			/* longitude in degrees */
-double	 *x;			/* x coord in units of columns, left col is 1 */
-double	 *y;			/* y coord in units of rows, top row is 1 */
-int	 *status;		/* return status */
-{
-    extern void CdLookup(double *, long, double, long *);
-    double temp1, temp2, temp3, temp4, temp5, *tempp;	/* temporary variables */
-    double sign;		/* temporary variable containing sign */
-    double diff_lon;		/* longitude difference holder */
-    long len,k;
-
-/*  Check if latitude is within limits */
-    if ((*lat < MIN_LAT) || (*lat > MAX_LAT)) { 
-	fprintf(stderr, "Error in latlon_xy;  lat: %lf  not in  %f, %f\n",
-		*lat, MIN_LAT, MAX_LAT);
-	*status = -1;
-	return;
-    }
-
-/*  Check if longitude is within limits */
-    if ((*lon < MIN_LON) || (*lon > MAX_LON)) { 
-	fprintf(stderr, "Error in latlon_xy;  lon: %lf  not in  %f, %f\n",
-		*lon, MIN_LON, MAX_LON);
-	*status = -1;
-	return;
-    }
-
-/*  
- *  Compute x, y from lat, lon depending on projection 
- */
-    if (strcmp(geom->prjn_name, "gaussian") == 0) {
-	diff_lon  = *lon - geom->lon;
-	*x    	  = diff_lon / geom->parm_2 + (double) geom->orig_ix;
-
-	    /*  	Take care of longitude wrap-around */
-
-	if (*x < 0.) *x += (double) geom->nx;
-	if (*x > (double) geom->nx) *x -= (double) geom->nx;
-		
-	switch (geom->ny){
-	  case T21_LEN:
-		tempp = t21Lats;
-		len = T21_LEN;
-		break;
-	  case R15_LEN:
-		tempp = r15Lats;
-		len = R15_LEN;
-		break;
-	  case T32_LEN:
-		tempp = t32Lats;
-		len = T32_LEN;
-		break;
-	  case R21_LEN:
-		tempp = r21Lats;
-		len = R21_LEN;
-		break;
-	  case T42_LEN:
-		tempp = t42Lats;
-		len = T42_LEN;
-		break;
-	  case R31_LEN:
-		tempp = r31Lats;
-		len = R31_LEN;
-		break;
-	  case T63_LEN:
-		tempp = t63Lats;
-		len = T63_LEN;
-		break;
-	  case R40_LEN:
-		tempp = r40Lats;
-		len = R40_LEN;
-		break;
-	  case T106_LEN:
-		tempp = t106Lats;
-		len = T106_LEN;
-		break;
-	  default:
-		  fprintf(stderr, "Error in latlon_xy; no Gaussian latitude of length %d\n",
-			  geom->ny);
-		  *status = -1;
-		  return;
-	};
-				/* Lookup latitude; vector include poles */
-	CdLookup(tempp,len+2,*lat,&k);
-	if(k == -1)
-		*y = 0.;
-	else if (k == (len+1))
-		*y = (double)(len+1);
-	else
-		*y = (double) k + (*lat - (*(tempp+k)))/((*(tempp+k+1)) - (*(tempp+k)));
-    }
-				/* Cylindrical equal-area, e.g., LMD grid */
-				/* Note: returns 0.5 <= y <= geom->ny+0.5 */
-    else if (strcmp(geom->prjn_name, "cylindrical_eq_area") == 0) {
-	diff_lon  = *lon - geom->lon;
-	*x    	  = diff_lon / geom->parm_2 + (double) geom->orig_ix;
-
-	    /*  	Take care of longitude wrap-around */
-
-	if (*x < 0.) *x += (double) geom->nx;
-	if (*x > (double) geom->nx) *x -= (double) geom->nx;
-
-	*y = 0.5 * (geom->ny * (1.0 - sin(PI180*(*lat))) + 1.0);
-    }
-    else if (strcmp(geom->prjn_name, "spherical") == 0) {
-	diff_lon  = *lon - geom->lon;
-	*x    	  = diff_lon / geom->parm_2 + (double) geom->orig_ix;
-
-/*  	Take care of longitude wrap-around */
-	if ((*x < 1.) || (*x > (double) geom->nx)) {
-	    temp1 = (diff_lon - 360.) / geom->parm_2 + (double) geom->orig_ix;
-	    if (fabs((double)(geom->orig_ix + 1) / 2. - temp1) < 
-		fabs((double)(geom->orig_ix + 1) / 2. - *x)) *x = temp1;
-	    temp1 = (diff_lon + 360.) / geom->parm_2 + (double) geom->orig_ix;
-	    if (fabs((double)(geom->orig_ix + 1) / 2. - temp1) <
-		fabs((double)(geom->orig_ix + 1) / 2. - *x)) *x = temp1;
-	}
-
-	*y    = (geom->lat - *lat) / geom->parm_1 + (double) geom->orig_iy;
-
-    } else if (strcmp(geom->prjn_name, "mercator") == 0) {
-/*      Mercator requires: 0 <= parm_1 < 90;
- * 			   other standard latitude = -parm_1
- *			   top of grid always toward N */ 
-/*	Check lat is not equal to 90. or -90. (singular points) */
-    	if ((*lat == MIN_LAT) || (*lat == MAX_LAT)) { 
-	    fprintf(stderr, "Error in latlon_xy;  lat: %f = %f or %f\n",
-		    *lat, MIN_LAT, MAX_LAT);
-	    *status = -1;
-	    return;
-    	}
-	diff_lon  = *lon - geom->lon;
-	*x    	  = diff_lon / geom->parm_2 + (double) geom->orig_ix;
-
-/*  	Take care of longitude wrap-around */
-	if ((*x < 1.) || (*x > (double) geom->nx)) {
-	    temp1 = (diff_lon - 360.) / geom->parm_2 + (double) geom->orig_ix;
-	    if (fabs((double)(geom->orig_ix + 1) / 2. - temp1) < 
-		fabs((double)(geom->orig_ix + 1) / 2. - *x)) *x = temp1;
-	    temp1 = (diff_lon + 360.) / geom->parm_2 + (double) geom->orig_ix;
-	    if (fabs((double)(geom->orig_ix + 1) / 2. - temp1) <
-		fabs((double)(geom->orig_ix + 1) / 2. - *x)) *x = temp1;
-	}
-
- 	temp1 = ERTH_RAD * cos((double) geom->parm_1 * PI180) / 
-		geom->y_int_dis; 
-	temp2 = (geom->lat + 90.) * PI180 / 2.;
-	temp3 = (double) geom->orig_iy + temp1 * LOGE10 * log10( tan(temp2) );
-	temp4 = (*lat + 90.) * PI180 / 2.;
-	*y    = temp3 - temp1 * LOGE10 * log10( tan(temp4) );
-
-    } else if (strcmp(geom->prjn_name, "polar_stereo") == 0) {
-	sign = (geom->parm_1 > 0.) ? 1. : -1.;
- 	temp1 = (*lon - (double) geom->parm_2) * PI180; 
-	temp2 = tan((45. - sign * *lat / 2.) * PI180);
-	temp3 = ERTH_RAD * (1. + sin(fabs((double) geom->parm_1) * PI180));
- 	temp4 = (geom->lon - (double) geom->parm_2) * PI180; 
-	temp5 = tan((45. - sign * geom->lat / 2.) * PI180);
-	*x    = (double) geom->orig_ix - temp3 / geom->x_int_dis *
-		(temp5 * sin(temp4) - temp2 * sin(temp1));
-	*y    = (double) geom->orig_iy - sign * temp3 / geom->y_int_dis *
-		(temp5 * cos(temp4) - temp2 * cos(temp1));
-
-    } else if (strcmp(geom->prjn_name, "lambert") == 0) {
-/*      Lambert requires: 0 < |parm_1,2| < 90
- *			  |parm_1| <= |parm_2|
- *			  parm_1 * parm_2 > 0
- *			  top of grid always toward N */ 
-/*	Check lat is not equal to 90. or -90. (singular points) */
-    	if ((*lat == MIN_LAT) || (*lat == MAX_LAT)) { 
-	    fprintf(stderr, "Error in latlon_xy;  lat: %f = %f or %f\n",
-		    *lat, MIN_LAT, MAX_LAT);
-	    *status = -1;
-	    return;
-    	}
-	sign = (geom->parm_1 > 0.) ? 1. : -1.;
-	if (geom->parm_1 == geom->parm_2) {
-	    temp1 = sign * sin(geom->parm_1 * PI180);
-	} else {
-	    temp1 = log(cos(geom->parm_1 * PI180) / 
-		        cos(geom->parm_2 * PI180)) / 
-		    log(tan((45. + sign * geom->parm_2 / 2.) * PI180) /
-		        tan((45. + sign * geom->parm_1 / 2.) * PI180));
-	}
-
-/*	Take care of longitude wrap-around for (*lon - geom->parm_3) */
-	diff_lon = *lon - geom->parm_3;
-	if (fabs(*lon - geom->parm_3 - 360.) < fabs(diff_lon)) 
-	    diff_lon = *lon - geom->parm_3 - 360.;
-	if (fabs(*lon - geom->parm_3 + 360.) < fabs(diff_lon)) 
-	    diff_lon = *lon - geom->parm_3 + 360.;
-
-/*	Take care of longitude wrap-around for (geom->lon - geom->parm_3) */
-	temp5 = geom->lon - geom->parm_3;
-	if (fabs(geom->lon - geom->parm_3 - 360.) < fabs(temp5)) 
-	    temp5 = geom->lon - geom->parm_3 - 360.;
-	if (fabs(geom->lon - geom->parm_3 + 360.) < fabs(temp5)) 
-	    temp5 = geom->lon - geom->parm_3 + 360.;
-
-	temp2 = cos(geom->parm_1 * PI180) * ERTH_RAD / temp1 *
-		pow(tan((45. + sign * geom->parm_1 / 2.) * PI180), temp1);
-	temp3 = pow(tan((45. + sign * geom->lat / 2.) * PI180), temp1);
-	temp4 = pow(tan((45. + sign * *lat / 2.) * PI180), temp1);
-	*x    = (double) geom->orig_ix - temp2 / geom->x_int_dis *
-		(sin(temp1 * temp5 * PI180) / temp3 -
-		 sin(temp1 * diff_lon * PI180) / temp4);
-	*y    = (double) geom->orig_iy - temp2 / geom->y_int_dis * sign * 
-		(cos(temp1 * temp5 * PI180) / temp3 -
-		 cos(temp1 * diff_lon * PI180) / temp4);
-
-    } else {
-	fprintf(stderr, "Error in latlon_xy;  prjn_name: %s not supported\n",
-		geom->prjn_name);
-	*status = -1;
-	return;
-    }
-/*
- printf("ll_xy; lat: %f  lon: %f  x: %lf  y: %lf\n", *lat, *lon, *x, *y);
- */
-    *status = 0;
-    return;
-}
-
-/***************************************************************/
-/*
- * transform from x, y coordinates within a registered grid to 
- * latitude and longitude
- */
-void xy_latlon(geom, x, y, lat, lon, status)
-REG_GEOM *geom;			/* registered geometry structure from isdb.h */	
-double	 *x;			/* x coord in units of columns, left col is 1 */
-double	 *y;			/* y coord in units of rows, top row is 1 */
-double	 *lat;			/* latitude in degrees */
-double	 *lon;			/* longitude in degrees */
-int	 *status;	
-{
-    double temp1, temp2, temp3, temp4, temp5, *tempp;  /* temporary variables */
-    double sign;		/* temporary variable containing sign */
-    long i;
-
-/*  Check if x is within 0, nx + 1 */
-    if ((*x < 0.) || (*x > (double) geom->nx + 1.)) { 
-	fprintf(stderr, "Error in xy_latlon;  x: %lf  not in  0, %d\n",
-		*x, geom->nx + 1);
-	*status = -1;
-	return;
-    }
-
-/*  Check if y is within 0, ny + 1 */
-    if ((*y < 0.) || (*y > (double) geom->ny + 1.)) { 
-	fprintf(stderr, "Error in xy_latlon;  y: %lf  not in  0, %d\n",
-		*y, geom->ny + 1);
-	*status = -1;
-	return;
-    }
-
-/*  
- *  Compute lat, lon from x, y depending on projection 
- */
-    
-    if (strcmp(geom->prjn_name, "gaussian") == 0) {
-	*lon  = (*x  - (double) geom->orig_ix) * geom->parm_2 + geom->lon;
-	i = *y;
-	temp1 = *y - (double)i;
-	switch (geom->ny){
-	  case T21_LEN:
-		tempp = t21Lats+i;
-		break;
-	  case R15_LEN:
-		tempp = r15Lats+i;
-		break;
-	  case T32_LEN:
-		tempp = t32Lats+i;
-		break;
-	  case R21_LEN:
-		tempp = r21Lats+i;
-		break;
-	  case T42_LEN:
-		tempp = t42Lats+i;
-		break;
-	  case R31_LEN:
-		tempp = r31Lats+i;
-		break;
-	  case T63_LEN:
-		tempp = t63Lats+i;
-		break;
-	  case R40_LEN:
-		tempp = r40Lats+i;
-		break;
-	  case T106_LEN:
-		tempp = t106Lats+i;
-		break;
-	  default:
-		  fprintf(stderr, "Error in xy_latlon; no Gaussian latitude of length %d\n",
-			  geom->ny);
-		  *status = -1;
-		  return;
-	};
-	if (i == geom->ny + 1)
-		*lat = *tempp;
-	else
-		*lat = temp1*(*(tempp+1)) + (1.-temp1)*(*tempp);
-    }
-				/* Cylindrical equal-area, e.g., LMD grid */
-    else if (strcmp(geom->prjn_name, "cylindrical_eq_area") == 0) {
-
-	                        /*  Must have 0.5 <= y <= ny+0.5*/
-    if ((*y < 0.5) || (*y > (double) geom->ny + 0.5)) { 
-	fprintf(stderr, "Error in xy_latlon;  y: %lf  not in  0.5, %lf\n",
-		*y, (double) geom->ny + 0.5);
-	*status = -1;
-	return;
-    }
-
-    *lon  = (*x  - (double) geom->orig_ix) * geom->parm_2 + geom->lon;
-    
-    *lat = asin(1.0 - (2.0*(*y) - 1.0)/(double)geom->ny)/PI180;
-
-    }
-    else if (strcmp(geom->prjn_name, "spherical") == 0) {
-	*lon  = (*x  - (double) geom->orig_ix) * geom->parm_2 + geom->lon;
-	*lat  = ((double) geom->orig_iy - *y) * geom->parm_1 + geom->lat;
-
-    } else if (strcmp(geom->prjn_name, "mercator") == 0) {
-/*      Mercator requires: 0 <= parm_1 < 90;
- * 			   other standard latitude = -parm_1
- *			   top of grid always toward N */ 
-	*lon  = (*x  - (double) geom->orig_ix) * geom->parm_2 + geom->lon;
- 	temp1 = ERTH_RAD * cos((double) geom->parm_1 * PI180) / 
-		geom->y_int_dis; 
-	temp2 = (geom->lat + 90.) * PI180 / 2.;
-	temp3 = (double) geom->orig_iy + temp1 *
-		LOGE10 * log10( tan(temp2) );
-	*lat  = 2. / PI180 * atan( exp((temp3 - *y) / temp1) ) - 90.;
-
-    } else if (strcmp(geom->prjn_name, "polar_stereo") == 0) {
-	sign  = (geom->parm_1 > 0.) ? 1. : -1.;
- 	temp1 = (geom->lon - (double) geom->parm_2) * PI180; 
-	temp2 = tan((45. - sign * geom->lat / 2.) * PI180);
-	temp3 = ERTH_RAD * (1. + sin(fabs((double) geom->parm_1) * PI180));
-        temp4 = (*x - (double) geom->orig_ix) * geom->x_int_dis /
-		temp3 + temp2 * sin(temp1);
-        temp5 = sign * (*y - (double) geom->orig_iy) * geom->y_int_dis /
-		temp3 + temp2 * cos(temp1);
-        *lon  = 1. / PI180 * atan2(temp4, temp5) + (double) geom->parm_2;
-	if (fabs(cos((double) (*lon - geom->parm_2) * PI180)) > .7071) {
-  	    *lat  = sign * (90. - 2. / PI180 * atan(temp5 / 
-		    cos((double) (*lon - geom->parm_2) * PI180)));
-	} else {  	/* use sine if cosine approaches 0. */
-  	    *lat  = sign * (90. - 2. / PI180 * atan(temp4 /
-		    sin((double) (*lon - geom->parm_2) * PI180)));
-	}
-
-    } else if (strcmp(geom->prjn_name, "lambert") == 0) {
-/*      Lambert requires: 0 < |parm_1,2| < 90
- *			  |parm_1| <= |parm_2|
- *			  parm_1 * parm_2 > 0
- *			  top of grid always toward N */ 
-	sign = (geom->parm_1 > 0.) ? 1. : -1.;
-	if (geom->parm_1 == geom->parm_2) {
-	    temp1 = sign * sin(geom->parm_1 * PI180);
-	} else {
-	    temp1 = log(cos(geom->parm_1 * PI180) / 
-		        cos(geom->parm_2 * PI180)) / 
-		    log(tan((45. + sign * geom->parm_2 / 2.) * PI180) /
-		        tan((45. + sign * geom->parm_1 / 2.) * PI180));
-	}
-	temp2 = cos(geom->parm_1 * PI180) / temp1 * 
-		pow(tan((45. + sign * geom->parm_1 / 2.) * PI180), temp1);
-	temp3 = pow(tan((45. + sign * geom->lat / 2.) * PI180), temp1);
-        *lon  = geom->parm_3 + 1. / PI180 / temp1 * atan2( 
-		((*x - (double) geom->orig_ix) * geom->x_int_dis / ERTH_RAD +  
-		sin(temp1 * (geom->lon - geom->parm_3) * PI180) * temp2 /
-		temp3), ((*y - (double) geom->orig_iy) * geom->y_int_dis / 
-		ERTH_RAD * sign + cos(temp1 * (geom->lon - geom->parm_3) *
-		PI180) * temp2 / temp3));
-	*lat  = sign * (-90. + 2. / PI180 * atan(
-		pow((temp2 * cos(temp1 * (*lon - geom->parm_3) * PI180)) /
-		((*y - (double) geom->orig_iy) * geom->y_int_dis / ERTH_RAD *
-		sign + cos(temp1 * (geom->lon - geom->parm_3) * PI180) *
-		temp2 / temp3), 1. / temp1)));
-
-    } else {
-	fprintf(stderr, "Error in xy_latlon;  prjn_name: %s not supported\n",
-		geom->prjn_name);
-	*status = -1;
-	return;
-    }
-
-/*  Take care of longitude wrap-around */
-    if (*lon < MIN_LON) *lon += 360.;
-    if (*lon > MAX_LON) *lon -= 360.;
-/*
- printf("xy_ll; lat: %f  lon: %f  x: %lf  y: %lf\n", *lat, *lon, *x, *y);
- */
-    *status = 0;
-    return;
-}
-
-/***************************************************************/
-/*
- * transform from the index within a registered grid to latitude and longitude
- */
-void index_latlon(geom, index, lat, lon, status)
-REG_GEOM *geom;			/* registered geometry structure from isdb.h */	
-long	 *index;		/* index within grid */
-double	 *lat;			/* latitude in degrees */
-double	 *lon;			/* longitude in degrees */
-int	 *status;
-{
-    double x;			/* x coord in units of columns, left col is 1 */
-    double y;			/* y coord in units of rows, top row is 1 */
-    long  ix;			/* column number, left column is 1 */
-    long  iy;			/* row number, top row is 1 */
-    extern void index_xy(), xy_latlon();
-
-/*  Convert from index to ix, iy */
-    index_xy(geom, index, &ix, &iy, status);
-    if (*status < 0) {
-    	return;
-    }
-
-/*  
-    fprintf(stderr, "\n index_latlon ix: %d  iy: %d\n", ix, iy); 
-*/
-    x	= (double) ix;
-    y	= (double) iy;
-   
-/*  Convert from x, y to lat, lon */
-    xy_latlon(geom, &x, &y, lat, lon, status);
-    if (*status < 0) {
-    	return;
-    }
-
-    *status = 0;
-    return;
-}
-
-/***************************************************************/
-/* 
- * transform from latitude and longitude to the index within a registered grid
- * (find the closest grid point to some lat, lon)
- */
-void latlon_index(geom, lat, lon, index, status)
-REG_GEOM *geom;			/* registered geometry structure from isdb.h */	
-double	 *lat;			/* latitude in degrees */
-double	 *lon;			/* longitude in degrees */
-long	 *index;		/* index within grid */
-int	 *status;		/* return status */
-{
-    double x;			/* x coord in units of columns, left col is 1 */
-    double y;			/* y coord in units of rows, top row is 1 */
-    long   ix;			/* column number, left column is 1 */
-    long   iy;			/* row number, top row is 1 */
-    extern void latlon_xy(), xy_index();
-
-   
-/*  Convert from lat, lon to x, y */
-    latlon_xy(geom, lat, lon, &x, &y, status);
-    if (*status < 0) {
-    	return;
-    }
-
-/*  Round to nearest grid point */
-    ix	= (long) (x + .5);
-    iy	= (long) (y + .5);
-/*  
-    fprintf(stderr, "latlon_index ix: %d  iy: %d\n", ix, iy); 
-*/
-
-/*  Convert from ix, iy to index */
-    xy_index(geom, &ix, &iy, index, status);
-    if (*status < 0) {
-    	return;
-    }
-
-    *status = 0;
-    return;
-}
-
-/***************************************************************/
-/*
- * get the (float) value from a registered grid at some latitude
- * and longitude (interpolate from 4 nearest grid points)
- */
-void getf_latlon(geom, lat, lon, fbuff, fpixel, status)
-REG_GEOM *geom;			/* registered geometry structure from isdb.h */	
-double	 *lat;			/* latitude in degrees */
-double	 *lon;			/* longitude in degrees */
-float    *fbuff;		/* array containing values at all grid points */
-float	 *fpixel;		/* value at lat, lon */
-int	 *status;		/* return status */
-{
-    long   index;		/* index within grid */
-    long   ix, ix1;		/* column number, left column is 1 */
-    long   iy, iy1;		/* row number, top row is 1 */
-    double x;			/* x coord in units of columns, left col is 1 */
-    double y;			/* y coord in units of rows, top row is 1 */
-    extern void latlon_xy(), xy_index();
-
-    *fpixel = 0.;
-
-/*  Convert from lat, lon to x, y */
-    latlon_xy(geom, lat, lon, &x, &y, status);
-    if (*status < 0) {
-	return;
-    }
-/*
-fprintf(stdout, "lat: %f  lon: %f  x: %lf  y: %lf\n", *lat, *lon, x, y);
- */
-
-/*  Find nearest 4 points */
-    ix  = (long) x;
-    ix1 = ix + 1; 
-    iy  = (long) y;
-    iy1 = iy + 1; 
-
-/*  Check point ix,iy lies inside grid */
-    if ((ix1 < 1) || (ix > geom->nx)) {
-	*status = -1;
-	return;
-    }
-    if ((iy1 < 1) || (iy > geom->ny)) {
-	*status = -1;
-	return;
-    }
-
-/*  Do point (ix+1, iy+1) */
-    xy_index(geom, &ix1, &iy1, &index, status);
-    if (*status == 0) {
-	*fpixel += *(fbuff + index-1) * 
-			(x - (double) ix) * (y - (double) iy);
-    }
-
-/*  Do point (ix+1, iy) */
-    xy_index(geom, &ix1, &iy, &index, status);
-    if (*status == 0) {
-	*fpixel += *(fbuff + index-1) * 
-			(x - (double) ix) * ((double) iy1 - y);
-    }
-
-/*  Do point (ix, iy+1) */
-    xy_index(geom, &ix, &iy1, &index, status);
-    if (*status == 0) {
-	*fpixel += *(fbuff + index-1) * 
-			((double) ix1 - x) * (y - (double) iy);
-    }
-
-/*  Do point (ix, iy) */
-    xy_index(geom, &ix, &iy, &index, status);
-    if (*status == 0) {
-	*fpixel += *(fbuff + index-1) * 
-			((double) ix1 - x) * ((double) iy1 - y);
-    }
-
-    *status = 0;
-    return;
-}
-
-/***************************************************************/
-/*
- * put the (float) value onto a registered grid at some latitude
- * and longitude (smear over 4 nearest grid points)
- */
-void putf_latlon(geom, lat, lon, fpixel, fbuff, status)
-REG_GEOM *geom;			/* registered geometry structure from isdb.h */	
-double	 *lat;			/* latitude in degrees */
-double	 *lon;			/* longitude in degrees */
-float	 *fpixel;		/* value at lat, lon */
-float    *fbuff;		/* array containing values at all grid points */
-int	 *status;		/* return status */
-{
-    long   index;		/* index within grid */
-    long   ix, ix1;		/* column number, left column is 1 */
-    long   iy, iy1;		/* row number, top row is 1 */
-    double x;			/* x coord in units of columns, left col is 1 */
-    double y;			/* y coord in units of rows, top row is 1 */
-    extern void latlon_xy(), xy_index();
-
-/*  Convert from lat, lon to x, y */
-    latlon_xy(geom, lat, lon, &x, &y, status);
-    if (*status < 0) {
-	return;
-    }
-/*
-fprintf(stdout, "lat: %f  lon: %f  x: %lf  y: %lf\n", *lat, *lon, x, y);
- */
-
-/*  Find nearest 4 points */
-    ix  = (long) x;
-    ix1 = ix + 1; 
-    iy  = (long) y;
-    iy1 = iy + 1; 
-
-/*  Check point ix,iy lies inside grid */
-    if ((ix1 < 1) || (ix > geom->nx)) {
-	*status = -1;
-	return;
-    }
-    if ((iy1 < 1) || (iy > geom->ny)) {
-	*status = -1;
-	return;
-    }
-
-/*  Do point (ix+1, iy+1) */
-    xy_index(geom, &ix1, &iy1, &index, status);
-    if (*status == 0) {
-	*(fbuff + index-1) = *fpixel * 
-			(x - (double) ix) * (y - (double) iy);
-    }
-
-/*  Do point (ix+1, iy) */
-    xy_index(geom, &ix1, &iy, &index, status);
-    if (*status == 0) {
-	*(fbuff + index-1) = *fpixel * 
-			(x - (double) ix) * ((double) iy1 - y);
-    }
-
-/*  Do point (ix, iy+1) */
-    xy_index(geom, &ix, &iy1, &index, status);
-    if (*status == 0) {
-	*(fbuff + index-1) = *fpixel * 
-			((double) ix1 - x) * (y - (double) iy);
-    }
-
-/*  Do point (ix, iy) */
-    xy_index(geom, &ix, &iy, &index, status);
-    if (*status == 0) {
-	*(fbuff + index-1) = *fpixel * 
-			((double) ix1 - x) * ((double) iy1 - y);
-    }
-
-    *status = 0;
-    return;
-}
-
-
-/***************************************************************/
-/*
- * compute the grid interval distance for a registered grid using a
- * previously-located grid point
- */
-void get_int_dis(geom, x, y, lat, lon, status)
-REG_GEOM *geom;			/* registered geometry structure from isdb.h */	
-double	 *x;			/* x coord of known point in units of columns */
-double	 *y;			/* y coord of known point in units of rows */
-double	 *lat;			/* latitude of known point in degrees */
-double	 *lon;			/* longitude of known point in degrees */
-int	 *status;		/* return status */
-{
-    double temp1, temp2, temp3, temp4, temp5;	/* temporary variables */
-    double sign;		/* temporary variable containing sign */
-
-/*  Check lat is within limits */
-    if ((*lat < MIN_LAT) || (*lat > MAX_LAT)) { 
-	fprintf(stderr, "Error in get_int_dis;  lat: %lf  not in  %f, %f\n",
-		*lat, MIN_LAT, MAX_LAT);
-	*status = -1;
-	return;
-    }
-
-/*  Check lon is within limits */
-    if ((*lon < MIN_LON) || (*lon > MAX_LON)) { 
-	fprintf(stderr, "Error in get_int_dis;  lon: %lf  not in  %f, %f\n",
-		*lon, MIN_LON, MAX_LON);
-	*status = -1;
-	return;
-    }
-
-/*  Check y value different from y of origin */
-    if (fabs(*y - (double) geom->orig_iy) < 1.e-5) {
-	fprintf(stderr, "Error in get_int_dis;  y: %f  equals  orig_iy: %d\n",
-		*y, geom->orig_iy);
-	*status = -1;
-	return;
-    }
-
-/*  Check x value different from x of origin */
-    if (fabs(*x - (double) geom->orig_ix) < 1.e-5) {
-	fprintf(stderr, "Error in get_int_dis;  x: %f  equals  orig_ix: %d\n",
-		*x, geom->orig_ix);
-	*status = -1;
-	return;
-    }
-
-/*
- *  Compute y_int_dis, x_int_dis from rest of geom info and x, y, lat, lon 
- */
-    if (strcmp(geom->prjn_name, "spherical") == 0) {
-	geom->y_int_dis = ERTH_RAD * PI180 * geom->parm_1;
-	geom->x_int_dis = ERTH_RAD * PI180 * geom->parm_2;
-
-    } else if (strcmp(geom->prjn_name, "mercator") == 0) {
-/*      Mercator requires: 0 <= parm_1 < 90;
- * 			   other standard latitude = -parm_1
- *			   top of grid always toward N */ 
- 	temp1 = ERTH_RAD * cos((double) geom->parm_1 * PI180);
-	temp2 = PI180 / 2. * (geom->lat + 90.);
-	temp3 = PI180 / 2. * (*lat + 90.);
-	geom->y_int_dis = temp1 / (*y - (double) geom->orig_iy) *
-		LOGE10 * ( log10(tan(temp2)) - log10(tan(temp3)) );
-	geom->x_int_dis = geom->y_int_dis;
-
-    } else if (strcmp(geom->prjn_name, "polar_stereo") == 0) {
-	sign = (geom->lat > 0.) ? 1. : -1.;
- 	temp1 = (*lon - (double) geom->parm_2) * PI180; 
-	temp2 = tan((45. - sign * *lat / 2.) * PI180);
-	temp3 = ERTH_RAD * (1. + sin(fabs((double) geom->parm_1) * PI180));
- 	temp4 = (geom->lon - (double) geom->parm_2) * PI180; 
-	temp5 = tan((45. - sign * geom->lat / 2.) * PI180);
-	geom->y_int_dis = 1. / ((double) geom->orig_iy - *y) *
-		sign * temp3 * (temp5 * cos(temp4) - temp2 * cos(temp1));
-	geom->x_int_dis = 1. / ((double) geom->orig_ix - *x) *
-		temp3 * (temp5 * sin(temp4) - temp2 * sin(temp1));
-
-    } else if (strcmp(geom->prjn_name, "lambert") == 0) {
-/*      Lambert requires: 0 < |parm_1,2| < 90
- *			  |parm_1| <= |parm_2|
- *			  parm_1 * parm_2 > 0
- *			  top of grid always toward N */ 
-	sign = (geom->parm_1 > 0.) ? 1. : -1.;
-	if (geom->parm_1 == geom->parm_2) {
-	    temp1 = sign * sin(geom->parm_1 * PI180);
-	} else {
-	    temp1 = log(cos(geom->parm_1 * PI180) / 
-		        cos(geom->parm_2 * PI180)) / 
-		    log(tan((45. + sign * geom->parm_2 / 2.) * PI180) /
-		        tan((45. + sign * geom->parm_1 / 2.) * PI180));
-	}
-	temp2 = cos(geom->parm_1 * PI180) * ERTH_RAD / temp1 *
-		pow(tan((45. + sign * geom->parm_1 / 2.) * PI180), temp1);
-	temp3 = pow(tan((45. + sign * geom->lat / 2.) * PI180), temp1);
-	temp4 = pow(tan((45. + sign * *lat / 2.) * PI180), temp1);
-	geom->x_int_dis = temp2 / ((double) geom->orig_ix - *x) * 
-		(sin(temp1 * (geom->lon - geom->parm_3) * PI180) / temp3 -
-		 sin(temp1 * (*lon - geom->parm_3) * PI180) / temp4);
-	geom->y_int_dis = temp2 / ((double) geom->orig_iy - *y) * sign *
-		(cos(temp1 * (geom->lon - geom->parm_3) * PI180) / temp3 - 
-		 cos(temp1 * (*lon - geom->parm_3) * PI180) / temp4);
-
-    } else {
-	fprintf(stderr, "Error in get_int_dis;  prjn_name: %s not supported\n",
-		geom->prjn_name);
-	*status = -1;
-	return;
-    }
-
-    *status = 0;
-    return;
-}
-/***************************************************************/
-/*
- *  Transform gridded data from one registered grid geometry to another. 
- */
-void grid_map(geom_a, geom_b, fbuff_a, fbuff_b, status)
-REG_GEOM  *geom_a;		/* geom structure from isdb.h - input grid */
-REG_GEOM  *geom_b;		/* geom structure from isdb.h - output grid */
-float	  *fbuff_a;		/* array containing grid values - input */
-float	  *fbuff_b;		/* array containing grid values - output */
-int	  *status;	        /* return status from routine */
-{
-    long        i;                      /* index variable */
-    long        j;                      /* index variable */
-    long        index;                  /* index number for array */
-    float       value;                  /* calculated value of function */ 
-    double      x;                      /* col within grid */
-    double      y;                      /* row within grid */
-    double	lat;			/* latitude in degrees */
-    double	lon;			/* longitude in degrees */
-
-    extern void   xy_index();
-    extern void   xy_latlon();
-    extern void   getf_latlon();
-
-/*  Loop over gridpoints of output grid */
-    for(j = 1; j <= geom_b->ny; j++){
-      for(i = 1; i <= geom_b->nx; i++){
-
-    	x = (double) i;
-    	y = (double) j;
-
-/*  	Transform the output grid coordinates to lat-lon coordinates */
-    	xy_latlon(geom_b, &x, &y, &lat, &lon, status);
-    	if (*status < 0) {
-    	    fprintf(stderr, "Grid_map: Error from xy_latlon\n");
-	    return;
-    	}
-
-/*  	Use two-d interpoplation to get value of input grid at lat, lon */
-    	getf_latlon(geom_a, &lat, &lon, fbuff_a, &value, status);
-    	if (*status < 0) {
-    	    fprintf(stderr, "Grid_map: Error from getf_latlon\n");
-	    return;
-    	}
-
-/*  	Convert from row, col number to linear array index */ 
-    	xy_index(geom_b, &i, &j, &index, status);
-    	if (*status < 0) {
-    	    fprintf(stderr, "Grid_map: Error from xy_index\n");
-	    return;
-    	}
-
-/*  	Assign calculated grid point value to grid point */
-   	*(fbuff_b + index - 1) = value;
-
-      } 		/* end of loop over columns */ 
-    } 			/* end of loop over rows    */ 
-
-}
-					     /* Binary lookup */
-					     /* Lookup x, in strictly monotonic vector tab (increasing or decreasing) */
-					     /* of length n, return index k. */
-					     /* k is interpreted as follows: */
-					     /* Case: tab is increasing: */
-					     /*   k == -1 iff x <= tab[0] */
-					     /*   k == (n-1) iff x > tab[n-1] */
-					     /*   else tab[k] < x <= tab[k+1] */
-					     /* Case: tab is decreasing: */
-					     /*   k == -1 iff x > tab[0] */
-					     /*   k == (n-1) iff x <= tab[n-1] */
-					     /*   else tab[k] >= x > tab[k+1]*/
-
-void CdLookup(double tab[], long n, double x, long *k)
-{
-	long kupper,kmid,klower;
-	int incr;
-
-	klower=-1;
-	kupper=n;
-	incr=(tab[n-1] > tab[0]);
-	while (kupper-klower > 1) {
-		kmid=(kupper+klower) >> 1;
-		if (x > tab[kmid] == incr)
-			klower=kmid;
-		else
-			kupper=kmid;
-	}
-	*k=klower;
-}
diff --git a/Src/cdTime/timeArith.c b/Src/cdTime/timeArith.c
deleted file mode 100644
index e64a45f..0000000
--- a/Src/cdTime/timeArith.c
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- * Module:      Time arithmetic routines: CdAddDelTime, CdDivDeltime
- *
- * Copyright:	1994, Regents of the University of California
- *		This software may not be distributed to others without
- *		permission of the author.
- *
- * Author:      Bob Drach, Lawrence Livermore National Laboratory
- *              drach at llnl.gov
- *
- * Version:     $Id$
- *
- * Revision History:
- *
- * $Log: timeArith.c,v $
- * Revision 1.1.1.1  1997/12/09 18:57:40  drach
- * Copied from cirrus
- *
- * Revision 1.2  1996/02/21  23:56:49  drach
- * - Overlayed cdtime routines in cdTimeConv.c:
- * - Added seconds, julian calendar, changed include to cdmsint.h for old
- *   time routines in timeArith.c and timeConv.c
- *
- * Revision 1.1  1994/07/19  23:54:13  drach
- * Initial version
- *
- *
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <cdmsint.h>
-
-/* Add 'nDel' times 'delTime' to epochal time 'begEtm',
- * return the result in epochal time 'endEtm'.
- */
-void
-CdAddDelTime(double begEtm, long nDel, CdDeltaTime delTime, CdTimeType timeType,
-	     long baseYear, double *endEtm)
-{
-	double delHours;
-	long delMonths, delYears;
-	CdTime bhtime, ehtime;
-
-	extern void Cde2h(double etime, CdTimeType timeType, long baseYear, CdTime *htime);
-	extern void Cdh2e(CdTime *htime, double *etime);
-
-	switch(delTime.units){
-	  case CdYear:
-		delMonths = 12;
-		break;
-	  case CdSeason:
-		delMonths = 3;
-		break;
-	  case CdMonth:
-		delMonths = 1;
-		break;
-	  case CdWeek:
-		delHours = 168.0;
-		break;
-	  case CdDay:
-		delHours = 24.0;
-		break;
-	  case CdHour:
-		delHours = 1.0;
-		break;
-	  case CdMinute:
-		delHours = 1./60.;
-		break;
-	  case CdSecond:
-		delHours = 1./3600.;
-		break;
-	  default:
-		cdError("Invalid delta time units: %d\n",delTime.units);
-		return;
-	}
-
-	switch(delTime.units){
-	  case CdYear: case CdSeason: case CdMonth:
-		Cde2h(begEtm,timeType,baseYear,&bhtime);
-		delMonths = delMonths * nDel * delTime.count + bhtime.month - 1;
-		delYears = (delMonths >= 0 ? (delMonths/12) : (delMonths+1)/12 - 1);
-		ehtime.year = bhtime.year + delYears;
-		ehtime.month = delMonths - (12 * delYears) + 1;
-		ehtime.day = 1;
-		ehtime.hour = 0.0;
-		ehtime.timeType = timeType;
-		ehtime.baseYear = !(timeType & CdChronCal) ? 0 :
-			(timeType & CdBase1970) ? 1970 : baseYear; /* base year is 0 for Clim, */
-								   /* 1970 for Chron, */
-								   /* or input base year for Rel */
-		Cdh2e(&ehtime,endEtm);
-		break;
-	  case CdWeek: case CdDay: case CdHour: case CdMinute: case CdSecond:
-		delHours *= (nDel * delTime.count);
-		*endEtm = begEtm + delHours;
-		break;
-	}
-	return;
-}
-
-/* Divide ('endEtm' - 'begEtm') by 'delTime',
- * return the integer portion of the result in 'nDel'.
- */
-void
-CdDivDelTime(double begEtm, double endEtm, CdDeltaTime delTime, CdTimeType timeType,
-	     long baseYear, long *nDel)
-{
-	double delHours, frange;
-	long delMonths, range;
-	CdTime bhtime, ehtime;
-	int hoursInYear;
-	
-	extern void Cde2h(double etime, CdTimeType timeType, long baseYear, CdTime *htime);
-
-	switch(delTime.units){
-	  case CdYear:
-		delMonths = 12;
-		break;
-	  case CdSeason:
-		delMonths = 3;
-		break;
-	  case CdMonth:
-		delMonths = 1;
-		break;
-	  case CdWeek:
-		delHours = 168.0;
-		break;
-	  case CdDay:
-		delHours = 24.0;
-		break;
-	  case CdHour:
-		delHours = 1.0;
-		break;
-	  case CdMinute:
-		delHours = 1./60.;
-		break;
-	  case CdSecond:
-		delHours = 1./3600.;
-		break;
-	  default:
-		cdError("Invalid delta time units: %d\n",delTime.units);
-		return;
-	}
-
-	switch(delTime.units){
-	  case CdYear: case CdSeason: case CdMonth:
-		delMonths *= delTime.count;
-		Cde2h(begEtm,timeType,baseYear,&bhtime);
-		Cde2h(endEtm,timeType,baseYear,&ehtime);
-		if(timeType & CdChronCal){   /* Chron and Rel time */
-			range = 12*(ehtime.year - bhtime.year)
-				+ (ehtime.month - bhtime.month);
-		}
-		else{			     /* Clim time, ignore year */
-			range = (ehtime.month - bhtime.month);
-			if(range < 0) range += 12;
-		}
-		*nDel = abs(range)/delMonths;
-		break;
-	  case CdWeek: case CdDay: case CdHour: case CdMinute: case CdSecond:
-		delHours *= (double)delTime.count;
-		if(timeType & CdChronCal){   /* Chron and Rel time */
-			frange = fabs(endEtm - begEtm);
-		}
-		else{			     /* Clim time, ignore year, but */
-					     /* wraparound relative to hours-in-year*/
-			frange = endEtm - begEtm;
-			hoursInYear = (timeType & Cd365) ? 8760. : 8640.;
-					     /* Normalize frange to interval [0,hoursInYear) */
-			if(frange < 0.0 || frange >= hoursInYear)
-				frange -= hoursInYear * floor(frange/hoursInYear);
-		}
-		*nDel = (frange + 1.e-10*delHours)/delHours;
-		break;
-	}
-	return;
-}
diff --git a/Src/cdTime/timeConv.c b/Src/cdTime/timeConv.c
deleted file mode 100644
index 3b0513f..0000000
--- a/Src/cdTime/timeConv.c
+++ /dev/null
@@ -1,396 +0,0 @@
-/*
- * Module:      Basic time format conversion routines:
- *              Cdc2e, Cdc2h, Cde2c, Cde2h, Cdh2c, Cdh2e
- *
- * Copyright:	1994, Regents of the University of California
- *		This software may not be distributed to others without
- *		permission of the author.
- *
- * Author:      Bob Drach, Lawrence Livermore National Laboratory
- *              drach at llnl.gov
- *
- * Version:     $Id$
- *
- * Revision History:
- *
- * $Log: timeConv.c,v $
- * Revision 1.2  1998/02/20 00:24:49  drach
- * - Added multi-variable file spanning in QL
- * - Accounted for goofy floor function on J90, in timeConv.c
- *
- * Revision 1.1.1.1  1997/12/09 18:57:40  drach
- * Copied from cirrus
- *
- * Revision 1.4  1996/02/21  23:56:50  drach
- * - Overlayed cdtime routines in cdTimeConv.c:
- * - Added seconds, julian calendar, changed include to cdmsint.h for old
- *   time routines in timeArith.c and timeConv.c
- *
- * Revision 1.3  1994/08/12  19:03:30  drach
- * Added CdDaysInMonth function so that CdSetTime can handle last-day-of-month flag.
- *
- * Revision 1.2  1994/07/20  00:01:17  drach
- * - Changed unsigned struct values to signed
- * - Added baseYear argument to Cdc2e
- *
- * Revision 1.1  1994/07/13  18:29:44  drach
- * Initial version
- *
- *
- */
-
-#include <math.h>
-#include <stdio.h>
-#include <cdmsint.h>
-
-#define ISLEAP(year,timeType)	(((timeType) & CdHasLeap) && (!((year) % 4) && (((timeType) & CdJulianType) || (((year) % 100) || !((year) % 400)))))
-
-static int mon_day_cnt[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
-static int days_sum[12] = {0,31,59,90,120,151,181,212,243,273,304,334};
-
-/* Compute month and day from year and day-of-year.
- *
- *	Input:
- *		doy	     (int)  (day-of-year)
- *		date->year   (long)  (year since 0 BC)
- *              date->timeType (CdTimetype) (time type)
- *              date->baseYear   base year for relative times
- *	Output: 
- *		date->month  (short)  (month in year) 
- *		date->day    (short)  (day in month)
- *
- * 
- * Derived from NRL NEONS V3.6.
- */
-
-void
-CdMonthDay(int *doy, CdTime *date)
-{
-	int i;				/* month counter */
-	int idoy;			/* day of year counter */
-	long year;
-
-	if ((idoy = *doy) < 1) {
-		date->month = 0;
-		date->day   = 0;
-		return;
-	}
-
-	if(!(date->timeType & CdChronCal))   /* Ignore year for Clim calendar */
-		year = 0;
-	else if(!(date->timeType & CdBase1970))	/* year is offset from base for relative time */
-		year = date->baseYear + date->year;
-	else
-		year = date->year;
-
-	if (ISLEAP(year,date->timeType)) {
-		mon_day_cnt[1] = 29;
-	} else {
-		mon_day_cnt[1] = 28;
-	}
-	date->month	= 0;
-	for (i = 0; i < 12; i++) {
-		(date->month)++;
-		date->day	= idoy;
-		if ((idoy -= ((date->timeType & Cd365) ? (mon_day_cnt[date->month-1]) : 30)) <= 0) {
-			return;
-		}
-	}
-	return;
-}
-
-
-/* Compute number of days in a month
- *
- *	Input:
- *		date->year       (long)  (year since 0 BC)
- *		date->month      (short)  (month in year) 
- *              date->timeType   (CdTimetype) (time type)
- *              date->baseYear   base year for relative times
- * 
- *	Output: 
- *		days    (short)  (number of days in month)
- *
- */
-
-void
-CdDaysInMonth(CdTime *date, int *days)
-{
-	long year;
-
-	if(!(date->timeType & CdChronCal))   /* Ignore year for Clim calendar */
-		year = 0;
-	else if(!(date->timeType & CdBase1970))	/* year is offset from base for relative time */
-		year = date->baseYear + date->year;
-	else
-		year = date->year;
-
-	if (ISLEAP(year,date->timeType)) {
-		mon_day_cnt[1] = 29;
-	} else {
-		mon_day_cnt[1] = 28;
-	}
-
-	*days = (date->timeType & Cd365) ? (mon_day_cnt[date->month-1]) : 30;
-
-	return;
-}
-
-/* Compute day-of-year from year, month and day
- * 
- *	Input:
- *		date->year  (long)  (year since 0 BC)
- *		date->month (short)  (month in year)
- *		date->day   (short)  (day in month)
- *              date->baseYear   base year for relative times
- *	Output: doy         (int)  (day-of-year)
- * 
- * Derived from NRL NEONS V3.6
- */
-
-void
-CdDayOfYear(CdTime *date, int *doy)
-{
-	int leap_add = 0;		/* add 1 day if leap year */
-	int month;			/* month */
-	long year;
-
-   	month	= date->month;
-	if (month < 1 || month > 12) {
-		cdError( "Day-of-year error; month: %d\n", month);
-		month = 1;	
-	}
-
-	if(!(date->timeType & CdChronCal))   /* Ignore year for Clim calendar */
-		year = 0;
-	else if(!(date->timeType & CdBase1970))	/* year is offset from base for relative time */
-		year = date->baseYear + date->year;
-	else
-		year = date->year;
-
-	if (ISLEAP(year,date->timeType) && month > 2) leap_add = 1;
-	*doy 	 = ((date->timeType & Cd365) ? (days_sum[month-1]) : 30*(month-1)) + date->day + leap_add;
-	return;
-}
-/* Convert human time to epochal time (hours since 00 jan 1, 1970)
- * 
- * Input: htime = human time representation
- * 
- * Output: etime = epochal time representation
- * 
- * Derived from NRL Neons V3.6
- */
-void
-Cdh2e(CdTime *htime, double *etime)
-{
-	long 	ytemp, year;			/* temporary year holder */
-	int	day_cnt;		/* count of days */
-	int 	doy;			/* day of year */
-	long    baseYear;		     /* base year for epochal time */
-	int     daysInLeapYear;		     /* number of days in a leap year */
-	int     daysInYear;		     /* days in non-leap year */
-	extern void CdDayOfYear(CdTime *date, int *doy);
-
-	CdDayOfYear(htime,&doy);
-	
-	day_cnt	= 0;
-
-	baseYear = ((htime->timeType) & CdBase1970) ? 1970 : htime->baseYear;
-	year = ((htime->timeType) & CdBase1970) ? htime->year : (htime->year + htime->baseYear);
-	if(!((htime->timeType) & CdChronCal)) baseYear = year = 0;	/* set year and baseYear to 0 for Clim */
-	daysInLeapYear = ((htime->timeType) & Cd365) ? 366 : 360;
-	daysInYear = ((htime->timeType) & Cd365) ? 365 : 360;
-	
-	if (year > baseYear) {
-		for (ytemp = year - 1; ytemp >= baseYear; ytemp--) {
-			day_cnt += ISLEAP(ytemp,htime->timeType) ? daysInLeapYear : daysInYear;
-		}
-	} else if (year < baseYear) {
-		for (ytemp = year; ytemp < baseYear; ytemp++) {
-			day_cnt -= ISLEAP(ytemp,htime->timeType) ? daysInLeapYear : daysInYear;
-		}
-	}	
-	*etime	= (double) (day_cnt + doy - 1) * 24. + htime->hour;
-        return;
-}
-/* Convert epochal time (hours since 00 jan 1, 1970)
- *   to human time (structured)
- * 
- * Input: 
- *   etime = epochal time representation
- *   timeType = time type (e.g., CdChron, CdClim, etc.) as defined in cdms.h
- *   baseYear = base real, used for relative time types only
- * 
- * Output: htime = human (structured) time representation
- * 
- * Derived from NRL Neons V3.6
- */
-void
-Cde2h(double etime, CdTimeType timeType, long baseYear, CdTime *htime)
-{
-	long 	ytemp;			/* temporary year holder */
-	int 	yr_day_cnt;		/* count of days in year */
-	int 	doy;			/* day of year */
-	int     daysInLeapYear;		     /* number of days in a leap year */
-	int     daysInYear;		     /* days in non-leap year */
-	extern void CdMonthDay(int *doy, CdTime *date);
-
-	doy	= (long) floor(etime / 24.) + 1;
-	htime->hour	= etime - (double) (doy - 1) * 24.;
-
-					     /* Correct for goofy floor func on J90 */
-	if(htime->hour >= 24.){
-		doy += 1;
-		htime->hour -= 24.;
-	}
-
-	htime->baseYear = (timeType & CdBase1970) ? 1970 : baseYear;
-	if(!(timeType & CdChronCal)) htime->baseYear = 0; /* Set base year to 0 for Clim */
-	daysInLeapYear = (timeType & Cd365) ? 366 : 360;
-	daysInYear = (timeType & Cd365) ? 365 : 360;
-
-	if (doy > 0) {
-		for (ytemp = htime->baseYear; ; ytemp++) {
-			yr_day_cnt = ISLEAP(ytemp,timeType) ? daysInLeapYear : daysInYear;
-			if (doy <= yr_day_cnt) break;
-			doy -= yr_day_cnt;
-		}
-	} else {
-		for (ytemp = htime->baseYear-1; ; ytemp--) {
-			yr_day_cnt = ISLEAP(ytemp,timeType) ? daysInLeapYear : daysInYear;
-			doy += yr_day_cnt;
-			if (doy > 0) break;
-		}
-	}
-        htime->year = (timeType & CdBase1970) ? ytemp : (ytemp - htime->baseYear);
-	if(!(timeType & CdChronCal)) htime->year = 0; /* Set year to 0 for Clim */
-	htime->timeType = timeType;
-	CdMonthDay(&doy,htime);
-
-        return;
-}
-/* Convert character time to human time
- * 
- * Input:
- *   ctime    = character time
- *   timeType = time type (e.g. CdChron) as defined in cdms.h
- *   
- * Output:
- *   htime    = human (structured) time
- */
-void
-Cdc2h(char *ctime, CdTimeType timeType, CdTime *htime)
-{
-/* 	int iyear, imon, iday, ihour, imin; */
-	int ihour, imin;
-	double dsec;
-/* 	long baseYear; */
-
-	switch(timeType){
-	  case CdChron: case CdChronNoLeap: case CdChron360:
-		sscanf(ctime,"%ld/%hd/%hd %d:%d:%lf",&htime->year,&htime->month,
-		       &htime->day,&ihour,&imin,&dsec);
-		htime->hour = (double)ihour + (double)imin/60. + dsec/3600;
-		htime->baseYear = 1970;
-		htime->timeType = timeType;
-		break;
-	  case CdRel: case CdRelNoLeap:
-		sscanf(ctime,"%ld+%ld/%hd/%hd %d:%d:%lf",&htime->baseYear,
-		       &htime->year,&htime->month,&htime->day,&ihour,&imin,&dsec);
-		htime->hour = (double)ihour + (double)imin/60. + dsec/3600;
-		htime->timeType = timeType;
-		break;
-	  case CdClim:
-		sscanf(ctime,"%hd/%hd %d:%d:%lf",&htime->month,&htime->day,
-		       &ihour,&imin,&dsec);
-		htime->hour = (double)ihour + (double)imin/60. + dsec/3600;
-		htime->year = 0;
-		htime->baseYear = 0;
-		htime->timeType = timeType;
-		break;
-	  default:
-		cdError("Invalid time type: %d\n",timeType);
-	}
-	return;
-}
-/* Convert human (structured) time to character time.
- * 
- * Input:
- *   htime = human time
- * 
- * Output:
- *   ctime = character time
- */
-void
-Cdh2c(CdTime *htime, char *ctime)
-{
-
-	int ihour, imin;
-	double dmin, dsec;
-
-	ihour = (int) htime->hour;
-	dmin = (htime->hour - (double)ihour) * 60.0;
-	imin = (int) dmin;
-	dsec = (dmin - (double)imin) * 60.0;
-		
-	switch(htime->timeType){
-	  case CdChron: case CdChronNoLeap: case CdChron360:
-		sprintf(ctime,"%ld/%hd/%hd %d:%d:%.1f",htime->year,htime->month,
-		       htime->day,ihour,imin,dsec);
-		break;
-	  case CdRel: case CdRelNoLeap:
-		sprintf(ctime,"%ld+%ld/%hd/%hd %d:%d:%.1f",htime->baseYear,
-		       htime->year,htime->month,htime->day,ihour,imin,dsec);
-		break;
-	  case CdClim:
-		sprintf(ctime,"%hd/%hd %d:%d:%.1f",htime->month,htime->day,
-		       ihour,imin,dsec);
-		break;
-	  default:
-		cdError("Invalid time type: %d\n",htime->timeType);
-
-	}
-	return;
-}
-/* Convert character time to epochal time (hours since 00 jan 1, 1970)
- * 
- * Input:
- *   ctime    = character time
- *   timeType = time type (e.g. CdChron) as defined in cdms.h
- * 
- * Output:
- *   etime    = epochal time 
- */
-void
-Cdc2e(char *ctime, CdTimeType timeType, double *etime, long *baseYear)
-{
-	CdTime htime;
-	extern void Cdc2h(char *ctime, CdTimeType timeType, CdTime *htime);
-	extern void Cdh2e(CdTime *htime, double *etime);
-
-	Cdc2h(ctime,timeType,&htime);
-	Cdh2e(&htime,etime);
-	*baseYear = htime.baseYear;
-	return;
-}
-/* Convert epochal time (hours since 00 jan 1, 1970) to character time
- * 
- * Input:
- *   etime    = epochal time
- *   timeType = time type, (e.g., CdChron) as defined in cdms.h
- *   baseYear = base year, used for relative time only
- * 
- * Output:
- *   ctime    = character time
- */
-void
-Cde2c(double etime, CdTimeType timeType, long baseYear, char *ctime)
-{
-	CdTime htime;
-	extern void Cde2h(double etime, CdTimeType timeType, long baseYear, CdTime *htime);
-	extern void Cdh2c(CdTime *htime, char *ctime);
-
-	Cde2h(etime,timeType,baseYear,&htime);
-	Cdh2c(&htime,ctime);
-	return;
-}
diff --git a/Src/cmor.c b/Src/cmor.c
deleted file mode 100644
index 9d0a86b..0000000
--- a/Src/cmor.c
+++ /dev/null
@@ -1,3812 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include<sys/stat.h>
-#include "uuid.h"
-#include<unistd.h>
-#include <string.h>
-#include "cmor.h"
-#include <netcdf.h>
-#include <udunits2.h>
-#include <time.h>
-#include <errno.h>
-#include <math.h>
-
-#include <sys/types.h>
-
-
-    /* this is defining NETCDF4 variable if we are using NETCDF3 not used anywhere else*/
-#ifndef NC_NETCDF4
-#define NC_NETCDF4 0
-#define NC_CLASSIC_MODEL 0
-int nc_def_var_deflate(int i,int j,int k,int l, int m) {return 0;};
-int nc_def_var_chunking(int i,int j,int k,size_t *l) {return 0;};
-#endif
-
-
-int USE_NETCDF_4;
-
-int cleanup_varid=-1;
-
-const char CMOR_VALID_CALENDARS[CMOR_N_VALID_CALS][CMOR_MAX_STRING] = { "gregorian","standard", "proleptic_gregorian","noleap","365_day","360_day","julian","none"};
-
-cmor_dataset_def cmor_current_dataset;
-cmor_table_t cmor_tables[CMOR_MAX_TABLES];
-cmor_var_t cmor_vars[CMOR_MAX_VARIABLES];
-cmor_axis_t cmor_axes[CMOR_MAX_AXES];
-cmor_grid_t cmor_grids[CMOR_MAX_GRIDS];
-int CMOR_MODE;
-int CMOR_TABLE;
-int CMOR_VERBOSITY;
-int CMOR_NETCDF_MODE;
-
-int cmor_naxes;
-int cmor_nvars;
-int cmor_ntables;
-int cmor_ngrids;
-
-int cmor_nerrors;
-int cmor_nwarnings;
-
-int did_history = 0;
-
-int CMOR_CREATE_SUBDIRECTORIES = 1;
-
-char cmor_input_path[CMOR_MAX_STRING];
-char cmor_traceback_info[CMOR_MAX_STRING];
-
-void  cmor_check_forcing_validity(int table_id,char *value) {
-  int i,j,n,found=0;
-  char msg[CMOR_MAX_STRING];
-  char astr[CMOR_MAX_STRING];
-  char **bstr;
-
-
-  if (cmor_tables[table_id].nforcings==0) return;
-
-  strcpy(astr,value);
-  for (i=0;i<strlen(astr);i++) {
-    if (astr[i]==',') astr[i]=' ';
-  }
-  cmor_convert_string_to_list(astr,'c',(void **)&bstr,&n);
-  if (n==0) return;
-
-  for (i=0;i<n;i++) {
-    found=0;
-    for(j=0;j<cmor_tables[table_id].nforcings;j++) {
-      if (strcmp(bstr[i],cmor_tables[table_id].forcings[j])==0) {
-	found=1;
-	break;
-      }
-    }
-    if (found==0) {
-      sprintf(msg,"forcing attribute elt %i (%s) is not valid, valid values are:",i,bstr[i]);
-      for(j=0;j<cmor_tables[table_id].nforcings;j++) {
-	strncat(msg," ",CMOR_MAX_STRING);
-	strncat(msg,cmor_tables[table_id].forcings[j],CMOR_MAX_STRING);
-	strncat(msg,",",CMOR_MAX_STRING);
-      }
-      msg[strlen(msg)-1]='\0';
-      cmor_handle_error(msg,CMOR_CRITICAL);
-    }
-  }
-  /* Ok now we need to clean up the memory allocations.... */
-  for (i=0;i<n;i++) {
-    free(bstr[i]);
-  }
-  free(bstr);
-  return;
-}
-
-int cmor_check_expt_id(char *expt_id, int table_id, char *gbl_lng, char *gbl_sht) {
-  int i,j,k,l,m;
-  char msg[CMOR_MAX_STRING];
-  char ctmp[CMOR_MAX_STRING];
-
-  cmor_add_traceback("cmor_check_expt_id");
-
-  j=0;
-  for (i=0;i<=cmor_tables[table_id].nexps;i++) {
-    k=strlen(expt_id);
-    l = strlen(cmor_tables[table_id].expt_ids[i]);
-    m = strlen(cmor_tables[table_id].sht_expt_ids[i]);
-    if ((l>4)&&(k>4)) {
-      strncpy(msg,&cmor_tables[table_id].expt_ids[i][strlen(cmor_tables[table_id].expt_ids[i])-4],4);
-      msg[4]='\0';
-    }
-    else {
-      strcpy(msg,"nope");
-    }
-    if (strcmp(msg,"XXXX")==0) { /* we have one of these weird expt nms thing... */
-      /* ok now we can compare */
-      if ((strncmp(cmor_tables[table_id].expt_ids[i],expt_id,l-4)==0) || 
-	  (strncmp(cmor_tables[table_id].sht_expt_ids[i],expt_id,m-4)==0)) {
-	j=1;
-	l=strlen(cmor_tables[table_id].expt_ids[i]);
-	strncpy(ctmp,cmor_tables[table_id].expt_ids[i],l-4);
-	/* but we need to replace the last 4 char from X to the actual 4 dgits */
-	strncpy(&ctmp[l-4],&expt_id[k-4],4); /* ok the sht_Exp id with the right digits */
-	ctmp[l]='\0';
-	/* Ok and now use this to reset the global attribute */
-	cmor_set_cur_dataset_attribute(gbl_lng,ctmp,0);
-	l=strlen(cmor_tables[table_id].sht_expt_ids[i]);
-	strncpy(ctmp,cmor_tables[table_id].sht_expt_ids[i],l-4);
-	/* but we need to replace the last 4 char from X to the actual 4 dgits */
-	strncpy(&ctmp[l-4],&expt_id[k-4],4); /* ok the sht_Exp id with the right digits */
-	ctmp[l]='\0';
-	/* Ok and now use this to reset the global attribute */
-	cmor_set_cur_dataset_attribute(gbl_sht,ctmp,1);
-	strncpy(expt_id,ctmp,CMOR_MAX_STRING);
-	break;
-      }
-    }
-    else if (strcmp(msg,"DDHH")==0) { /* we have one of these weird expt nms thing... */
-      /* ok now we can compare */
-      if ((strncmp(cmor_tables[table_id].expt_ids[i],expt_id,l-10)==0) || 
-	  (strncmp(cmor_tables[table_id].sht_expt_ids[i],expt_id,m-10)==0)) {
-	j=1;
-	l=strlen(cmor_tables[table_id].expt_ids[i]);
-	strncpy(ctmp,cmor_tables[table_id].expt_ids[i],l-10);
-	/* but we need to replace the last 10 char from X to the actual 10 dgits */
-	strncpy(&ctmp[l-10],&expt_id[k-10],10); /* ok the sht_Exp id with the right digits */
-	ctmp[l]='\0';
-	/* Ok and now use this to reset the global attribute */
-	cmor_set_cur_dataset_attribute(gbl_lng,ctmp,0);
-	l=strlen(cmor_tables[table_id].sht_expt_ids[i]);
-	strncpy(ctmp,cmor_tables[table_id].sht_expt_ids[i],l-4);
-	/* but we need to replace the last 4 char from X to the actual 4 dgits */
-	strncpy(&ctmp[l-10],&expt_id[k-10],10); /* ok the sht_Exp id with the right digits */
-	ctmp[l]='\0';
-	/* Ok and now use this to reset the global attribute */
-	cmor_set_cur_dataset_attribute(gbl_sht,ctmp,1);
-	strncpy(expt_id,ctmp,CMOR_MAX_STRING);
-	break;
-      }
-    }
-    else {
-      if ((strncmp(cmor_tables[table_id].expt_ids[i],expt_id,CMOR_MAX_STRING)==0) 
-	  || (strncmp(cmor_tables[table_id].sht_expt_ids[i],expt_id,CMOR_MAX_STRING)==0) ) {
-	j=1;
-	cmor_set_cur_dataset_attribute(gbl_lng,cmor_tables[table_id].expt_ids[i],0);
-	cmor_set_cur_dataset_attribute(gbl_sht,cmor_tables[table_id].sht_expt_ids[i],1);
-	strncpy(expt_id,cmor_tables[table_id].sht_expt_ids[i],CMOR_MAX_STRING); /* make sure it is the short id */
-	break;
-      }
-    }
-  } 
-  cmor_pop_traceback();
-  if (j==0) return 1;
-  return 0;
-}
-
-
-int strncpytrim(char *out, char *in, int max) {
-  int i,n,j,k;
-  j=0;
-  n=strlen(in);
-  if (n>max)  n=max;
-  while ((in[j]==' ') && (j<n)) {
-    j++;
-  }
-  k=n-1;
-  while ((in[k]==' ') && (k>0)) {
-    k--;
-  }
-  for(i=j;i<=k;i++) {
-    out[i-j]=in[i];
-  }
-  out[i-j]='\0';
-
-  return 0;   
-}
-
-int strncattrim(char *in, char *add, int max) {
-  int i,n,j,n2,k;
-  j=0;
-  n=strlen(add);
-  n2=strlen(in);
-  if (n>max) n=max;
-  while ((add[j]==' ') && (j<n)) {
-    j++;
-  }
-  k=n-1;
-  while ((add[k]==' ') && (k>0)) {
-    k--;
-  }
-  n2=strlen(in);
-  for(i=j;i<=k;i++) {
-    in[n2+i-j]=add[i];
-  }
-  in[n2+i-j]='\0';
-  return 0;   
-}
-
-/* int strcmptrim(char *in1,char *in2) { */
-/*   char tmp1[CMOR_MAX_STRING]; */
-/*   char tmp2[CMOR_MAX_STRING]; */
-/*   strncpytrim(&tmp1,in1,CMOR_MAX_STRING); */
-/*   strncpytrim(&tmp2,in2,CMOR_MAX_STRING); */
-/*   return strcmp(tmp1,tmp2); */
-/* } */
-
-
-int CMOR_HAS_BEEN_SETUP=0;
-ut_system *ut_read=NULL;
-FILE  *output_logfile;
-
-void cmor_is_setup(void){
-  extern int CMOR_HAS_BEEN_SETUP;
-  char msg[CMOR_MAX_STRING];
-  extern void cmor_handle_error(char error_msg[CMOR_MAX_STRING],int level);
-  cmor_add_traceback("cmor_is_setup");
-  if (CMOR_HAS_BEEN_SETUP==0) {
-    snprintf(msg,CMOR_MAX_STRING,"Error you need to run cmor_setup before calling any cmor_function");
-    cmor_handle_error(msg,CMOR_CRITICAL);
-  }
-  cmor_pop_traceback();
-  return;
-}
-
-void cmor_add_traceback(char *name) {
-  char tmp[CMOR_MAX_STRING];
-/*   printf("ok entering traceback for: %i %s\n",strlen(cmor_traceback_info),name); */
-  if (strlen(cmor_traceback_info)==0) {
-    sprintf(cmor_traceback_info,"%s\n",name);
-  }
-  else {
-    sprintf(tmp,"%s\ncalled from: %s",name,cmor_traceback_info);
-    strncpy(cmor_traceback_info,tmp,CMOR_MAX_STRING);
-  }
-  return;
-}
-void cmor_pop_traceback(void) {
-  int i;
-  char tmp[CMOR_MAX_STRING];
-  strcpy(tmp,"");
-/*   printf("ok removing a traceback from ---%i---\n",strlen(cmor_traceback_info)); */
-  for (i=0;i<strlen(cmor_traceback_info);i++) {
-    if (strncmp(&cmor_traceback_info[i],"called from: ",13)==0) {
-/*       printf("ok we have i at: %i and tb at: %s\n",i,cmor_traceback_info); */
-/*       printf("ok we have i at: %i and tb at: %s\n",i,&cmor_traceback_info[i+13]); */
-      strcpy(tmp,&cmor_traceback_info[i+13]);
-      break;
-    }
-  }
-  strcpy(cmor_traceback_info,tmp);
-/*   printf("we are left with: --%i---\n",strlen(cmor_traceback_info)); */
-  return;
-}
-
-int cmor_prep_units(char *uunits, char *cunits, ut_unit **user_units,ut_unit **cmor_units,cv_converter **ut_cmor_converter)
-{
-  extern ut_system *ut_read;
-  char local_unit[CMOR_MAX_STRING];
-  char msg[CMOR_MAX_STRING];
-  extern void cmor_handle_error(char error_msg[CMOR_MAX_STRING],int level);
-  cmor_add_traceback("cmor_prep_units");
-  cmor_is_setup();
-  *cmor_units = ut_parse(ut_read, cunits,UT_ASCII);
-  if (ut_get_status() != UT_SUCCESS ) {
-    snprintf(msg,CMOR_MAX_STRING,"Udunits: analyzing units from cmor (%s)",cunits);
-    cmor_handle_error(msg,CMOR_CRITICAL);
-    cmor_pop_traceback();
-    return 1;
-  }
-  strncpy(local_unit,uunits,CMOR_MAX_STRING);
-  ut_trim(local_unit,UT_ASCII);
-  *user_units = ut_parse(ut_read, local_unit, UT_ASCII);
-  if (ut_get_status() != UT_SUCCESS ) {
-    snprintf(msg,CMOR_MAX_STRING,"Udunits: analyzing units from user (%s)",local_unit);
-    cmor_handle_error(msg,CMOR_CRITICAL);
-    cmor_pop_traceback();
-    return 1;
-  }
-  if (ut_are_convertible(*cmor_units,*user_units)==0 ) {
-    snprintf(msg,CMOR_MAX_STRING,"Udunits: cmor and user units are incompatible: %s and %s",cunits,uunits);
-    cmor_handle_error(msg,CMOR_CRITICAL);
-    cmor_pop_traceback();
-    return 1;
-  }
-  *ut_cmor_converter=ut_get_converter(*user_units,*cmor_units);
-  if (*ut_cmor_converter == NULL) {
-  }
-  if (ut_get_status() != UT_SUCCESS ) {
-    snprintf(msg,CMOR_MAX_STRING,"Udunits: Error getting converter from %s to %s",cunits,local_unit);
-    cmor_handle_error(msg,CMOR_CRITICAL);
-    cmor_pop_traceback();
-    return 1;
-  }
-
-  cmor_pop_traceback();
-  return 0;
-}
-
-int cmor_have_NetCDF4(void) {
-  char version[50];
-  int major;
-  strncpy(version,nc_inq_libvers(),50);
-  sscanf(version,"%1d%*s",&major);
-  if (major!=4) return 1;
-  return 0;
-}
-int cmor_have_NetCDF41min(void) {
-  char version[50];
-  int major,minor;
-  strncpy(version,nc_inq_libvers(),50);
-  sscanf(version,"%1d%*c%1d%*s",&major,&minor);
-  if (major>4) return 0;
-  if (major<4) return 1;
-  if (minor<1) return 1;
-  return 0;
-}
-int cmor_have_NetCDF3(void) {
-  char version[50];
-  int major;
-  strncpy(version,nc_inq_libvers(),50);
-  sscanf(version,"%*c%1d%*s",&major);
-  if (major!=3) return 1;
-  return 0;
-}
-int cmor_have_NetCDF363(void) {
-  char version[50];
-  int major,minor,patch;
-  strncpy(version,nc_inq_libvers(),50);
-  sscanf(version,"%*c%1d%*c%1d%*c%1d%*s",&major,&minor,&patch);
-  if ( (major==3) && (minor==6) && (patch==3)) return 0;
-  return 1;
-}
-
-void cmor_handle_error(char error_msg[CMOR_MAX_STRING],int level)
-{
-  int i,n;
-  char msg[CMOR_MAX_STRING];
-  extern FILE *output_logfile;
-
-  if (output_logfile == NULL) output_logfile = stderr;
-
-  msg[0]='\0';
-  if (CMOR_VERBOSITY!=CMOR_QUIET) {
-    fprintf(output_logfile,"\n");
-  }
-  if (level == CMOR_WARNING) {
-    cmor_nwarnings++; 
-    if (CMOR_VERBOSITY!=CMOR_QUIET) {
-#ifdef COLOREDOUTPUT
-      fprintf (output_logfile,"%c[%d;%dm",0X1B,2,34);
-#endif
-      fprintf (output_logfile,"C Traceback:\nIn function: %s",cmor_traceback_info);
-#ifdef COLOREDOUTPUT
-      fprintf (output_logfile,"%c[%dm",0X1B,0);
-#endif
-    fprintf (output_logfile,"\n\n");
-#ifdef COLOREDOUTPUT
-      fprintf (output_logfile,"%c[%d;%d;%dm",0X1B,1,34,47);
-#endif
-      snprintf (msg,CMOR_MAX_STRING, "! Warning: %s  !",error_msg);
-    }
-  }
-  else {
-    cmor_nerrors++;
-#ifdef COLOREDOUTPUT
-    fprintf (output_logfile,"%c[%d;%d;%dm",0X1B,2,31,47);
-#endif
-    fprintf (output_logfile,"C Traceback:\nIn function: %s",cmor_traceback_info);
-#ifdef COLOREDOUTPUT
-    fprintf (output_logfile,"%c[%dm",0X1B,0);
-#endif
-    fprintf (output_logfile,"\n\n");
-#ifdef COLOREDOUTPUT
-    fprintf (output_logfile,"%c[%d;%d;%dm",0X1B,1,31,47);
-#endif
-    snprintf(msg,CMOR_MAX_STRING,"! Error: %s !",error_msg);
-  }
-  n = strlen(msg);
-  if (CMOR_VERBOSITY!=CMOR_QUIET || level!=CMOR_WARNING) {
-    for( i=0;i<n;i++) fprintf(output_logfile,"!");
-    fprintf(output_logfile,"\n");
-    fprintf(output_logfile,"!");
-    for( i=0;i<n-2;i++) fprintf(output_logfile," ");
-    fprintf(output_logfile,"!\n");
-    fprintf(output_logfile,"%s\n",msg);
-    fprintf(output_logfile,"!");
-    for( i=0;i<n-2;i++) fprintf(output_logfile," ");
-    fprintf(output_logfile,"!\n");
-    for( i=0;i<n;i++) fprintf(output_logfile,"!");
-#ifdef COLOREDOUTPUT
-    fprintf (output_logfile,"%c[%dm",0X1B,0);
-#endif
-    fprintf (output_logfile,"\n\n");
-  }
-  if ((CMOR_MODE == CMOR_EXIT_ON_WARNING) || (level == CMOR_CRITICAL ) ) {
-    //if (cleanup_varid!=-1) remove(cmor_vars[cleanup_varid].current_path);
-    exit(1);
-  }
-}
-
-
-int cmor_convert_char_to_hyphen(char c)
-{
-  if ((c==' ') || (c=='_') || (c=='(') || (c==')') || (c=='.') || 
-      (c==';') || (c==',') || (c=='[') || (c==']') || (c==':') ||
-      (c=='/') || (c=='*') || (c=='?') || (c=='<') || (c=='>') ||
-      (c=='"') || (c=='\'') || (c=='{') || (c=='}') || (c=='&'))
-    return 1;
-  return 0;
-}
-
-void cmor_reset_variable(int var_id) {
-  extern cmor_var_t cmor_vars[];
-  int j;
-  cmor_vars[var_id].self=-1;
-  cmor_vars[var_id].grid_id=-1;
-  cmor_vars[var_id].sign=1;
-  cmor_vars[var_id].zfactor=-1;
-  cmor_vars[var_id].ref_table_id=-1;
-  cmor_vars[var_id].ref_var_id=-1;
-  cmor_vars[var_id].initialized=-1;
-  cmor_vars[var_id].closed=0;
-  cmor_vars[var_id].nc_var_id=-999;
-  for (j=0;j<CMOR_MAX_VARIABLES;j++) cmor_vars[var_id].nc_zfactors[j]=-999;
-  cmor_vars[var_id].nzfactor=0;
-  cmor_vars[var_id].ntimes_written=0;
-  for (j=0;j<10;j++) {
-    cmor_vars[var_id].ntimes_written_coords[j]=-1;
-    cmor_vars[var_id].associated_ids[j]=-1;
-    cmor_vars[var_id].ntimes_written_associated[j]=0;
-  }
-  cmor_vars[var_id].time_nc_id=-999;
-  cmor_vars[var_id].time_bnds_nc_id=-999;
-  cmor_vars[var_id].id[0]='\0';
-  cmor_vars[var_id].ndims=0;
-  for (j=0;j<CMOR_MAX_DIMENSIONS;j++) {
-    cmor_vars[var_id].singleton_ids[j]=-1; /* place holder for singleton axes ids */
-    cmor_vars[var_id].axes_ids[j]=-1; /* place holder for singleton axes ids */
-    cmor_vars[var_id].original_order[j]=-1; /* place holder for singleton axes ids */
-  }
-  for (j=0;j<CMOR_MAX_ATTRIBUTES;j++) {
-    cmor_vars[var_id].attributes_values_char[j][0]='\0';
-    cmor_vars[var_id].attributes_values_num[j]=-999.;
-    cmor_vars[var_id].attributes_type[j]='\0';
-    cmor_vars[var_id].attributes[j][0]='\0';
-  }
-  cmor_vars[var_id].nattributes=0;
-  cmor_vars[var_id].type='\0';
-  cmor_vars[var_id].itype='N';
-  cmor_vars[var_id].missing=1.e20;
-  cmor_vars[var_id].omissing=1.e20;
-  cmor_vars[var_id].tolerance=1.e-4;
-  cmor_vars[var_id].valid_min=1.e20;
-  cmor_vars[var_id].valid_max=1.e20;
-  cmor_vars[var_id].ok_min_mean_abs=1.e20;
-  cmor_vars[var_id].ok_max_mean_abs=1.e20;
-  cmor_vars[var_id].shuffle=0;
-  cmor_vars[var_id].deflate=1;
-  cmor_vars[var_id].deflate_level=1;
-  cmor_vars[var_id].nomissing=1;
-  cmor_vars[var_id].iunits[0]='\0';
-  cmor_vars[var_id].ounits[0]='\0';
-  cmor_vars[var_id].isbounds=0;
-  cmor_vars[var_id].needsinit=1;
-  cmor_vars[var_id].zaxis=-1;
-  if (cmor_vars[var_id].values != NULL) free(cmor_vars[var_id].values);
-  cmor_vars[var_id].values = NULL;
-  cmor_vars[var_id].first_time=-999.;
-  cmor_vars[var_id].last_time=-999.;
-  /* cmor_vars[var_id].first_bound=1.e20; */
-  /* cmor_vars[var_id].last_bound=1.e20; */
-  cmor_vars[var_id].base_path[0]='\0';
-  cmor_vars[var_id].current_path[0]='\0';
-  cmor_vars[var_id].suffix[0]='\0';
-  cmor_vars[var_id].suffix_has_date=0;
-}
-
-int cmor_setup(char *path,int *netcdf, int *verbosity, int *mode, char *logfile, int *create_subdirectories)
-{
-  extern cmor_axis_t cmor_axes[];
-  extern int CMOR_TABLE,cmor_ntables;
-  extern ut_system *ut_read;
-  ut_unit *dimlessunit=NULL,*perunit=NULL,*newequnit=NULL;
-  ut_status myutstatus;
-  extern cmor_dataset_def cmor_current_dataset;
-  int i,j,ierr;
-  char msg[CMOR_MAX_STRING];
-  char msg2[CMOR_MAX_STRING];
-  char tmplogfile[CMOR_MAX_STRING];
-  uuid_t *myuuid;
-  uuid_fmt_t fmt;
-  void *myuuid_str=NULL;
-  size_t uuidlen;
-  struct stat buf;
-  time_t lt;
-  struct tm *ptr;
-  extern FILE *output_logfile;
-  extern int did_history;
-
-  strcpy(cmor_traceback_info,"");
-  cmor_add_traceback("cmor_setup");
-
-  /* ok we need to know if we are using NC3 or 4 */
-  USE_NETCDF_4 = -1;
-  if (cmor_have_NetCDF3()==0) {
-    USE_NETCDF_4 = 0;
-    /* Now we need to make sure it's 3.6.3 */
-    if (cmor_have_NetCDF363()!=0) {
-      sprintf(msg,"You are using an older version of NetCDF3 (%s), you need 3.6.3",nc_inq_libvers());
-      cmor_handle_error(msg,CMOR_CRITICAL);
-    }
-  }
-  else if (cmor_have_NetCDF4()==0) {
-    USE_NETCDF_4 = 1;
-    if (cmor_have_NetCDF41min()!=0) {
-      sprintf(msg,"You are using a wrong version of NetCDF4 (%s), you need 4.1",nc_inq_libvers());
-      cmor_handle_error(msg,CMOR_CRITICAL);
-    }
-  }
-  else {
-    sprintf(msg,"You are using a wrong version of NetCDF (%s), you need 3.6.3 or 4.1",nc_inq_libvers());
-    cmor_handle_error(msg,CMOR_CRITICAL);
-  }
-
-  did_history=0;
-  CMOR_HAS_BEEN_SETUP=1;
-  CMOR_TABLE=-1;
-  cmor_ngrids=-1;
-  cmor_nvars=-1;
-  cmor_naxes=-1;
-  cmor_ntables=-1;
-  cmor_nerrors = 0 ;
-  cmor_nwarnings = 0 ;
-  if (logfile==NULL) {
-    output_logfile = NULL;
-  }
-  else {
-#ifdef COLOREDOUTPUT
-#undef COLOREDOUTPUT
-#endif
-    cmor_trim_string(logfile,tmplogfile);
-/*     printf("got in : -%s-\n",logfile); */
-/*     printf("got out: -%s-\n",tmplogfile); */
-    output_logfile = NULL;
-    output_logfile = fopen(tmplogfile,"r");
-    if (output_logfile!=NULL) {
-      /* logfile already exists need to rename it */
-      /* Figure out the time */
-      stat(tmplogfile,&buf);
-      lt = buf.st_ctime;
-      ptr = localtime(&lt);
-      snprintf(msg,CMOR_MAX_STRING,"%s_%.4i-%.2i-%.2iT%.2i:%.2i:%.2i",tmplogfile,ptr->tm_year+1900,ptr->tm_mon+1,ptr->tm_mday,ptr->tm_hour,ptr->tm_min,ptr->tm_sec);
-      fclose(output_logfile);
-      rename(tmplogfile,msg);
-      snprintf(msg2,CMOR_MAX_STRING,"Logfile %s already existed. Renamed to: %s",tmplogfile,msg);
-      output_logfile = NULL;
-      output_logfile = fopen(tmplogfile,"w");
-      if (output_logfile == NULL) {
-	snprintf(msg2,CMOR_MAX_STRING,"Could not open logfile %s for writing", tmplogfile);
-	cmor_handle_error(msg2,CMOR_CRITICAL);
-      }
-      cmor_handle_error(msg2,CMOR_WARNING);
-    }
-    else {
-      output_logfile = fopen(tmplogfile,"w");
-      if (output_logfile == NULL) {
-	snprintf(msg2,CMOR_MAX_STRING,"Could not open logfile %s for writing", tmplogfile);
-	cmor_handle_error(msg2,CMOR_CRITICAL);
-      }
-    }
-  }
-
-  if (mode==NULL) {
-    CMOR_MODE=CMOR_NORMAL;
-  }
-  else {
-    if (*mode!=CMOR_EXIT_ON_WARNING && *mode!=CMOR_EXIT_ON_MAJOR && *mode!=CMOR_NORMAL ) {
-      snprintf(msg,CMOR_MAX_STRING,"exit mode can be either CMOR_EXIT_ON_WARNING CMOR_NORMAL or CMOR_EXIT_ON_MAJOR");
-      cmor_handle_error(msg,CMOR_CRITICAL);
-    }
-    CMOR_MODE=*mode;
-  }
-  if (verbosity==NULL) {
-    CMOR_VERBOSITY = CMOR_NORMAL;
-  }
-  else {
-    if (*verbosity!=CMOR_QUIET && *verbosity!=CMOR_NORMAL ) {
-      snprintf(msg,CMOR_MAX_STRING,"verbosity mode can be either CMOR_QUIET or CMOR_NORMAL");
-      cmor_handle_error(msg,CMOR_NORMAL);
-    }
-    CMOR_VERBOSITY=*verbosity;
-  }
-  if (netcdf == NULL) {
-    CMOR_NETCDF_MODE = CMOR_PRESERVE;
-  }
-  else {
-    if (*netcdf!=CMOR_PRESERVE_4 && *netcdf!=CMOR_APPEND_4 && *netcdf!=CMOR_REPLACE_4 && *netcdf!=CMOR_PRESERVE_3 && *netcdf!=CMOR_APPEND_3 && *netcdf!=CMOR_REPLACE_3) {
-      snprintf(msg,CMOR_MAX_STRING,"file mode can be either CMOR_PRESERVE, CMOR_APPEND, CMOR_REPLACE, CMOR_PRESERVE_4, CMOR_APPEND_4, CMOR_REPLACE_4, CMOR_PRESERVE_3, CMOR_APPEND_3 or CMOR_REPLACE_3");
-      cmor_handle_error(msg,CMOR_CRITICAL);
-    }
-    CMOR_NETCDF_MODE = *netcdf;
-  }
-
-  /* Make sure we are not trying to use NETCDF4 mode while linked against NetCDF3 */
-  if (((CMOR_NETCDF_MODE==CMOR_PRESERVE_4)||(CMOR_NETCDF_MODE==CMOR_REPLACE_4)||(CMOR_NETCDF_MODE==CMOR_APPEND_4)) && (USE_NETCDF_4==0)) {
-    sprintf(msg,"You are trying to use a NetCDF4 mode but linked against NetCDF3 libraries");
-    cmor_handle_error(msg,CMOR_CRITICAL);
-  }
-
-
-  if ((path == NULL) || (strcmp(path,"")==0 )) {
-    strncpy(cmor_input_path,".",CMOR_MAX_STRING);
-  }
-  else {
-    strncpytrim(cmor_input_path,path,CMOR_MAX_STRING);
-  }
-  for (i=0;i<CMOR_MAX_VARIABLES;i++) {
-    cmor_reset_variable(i);
-  }
-
-  for (i=0;i<CMOR_MAX_AXES;i++) {
-    cmor_axes[i].ref_table_id=-1;
-    cmor_axes[i].ref_axis_id=-1;
-    cmor_axes[i].isgridaxis=-1;
-    cmor_axes[i].axis='\0';
-    cmor_axes[i].iunits[0]='\0';
-    cmor_axes[i].id[0]='\0';
-    if (cmor_axes[i].values != NULL) free(cmor_axes[i].values);
-    cmor_axes[i].values = NULL;
-    if (cmor_axes[i].bounds != NULL) free(cmor_axes[i].bounds);
-    cmor_axes[i].bounds = NULL;
-    if (cmor_axes[i].cvalues != NULL) {
-      for (j=0;j<cmor_axes[i].length;j++) {
-	if (cmor_axes[i].cvalues[j]!=NULL) {
-	  free(cmor_axes[i].cvalues[j]);
-	  cmor_axes[i].cvalues[j]=NULL;
-	}
-      }
-      free(cmor_axes[i].cvalues);
-    }
-    cmor_axes[i].cvalues = NULL;
-    cmor_axes[i].length=0;
-    cmor_axes[i].revert=1; /* 1 means no reverse -1 means reverse */
-    cmor_axes[i].offset=0;
-    cmor_axes[i].type='\0';
-    for (j=0;j<CMOR_MAX_ATTRIBUTES;j++) {
-      cmor_axes[i].attributes_values_char[j][0]='\0'; 
-      cmor_axes[i].attributes_values_num[j]=-999.; 
-      cmor_axes[i].attributes_type[j]='\0'; 
-      cmor_axes[i].attributes[j][0]='\0'; 
-    }
-    cmor_axes[i].nattributes=0;
-    cmor_axes[i].hybrid_in=0;
-    cmor_axes[i].hybrid_out=0;
-    cmor_axes[i].store_in_netcdf = 1;
-    ierr = cmor_set_axis_attribute(i,"units",'c',"");
-    ierr = cmor_set_axis_attribute(i,"interval",'c',"");
-  }
-
-  if (create_subdirectories != NULL) {
-    CMOR_CREATE_SUBDIRECTORIES = *create_subdirectories;
-  }
-
-  if ((CMOR_CREATE_SUBDIRECTORIES!=1) && (CMOR_CREATE_SUBDIRECTORIES!=0)) {
-    snprintf(msg,CMOR_MAX_STRING,"cmor_setup: create_subdirectories must be 0 or 1");
-    cmor_handle_error(msg,CMOR_CRITICAL);
-  }
-
-  /* initialize the udunits */
-  /*   printf("ok init utread\n"); */
-  if (ut_read!=NULL) {
-    ut_free_system(ut_read);
-  }
-  ut_read = ut_read_xml(NULL);
-  if (ut_get_status() != UT_SUCCESS) {
-    snprintf(msg,CMOR_MAX_STRING,"Udunits: Error reading units system");
-    cmor_handle_error(msg,CMOR_CRITICAL);
-  }
-  if (newequnit!= NULL) ut_free(newequnit);
-  newequnit = ut_new_base_unit(ut_read);
-  if (ut_get_status() != UT_SUCCESS) {
-    snprintf(msg,CMOR_MAX_STRING,"Udunits: creating dimlessnew base unit");
-    cmor_handle_error(msg,CMOR_CRITICAL);
-  }
-  myutstatus = ut_map_name_to_unit("eq",UT_ASCII,newequnit);
-  if (myutstatus != UT_SUCCESS) {
-    snprintf(msg,CMOR_MAX_STRING,"Udunits: Error mapping dimless 'eq' unit");
-    cmor_handle_error(msg,CMOR_CRITICAL);
-  }
-  if (dimlessunit!= NULL) ut_free(dimlessunit);
-  dimlessunit = ut_new_dimensionless_unit(ut_read);
-  if (ut_get_status() != UT_SUCCESS) {
-    snprintf(msg,CMOR_MAX_STRING,"Udunits: creating dimless unit");
-    cmor_handle_error(msg,CMOR_CRITICAL);
-  }
-  myutstatus = ut_map_name_to_unit("dimless",UT_ASCII,dimlessunit);
-  if (myutstatus != UT_SUCCESS) {
-    snprintf(msg,CMOR_MAX_STRING,"Udunits: Error mapping dimless unit");
-    cmor_handle_error(msg,CMOR_CRITICAL);
-  }
-  if (perunit!=NULL) ut_free(perunit);
-  perunit = ut_scale(.01,dimlessunit);
-  if (myutstatus != UT_SUCCESS) {
-    snprintf(msg,CMOR_MAX_STRING,"Udunits: Error creating percent unit");
-    cmor_handle_error(msg,CMOR_CRITICAL);
-  }
-  myutstatus = ut_map_name_to_unit("%",UT_ASCII,perunit);
-  if (myutstatus != UT_SUCCESS) {
-    snprintf(msg,CMOR_MAX_STRING,"Udunits: Error mapping percent unit");
-    cmor_handle_error(msg,CMOR_CRITICAL);
-  }
-  /* initialized dataset */
-  for (i=0;i<CMOR_MAX_ELEMENTS;i++) {
-    cmor_current_dataset.attributes_names[i][0]='\0';
-    cmor_current_dataset.attributes_values[i][0]='\0';
-  }
-  cmor_current_dataset.nattributes=0;
-  cmor_current_dataset.realization=0;
-  cmor_current_dataset.leap_year=0;
-  cmor_current_dataset.leap_month=0;
-  cmor_current_dataset.associate_file=0;
-  cmor_current_dataset.associated_file=-1;
-  /* generates a unique id */
-  uuid_create(&myuuid);
-  uuid_make(myuuid,4);
-  myuuid_str = NULL;
-  fmt = UUID_FMT_STR;
-  uuid_export(myuuid,fmt,&myuuid_str,&uuidlen);
-  strncpy(cmor_current_dataset.tracking_id,(char *)myuuid_str,CMOR_MAX_STRING);
-  free(myuuid_str);
-  uuid_destroy(myuuid);
-  strncpy(cmor_current_dataset.associated_file_name,"",CMOR_MAX_STRING);
-  for (i=0;i<12;i++) cmor_current_dataset.month_lengths[i]=0;
-  cmor_current_dataset.initiated=0;
-
-  for (i=0;i<CMOR_MAX_GRIDS;i++) {
-    strncpy(cmor_grids[i].mapping,"",CMOR_MAX_STRING);
-    cmor_grids[i].ndims=0;
-    cmor_grids[i].nattributes=0;
-    for(j=0;j<CMOR_MAX_GRID_ATTRIBUTES;j++) {
-      cmor_grids[i].attributes_values[j]=1.e20;
-      cmor_grids[i].attributes_names[j][0]='\0';
-    }
-
-    if (cmor_grids[i].lats!=NULL) free(cmor_grids[i].lats);
-    if (cmor_grids[i].lons!=NULL) free(cmor_grids[i].lons);
-    if (cmor_grids[i].blats!=NULL) free(cmor_grids[i].blats);
-    if (cmor_grids[i].blons!=NULL) free(cmor_grids[i].blons);
-/*     if (cmor_grids[i].area!=NULL) free(cmor_grids[i].area); */
-
-    cmor_grids[i].lats  = NULL;
-    cmor_grids[i].lons  = NULL;
-    cmor_grids[i].blats = NULL;
-    cmor_grids[i].blons = NULL;
-/*     cmor_grids[i].area  = NULL; */
-
-    cmor_grids[i].istimevarying=0;
-    cmor_grids[i].nvertices=0;
-
-    for (j=0;j<6;j++) cmor_grids[i].associated_variables[j]=-1;
-  }
-  cmor_pop_traceback();
-  return 0;
-}
-
-int cmor_put_nc_num_attribute(int ncid,int nc_var_id,char *name, char type, double value, char *var_name) {
-  char msg[CMOR_MAX_STRING];
-  int ierr;
-  cmor_add_traceback("cmor_put_nc_num_attribute");
-  ierr = 0;
-  if (type == 'i') {
-    ierr = nc_put_att_double(ncid,nc_var_id,name,NC_INT,1,&value);
-  }
-  else if (type == 'l') {
-    ierr = nc_put_att_double(ncid,nc_var_id,name,NC_INT,1,&value);
-  }
-  else if (type == 'f') {
-    ierr = nc_put_att_double(ncid,nc_var_id,name,NC_FLOAT,1,&value);
-  }
-  else if (type == 'd') {
-    ierr = nc_put_att_double(ncid,nc_var_id,name,NC_DOUBLE,1,&value);
-  }
-  if (ierr != NC_NOERR) {
-    snprintf(msg,CMOR_MAX_STRING,"NetCDF Error (%i) setting numerical attribute %s on variable (%s)",ierr,name,var_name);
-    cmor_handle_error(msg,CMOR_CRITICAL);
-  }
-  cmor_pop_traceback();
-  return ierr;
-}
-int cmor_put_nc_char_attribute(int ncid,int nc_var_id,char *name,char *value,char *var_name) {
-  int  k,ierr;
-  char msg[CMOR_MAX_STRING];
-  ierr=0;
-  cmor_add_traceback("cmor_put_nc_char_attribute");
-  k = strlen(value);
-  if (k!=0) {
-    value[k]='\0';
-    ierr = nc_put_att_text(ncid,nc_var_id,name,k+1,value);
-    if (ierr != NC_NOERR) {
-    snprintf(msg,CMOR_MAX_STRING,"NetCDF Error (%i) setting attribute: '%s' on variable (%s)",ierr,name,var_name);
-    cmor_handle_error(msg,CMOR_CRITICAL);
-    }
-  }
-  cmor_pop_traceback();
-  return ierr;
-}
-
-int cmor_set_cur_dataset_attribute(char *name, char *value, int optional) {
-  int i,n;
-  char msg[CMOR_MAX_STRING];
-  extern cmor_dataset_def cmor_current_dataset;
-  cmor_add_traceback("cmor_set_cur_dataset_attribute");
-  cmor_is_setup();
-  cmor_trim_string(value,msg);
-  if (strlen(name)>CMOR_MAX_STRING) {
-    snprintf(msg,CMOR_MAX_STRING,"CMOR Dataset error, %s length is greater than limit: %i", name, CMOR_MAX_STRING);
-    cmor_handle_error(msg,CMOR_NORMAL);
-    cmor_pop_traceback();
-    return 1;
-  }
-  if ((value==NULL) || (msg[0]=='\0')) {
-    if (optional==1) {
-      cmor_pop_traceback();
-      return 0;
-    }
-    else {
-      snprintf(msg,CMOR_MAX_STRING,"CMOR Dataset error, required attribute %s was not passed or blanked", name);
-      cmor_handle_error(msg,CMOR_CRITICAL);
-      cmor_pop_traceback();
-      return 1;
-    }
-  }
-  cmor_trim_string(name,msg);
-  n = cmor_current_dataset.nattributes;
-  for (i=0;i<=cmor_current_dataset.nattributes;i++) { 
-    if (strcmp(msg,cmor_current_dataset.attributes_names[i])==0) {
-      n=i;
-      cmor_current_dataset.nattributes-=1;
-      break;
-    }
-  }
-  if (n>=CMOR_MAX_ATTRIBUTES) {
-    sprintf(msg,"Setting dataset attribute: %s, we already have %i elts set which is the max, won't be set",name,CMOR_MAX_ELEMENTS);
-    cmor_handle_error(msg,CMOR_NORMAL);
-    cmor_pop_traceback();
-    return 1;
-  }
-  strncpy(cmor_current_dataset.attributes_names[n],msg,CMOR_MAX_STRING);
-  cmor_trim_string(value,msg);
-  strncpytrim(cmor_current_dataset.attributes_values[n],msg,CMOR_MAX_STRING);
-  cmor_current_dataset.nattributes+=1;
-  cmor_pop_traceback();
-  return 0;
-}
-int cmor_get_cur_dataset_attribute(char *name, char *value) {
-  int i,n;
-  char msg[CMOR_MAX_STRING];
-  extern cmor_dataset_def cmor_current_dataset;
-  cmor_add_traceback("cmor_get_cur_dataset_attribute");
-  cmor_is_setup();
-  if (strlen(name)>CMOR_MAX_STRING) {
-    snprintf(msg,CMOR_MAX_STRING,"CMOR Dataset: %s length is greater than limit: %i", name, CMOR_MAX_STRING);
-    cmor_handle_error(msg,CMOR_NORMAL);
-    cmor_pop_traceback();
-    return 1;
-  }
-  n = -1;
-  for (i=0;i<=cmor_current_dataset.nattributes;i++) { 
-    if (strcmp(name,cmor_current_dataset.attributes_names[i])==0) n=i;
-  }
-  if (n==-1) {
-    snprintf(msg,CMOR_MAX_STRING,"CMOR Dataset: current dataset does not have attribute : %s",name);
-    cmor_handle_error(msg,CMOR_NORMAL);
-    cmor_pop_traceback();
-    return 1;
-  }
-  strncpy(value,cmor_current_dataset.attributes_values[n],CMOR_MAX_STRING);
-  cmor_pop_traceback();
-  return 0;
-}
-void cmor_has_required_global_attributes(int table_id) {
-  int i,j,n,found;
-  char msg[CMOR_MAX_STRING];
-  char msg2[CMOR_MAX_STRING];
-  char ctmp[CMOR_MAX_STRING];
-  char expt_id[CMOR_MAX_STRING];
-  cmor_add_traceback("cmor_has_required_global_attributes");
-  if (cmor_tables[table_id].required_gbl_att[0]=='\0') {
-    cmor_pop_traceback();
-    return; /* not required */
-  }
-  cmor_get_cur_dataset_attribute("experiment_id",expt_id);
-  /* ok we want to make sure it is the sht id */
-  for (j=0;j<=cmor_tables[table_id].nexps;j++) {
-    if (strcmp(expt_id,cmor_tables[table_id].expt_ids[j])==0) {
-      strncpy(expt_id,cmor_tables[table_id].sht_expt_ids[j],CMOR_MAX_STRING);
-      break;
-    }
-  }
-
-
-  n =strlen(cmor_tables[table_id].required_gbl_att);
-
-  msg[0]='\0';
-  j=0;
-  i=0;
-  msg2[0]='\0';
-  while (i<n) {
-    while((cmor_tables[table_id].required_gbl_att[i]!=' ') && (cmor_tables[table_id].required_gbl_att[i]!='\0'))  {
-      msg[j]=cmor_tables[table_id].required_gbl_att[i];
-      msg[j+1]='\0';
-      j++;
-      i++;
-    }
-    i++;
-    found = 0 ;
-    /* for (j=0;j<=cmor_tables[table_id].nexps;j++) { */
-    /*   if (strcmp(msg,cmor_tables[table_id].sht_expt_ids[j])==0) { */
-    /* 	found = 1; */
-    /* 	break; */
-    /*   } */
-    /* } */
-
-    for (j=0;j<cmor_current_dataset.nattributes;j++) {
-      if (strcmp(msg,cmor_current_dataset.attributes_names[j])==0) {
-	cmor_get_cur_dataset_attribute(msg,ctmp);
-	if (strcmp(ctmp,"not specified")!=0) {
-	  found = 1;
-	  break;
-	}
-      }
-    }
-    /* if (found == 0) { /\* now we check if it was actually required for this exp *\/ */
-    /*   found = 1; */
-    /*   for (j=0;j<=cmor_tables[table_id].nexps;j++) { */
-    /* 	/\* msg2 is the previous keyword, i.e possible the sht_expt_id *\/ */
-    /* 	if (strcmp(msg2,expt_id)==0) { */
-    /* 	  /\* it is a match, therefore it WAS indeed required for this dataset *\/ */
-    /* 	  found = 0; */
-    /* 	  break; */
-    /* 	} */
-    /*   } */
-    /* } */
-    if (found == 0) {
-      snprintf(ctmp,CMOR_MAX_STRING,"Required global attribute %s is missing please check call to cmor_dataset",msg);
-      cmor_handle_error(ctmp,CMOR_CRITICAL);
-    }
-    strncpy(msg2,msg,CMOR_MAX_STRING);
-    j=0;
-  }
-  cmor_pop_traceback();
-  return;
-}
-
-int cmor_is_required_global_attribute(char *name, int table_id) {
-  int i,j,n,req;
-  char msg[CMOR_MAX_STRING];
-  cmor_add_traceback("cmor_is_required_global_attribute");
-  if (cmor_tables[table_id].required_gbl_att[0]=='\0') {
-    cmor_pop_traceback();
-    return 1; /* not required */
-  }
-
-  n =strlen(cmor_tables[table_id].required_gbl_att);
-
-  msg[0]='\0';
-  i=0;
-  j=0;
-  req = 1;
-  while (i<n) {
-    while((cmor_tables[table_id].required_gbl_att[i]!=' ')&&(cmor_tables[table_id].required_gbl_att[i]!='\0'))  {
-      msg[j]=cmor_tables[table_id].required_gbl_att[i];
-      msg[j+1]='\0';
-      j++;
-      i++;
-    }
-    i++;
-    j=0;
-    if (strcmp(msg,name)==0) {
-      req = 0;
-      i=n;
-    }
-  }
-  cmor_pop_traceback();
-  return req;
-}
-
-int cmor_has_cur_dataset_attribute(char *name) {
-  int i,n;
-  char msg[CMOR_MAX_STRING];
-  extern cmor_dataset_def cmor_current_dataset;
-  cmor_add_traceback("cmor_has_cur_dataset_attribute");
-  cmor_is_setup();
-  if (strlen(name)>CMOR_MAX_STRING) {
-    snprintf(msg,CMOR_MAX_STRING,"CMOR Dataset: %s length is greater than limit: %i", name, CMOR_MAX_STRING);
-    cmor_handle_error(msg,CMOR_NORMAL);
-    cmor_pop_traceback();
-    return 1;
-  }
-  n = -1;
-  for (i=0;i<=cmor_current_dataset.nattributes;i++) { 
-    if (strcmp(name,cmor_current_dataset.attributes_names[i])==0) n=i;
-  }
-  if (n==-1) {
-    cmor_pop_traceback();
-    return 1;
-  }
-  cmor_pop_traceback();
-  return 0;
-}
-
-int cmor_dataset(char *outpath, 
-		 char *experiment_id,
-		 char *institution, 
-		 char *source,   
-		 char *calendar, 
-		 int realization, 
-		 char *contact, 
-		 char *history, 
-		 char *comment, 
-		 char *references,	 
-		 int leap_year, 
-		 int leap_month, 
-		 int month_lengths[12],
-		 char *model_id,
-		 char *forcing,
-		 int initialization_method,
-		 int physics_version,
-		 char *institute_id,
-		 char *parent_experiment_id,
-		 double *branch_time)
-{
-  extern cmor_dataset_def cmor_current_dataset;
-  char msg[CMOR_MAX_STRING];
-  int i,found;
-  struct stat buf;
-
-  cmor_add_traceback("cmor_dataset");
-  cmor_is_setup();
-  strncpytrim(cmor_current_dataset.outpath,outpath,CMOR_MAX_STRING);
-  cmor_set_cur_dataset_attribute("institution",institution,0);
-
-  /* Very first thing is to make sure the output path does exist */
-  if (stat(cmor_current_dataset.outpath,&buf)==0) {
-    if (S_ISREG(buf.st_mode)!=0) {
-      sprintf(msg,"You defined your output directory to be: '%s', but it appears to be a regular file not a directory",cmor_current_dataset.outpath);
-      cmor_handle_error(msg,CMOR_CRITICAL);
-    }
-    else if (S_ISDIR(buf.st_mode)==0) {
-      sprintf(msg,"You defined your output directory to be: '%s', but it appears to be a special file not a directory",cmor_current_dataset.outpath);
-      cmor_handle_error(msg,CMOR_CRITICAL);
-    }
-    /* ok if not root then test permssions */
-    if (getuid()!=0) {
-      if (buf.st_uid == getuid()) {
-	if (!((buf.st_mode & S_IRUSR) && (buf.st_mode & S_IWUSR))) {
-	  sprintf(msg,"You defined your output directory to be: '%s', but you do not have read/write permissions on it",cmor_current_dataset.outpath);
-	  cmor_handle_error(msg,CMOR_CRITICAL);
-	}
-      }
-      else if (buf.st_gid == getgid()) {
-	if (!((buf.st_mode & S_IRGRP) && (buf.st_mode & S_IWGRP))) {
-	  sprintf(msg,"You defined your output directory to be: '%s', but you do not have read/write permissions on it",cmor_current_dataset.outpath);
-	  cmor_handle_error(msg,CMOR_CRITICAL);
-	}
-      } else if (!((buf.st_mode & S_IROTH) && (buf.st_mode & S_IWOTH))) {
-	sprintf(msg,"You defined your output directory to be: '%s', but you do not have read/write permissions on it",cmor_current_dataset.outpath);
-	cmor_handle_error(msg,CMOR_CRITICAL);
-      }
-      /* /\* Ok now we need to see if we can read/write/access the directory *\/ */
-      /* if (buf.st_uid == getuid()) { */
-      /*   /\* ok user is owner of the directory *\/ */
-      /*   printf("ok you own it, flag is: %i\n */
-    }
-  }
-  else if (errno == ENOENT) {
-    sprintf(msg,"You defined your output directory to be: '%s', but this directory does not exist",cmor_current_dataset.outpath);
-    cmor_handle_error(msg,CMOR_CRITICAL);
-  }
-  else if (errno == EACCES ) {
-    sprintf(msg,"You defined your output directory to be: '%s', but we cannot access it, please check permissions",cmor_current_dataset.outpath);
-    cmor_handle_error(msg,CMOR_CRITICAL);
-  }
-
-  /* just to be sure initialize the dataset institude_id" */
-  if (institute_id!=NULL) {
-    cmor_trim_string(institute_id,msg);
-    if (strcmp(msg,"")==0) {
-      strcpy(msg,"not specified");
-    }
-  }
-  else {
-    strcpy(msg,"not specified");
-  }
-  cmor_set_cur_dataset_attribute("institute_id",msg,1);
-
-  cmor_set_cur_dataset_attribute("experiment_id",experiment_id,1);
-
-  /* ok we need to check it is a valid experiment have to do it at cmor_write time though*/
-  cmor_set_cur_dataset_attribute("source",source,0);  
-  cmor_set_cur_dataset_attribute("calendar",calendar,0);
-  cmor_set_cur_dataset_attribute("model_id",model_id,1);
-  cmor_set_cur_dataset_attribute("forcing",forcing,1);
-  cmor_set_cur_dataset_attribute("parent_experiment_id",parent_experiment_id,1);
-  if (branch_time == NULL) {
-    if (cmor_is_required_global_attribute("branch_time",CMOR_TABLE)==0) {
-      sprintf(msg,"You did not provide required attribute: branch_time");
-      cmor_handle_error(msg,CMOR_CRITICAL);
-    }
-  }
-  else {
-    sprintf(msg,"%lf",*branch_time);
-    cmor_set_cur_dataset_attribute("branch_time",msg,1);
-  }
-
-  /* check if calendar is actually valid! */
-  found=0;
-  for (i=0;i<CMOR_N_VALID_CALS;i++) {
-    strncpytrim(msg,calendar,CMOR_MAX_STRING);
-    if (strcmp(msg,CMOR_VALID_CALENDARS[i])==0) found=1;
-  }
-  if ((month_lengths!=NULL) || (leap_year!=0) || (leap_month!=0)) {
-    /* user passed calendar definitions */
-    if (found == 1 ) {
-    snprintf(msg,CMOR_MAX_STRING,"CMOR_DATASET: you passed calendar: %s therefore we will ignore any user defined value you also set for month_lentgths and leap_months", calendar);
-    cmor_handle_error(msg,CMOR_WARNING);
-    }
-    else {
-      if (strcmp(calendar,"non_standard")!=0) {
-	snprintf(msg,CMOR_MAX_STRING,"CMOR_DATASET: You defined a non_standard calendar, its name should be: 'non_standard', you passed: '%s'",calendar);
-	cmor_handle_error(msg,CMOR_CRITICAL);
-      }
-      /* dealing with user specified calendar */
-      if (month_lengths!=NULL) {
-	/* user defined months length */
-	for (i=0;i<12;i++) {
-	  if ((month_lengths[i]>50)||(month_lengths[i]<20)) {
-	    snprintf(msg,CMOR_MAX_STRING,"CMOR_DATASET: month_lengths must be between 20 and 50, index %i has value %i",i,month_lengths[i]);
-	    cmor_handle_error(msg,CMOR_WARNING);
-	  }
-	  cmor_current_dataset.month_lengths[i]=month_lengths[i];
-	}
-      }
-      if (leap_year!=0) {
-	if ((leap_month>12) || (leap_month<1)) {
-	  snprintf(msg,CMOR_MAX_STRING,"CMOR_DATASET: user defined a leap_year (%i), but an invalid corresponding leap_month (%i)",leap_year,leap_month) ;
-	  cmor_handle_error(msg,CMOR_CRITICAL);
-	  cmor_pop_traceback();
-	  return 1;
-	}
-	cmor_current_dataset.leap_year = leap_year;
-	cmor_current_dataset.leap_month = leap_month;
-      }
-      else {
-	if (leap_month!=0) {
-	  /* user defined a leap_month */
-	  if ((leap_month>12) || (leap_month<1)) {
-	    snprintf(msg,CMOR_MAX_STRING,"CMOR_DATASET: user defined an invalid leap_month (%i)",leap_month) ;
-	    cmor_handle_error(msg,CMOR_CRITICAL);
-	    cmor_pop_traceback();
-	    return 1;
-	  }
-	  /* ok here we have valid defined leap_month but no leap year */
-	  snprintf(msg,CMOR_MAX_STRING,"CMOR_DATASET: user defined a leap_month (%i), but no corresponding leap_year",leap_month) ;
-	  cmor_handle_error(msg,CMOR_CRITICAL);
-	  cmor_pop_traceback();
-	  return 1;
-	}
-      }
-    }
-  }
-  else if (found==0) {
-    snprintf(msg,CMOR_MAX_STRING,"Unknown calendar: %s (calendar are case sensitive)", calendar);
-    cmor_handle_error(msg,CMOR_CRITICAL);
-  }
-  cmor_set_cur_dataset_attribute("contact",contact,1);
-  cmor_set_cur_dataset_attribute("history",history,1);
-  cmor_set_cur_dataset_attribute("comment",comment,1);
-  cmor_set_cur_dataset_attribute("references",references,1);
-  if (realization < 0) {
-    snprintf(msg,CMOR_MAX_STRING,"Error realization number is negative, expected a positive number or 0 (i.e. ignored)");
-    cmor_handle_error(msg,CMOR_CRITICAL);
-    cmor_pop_traceback();
-    return 1;
-  }
-  else {
-    cmor_current_dataset.realization=realization;
-  }
-  if (initialization_method>0) {
-    sprintf(msg,"%i",initialization_method);
-    cmor_set_cur_dataset_attribute("initialization_method",msg,0);
-  }
-  else {
-    cmor_set_cur_dataset_attribute("initialization_method","1",0);
-  }
-  if (physics_version>0) {
-    sprintf(msg,"%i",physics_version);
-    cmor_set_cur_dataset_attribute("physics_version",msg,0);
-  }
-  else {
-    cmor_set_cur_dataset_attribute("physics_version","1",0);
-  }
-
-  cmor_current_dataset.initiated=1;
-  cmor_set_cur_dataset_attribute("tracking_id",cmor_current_dataset.tracking_id,0);
-  cmor_pop_traceback();
-  return 0;
-}
-
-int cmor_convert_string_to_list(char *invalues,char type, void **target, int *nelts) {
-  int i,j,k,itmp;
-  long l;
-  double d;
-  float f;
-  char values[CMOR_MAX_STRING];
-  char msg[CMOR_MAX_STRING];
-  char msg2[CMOR_MAX_STRING];
-  j = 1;
-  cmor_add_traceback("cmor_convert_string_to_list");
-  /* trim this so no extra spaces after or before */
-  strncpytrim(values,invalues,CMOR_MAX_STRING);
-  k=1; /* 1 means we are on characters */
-  for (i=0;i<strlen(values);i++) {
-    if (values[i]==' ') {
-      if (k==1) {
-	j++;
-	k=0;
-      }
-      while (values[i+1]==' ') i++;
-    }
-    else {
-      k=1;
-    }
-  }
-  *nelts =j;
-
-  if (type == 'i' ) *target = malloc(j*sizeof(int));
-  else if (type == 'f') *target = malloc(j*sizeof(float));
-  else if (type == 'l') *target = malloc(j*sizeof(long));
-  else if (type == 'd') *target = malloc(j*sizeof(double));
-  else if (type == 'c') *target = (char **) malloc(j*sizeof(char *));
-  else {
-    snprintf(msg, CMOR_MAX_STRING,"unknown conversion '%c' for list: %s",type,values);
-    cmor_handle_error(msg,CMOR_CRITICAL);
-  }
-
-  if (*target==NULL) {
-    snprintf(msg, CMOR_MAX_STRING,"mallocing '%c' for list: %s",type,values);
-    cmor_handle_error(msg,CMOR_CRITICAL);
-  }
-
-  j=0;
-  msg[0]='\0';
-  k=0;
-  itmp=1;
-  for (i=0;i<strlen(values);i++) {
-    if (values[i]==' ') { /* ok next world */
-      if (itmp==1) {
-	itmp = 0 ;
-	msg[i-k]='\0';
-	strncpytrim(msg2,msg,CMOR_MAX_STRING);
-	if (type=='i') {
-	  sscanf(msg2,"%d",&itmp);
-	  ((int *)*target)[j] = (int)itmp;
-	}
-	else if (type=='l') {
-	  sscanf(msg2,"%ld",&l);
-	  ((long *)*target)[j] = (long)l;
-	}
-	else if (type=='f') {
-	  sscanf(msg2,"%f",&f);
-	  ((float *)*target)[j] = (float)f;
-	}
-	else if (type=='d') {
-	  sscanf(msg2,"%lf",&d);
-	  ((double *)*target)[j] = (double)d;
-	}
-	else if (type=='c') {
-	  ((char **)*target)[j]=(char *)malloc(13*sizeof(char));
-	  strncpy(((char **)*target)[j],msg2,12);
-	}
-	j++;
-      }
-      while(values[i+1]==' ') i++;
-      k=i+1;
-    }
-    else {
-      msg[i-k]=values[i];
-      itmp=1;
-    }
-  }
-  /* ok now the last one */
-  msg[i-k]='\0';
-
-  strncpytrim(msg2,msg,CMOR_MAX_STRING);
-  if (type=='i') {
-    sscanf(msg2,"%d",&itmp);
-    ((int *)*target)[j] = (int)itmp;
-  }
-  else if (type=='l') {
-    sscanf(msg2,"%ld",&l);
-    ((long *)*target)[j] = (long)l;
-  }
-  else if (type=='f') {
-    sscanf(msg2,"%f",&f);
-    ((float *)*target)[j] = (float)f;
-  }
-  else if (type=='d') {
-    sscanf(msg2,"%lf",&d);
-    ((double *)*target)[j] = (double)d;
-  }
-  else if (type=='c') {
-    ((char **)*target)[j] = (char *)malloc(13*sizeof(char));
-    strncpy(((char **)*target)[j],msg2,12);
-  }
-  cmor_pop_traceback();
-  return 0;
-}
-
-int cmor_define_zfactors_vars(int var_id,int ncid, int *nc_dim,char *formula_terms,int *nzfactors, int *zfactors, int *nc_zfactors,int i,int dim_bnds)
-{
-  char msg[CMOR_MAX_STRING];
-  char ctmp[CMOR_MAX_STRING];
-  int ierr=0,l,m,k,n,j,m2,found,nelts,*int_list=NULL;
-  int dim_holder[CMOR_MAX_VARIABLES];
-  int lnzfactors;
-  int ics,icd,icdl,ia;
-
-  cmor_add_traceback("cmor_define_zfactors_vars");
-  cmor_is_setup();
-  lnzfactors = *nzfactors;
-  /* now figures out the variables for z_factor and loops thru it*/
-  n = strlen(formula_terms);
-  for (j=0;j<n;j++) {
-    while((formula_terms[j]!=':') && (j<n)) {j++;}
-    /* at this point we skiped the name thingy */
-    j++;
-    while(formula_terms[j]==' ') {j++;} /* ok we skipped the blanks as well */
-    /* ok now we can start scanning the zvar name */
-    k=j;
-    while((formula_terms[j]!=' ')&&(formula_terms[j]!='\0')) {ctmp[j-k]=formula_terms[j];j++;} 
-    /* all right here we reach a  blank, the name is finsihed */
-    ctmp[j-k]='\0';
-    /* here we try to match with the actual variable */
-    l=-1;
-    for (k=0;k<cmor_nvars+1;k++) {
-      /* printf("checking: %s vs %s\n",ctmp,cmor_vars[k].id); */
-      if (strcmp(ctmp,cmor_vars[k].id)==0) {
-	/* ok that is not enough! We need to know if the dims match! */
-	nelts=0;
-	for (m=0;m<cmor_vars[k].ndims;m++) {
-	  for (m2=0;m2<cmor_vars[var_id].ndims;m2++) {
-	    if (cmor_vars[k].axes_ids[m]==cmor_vars[var_id].axes_ids[m2]) {
-	      nelts+=1;
-	      break;
-	    }
-	  }
-	}
-	if (nelts == cmor_vars[k].ndims) {
-	  l=k;
-	  break;
-	}
-      }
-    }
-    if (l==-1) {
-      /* ok this looks bad! last hope is that the zfactor is actually a coordinate! */
-      found = 0;
-      for (m=0;m<cmor_vars[var_id].ndims;m++) {
-	if (strcmp(cmor_axes[cmor_vars[var_id].axes_ids[m]].id,ctmp)==0) {
-	  found = 1;
-	  break;
-	}
-	if (cmor_axes[cmor_vars[var_id].axes_ids[m]].bounds!=NULL) { /* ok this axes has bounds let's check against his name + _bnds then */
-	  sprintf(msg,"%s_bnds",cmor_axes[cmor_vars[var_id].axes_ids[m]].id);
-	  if (strcmp(msg,ctmp)==0) {
-	    found=1;
-	    break;
-	  }
-	}
-      }
-      if (found==0) {
-	snprintf(msg,CMOR_MAX_STRING,"could not find the zfactor variable: %s, please define it first",ctmp);
-	cmor_handle_error(msg,CMOR_CRITICAL);
-	cmor_pop_traceback();
-	return 1;
-      }
-    }
-    else {
-      found=0;
-    }
-    /*now figure out if we already defined this zfactor var */
-    for(k=0;k<lnzfactors;k++) if (zfactors[k]==l) found=1;
-    if (found==0) {
-      /* ok it is a new one */
-      zfactors[lnzfactors]=l;
-      /* ok we need to figure out the dimensions of that zfactor */
-      /* and then define the variable */
-      for(k=0;k<cmor_vars[l].ndims;k++) {
-	found = 0;
-	/* printf("checking for axis: %s on var: %i, %s\n",cmor_axes[cmor_vars[l].axes_ids[k]].id,l,cmor_vars[l].id); */
-	for (m=0;m<cmor_vars[var_id].ndims;m++) {
-	  /* printf("ok comparing: %i,%s and %i,%s\n",cmor_vars[var_id].axes_ids[m],cmor_axes[cmor_vars[var_id].axes_ids[m]].id,cmor_vars[l].axes_ids[k],cmor_axes[cmor_vars[l].axes_ids[k]].id); */
-	  if (strcmp(cmor_axes[cmor_vars[var_id].axes_ids[m]].id,cmor_axes[cmor_vars[l].axes_ids[k]].id)==0) {
-	    found =1;
-	    dim_holder[k]=nc_dim[m];
-	    /* ok here we mark this factor has time varying if necessary so that we can count the number of time written and make sure it matches the variable */
-	    if (cmor_axes[cmor_vars[var_id].axes_ids[m]].axis=='T') {
-	      for (ia=0;ia<10;ia++) {
-		if (cmor_vars[var_id].associated_ids[ia]==-1) {
-		  cmor_vars[var_id].associated_ids[ia]=l;
-		  break;
-		}
-	      }
-	    }
-	    break;
-	  }
-	}
-	if (found==0) {
-	  snprintf(msg,CMOR_MAX_STRING,"variable \"%s\" has axis \"%s\" defined with formula terms, but term \"%s\" depends on axis \"%s\" which is not part of the variable",cmor_vars[var_id].id,cmor_axes[cmor_vars[var_id].axes_ids[i]].id,ctmp,cmor_axes[cmor_vars[l].axes_ids[k]].id);
-	  cmor_handle_error(msg,CMOR_CRITICAL);
-	}
-      }
-      /* at that point we can define the var */
-      if (dim_bnds==-1) { /* we are not defining a bnds one */
-	if (cmor_vars[l].type == 'd') ierr = nc_def_var(ncid,cmor_vars[l].id,NC_DOUBLE,cmor_vars[l].ndims,&dim_holder[0],&nc_zfactors[lnzfactors]);
-	else if (cmor_vars[l].type == 'f') ierr = nc_def_var(ncid,cmor_vars[l].id,NC_FLOAT,cmor_vars[l].ndims,&dim_holder[0],&nc_zfactors[lnzfactors]);
-	else if (cmor_vars[l].type == 'l') ierr = nc_def_var(ncid,cmor_vars[l].id,NC_INT,cmor_vars[l].ndims,&dim_holder[0],&nc_zfactors[lnzfactors]);
-	else if (cmor_vars[l].type == 'i') ierr = nc_def_var(ncid,cmor_vars[l].id,NC_INT,cmor_vars[l].ndims,&dim_holder[0],&nc_zfactors[lnzfactors]);
-	if (ierr != NC_NOERR) {
-	  snprintf(msg,CMOR_MAX_STRING, "NC Error (%i) for variable %s error defining zfactor var: %i (%s)",ierr,cmor_vars[var_id].id,lnzfactors,cmor_vars[l].id);
-	  cmor_handle_error(msg,CMOR_CRITICAL);
-	}
-
-	/* Compression stuff */
-	if ((CMOR_NETCDF_MODE != CMOR_REPLACE_3) && (CMOR_NETCDF_MODE != CMOR_PRESERVE_3) && (CMOR_NETCDF_MODE != CMOR_APPEND_3)) {
-	  if (cmor_vars[l].ndims>0) {
-	    ics = cmor_tables[cmor_vars[l].ref_table_id].vars[cmor_vars[l].ref_var_id].shuffle;
-	    icd = cmor_tables[cmor_vars[l].ref_table_id].vars[cmor_vars[l].ref_var_id].deflate;
-	    icdl = cmor_tables[cmor_vars[l].ref_table_id].vars[cmor_vars[l].ref_var_id].deflate_level;
-	    ierr = nc_def_var_deflate(ncid,nc_zfactors[lnzfactors],ics,icd,icdl);
-	    if (ierr != NC_NOERR) {
-	      snprintf(msg,CMOR_MAX_STRING,"NCError (%i) defining compression parameters for zfactor variable %s for variable '%s'",ierr,cmor_vars[l].id,cmor_vars[var_id].id);
-	      cmor_handle_error(msg,CMOR_CRITICAL);
-	    }
-	  }
-	}
-
-/* 	printf("defined variable %s to nc_var_id: %i\n",cmor_vars[l].id,nc_zfactors[lnzfactors]); */
-
-	/* Creates attribute related to that variable */
-	for (k=0;k<cmor_vars[l].nattributes;k++){
-	  if (strcmp(cmor_vars[l].attributes[k],"flag_values")==0) {
-	    /* ok we need to convert the string to a list of int */
-	    ierr = cmor_convert_string_to_list(cmor_vars[l].attributes_values_char[k],'i',(void *)&int_list,&nelts);
-	    ierr = nc_put_att_int(ncid,nc_zfactors[lnzfactors] ,"flag_values",NC_INT,nelts,int_list);
-	    if (ierr != NC_NOERR) {
-	      snprintf(msg,CMOR_MAX_STRING,"NetCDF Error (%i) setting flags numerical attribute on variable",ierr);
-	      cmor_handle_error(msg,CMOR_CRITICAL);
-	    }
-	    free(int_list);
-	  }
-	  else if (cmor_vars[l].attributes_type[k] == 'c') {
-	    ierr = cmor_put_nc_char_attribute(ncid,nc_zfactors[lnzfactors],cmor_vars[l].attributes[k],cmor_vars[l].attributes_values_char[k],cmor_vars[l].id) ;
-	  }
-	  else {
-	    ierr = cmor_put_nc_num_attribute(ncid,nc_zfactors[lnzfactors],cmor_vars[l].attributes[k],cmor_vars[l].attributes_type[k],cmor_vars[l].attributes_values_num[k],cmor_vars[l].id);
-	  }
-	}
-	lnzfactors+=1;
-      }
-      else {
-	/* ok now we need to see if we have bounds on that variable */
-	/* 	strncpy(msg,cmor_vars[l].id,CMOR_MAX_STRING); */
-	/* 	strncat(msg,"_bnds",CMOR_MAX_STRING); */
-	dim_holder[cmor_vars[l].ndims]=dim_bnds;
-	if (cmor_vars[l].type == 'd') ierr = nc_def_var(ncid,cmor_vars[l].id,NC_DOUBLE,cmor_vars[l].ndims+1,&dim_holder[0],&nc_zfactors[lnzfactors]);
-	else if (cmor_vars[l].type == 'f') ierr = nc_def_var(ncid,cmor_vars[l].id,NC_FLOAT,cmor_vars[l].ndims+1,&dim_holder[0],&nc_zfactors[lnzfactors]);
-	else if (cmor_vars[l].type == 'l') ierr = nc_def_var(ncid,cmor_vars[l].id,NC_INT,cmor_vars[l].ndims+1,&dim_holder[0],&nc_zfactors[lnzfactors]);
-	else if (cmor_vars[l].type == 'i') ierr = nc_def_var(ncid,cmor_vars[l].id,NC_INT,cmor_vars[l].ndims+1,&dim_holder[0],&nc_zfactors[lnzfactors]);
-	if (ierr != NC_NOERR) {snprintf(msg,CMOR_MAX_STRING, "NC Error (%i) for variable %s error defining zfactor var: %i (%s)",ierr,cmor_vars[var_id].id,lnzfactors,cmor_vars[l].id);cmor_handle_error(msg,CMOR_CRITICAL);}
-
-	/* Compression stuff */
-	if ((CMOR_NETCDF_MODE != CMOR_REPLACE_3) && (CMOR_NETCDF_MODE != CMOR_PRESERVE_3) && (CMOR_NETCDF_MODE != CMOR_APPEND_3)) {
-	  ics = cmor_tables[cmor_vars[l].ref_table_id].vars[cmor_vars[l].ref_var_id].shuffle;
-	  icd = cmor_tables[cmor_vars[l].ref_table_id].vars[cmor_vars[l].ref_var_id].deflate;
-	  icdl = cmor_tables[cmor_vars[l].ref_table_id].vars[cmor_vars[l].ref_var_id].deflate_level;
-	  ierr = nc_def_var_deflate(ncid,nc_zfactors[lnzfactors],ics,icd,icdl);
-	  if (ierr != NC_NOERR) {
-	    snprintf(msg,CMOR_MAX_STRING,"NCError (%i) defining compression parameters for zfactor variable %s for variable '%s'",ierr,cmor_vars[l].id,cmor_vars[var_id].id);
-	    cmor_handle_error(msg,CMOR_CRITICAL);
-	  }
-	}
-
-	/* Creates attribute related to that variable */
-	for (k=0;k<cmor_vars[l].nattributes;k++){
-	  if (strcmp(cmor_vars[l].attributes[k],"flag_values")==0) {
-	    /* ok we need to convert the string to a list of int */
-	    ierr = cmor_convert_string_to_list(cmor_vars[l].attributes_values_char[k],'i',(void *)&int_list,&nelts);
-	    ierr = nc_put_att_int(ncid,nc_zfactors[lnzfactors] ,"flag_values",NC_INT,nelts,int_list);
-	    if (ierr != NC_NOERR) {
-	      snprintf(msg,CMOR_MAX_STRING,"NetCDF Error (%i) setting flags numerical attribute on variable",ierr);
-	      cmor_handle_error(msg,CMOR_CRITICAL);
-	    }
-	    free(int_list);
-	  }
-	  else if (cmor_vars[l].attributes_type[k] == 'c') {
-	    ierr = cmor_put_nc_char_attribute(ncid,nc_zfactors[lnzfactors],cmor_vars[l].attributes[k],cmor_vars[l].attributes_values_char[k],cmor_vars[l].id) ;
-	  }
-	  else {
-	    ierr = cmor_put_nc_num_attribute(ncid,nc_zfactors[lnzfactors],cmor_vars[l].attributes[k],cmor_vars[l].attributes_type[k],cmor_vars[l].attributes_values_num[k],cmor_vars[l].id);
-	  }
-	}
-
-	lnzfactors+=1;
-      }
-    }
-    
-    while((formula_terms[j]==' ')&&(formula_terms[j]!='\0')) {j++;} /* skip the other whites */
-  }
-  *nzfactors=lnzfactors;
-  cmor_pop_traceback();
-  return 0;
-}
-
-
-void cmor_flip_hybrid(int var_id, int i,char *a, char *b, char *abnds, char *bbnds) {
-  int doflip,j,k,l=0;
-  double tmp;
-  extern cmor_var_t cmor_vars[CMOR_MAX_VARIABLES];
-  extern cmor_axis_t cmor_axes[CMOR_MAX_AXES];
-  cmor_add_traceback("cmor_flip_hybrid");
-  /* here we need to look and see if we need to flip the levels again since we overwrote this stuff */
-
-  doflip=0;
-  if (cmor_tables[cmor_axes[cmor_vars[var_id].axes_ids[i]].ref_table_id].axes[cmor_axes[cmor_vars[var_id].axes_ids[i]].ref_axis_id].stored_direction=='d') {
-    /* decrease stuff */
-    if (cmor_axes[cmor_vars[var_id].axes_ids[i]].values[1]>cmor_axes[cmor_vars[var_id].axes_ids[i]].values[0]) doflip = 1;
-  }
-  else {
-    if (cmor_axes[cmor_vars[var_id].axes_ids[i]].values[1]<cmor_axes[cmor_vars[var_id].axes_ids[i]].values[0]) doflip = 1;
-  }
-  if (doflip==1) {
-    /* look for a coeff */
-    k=-1;
-    for(j=0;j<=cmor_nvars;j++) if ((strcmp(cmor_vars[j].id,a)==0) && (cmor_vars[j].zaxis==cmor_vars[var_id].axes_ids[i])) { k=j; break;}
-    /* look for b coeff */
-    if (b!=NULL) {
-      l=-1;
-      for(j=0;j<=cmor_nvars;j++) if ((strcmp(cmor_vars[j].id,b)==0) && (cmor_vars[j].zaxis==cmor_vars[var_id].axes_ids[i])) { l=j; break;}
-    }
-    for (j=0;j<cmor_axes[cmor_vars[var_id].axes_ids[i]].length/2;j++) {
-      tmp = cmor_axes[cmor_vars[var_id].axes_ids[i]].values[j];
-      cmor_axes[cmor_vars[var_id].axes_ids[i]].values[j]=cmor_axes[cmor_vars[var_id].axes_ids[i]].values[cmor_axes[cmor_vars[var_id].axes_ids[i]].length-1-j];
-      cmor_axes[cmor_vars[var_id].axes_ids[i]].values[cmor_axes[cmor_vars[var_id].axes_ids[i]].length-1-j]=tmp;
-      tmp = cmor_vars[k].values[j];
-      cmor_vars[k].values[j] = cmor_vars[k].values[cmor_axes[cmor_vars[var_id].axes_ids[i]].length-1-j];
-      cmor_vars[k].values[cmor_axes[cmor_vars[var_id].axes_ids[i]].length-1-j]=tmp;
-      if (b!=NULL) {
-	tmp = cmor_vars[l].values[j];
-	cmor_vars[l].values[j] = cmor_vars[l].values[cmor_axes[cmor_vars[var_id].axes_ids[i]].length-1-j];
-	cmor_vars[l].values[cmor_axes[cmor_vars[var_id].axes_ids[i]].length-1-j]=tmp;
-      }
-    }
-    if (cmor_axes[cmor_vars[var_id].axes_ids[i]].bounds!=NULL) {
-      k=-1;
-      for(j=0;j<=cmor_nvars;j++) if ((strcmp(cmor_vars[j].id,abnds)==0) && (cmor_vars[j].zaxis==cmor_vars[var_id].axes_ids[i])) { k=j; break;}
-      if (bbnds!=NULL) {
-	l=-1;
-	for(j=0;j<=cmor_nvars;j++) if ((strcmp(cmor_vars[j].id,bbnds)==0) && (cmor_vars[j].zaxis==cmor_vars[var_id].axes_ids[i])) { l=j; break;}
-      }
-      for (j=0;j<cmor_axes[cmor_vars[var_id].axes_ids[i]].length;j++) {
-	tmp = cmor_axes[cmor_vars[var_id].axes_ids[i]].bounds[j];
-	cmor_axes[cmor_vars[var_id].axes_ids[i]].bounds[j]=cmor_axes[cmor_vars[var_id].axes_ids[i]].bounds[cmor_axes[cmor_vars[var_id].axes_ids[i]].length*2-1-j];
-	cmor_axes[cmor_vars[var_id].axes_ids[i]].bounds[cmor_axes[cmor_vars[var_id].axes_ids[i]].length*2-1-j]=tmp;
-	tmp = cmor_vars[k].values[j];
-	cmor_vars[k].values[j] = cmor_vars[k].values[cmor_axes[cmor_vars[var_id].axes_ids[i]].length*2-1-j];
-	cmor_vars[k].values[cmor_axes[cmor_vars[var_id].axes_ids[i]].length*2-1-j]=tmp;
-	if (bbnds!=NULL) {
-	  tmp = cmor_vars[l].values[j];
-	  cmor_vars[l].values[j] = cmor_vars[l].values[cmor_axes[cmor_vars[var_id].axes_ids[i]].length*2-1-j];
-	  cmor_vars[l].values[cmor_axes[cmor_vars[var_id].axes_ids[i]].length*2-1-j]=tmp;
-	}
-      }
-    }
-  }
-  cmor_pop_traceback();
-  return;
-}
-
-int cmor_write(int var_id,void *data, char type, char *suffix, int ntimes_passed, double *time_vals, double *time_bounds, int *refvar) 
-{
-  extern cmor_var_t cmor_vars[CMOR_MAX_VARIABLES];
-  extern cmor_axis_t cmor_axes[CMOR_MAX_AXES];
-  extern int cmor_nvars;
-  extern cmor_dataset_def cmor_current_dataset;
-
-  int i,j,k,ierr=0,ncid,n,l,m,ncafid,m2[5];
-  size_t nctmp;
-  char outname[CMOR_MAX_STRING];
-  char ctmp[CMOR_MAX_STRING];
-  char ctmp2[CMOR_MAX_STRING];
-  char ctmp3[CMOR_MAX_STRING];
-  char ctmp4[CMOR_MAX_STRING];
-  char ctmp5[CMOR_MAX_STRING];
-  char ctmp6[CMOR_MAX_STRING];
-  char msg[CMOR_MAX_STRING];
-  char appending_to[CMOR_MAX_STRING];
-  int nc_dim[CMOR_MAX_AXES];
-  size_t nc_dim_chunking[CMOR_MAX_AXES];
-  int tmp_dims[2];
-  size_t starts[2],counts[2];
-  int nc_dim_af[CMOR_MAX_AXES];
-  int nc_vars[CMOR_MAX_VARIABLES];
-  int nc_vars_af[CMOR_MAX_VARIABLES];
-  int nc_associated_vars[6];
-  int nc_dims_associated[CMOR_MAX_AXES];
-  int nc_bnds_vars[CMOR_MAX_VARIABLES];
-  int cmode;
-  int dim_bnds;
-  int dims_bnds_ids[2];
-  int nc_singletons[CMOR_MAX_DIMENSIONS];
-  int nc_singletons_bnds[CMOR_MAX_DIMENSIONS];
-  char mtype;
-  int nzfactors=0;
-  int zfactors[CMOR_MAX_VARIABLES];
-  int nc_zfactors[CMOR_MAX_VARIABLES];
-  int varid;
-  int ho;
-  double tmps[2];
-  FILE *fperr;
-  struct tm *ptr;
-  time_t lt;
-  float afloat,d;
-  int ics,icd,icdl,itmpmsg,itmp2,itmp3, *int_list=NULL,nelts;
-  int isfixed=0;
-  int origRealization=0;
-  uuid_t *myuuid;
-  uuid_fmt_t fmt;
-  void *myuuid_str=NULL;
-  size_t uuidlen;
-  extern int cmor_convert_char_to_hyphen(char c);
-
-  cmor_add_traceback("cmor_write");
-
-  strcpy(appending_to,""); /* initialize to nothing */
-  strcpy(outname,"");
-  strcpy(ctmp,"");
-  strcpy(msg,"");
-  strcpy(ctmp2,"");
-
-  cmor_is_setup();
-  if (var_id>cmor_nvars) {
-    cmor_handle_error("var_id %i not defined",CMOR_CRITICAL);
-    cmor_pop_traceback();
-    return -1;
-  };
-  varid = var_id;
-
-  /* here we check that the variable actually has all the required attributes set */
-  cmor_has_required_variable_attributes(varid);
-  if (refvar!=NULL) {
-    varid=(int) *refvar;
-/*     printf("ok passing with a refvar: %i\n",varid); */
-    if (cmor_vars[varid].initialized==-1) {
-      snprintf(msg,CMOR_MAX_STRING, "You are trying to write variable \"%s\" in association with variable \"%s\" but you you need to write the associated variable first in order to initialize the file and dimensinos",cmor_vars[varid].id,cmor_vars[var_id].id);
-      cmor_handle_error(msg,CMOR_CRITICAL);
-    }
-    /* ok now we need to scan the netcdf file to figure the ncvarid associated */
-    ierr = nc_inq_varid(cmor_vars[varid].initialized,cmor_vars[var_id].id,&cmor_vars[var_id].nc_var_id);
-    if (ierr!=NC_NOERR) {
-      sprintf(msg,"Could not find variable: '%s' in file of associated variable: '%s'",cmor_vars[var_id].id,cmor_vars[*refvar].id);
-      cmor_handle_error(msg,CMOR_CRITICAL);
-    }
-    cmor_vars[var_id].ntimes_written = cmor_vars[varid].ntimes_written - ntimes_passed;
-  }
-
-  /* Here we check that the types are consitent between the missing value passed and the type passed now */
-  if (cmor_vars[varid].nomissing==0) {
-    if (cmor_vars[varid].itype!=type) {
-      snprintf(msg,CMOR_MAX_STRING,"You defined variable \"%s\" with a missing value of type \"%c\", but you are now writing data of type: \"%c\" this may lead to some spurious handling of the missing values",cmor_vars[varid].id,cmor_vars[varid].itype,type);
-      cmor_handle_error(msg,CMOR_WARNING);
-    }
-  }
-  if (cmor_vars[varid].initialized==-1) { /* Variable never been thru cmor_write, we need to define everything */
-
-    if (cmor_vars[varid].type!=type) {
-      snprintf(msg,CMOR_MAX_STRING,"Converted type from '%c' to '%c'",type,cmor_vars[varid].type);
-      cmor_update_history(varid,msg);
-    }
-
-
-    if (cmor_has_cur_dataset_attribute("forcing")==0) {
-      cmor_get_cur_dataset_attribute("forcing",ctmp2);
-      cmor_check_forcing_validity(cmor_vars[var_id].ref_table_id,ctmp2);
-    }
-
-    /* need to store the prodcut type */
-    strncpy(ctmp2,cmor_tables[cmor_vars[var_id].ref_table_id].product,CMOR_MAX_STRING);
-    cmor_set_cur_dataset_attribute("product",ctmp2,1);
-
-    /* we will need the expt_id for the filename so we check its validity here */
-    cmor_get_cur_dataset_attribute("experiment_id",ctmp2);
-    /* ok here we check the exptid is ok */
-    if (cmor_check_expt_id(ctmp2,cmor_vars[var_id].ref_table_id,"experiment","experiment_id")!=0) {
-      snprintf(msg,CMOR_MAX_STRING,"Invalid dataset experiment id: %s, check against table: %s",ctmp2,cmor_tables[cmor_vars[var_id].ref_table_id].table_id);
-      cmor_handle_error(msg,CMOR_NORMAL);
-      cmor_pop_traceback();
-      return 1;
-    }
-    strcpy(ctmp4,ctmp2); /*copy the expid for later use with gridspec files etc */
-    /* here we test to see if the user passed a suffix and this suffix points to a file and if we are in append mode */
-    if (suffix!=NULL) {
-      strncpytrim(appending_to,suffix,CMOR_MAX_STRING);
-      if (strncmp(appending_to,"",CMOR_MAX_STRING)!=0) {
-	if ((CMOR_NETCDF_MODE == CMOR_APPEND_4) ||(CMOR_NETCDF_MODE == CMOR_APPEND_3)) {
-	  fperr = NULL;
-	  fperr=fopen(appending_to,"r"); /*ok is the suffix a real suffix or a file name? */
-	  if ( fperr != NULL) { /* file exists we are appending to tihs */
-	    fclose(fperr);
-	  }
-	  else { /* file does not exists it is a suffix */
-	    /* we need to check if the CMOR table used is not for a cmor 2 */
-	    if (cmor_tables[cmor_vars[var_id].ref_table_id].cmor_version>=2.) {
-	      sprintf(msg,"You passed '%s' as file_suffix, suffix are not allowed in CMOR2.0 and newer. Were you trying to append to a non-existing file?",appending_to);
-	      cmor_handle_error(msg,CMOR_CRITICAL);
-	    }
-	    else {
-	      strcpy(appending_to,"");
-	    }
-	  }
-	}
-	else {
-	  /* we need to check if the CMOR table used is not for a cmor 2 */
-	  if (cmor_tables[cmor_vars[var_id].ref_table_id].cmor_version>=2.) {
-	    sprintf(msg,"Suffix are not allowed in CMOR 2.0 and greater");
-	    cmor_handle_error(msg,CMOR_CRITICAL);
-	  }
-	  else {
-	    strcpy(appending_to,"");
-	  }
-	}
-      }
-    }
-	
-
-    /* Figures out file name */
-    if (CMOR_CREATE_SUBDIRECTORIES == 1) {
-      isfixed = cmor_create_output_path(var_id,outname);
-    }
-    else {
-      strncpytrim(outname,cmor_current_dataset.outpath,CMOR_MAX_STRING);
-    }
-    strncat(outname,"/",CMOR_MAX_STRING-strlen(outname));
-    for (i=0;i<strlen(cmor_vars[var_id].id);i++) {
-      if ((cmor_vars[var_id].id[i]=='_')||(cmor_vars[var_id].id[i]=='-')) {
-	snprintf(outname,CMOR_MAX_STRING,"var_id cannot contain %c you passed: %s. Please check your input tables\n",cmor_vars[var_id].id[i],cmor_vars[var_id].id);
-	cmor_handle_error(outname,CMOR_CRITICAL);
-      }
-    }
-    strncattrim(outname,cmor_vars[var_id].id,CMOR_MAX_STRING-strlen(outname));
-    strncat(outname,"_",CMOR_MAX_STRING-strlen(outname));
-    strncattrim(outname,cmor_tables[cmor_vars[var_id].ref_table_id].table_id,CMOR_MAX_STRING-strlen(outname));
-    if ( cmor_has_cur_dataset_attribute("model_id")==0) {
-      cmor_get_cur_dataset_attribute("model_id",msg);
-      strcpy(ctmp5,msg);
-      for (i=0;i<strlen(msg);i++) {
-	if (cmor_convert_char_to_hyphen(msg[i])==1) {
-	  snprintf(ctmp6,CMOR_MAX_STRING,"model_id (%s) contains the character '%c' it will be replaced with a hyphen\n",msg,msg[i]);
-	  cmor_handle_error(ctmp6,CMOR_WARNING);
-	  ctmp5[i]='-';
-	}
-      }
-      /* removes trailing "-" */
-      for (i=strlen(ctmp5)-1;i>0;i--) {
-	if (ctmp5[i]=='-') {
-	  ctmp5[i]='\0';
-	}
-	else {
-	  break;
-	}
-      }
-      strncat(outname,"_",CMOR_MAX_STRING-strlen(outname));
-      strncat(outname,ctmp5,CMOR_MAX_STRING-strlen(outname));
-    }
-    if ( strcmp(ctmp2,"")!=0) { /* we have a short name for the expt_id */
-      strncat(outname,"_",CMOR_MAX_STRING-strlen(outname));
-      strncat(outname,ctmp2,CMOR_MAX_STRING-strlen(outname));
-    }
-    strncat(outname,"_",CMOR_MAX_STRING-strlen(outname));
-
-    /* is it a fixed field ? */
-    if (isfixed==1) {
-      strncat(outname,"r0i0p0",CMOR_MAX_STRING-strlen(outname) );
-      origRealization = cmor_current_dataset.realization;
-      cmor_current_dataset.realization=0;
-      cmor_set_cur_dataset_attribute("physics_version","0",0);
-      cmor_set_cur_dataset_attribute("initialization_method","0",0);
-    }
-    else {
-      snprintf(msg,CMOR_MAX_STRING,"r%d",cmor_current_dataset.realization);
-      strncat(outname,msg,CMOR_MAX_STRING-strlen(outname) );
-      
-      /* initialization id (optional) */
-      if ( cmor_has_cur_dataset_attribute("initialization_method")==0) {
-	cmor_get_cur_dataset_attribute("initialization_method",ctmp2);
-	sscanf(ctmp2,"%i",&j);
-	snprintf(msg,CMOR_MAX_STRING,"i%d",j);
-	strncat(outname,msg,CMOR_MAX_STRING-strlen(outname) );
-      }
-      
-      /* physics id (optional) */
-      if ( cmor_has_cur_dataset_attribute("physics_version")==0) {
-	cmor_get_cur_dataset_attribute("physics_version",ctmp2);
-	sscanf(ctmp2,"%i",&j);
-	snprintf(msg,CMOR_MAX_STRING,"p%d",j);
-	strncat(outname,msg,CMOR_MAX_STRING-strlen(outname) );
-      }
-    }
-
-    strncpytrim(cmor_vars[var_id].base_path,outname,CMOR_MAX_STRING);
-    if (strcmp(appending_to,"")!=0) { /* we are appending to an existing file */
-      k = strlen(appending_to); /* what's the length of that file name */
-      j=0;
-      for (i=k-1;i>=0;i--) {
-	if (appending_to[i]=='/') {/* ok this marks the beg of the actual file name */
-	  j=i+1;
-	  break;
-	}
-      }
-      /* now does the same thing for "_" this should mark our suffix section */
-      /* we need to count how many are there and the index of the last one */
-      l=0;
-      for (i=k-1;i>=j;i--) {
-	if (appending_to[i]=='_') {/* ok this marks the beg of the actual suffix */
-	  l++;
-	}
-      }
-      if ( cmor_has_cur_dataset_attribute("model_id")==0) {
-	i=5;
-      }
-      else {
-	i=4;
-      }
-      if (l>i) {
-	/* we have extra _ that means suffix */
-	for (i=k-1;i>=j;i--) {
-	  if (appending_to[i]=='_') {/* ok this marks the beg of the actual suffix */
-	    l=i+1;
-	    break;
-	  }
-	}
-	for(i=l;i<k-3;i++) {
-	  msg[i-l]=appending_to[i];
-	}
-	msg[i-l]='\0'; /*termination char */
-      }
-      else {
-	msg[0]='\0';
-      }
-    }
-    else { /*ok let's copy the suffix to msg */
-      if (suffix!=NULL) strncpytrim(msg,suffix,CMOR_MAX_STRING);
-      else msg[0]='\0';
-    }
-    if (msg[0]!='\0') {
-      /* test for "_" in suffix , it s not allowed */
-      for (i=0;i<strlen(msg);i++) {
-	if (msg[i]=='_') {
-	  if ((CMOR_NETCDF_MODE == CMOR_APPEND_4) ||(CMOR_NETCDF_MODE == CMOR_APPEND_3)) {
-	    snprintf(ctmp2,CMOR_MAX_STRING,"suffix cannot contain the '_' character, you passed: %s Is it possible you are trying to append to a file and the file is not exactly here?",msg);
-	    cmor_handle_error(ctmp2,CMOR_CRITICAL);
-	  }
-	  else {
-	    snprintf(ctmp2,CMOR_MAX_STRING,"suffix cannot contain the '_' character, you passed: %s",msg);
-	    cmor_handle_error(ctmp2,CMOR_CRITICAL);
-	  }
-	}
-      }
-      strncat(outname,"_",CMOR_MAX_STRING-strlen(outname));
-      strncat(outname,msg,CMOR_MAX_STRING-strlen(outname));
-      strncpy(cmor_vars[var_id].suffix,msg,CMOR_MAX_STRING);
-    }
-    strncat(outname,".nc",CMOR_MAX_STRING-strlen(outname) );
-
-    /* at this point we need to rename the original file name to this so that the rest of the code works */
-    if (appending_to[0]!='\0') {
-      if (strncmp(outname,appending_to,CMOR_MAX_STRING)!=0) {
-	if (rename(appending_to,outname)!=0) {
-	  snprintf(msg,CMOR_MAX_STRING,"could not rename your existing file: %s to temporary file: %s",appending_to,outname);
-	  cmor_handle_error(msg,CMOR_CRITICAL);
-	}
-      }
-      snprintf(msg,CMOR_MAX_STRING,"Appended to original file: %s",appending_to);
-      cmor_update_history(var_id,msg);
-    }
-
-    strncpytrim(cmor_vars[var_id].current_path,outname,CMOR_MAX_STRING);
-    /* Decides NetCDF mode */
-    if (USE_NETCDF_4 == 1) {
-      cmode = NC_NETCDF4 | NC_CLASSIC_MODEL;
-      if ((CMOR_NETCDF_MODE == CMOR_REPLACE_3) ||(CMOR_NETCDF_MODE == CMOR_PRESERVE_3) ||(CMOR_NETCDF_MODE == CMOR_APPEND_3)) {
-	cmode = NC_CLOBBER;
-      }
-    }
-    else {
-      cmode = NC_CLOBBER;
-    }
-
-    if ((CMOR_NETCDF_MODE == CMOR_REPLACE_4) || (CMOR_NETCDF_MODE == CMOR_REPLACE_3)) {
-      ierr = nc_create(outname,NC_CLOBBER|cmode,&ncid);
-    }
-    else if ((CMOR_NETCDF_MODE == CMOR_PRESERVE_4) || (CMOR_NETCDF_MODE == CMOR_PRESERVE_3)) {
-     /* ok first let's check if the file does exists or not */
-      fperr = NULL;
-      fperr=fopen(outname,"r");
-      if ( fperr != NULL) {
-	snprintf(msg,CMOR_MAX_STRING,"Output file ( %s ) already exists, remove file or use CMOR_REPLACE or CMOR_APPEND for CMOR_NETCDF_MODE value in cmor_setup",outname);
-	cmor_handle_error(msg,CMOR_CRITICAL);
-      }
-      ierr = nc_create(outname,NC_NOCLOBBER|cmode,&ncid); 
-    }
-    else if ((CMOR_NETCDF_MODE == CMOR_APPEND_4) || (CMOR_NETCDF_MODE == CMOR_APPEND_3)) {
-      /* ok first let's check if the file does exists or not */
-      fperr = NULL;
-      fperr = fopen(outname,"r");
-      if (fperr == NULL) {
-	/* ok it does not exists... we will open as new */
-	ierr = nc_create(outname,NC_CLOBBER|cmode,&ncid);
-      }
-      else { /*ok it was there already */
-	ierr = fclose(fperr);
-	/*cmor_vars[var_id].suffix_has_date=1;*/
-	ierr = nc_open(outname,NC_WRITE,&ncid);
-	if (ierr != NC_NOERR) {snprintf(msg,CMOR_MAX_STRING,"NetCDF Error (%i) opening file: %s",ierr,outname); cmor_handle_error(msg,CMOR_CRITICAL);}
-	ierr = nc_inq_dimid(ncid,"time",&i);
-	if (ierr != NC_NOERR) {snprintf(msg,CMOR_MAX_STRING,"NetCDF Error (%i) looking for time dimension in file: %s",ierr,outname); cmor_handle_error(msg,CMOR_CRITICAL);}
-	ierr = nc_inq_dimlen(ncid,i,&nctmp);
-	cmor_vars[var_id].ntimes_written=(int)nctmp;
-	if (ierr != NC_NOERR) {snprintf(msg,CMOR_MAX_STRING,"NetCDF Error (%i) looking for time dimension length in file: %s",ierr,outname); cmor_handle_error(msg,CMOR_CRITICAL);}
-	ierr = nc_inq_varid(ncid,cmor_vars[var_id].id,&cmor_vars[var_id].nc_var_id);
-	if (ierr != NC_NOERR) {snprintf(msg,CMOR_MAX_STRING,"NetCDF Error (%i) looking for variable '%s' in file: %s",ierr,cmor_vars[var_id].id,outname); cmor_handle_error(msg,CMOR_CRITICAL);}
-	ierr = nc_inq_varid(ncid,"time",&cmor_vars[var_id].time_nc_id);
-	if (ierr != NC_NOERR) {snprintf(msg,CMOR_MAX_STRING,"NetCDF Error (%i) looking for time of variable '%s' in file: %s",ierr,cmor_vars[var_id].id,outname); cmor_handle_error(msg,CMOR_CRITICAL);}
-	/* ok now we need to read the first time in here */
-	starts[0]=0;
-	ierr = nc_get_var1_double(ncid,cmor_vars[var_id].time_nc_id,&starts[0],&cmor_vars[var_id].first_time);
-        starts[0]=cmor_vars[var_id].ntimes_written-1;
-        ierr = nc_get_var1_double(ncid,cmor_vars[var_id].time_nc_id,&starts[0],&cmor_vars[var_id].last_time);
-	ierr = nc_inq_varid(ncid,"time_bnds",&i);
-	if (ierr != NC_NOERR) {
-	  snprintf(msg,CMOR_MAX_STRING,"NetCDF Error (%i) looking for time bounds of variable '%s' in file: %s",ierr,cmor_vars[var_id].id,outname);
-	  cmor_handle_error(msg,CMOR_WARNING);
-	  ierr = NC_NOERR;
-	}
-	else {
-	  cmor_vars[var_id].time_bnds_nc_id=i;
-	}
-	cmor_vars[var_id].initialized=ncid;
-      }
-    }
-    else {
-      snprintf(msg,CMOR_MAX_STRING,"Unknown CMOR_NETCDF_MODE file mode: %i",CMOR_NETCDF_MODE);
-      cmor_handle_error(msg,CMOR_CRITICAL);
-    }
-    if (ierr != NC_NOERR) {snprintf(msg,CMOR_MAX_STRING,"NetCDF Error (%i) creating file: %s",ierr,outname); cmor_handle_error(msg,CMOR_CRITICAL);}
-  }
-  /* we closed and reopened the same test, in case we were appending, in which case all decalration have been done if the open loop */
-  if (cmor_vars[varid].initialized==-1) { /* Variable never been thru cmor_write, we need to define everything */
-    /* define global attributes */
-    if (cmor_current_dataset.initiated==0) {
-      snprintf(msg,CMOR_MAX_STRING, "you need to initialize the dataset by calling cmor_dataset before calling cmor_write");
-      cmor_handle_error(msg,CMOR_NORMAL);
-      cmor_pop_traceback();
-      return 1;
-    }
-
-    cleanup_varid = var_id;
-
-    /* Do we need to create the associated file or not ? */
-/*     if (cmor_current_dataset.associate_file == 1) {     */
-/*       if (cmor_current_dataset.associate_file == -1) { */
-/* 	/\* Creates the associated file *\/ */
-/* 	strncpytrim(cmor_current_dataset.associated_file_name,cmor_current_dataset.outpath,CMOR_MAX_STRING); */
-/* 	strncat(cmor_current_dataset.associated_file_name,"/metadata_file.nc",CMOR_MAX_STRING-strlen(cmor_current_dataset.associated_file_name)); */
-/* 	ierr = nc_create(cmor_current_dataset.associated_file_name,cmode,&cmor_current_dataset.associate_file); */
-/* 	if (ierr != NC_NOERR) { */
-/* 	  snprintf(msg,CMOR_MAX_STRING,"NetCDF Error (%i) creating metadata file: %s",ierr,cmor_current_dataset.associated_file_name);  */
-/* 	  cmor_handle_error(msg,CMOR_CRITICAL); */
-/* 	} */
-/*       } */
-/*       ncafid = cmor_current_dataset.associate_file; */
-/*       cmor_set_variable_attribute(var_id,"associated_files",'c',cmor_current_dataset.associated_file_name); */
-/*     } */
-/*     else { */
-/*       ncafid = ncid; */
-/*       cmor_set_variable_attribute(var_id,"associated_files",'c',"self"); */
-/*     } */
-    ncafid = ncid;
-    /* Ok we need to set the associated_files attributes */
-    if (strcmp(cmor_tables[cmor_vars[var_id].ref_table_id].URL,"")==0) {
-      snprintf(msg,CMOR_MAX_STRING,"Your table does not contain a reference URL, please consider adding it");
-      cmor_handle_error(msg,CMOR_WARNING);
-      strncpy(ctmp,"",CMOR_MAX_STRING);
-    }
-    else {
-      strncpy(ctmp2,cmor_current_dataset.outpath,CMOR_MAX_STRING); /* remembers the path to stick it back later */
-/*       strncpy(cmor_current_dataset.outpath,cmor_tables[cmor_vars[var_id].ref_table_id].URL,CMOR_MAX_STRING); */
-/*       cmor_create_output_path(var_id,ctmp3); */
-/*       strncpy(cmor_current_dataset.outpath,ctmp2,CMOR_MAX_STRING); /\* puts back the right base path *\/ */
-      strncpy(ctmp3,cmor_tables[cmor_vars[var_id].ref_table_id].URL,CMOR_MAX_STRING);
-      strcpy(ctmp,"baseURL: ");
-      strncat(ctmp,ctmp3,CMOR_MAX_STRING-strlen(ctmp));
-      strncat(ctmp," ",CMOR_MAX_STRING-strlen(ctmp));
-
-    }
-
-/*     /\* prepares the common suffix for all fixed file *\/ */
-/*     strcpy(ctmp2,"../../../../fx/"); */
-/*     /\* realm *\/ */
-/*     /\* first check if the variable itslef has a realm *\/ */
-/*     if (cmor_tables[cmor_vars[var_id].ref_table_id].vars[cmor_vars[var_id].ref_var_id].realm[0]!='\0') { */
-/*       /\* we want to copy only the first realm here *\/ */
-/*       for (i=0;i<strlen(cmor_tables[cmor_vars[var_id].ref_table_id].vars[cmor_vars[var_id].ref_var_id].realm);i++) { */
-/* 	if (cmor_tables[cmor_vars[var_id].ref_table_id].vars[cmor_vars[var_id].ref_var_id].realm[i]!=' ') { */
-/* 	  ctmp3[i]=cmor_tables[cmor_vars[var_id].ref_table_id].vars[cmor_vars[var_id].ref_var_id].realm[i]; */
-/* 	  ctmp3[i+1]='\0'; */
-/* 	} */
-/* 	else { */
-/* 	  break; */
-/* 	} */
-/*       } */
-/*       strncattrim(ctmp2,ctmp3,CMOR_MAX_STRING-strlen(ctmp2)); */
-/*     } */
-/*     else { /\*ok it didn't so we're using the value from the table *\/ */
-/*       strncattrim(ctmp2,cmor_tables[cmor_vars[var_id].ref_table_id].realm,CMOR_MAX_STRING-strlen(ctmp2)); */
-/*     } */
-/*     strncattrim(ctmp2,"/",CMOR_MAX_STRING-strlen(ctmp2)); */
-    
-    /* now appends the part to the gridspec file */
-    strncat(ctmp,"gridspecFile: ",CMOR_MAX_STRING-strlen(ctmp));
-    /* add the variable name */
-/*     strncat(ctmp3,"gridspec/r0/gridspec_",CMOR_MAX_STRING-strlen(ctmp3)); */
-    /* strncat(ctmp3,"gridspec",CMOR_MAX_STRING-strlen(ctmp3)); */
-    /* strncat(ctmp3,cmor_tables[cmor_vars[var_id].ref_table_id].table_id,CMOR_MAX_STRING-strlen(ctmp3)); */
-    /* Put here code for gridspec name */
-    strncpy(ctmp3,"gridspec_fx_",CMOR_MAX_STRING);
-    cmor_get_cur_dataset_attribute("model_id",msg);
-    for (i=0;i<strlen(msg);i++) {
-      if (cmor_convert_char_to_hyphen(msg[i])==1) {
-	msg[i]='-';
-      }
-    }
-    /* removes trailing "-" */
-    for (i=strlen(msg)-1;i>0;i--) {
-      if (msg[i]=='-') {
-	msg[i]='\0';
-      }
-      else {
-	break;
-      }
-    }
-    strncat(ctmp3,msg,CMOR_MAX_STRING-strlen(ctmp3));
-    if (strcmp(ctmp4,"")!=0) {
-      strncat(ctmp3,"_",CMOR_MAX_STRING-strlen(ctmp3));
-      strncat(ctmp3,ctmp4,CMOR_MAX_STRING-strlen(ctmp3));
-    }
-    strncat(ctmp3,"_r0i0p0.nc",CMOR_MAX_STRING-strlen(ctmp3));
-
-    strncat(ctmp,ctmp3,CMOR_MAX_STRING-strlen(ctmp));
-
-    if (cmor_has_variable_attribute(var_id,"cell_measures")==0) {
-      /*Ok does it contain "area" */
-      cmor_get_variable_attribute(var_id,"cell_measures",&ctmp5[0]);
-      k=-1;
-      for (i=0;i<strlen(ctmp5)-5;i++) {
-	if (strncmp(&ctmp5[i],"area:",5)==0) {
-	  k=i+6;
-	  break;
-	}
-      }
-      if (k!=-1) { /*ok we have this guy, let's figureout the name */
-	for(i=k;i<strlen(ctmp5);i++) {
-	  if ((ctmp5[i]==' ') || (ctmp5[i]=='\0')) break;
-	  ctmp6[i-k]=ctmp5[i];
-	}
-	ctmp6[i-k]='\0';
-	
-	/* now appends the part to the area file */
-	strncat(ctmp," ",CMOR_MAX_STRING-strlen(ctmp));
-	strncat(ctmp,ctmp6,CMOR_MAX_STRING-strlen(ctmp));
-	strncat(ctmp,": ",CMOR_MAX_STRING-strlen(ctmp));
-	/* add the variable name */
-	/*     strncat(ctmp3,"cellArea/r0/cellArea_",CMOR_MAX_STRING-strlen(ctmp3)); */
-	strncpy(ctmp3,ctmp6,CMOR_MAX_STRING);
-	strncat(ctmp3,"_fx_",CMOR_MAX_STRING-strlen(ctmp3));
-	/* strncat(ctmp3,cmor_tables[cmor_vars[var_id].ref_table_id].table_id,CMOR_MAX_STRING-strlen(ctmp3)); */
-	/* strncat(ctmp3,"_",CMOR_MAX_STRING-strlen(ctmp3)); */
-	cmor_get_cur_dataset_attribute("model_id",msg);
-	for (i=0;i<strlen(msg);i++) {
-	  if (cmor_convert_char_to_hyphen(msg[i])==1) {
-	    msg[i]='-';
-	  }
-	}
-	/* removes trailing "-" */
-	for (i=strlen(msg)-1;i>0;i--) {
-	  if (msg[i]=='-') {
-	    msg[i]='\0';
-	  }
-	  else {
-	    break;
-	  }
-	}
-	strncat(ctmp3,msg,CMOR_MAX_STRING-strlen(ctmp3));
-	if (strcmp(ctmp4,"")!=0) {
-	  strncat(ctmp3,"_",CMOR_MAX_STRING-strlen(ctmp3));
-	  strncat(ctmp3,ctmp4,CMOR_MAX_STRING-strlen(ctmp3));
-	}
-	strncat(ctmp3,"_r0i0p0.nc",CMOR_MAX_STRING-strlen(ctmp3));
-	
-	strncat(ctmp,ctmp3,CMOR_MAX_STRING-strlen(ctmp));
-      }
-      k=-1;
-      for (i=0;i<strlen(ctmp5)-7;i++) {
-	if (strncmp(&ctmp5[i],"volume:",7)==0) {
-	  k=i+8;
-	  break;
-	}
-      }
-      if (k!=-1) { /*ok we have this guy, let's figureout the name */
-	for(i=k;i<strlen(ctmp5);i++) {
-	  if ((ctmp5[i]==' ') || (ctmp5[i]=='\0')) break;
-	  ctmp6[i-k]=ctmp5[i];
-	}
-	ctmp6[i-k]='\0';
-	/* now appends the part to the volume file */	
-	strncat(ctmp," ",CMOR_MAX_STRING-strlen(ctmp));
-	strncat(ctmp,ctmp6,CMOR_MAX_STRING-strlen(ctmp));
-	strncat(ctmp,": ",CMOR_MAX_STRING-strlen(ctmp));
-	/* add the variable name */
-	/*     strncat(ctmp3,"cellVolume/r0/cellVolume_",CMOR_MAX_STRING-strlen(ctmp3)); */
-	strncpy(ctmp3,ctmp6,CMOR_MAX_STRING);
-	strncat(ctmp3,"_fx_",CMOR_MAX_STRING-strlen(ctmp3));
-	/* strncat(ctmp3,cmor_tables[cmor_vars[var_id].ref_table_id].table_id,CMOR_MAX_STRING-strlen(ctmp3)); */
-	/* strncat(ctmp3,"_",CMOR_MAX_STRING-strlen(ctmp3)); */
-	cmor_get_cur_dataset_attribute("model_id",msg);
-	for (i=0;i<strlen(msg);i++) {
-	  if (cmor_convert_char_to_hyphen(msg[i])==1) {
-	    msg[i]='-';
-	  }
-	}
-	/* removes trailing "-" */
-	for (i=strlen(msg)-1;i>0;i--) {
-	  if (msg[i]=='-') {
-	    msg[i]='\0';
-	  }
-	  else {
-	    break;
-	  }
-	}
-	strncat(ctmp3,msg,CMOR_MAX_STRING-strlen(ctmp3));
-	if (strcmp(ctmp4,"")!=0) {
-	  strncat(ctmp3,"_",CMOR_MAX_STRING-strlen(ctmp3));
-	  strncat(ctmp3,ctmp4,CMOR_MAX_STRING-strlen(ctmp3));
-	}
-	strncat(ctmp3,"_r0i0p0.nc",CMOR_MAX_STRING-strlen(ctmp3));
-	
-	
-	strncat(ctmp,ctmp3,CMOR_MAX_STRING-strlen(ctmp));
-      }
-    }
-
-    cmor_set_variable_attribute(var_id,"associated_files",'c',ctmp);
-
-    /* make sure we are in def mode */
-    ierr = nc_redef(ncafid);
-    if (ierr != NC_NOERR && ierr != NC_EINDEFINE) {
-      snprintf(msg,CMOR_MAX_STRING,"NetCDF Error (%i) putting metadata file (%s) in def mode, nc file id was: %i",ierr,cmor_current_dataset.associated_file_name,ncafid);
-      cmor_handle_error(msg,CMOR_CRITICAL);
-    }
-
-    /* ok writes global attributes */
-    /* first figures out time */
-    lt = time(NULL);
-    ptr = gmtime(&lt);
-    snprintf(msg,CMOR_MAX_STRING,"%.4i-%.2i-%.2iT%.2i:%.2i:%.2iZ",ptr->tm_year+1900,ptr->tm_mon+1,ptr->tm_mday,ptr->tm_hour,ptr->tm_min,ptr->tm_sec);
-    cmor_set_cur_dataset_attribute("creation_date",msg,0);
-    if (did_history==0) {
-      snprintf(ctmp,CMOR_MAX_STRING,"%s CMOR rewrote data to comply with CF standards and %s requirements.",msg,cmor_tables[cmor_vars[var_id].ref_table_id].project_id);
-      if (cmor_has_cur_dataset_attribute("history")==0) {
-	cmor_get_cur_dataset_attribute("history",msg);
-	snprintf(ctmp2,CMOR_MAX_STRING,"%s %s",msg,ctmp);
-	strncpy(ctmp,ctmp2,CMOR_MAX_STRING);
-      }
-      cmor_set_cur_dataset_attribute("history",ctmp,0);
-      did_history=1;
-    }
-    snprintf(msg,CMOR_MAX_STRING,"CF-%.1f",cmor_tables[cmor_vars[var_id].ref_table_id].cf_version);
-    cmor_set_cur_dataset_attribute("Conventions",msg,0);
-    cmor_set_cur_dataset_attribute("project_id",cmor_tables[cmor_vars[var_id].ref_table_id].project_id,0);
-    snprintf(msg,CMOR_MAX_STRING,"Table %s (%s) ",cmor_tables[cmor_vars[var_id].ref_table_id].table_id,cmor_tables[cmor_vars[var_id].ref_table_id].date);
-    for (i=0;i<16;i++) sprintf(&ctmp[2*i],"%02x",cmor_tables[cmor_vars[var_id].ref_table_id].md5[i]);
-    ctmp[32]='\0';
-    strcat(msg,ctmp);
-    cmor_set_cur_dataset_attribute("table_id",msg,0);
-    if ( cmor_has_cur_dataset_attribute("model_id")==0) {
-      cmor_get_cur_dataset_attribute("model_id",ctmp);
-    }
-    else {
-      ctmp[0]='\0';
-    }
-    cmor_get_cur_dataset_attribute("experiment",ctmp2);
-/*     /\* ok here we need to reset the expt id to the long name if necessary *\/ */
-/*     for (i=0;i<cmor_tables[cmor_vars[var_id].ref_table_id].nexps;i++) { */
-/*       if (strncmp(cmor_tables[cmor_vars[var_id].ref_table_id].sht_expt_ids[i],ctmp2,CMOR_MAX_STRING)==0) { */
-/* 	strncpy(ctmp2,cmor_tables[cmor_vars[var_id].ref_table_id].expt_ids[i],CMOR_MAX_STRING); /\* make sure it is the long id *\/ */
-/* 	break; */
-/*       } */
-/*     } */
-/*     cmor_set_cur_dataset_attribute("experiment_id",ctmp2,0); */
-
-
-    snprintf(msg,CMOR_MAX_STRING,"%s model output prepared for %s %s",ctmp,cmor_tables[cmor_vars[var_id].ref_table_id].project_id,ctmp2);
-    cmor_set_cur_dataset_attribute("title",msg,0);
-    /* check table cf version vs ours */
-    afloat = CMOR_CF_VERSION_MAJOR;
-    d = CMOR_CF_VERSION_MINOR;
-    while(d>1.) d/=10.;
-    afloat+=d;
-
-    if (cmor_tables[cmor_vars[var_id].ref_table_id].cf_version>afloat) {
-      snprintf(msg,CMOR_MAX_STRING,"Your table claims to enforce CF version %f but this version of the library is designed for CF up to: %i.%i",cmor_tables[cmor_vars[var_id].ref_table_id].cf_version,CMOR_CF_VERSION_MAJOR,CMOR_CF_VERSION_MINOR);
-      cmor_handle_error(msg,CMOR_WARNING);
-    }
-
-
-    /* Ok now we need to check the parent_experiment_id is valid */
-    if (cmor_has_cur_dataset_attribute("parent_experiment_id")==0) {
-      cmor_get_cur_dataset_attribute("parent_experiment_id",msg);
-      if (strcmp(msg,"N/A")!=0) { /* did the user pass an expt */
-	cmor_get_cur_dataset_attribute("experiment_id",ctmp);
-	if (strcmp(msg,ctmp)==0) {
-	  sprintf(ctmp,"Your parent_experiment id matches your current experiment_id, they are both set to: %s",msg);
-	  cmor_handle_error(ctmp,CMOR_NORMAL);
-	  cmor_pop_traceback();
-	  return 1;
-	} 
-	else {
-	  cmor_get_cur_dataset_attribute("experiment",ctmp);
-	  if (strcmp(msg,ctmp)==0) {
-	    sprintf(ctmp,"Your parent_experiment id matches your current experiment_id, they are both set to: %s",msg);
-	    cmor_handle_error(ctmp,CMOR_NORMAL);
-	    cmor_pop_traceback();
-	    return 1;
-	  }
-	  else { /*ok now we can check it is a valid "other" experiment */
-	    if (cmor_check_expt_id(msg,cmor_vars[var_id].ref_table_id,"parent_experiment","parent_experiment_id")!=0) {
-	      snprintf(ctmp,CMOR_MAX_STRING,"Invalid dataset parent experiment id: %s, check against table: %s",msg,cmor_tables[cmor_vars[var_id].ref_table_id].table_id);
-	      cmor_handle_error(ctmp,CMOR_NORMAL);
-	      cmor_pop_traceback();
-	      return 1;
-	    }
-	  }
-	}
-      }
-      else {
-	if ( cmor_has_cur_dataset_attribute("branch_time")==0) {
-	  cmor_get_cur_dataset_attribute("branch_time",msg);
-	  sscanf(msg,"%lf",&tmps[0]);
-	  if (tmps[0]!=0.) {
-	    sprintf(msg,"when dataset attribute parent_experiment_id is set to N/A branch_time must be 0. you passed: %lf, we are resetting to 0.",tmps[0]);
-	    cmor_handle_error(msg,CMOR_WARNING);
-	    cmor_set_cur_dataset_attribute("branch_time","0.",1);
-	  }
-	}
-	cmor_set_cur_dataset_attribute("parent_experiment","N/A",1);
-      }
-    }
-    
-    cmor_has_required_global_attributes(cmor_vars[var_id].ref_table_id);
-    
-    /* ok at this point if we are CMIP5 needs to check source and model_id are identical */
-    if (strcmp(cmor_tables[cmor_vars[var_id].ref_table_id].project_id,"CMIP5")==0) {
-      cmor_get_cur_dataset_attribute("model_id",ctmp5);
-      cmor_get_cur_dataset_attribute("source",ctmp6);
-      if (strncmp(ctmp5,ctmp6,strlen(ctmp5))!=0) {
-	snprintf(msg,CMOR_MAX_STRING,"source attribute does not start with 'model_id', it should start with: %s",ctmp5);
-	cmor_handle_error(msg,CMOR_CRITICAL);
-      }
-    }
-    
-    /* first check if the variable itself has a realm */
-    if (cmor_tables[cmor_vars[var_id].ref_table_id].vars[cmor_vars[var_id].ref_var_id].realm[0]!='\0') {
-      cmor_set_cur_dataset_attribute("modeling_realm",cmor_tables[cmor_vars[var_id].ref_table_id].vars[cmor_vars[var_id].ref_var_id].realm,0);
-    }
-    else { /*ok it didn't so we're using the value from the table */
-      cmor_set_cur_dataset_attribute("modeling_realm",cmor_tables[cmor_vars[var_id].ref_table_id].realm,0);
-    }
-    
-
-    /* generates a new unique id */
-    uuid_create(&myuuid);
-    uuid_make(myuuid,4);
-    myuuid_str = NULL;
-    fmt = UUID_FMT_STR;
-    uuid_export(myuuid,fmt,&myuuid_str,&uuidlen);
-    strncpy(cmor_current_dataset.tracking_id,(char *)myuuid_str,CMOR_MAX_STRING);
-    cmor_set_cur_dataset_attribute("tracking_id",cmor_current_dataset.tracking_id,0);
-    free(myuuid_str);
-    uuid_destroy(myuuid);
-
-
-    for (i=0;i<cmor_current_dataset.nattributes;i++) {
-      if (strcmp(cmor_current_dataset.attributes_names[i],"calendar")!=0) {
-	if ((strcmp(cmor_current_dataset.attributes_names[i],"initialization_method")==0) || (strcmp(cmor_current_dataset.attributes_names[i],"physics_version")==0) ) { /* these two are actually int not char */
-	  sscanf(cmor_current_dataset.attributes_values[i],"%i",&itmp2);
-	  ierr = nc_put_att_int(ncid, NC_GLOBAL, cmor_current_dataset.attributes_names[i],NC_INT,1,&itmp2);
-	  if (ierr != NC_NOERR) {snprintf(msg,CMOR_MAX_STRING,"NetCDF error (%i) for variable %s writing global att: %s (%s)",ierr,cmor_vars[var_id].id,cmor_current_dataset.attributes_names[i],cmor_current_dataset.attributes_values[i]); cmor_handle_error(msg,CMOR_CRITICAL);}
-	  if (ncid!=ncafid) {
-	    ierr = nc_put_att_int(ncafid, NC_GLOBAL, cmor_current_dataset.attributes_names[i],NC_INT,1,&itmp2);
-	    if (ierr != NC_NOERR) {snprintf(msg,CMOR_MAX_STRING,"NetCDF error (%i) for variable %s writing global att to metafile: %s (%s)",ierr,cmor_vars[var_id].id,cmor_current_dataset.attributes_names[i],cmor_current_dataset.attributes_values[i]); cmor_handle_error(msg,CMOR_CRITICAL);}
-	  }
-	}
-	else if (strcmp(cmor_current_dataset.attributes_names[i],"branch_time")==0) {
-	  /* double attribute */
-	  sscanf(cmor_current_dataset.attributes_values[i],"%lf",&tmps[0]);
-	  ierr = nc_put_att_double(ncid, NC_GLOBAL, cmor_current_dataset.attributes_names[i],NC_DOUBLE,1,&tmps[0]);
-	  if (ierr != NC_NOERR) {snprintf(msg,CMOR_MAX_STRING,"NetCDF error (%i) for variable %s writing global att: %s (%s)",ierr,cmor_vars[var_id].id,cmor_current_dataset.attributes_names[i],cmor_current_dataset.attributes_values[i]); cmor_handle_error(msg,CMOR_CRITICAL);}
-	  if (ncid!=ncafid) {
-	    ierr = nc_put_att_double(ncafid, NC_GLOBAL, cmor_current_dataset.attributes_names[i],NC_DOUBLE,1,&tmps[0]);
-	    if (ierr != NC_NOERR) {snprintf(msg,CMOR_MAX_STRING,"NetCDF error (%i) for variable %s writing global att to metafile: %s (%s)",ierr,cmor_vars[var_id].id,cmor_current_dataset.attributes_names[i],cmor_current_dataset.attributes_values[i]); cmor_handle_error(msg,CMOR_CRITICAL);}
-	  }
-	}
-	else {
-	  itmp2 = strlen(cmor_current_dataset.attributes_values[i]);
-	  if (itmp2<CMOR_DEF_ATT_STR_LEN) {
-	    for (itmp2=strlen(cmor_current_dataset.attributes_values[i]);itmp2<CMOR_DEF_ATT_STR_LEN;itmp2++) {
-	      cmor_current_dataset.attributes_values[i][itmp2]='\0';
-	    }
-	    itmp2=CMOR_DEF_ATT_STR_LEN;
-	  }
-	  ierr = nc_put_att_text(ncid, NC_GLOBAL,cmor_current_dataset.attributes_names[i],itmp2,cmor_current_dataset.attributes_values[i]);
-	  if (ierr != NC_NOERR) {snprintf(msg,CMOR_MAX_STRING,"NetCDF error (%i) for variable %s writing global att: %s (%s)",ierr,cmor_vars[var_id].id,cmor_current_dataset.attributes_names[i],cmor_current_dataset.attributes_values[i]); cmor_handle_error(msg,CMOR_CRITICAL);}
-	  if (ncid!=ncafid) {
-	    ierr = nc_put_att_text(ncafid, NC_GLOBAL,cmor_current_dataset.attributes_names[i],itmp2,cmor_current_dataset.attributes_values[i]);
-	    if (ierr != NC_NOERR) {snprintf(msg,CMOR_MAX_STRING,"NetCDF error (%i) for variable %s writing global att to metafile: %s (%s)",ierr,cmor_vars[var_id].id,cmor_current_dataset.attributes_names[i],cmor_current_dataset.attributes_values[i]); cmor_handle_error(msg,CMOR_CRITICAL);}
-	  }
-	}
-      }
-    }
-    /* realization */
-    ierr = nc_put_att_int(ncid, NC_GLOBAL,"realization",NC_INT,1,&cmor_current_dataset.realization);
-    if (ierr != NC_NOERR) {snprintf(msg,CMOR_MAX_STRING,"NetCDF error (%i) writing global att realization (%i)",ierr,cmor_current_dataset.realization); cmor_handle_error(msg,CMOR_CRITICAL);}
-
-    /* cmor_ver */
-    snprintf(msg,CMOR_MAX_STRING,"%i.%i.%i",CMOR_VERSION_MAJOR,CMOR_VERSION_MINOR,CMOR_VERSION_PATCH);
-    ierr = nc_put_att_text(ncid, NC_GLOBAL,"cmor_version",strlen(msg)+1,msg);
-    if (ierr != NC_NOERR) {snprintf(msg,CMOR_MAX_STRING,"NetCDF error (%i) writing global att cmor_version (%f)",ierr,afloat); cmor_handle_error(msg,CMOR_CRITICAL);}
-
-    if (ncid!=ncafid) {
-      ierr = nc_put_att_int(ncafid, NC_GLOBAL,"realization",NC_INT,1,&cmor_current_dataset.realization);
-      if (ierr != NC_NOERR) {snprintf(msg,CMOR_MAX_STRING,"NetCDF error (%i) writing global att realization (%i) to metafile",ierr,cmor_current_dataset.realization); cmor_handle_error(msg,CMOR_CRITICAL);}
-      /* cmor_ver */
-      ierr = nc_put_att_text(ncid, NC_GLOBAL,"cmor_version",strlen(msg)+1,msg);
-      if (ierr != NC_NOERR) {snprintf(msg,CMOR_MAX_STRING,"NetCDF error (%i) writing global att cmor_version (%f)",ierr,afloat); cmor_handle_error(msg,CMOR_CRITICAL);}
-    }
-    if (isfixed==1) cmor_current_dataset.realization = origRealization;
-    
-    /* store netcdf file id associated with this variable */
-    cmor_vars[var_id].initialized=ncid;
-
-
-    /* define dimensions in NetCDF file */
-    for (i=0;i<cmor_vars[var_id].ndims;i++) {
-      /* did we flip that guy? */
-      if (cmor_axes[cmor_vars[var_id].axes_ids[i]].revert==-1) {
-	sprintf(msg,"Inverted axis: %s",cmor_axes[cmor_vars[var_id].axes_ids[i]].id);
-	cmor_update_history(var_id,msg);
-      }
-      /* Axis length */
-      j=cmor_axes[cmor_vars[var_id].axes_ids[i]].length;
-      if ((i==0)&&(cmor_axes[cmor_vars[var_id].axes_ids[i]].axis=='T')) j=NC_UNLIMITED;
-      if ((cmor_axes[cmor_vars[var_id].axes_ids[i]].axis=='X') || (cmor_axes[cmor_vars[var_id].axes_ids[i]].axis=='Y')) {
-	nc_dim_chunking[i]=j;
-      }
-      else if (cmor_axes[cmor_vars[var_id].axes_ids[i]].isgridaxis==1) {
-	nc_dim_chunking[i]=j;
-      }
-      else {
-	nc_dim_chunking[i]=1;
-      }
-      ierr = nc_def_dim(ncid,cmor_axes[cmor_vars[var_id].axes_ids[i]].id,j,&nc_dim[i]);
-      if (ierr != NC_NOERR) {
-	snprintf(msg,CMOR_MAX_STRING,"NetCDF error (%i) for dimension definition of axis: %s (%i), for variable %i (%s)",ierr,cmor_axes[cmor_vars[var_id].axes_ids[i]].id,i,var_id,cmor_vars[var_id].id);
-	ierr = nc_enddef(ncid);
-	cmor_handle_error(msg,CMOR_CRITICAL);
-      }
-      nc_dim_af[i]=nc_dim[i];
-      if (ncid!=ncafid) {
-	ierr = nc_def_dim(ncafid,cmor_axes[cmor_vars[var_id].axes_ids[i]].id,j,&nc_dim_af[i]);
-	if (ierr != NC_NOERR) {snprintf(msg,CMOR_MAX_STRING,"NetCDF error (%i) for dimension definition of axis: %s (%i) in metafile",ierr,cmor_axes[cmor_vars[var_id].axes_ids[i]].id,i); cmor_handle_error(msg,CMOR_CRITICAL);}
-      }
-    }
-
-    /* creates the bounds dim (only in metafile?)*/
-    ierr = nc_def_dim(ncafid,"bnds",2,&dim_bnds);
-    if (ierr != NC_NOERR) {snprintf(msg,CMOR_MAX_STRING,"NC error (%i), %s error creating bnds dimension to metafile",ierr,cmor_vars[var_id].id); cmor_handle_error(msg,CMOR_CRITICAL);}
-
-    /* Now define the variable corresponding to store the dimensions values */
-    for (i=0;i<cmor_vars[var_id].ndims;i++) {
-      if (cmor_axes[cmor_vars[var_id].axes_ids[i]].store_in_netcdf == 0) continue;
-      if (cmor_axes[cmor_vars[var_id].axes_ids[i]].cvalues == NULL) {
-	ierr = nc_def_var(ncid,cmor_axes[cmor_vars[var_id].axes_ids[i]].id,NC_DOUBLE,1,&nc_dim[i],&nc_vars[i]);
-	if (ierr != NC_NOERR) {snprintf(msg,CMOR_MAX_STRING, "NetCDF Error (%i) for variable %s error defining dim var: %i (%s)",ierr,cmor_vars[var_id].id,i,cmor_axes[cmor_vars[var_id].axes_ids[i]].id);cmor_handle_error(msg,CMOR_CRITICAL);}
-
-	/* /\* table are different ? *\/ */
-	/* if (cmor_axes[cmor_vars[var_id].axes_ids[i]].ref_table_id!=cmor_vars[var_id].ref_table_id) { */
-	/*   snprintf(msg,CMOR_MAX_STRING,"Table %s (%s) ",cmor_tables[cmor_axes[cmor_vars[var_id].axes_ids[i]].ref_table_id].table_id,cmor_tables[cmor_axes[cmor_vars[var_id].axes_ids[i]].ref_table_id].date); */
-	/*   for (i=0;i<16;i++) sprintf(&ctmp[2*i],"%02x",cmor_tables[cmor_axes[cmor_vars[var_id].axes_ids[i]].ref_table_id].md5[i]); */
-	/*   ctmp[32]='\0'; */
-	/*   strcat(msg,ctmp); */
-	/*   ierr = nc_put_att_text(ncid, nc_vars[i],"table_id",strlen(msg)+1,msg); */
-	/*   if (ierr != NC_NOERR) { */
-	/*     snprintf(ctmp2,CMOR_MAX_STRING,"NetCDF error (%i) for variable %s axis %s writing table_id att (%s)",ierr,cmor_vars[var_id].id,cmor_axes[cmor_vars[var_id].axes_ids[i]].id,msg); */
-	/*     cmor_handle_error(ctmp2,CMOR_CRITICAL); */
-	/*   } */
-	/* } */
-	/* Compression stuff */
-	if ((CMOR_NETCDF_MODE != CMOR_REPLACE_3) && (CMOR_NETCDF_MODE != CMOR_PRESERVE_3) && (CMOR_NETCDF_MODE != CMOR_APPEND_3)) {
-	  ics = cmor_tables[cmor_vars[var_id].ref_table_id].vars[cmor_vars[var_id].ref_var_id].shuffle;
-	  icd = cmor_tables[cmor_vars[var_id].ref_table_id].vars[cmor_vars[var_id].ref_var_id].deflate;
-	  icdl = cmor_tables[cmor_vars[var_id].ref_table_id].vars[cmor_vars[var_id].ref_var_id].deflate_level;
-	  ierr = nc_def_var_deflate(ncid,nc_vars[i],ics,icd,icdl);
-	  if (ierr != NC_NOERR) {
-	    snprintf(msg,CMOR_MAX_STRING,"NCError (%i) defining compression parameters for dimension %s for variable '%s'",ierr,cmor_axes[cmor_vars[var_id].axes_ids[i]].id,cmor_vars[var_id].id);
-	    cmor_handle_error(msg,CMOR_CRITICAL);
-	  }
-	}
-
-	nc_vars_af[i]=nc_vars[i];
-	if (ncid!=ncafid) {
-	  ierr = nc_def_var(ncafid,cmor_axes[cmor_vars[var_id].axes_ids[i]].id,NC_DOUBLE,1,&nc_dim_af[i],&nc_vars_af[i]);
-	  if (ierr != NC_NOERR) {snprintf(msg,CMOR_MAX_STRING, "NetCDF Error (%i) for variable %s error defining dim var: %i (%s) in metafile",ierr,cmor_vars[var_id].id,i,cmor_axes[cmor_vars[var_id].axes_ids[i]].id);cmor_handle_error(msg,CMOR_CRITICAL);}
-
-	  /* Compression stuff */
-	  if ((CMOR_NETCDF_MODE != CMOR_REPLACE_3) && (CMOR_NETCDF_MODE != CMOR_PRESERVE_3) && (CMOR_NETCDF_MODE != CMOR_APPEND_3)) {
-	    ics = cmor_tables[cmor_vars[var_id].ref_table_id].vars[cmor_vars[var_id].ref_var_id].shuffle;
-	    icd = cmor_tables[cmor_vars[var_id].ref_table_id].vars[cmor_vars[var_id].ref_var_id].deflate;
-	    icdl = cmor_tables[cmor_vars[var_id].ref_table_id].vars[cmor_vars[var_id].ref_var_id].deflate_level;
-	    ierr = nc_def_var_deflate(ncafid,nc_vars_af[i],ics,icd,icdl);
-	    if (ierr != NC_NOERR) {
-	      snprintf(msg,CMOR_MAX_STRING,"NCError (%i) defining compression parameters for dimension %s for variable '%s'",ierr,cmor_axes[cmor_vars[var_id].axes_ids[i]].id,cmor_vars[var_id].id);
-	      cmor_handle_error(msg,CMOR_CRITICAL);
-	    }
-	  }
-	}
-
-      }
-      else {
-	/* ok at this point i'm assuming only 1 string dimension! might need to be revised */
-	/* so i only create 1 strlen dim */
-	/* first need to figure out if the "region name is defined */
-	strcpy(ctmp,cmor_tables[cmor_axes[cmor_vars[var_id].axes_ids[i]].ref_table_id].axes[cmor_axes[cmor_vars[var_id].axes_ids[i]].ref_axis_id].cname);
-	if (ctmp[0]=='\0') {
-	  strcpy(ctmp,"geo_region");
-	}
-	if (cmor_has_variable_attribute(var_id,"coordinates")==0) {
-	  cmor_get_variable_attribute(var_id,"coordinates",msg);
-	  strncat(msg," ",CMOR_MAX_STRING-strlen(msg));
-	  strncat(msg,ctmp,CMOR_MAX_STRING-strlen(msg));
-	}
-	else {
-	  strncpy(msg,ctmp,CMOR_MAX_STRING);
-	}
-	cmor_set_variable_attribute(var_id,"coordinates",'c',msg);
-	l=0;
-	for (j=0;j<cmor_axes[cmor_vars[var_id].axes_ids[i]].length;j++) {
-/* 	  printf("ok reading value: %i\n",j); */
-/* 	  printf("we think it is: %s\n",cmor_axes[cmor_vars[var_id].axes_ids[i]].cvalues[j]); */
-	  strncpy(msg,cmor_axes[cmor_vars[var_id].axes_ids[i]].cvalues[j],CMOR_MAX_STRING);
-	  k = strlen(msg);
-	  if (k>l) l=k;
-	}
-	/* ok so now i can create the dummy dim strlen */
-	ierr = nc_def_dim(ncid,"strlen",l,&tmp_dims[1]);
-	if (ierr != NC_NOERR) {snprintf(msg,CMOR_MAX_STRING,"NetCDF error (%i) for dummy 'strlen' dimension definition of axis: %s (%i) in metafile",ierr,cmor_axes[cmor_vars[var_id].axes_ids[i]].id,i); cmor_handle_error(msg,CMOR_CRITICAL);}
-	tmp_dims[0]=nc_dim[i];
-	ierr = nc_def_var(ncid,ctmp,NC_CHAR,2,&tmp_dims[0],&nc_vars[i]);
-	if (ierr != NC_NOERR) {snprintf(msg,CMOR_MAX_STRING, "NetCDF Error (%i) for variable %s error defining dim var: %i (%s)",ierr,cmor_vars[var_id].id,i,cmor_axes[cmor_vars[var_id].axes_ids[i]].id);cmor_handle_error(msg,CMOR_CRITICAL);}
-	nc_vars_af[i]=nc_vars[i];
-	if (ncid!=ncafid) {
-	  ierr = nc_def_dim(ncafid,"strlen",l,&tmp_dims[1]);
-	  if (ierr != NC_NOERR) {snprintf(msg,CMOR_MAX_STRING,"NetCDF error (%i) for dummy 'strlen' dimension definition of axis: %s (%i) in metafile",ierr,cmor_axes[cmor_vars[var_id].axes_ids[i]].id,i); cmor_handle_error(msg,CMOR_CRITICAL);}
-	  tmp_dims[0]=nc_dim_af[i];
-	  ierr = nc_def_var(ncafid,ctmp,NC_CHAR,1,&tmp_dims[0],&nc_vars_af[i]);
-	  if (ierr != NC_NOERR) {snprintf(msg,CMOR_MAX_STRING, "NetCDF Error (%i) for variable %s error defining dim var: %i (%s) in metafile",ierr,cmor_vars[var_id].id,i,cmor_axes[cmor_vars[var_id].axes_ids[i]].id);cmor_handle_error(msg,CMOR_CRITICAL);}
-	}
-      }
-      /* ok do we have bounds on this axis? */
-      if ((cmor_axes[cmor_vars[var_id].axes_ids[i]].bounds!=NULL)||((i==0) && (time_bounds!=NULL))) {
-	strncpy(ctmp,cmor_axes[cmor_vars[var_id].axes_ids[i]].id,CMOR_MAX_STRING);
-	strncat(ctmp,"_bnds",CMOR_MAX_STRING-strlen(ctmp));
-	snprintf(msg,CMOR_MAX_STRING,"bounds");
-	if (i==0) {
-	  /* Ok here we need to see if it is a climatological variable in order to change */
-	  /* the "bounds" attribute into "climatology" */
-	  if (cmor_tables[cmor_axes[cmor_vars[var_id].axes_ids[i]].ref_table_id].axes[cmor_axes[cmor_vars[var_id].axes_ids[i]].ref_axis_id].climatology==1) {
-	    snprintf(msg,CMOR_MAX_STRING,"climatology");
-	    strncpy(ctmp,"climatology_bnds",CMOR_MAX_STRING);
-	  }
-	}
-	dims_bnds_ids[0]=nc_dim[i];
-	dims_bnds_ids[1]=dim_bnds;
-	ierr = nc_def_var(ncafid,ctmp,NC_DOUBLE,2,&dims_bnds_ids[0],&nc_bnds_vars[i]);
-	if (ierr != NC_NOERR) {snprintf(msg,CMOR_MAX_STRING, "NetCDF Error (%i) for variable %s error defining bounds dim var: %i (%s)",ierr,cmor_vars[var_id].id,i,cmor_axes[cmor_vars[var_id].axes_ids[i]].id);cmor_handle_error(msg,CMOR_CRITICAL);}
-
-	/* Compression stuff */
-	if ((CMOR_NETCDF_MODE != CMOR_REPLACE_3) && (CMOR_NETCDF_MODE != CMOR_PRESERVE_3) && (CMOR_NETCDF_MODE != CMOR_APPEND_3)) {
-	  ics = cmor_tables[cmor_vars[var_id].ref_table_id].vars[cmor_vars[var_id].ref_var_id].shuffle;
-	  icd = cmor_tables[cmor_vars[var_id].ref_table_id].vars[cmor_vars[var_id].ref_var_id].deflate;
-	  icdl = cmor_tables[cmor_vars[var_id].ref_table_id].vars[cmor_vars[var_id].ref_var_id].deflate_level;
-	  ierr = nc_def_var_deflate(ncafid,nc_bnds_vars[i],ics,icd,icdl);
-	  if (ierr != NC_NOERR) {
-	    snprintf(msg,CMOR_MAX_STRING,"NCError (%i) defining compression parameters for bounds variable %s for variable '%s'",ierr,ctmp,cmor_vars[var_id].id);
-	    cmor_handle_error(msg,CMOR_CRITICAL);
-	  }
-	}
-	  /* sets the bounds attribute of parent var */
-	if (i==0) cmor_vars[var_id].time_bnds_nc_id = nc_bnds_vars[i];
-	ierr = nc_put_att_text(ncafid,nc_vars[i],msg,strlen(ctmp)+1,ctmp);
-	if (ierr != NC_NOERR) {snprintf(msg,CMOR_MAX_STRING, "NetCDF Error (%i) for variable %s error defining bounds attribute var: %i (%s)",ierr,cmor_vars[var_id].id,i,cmor_axes[cmor_vars[var_id].axes_ids[i]].id);cmor_handle_error(msg,CMOR_CRITICAL);}
-      }
-      /* Creates attribute related to that axis */
-      for (j=0;j<cmor_axes[cmor_vars[var_id].axes_ids[i]].nattributes;j++){
-	if (strcmp(cmor_axes[cmor_vars[var_id].axes_ids[i]].attributes[j],"z_factors")==0) {
-	  /* ok this part checks for z_factor things */
-	  /* creates the formula terms attriubte */
-	  strncpy(msg,cmor_axes[cmor_vars[var_id].axes_ids[i]].attributes_values_char[j],CMOR_MAX_STRING);
-	  n=strlen(msg)+1;
-	  ierr = nc_put_att_text(ncid,nc_vars[i],"formula_terms",n,msg);
-	  if (ierr != NC_NOERR) {snprintf(ctmp,CMOR_MAX_STRING,"NetCDF error (%i) writing formula term att (%s) for axis %i (%s)",ierr,msg,i,cmor_axes[cmor_vars[var_id].axes_ids[i]].id);cmor_handle_error(msg,CMOR_CRITICAL);}
-/* 	  printf("doing formula for: %s\n",msg); */
-	  if (ncid!=ncafid) {
-	  ierr = nc_put_att_text(ncafid,nc_vars_af[i],"formula_terms",n,msg);
-	  if (ierr != NC_NOERR) {snprintf(ctmp,CMOR_MAX_STRING,"NetCDF error (%i) writing formula term att (%s) for axis %i (%s)",ierr,msg,i,cmor_axes[cmor_vars[var_id].axes_ids[i]].id);cmor_handle_error(ctmp,CMOR_CRITICAL);}
-	  }
-	  ierr =  cmor_define_zfactors_vars(var_id,ncafid, &nc_dim_af[0],msg,&nzfactors, &zfactors[0],&nc_zfactors[0],i,-1);
-	}
-	else if (strcmp(cmor_axes[cmor_vars[var_id].axes_ids[i]].attributes[j],"z_bounds_factors")==0) {
-	  cmor_get_axis_attribute(cmor_vars[var_id].axes_ids[i],"formula",'c',&msg);
-	  n=strlen(msg)+1;
-	  ierr = nc_put_att_text(ncafid,nc_bnds_vars[i],"formula",n,msg);
-	  cmor_get_axis_attribute(cmor_vars[var_id].axes_ids[i],"standard_name",'c',&msg);
-	  n=strlen(msg);
-	  ierr = nc_put_att_text(ncafid,nc_bnds_vars[i],"standard_name",n,msg);
-	  cmor_get_axis_attribute(cmor_vars[var_id].axes_ids[i],"units",'c',&msg);
-	  n=strlen(msg)+1;
-	  ierr = nc_put_att_text(ncafid,nc_bnds_vars[i],"units",n,msg);
-	  /*formula terms*/
-	  strncpy(msg,cmor_axes[cmor_vars[var_id].axes_ids[i]].attributes_values_char[j],CMOR_MAX_STRING);
-	  n=strlen(msg)+1;
-	  ierr = nc_put_att_text(ncafid,nc_bnds_vars[i],"formula_terms",n,msg);
-	  ierr =  cmor_define_zfactors_vars(var_id,ncafid, nc_dim,msg,&nzfactors, &zfactors[0],&nc_zfactors[0],i,dim_bnds);
-	}
-	else if (strcmp(cmor_axes[cmor_vars[var_id].axes_ids[i]].attributes[j],"interval")==0) {
-	  if (cmor_has_variable_attribute(var_id,"cell_methods")==0) {
-	    cmor_get_variable_attribute(var_id,"cell_methods",msg);
-	  }
-	  else {
-	    strcpy(msg,"");
-	  }
-	  strncpy(ctmp,cmor_axes[cmor_vars[var_id].axes_ids[i]].id,CMOR_MAX_STRING);
-	  strncat(ctmp,":",CMOR_MAX_STRING-strlen(ctmp));
-	  icd = strlen(ctmp);
-	  itmpmsg = strlen(msg);
-	  for(ics=0;ics<(itmpmsg-icd);ics++) {
-	    for(icdl=0;icdl<icd;icdl++) {
-	      ctmp2[icdl]=msg[ics+icdl];
-	      ctmp2[icdl+1]='\0';
-	    }
-	    if (strcmp(ctmp2,ctmp)==0) {
-	      itmp2 = strlen(ctmp);
-	      for(icdl=0;icdl<(ics+itmp2+1);icdl++) {
-		ctmp2[icdl]=msg[icdl];
-	      }
-	      while((msg[icdl]!=' ')&&(msg[icdl]!='\0')) {
-		ctmp2[icdl]=msg[icdl];
-		icdl++;
-	      }
-	      ctmp2[icdl]='\0';
-	      icd = strlen(ctmp2);
-	      /* ok now we need to know if the user passed an interval or not in order to add it */
-	      cmor_get_axis_attribute(cmor_vars[var_id].axes_ids[i],"interval",'c',ctmp);
-	      cmor_trim_string(ctmp,ctmp3);
-	      if (strcmp(ctmp3,"")!=0) {
-		strncat(ctmp2," (interval: ",CMOR_MAX_STRING-strlen(ctmp2));
-		strncat(ctmp2,ctmp,CMOR_MAX_STRING-strlen(ctmp2));
-		strncat(ctmp2,")",CMOR_MAX_STRING-strlen(ctmp2));
-	      }
-	      ierr = strlen(ctmp2)-icd;
-	      itmp3 = strlen(msg);
-	      for(icdl=icd;icdl<itmp3;icdl++) {
-		ctmp2[icdl+ierr]=msg[icdl];
-		ctmp2[icdl+1+ierr]='\0';
-	      }
-	      cmor_set_variable_attribute(var_id,"cell_methods",'c',ctmp2);
-	      break;
-	    }
-	  }
-	}
-	else {
-/* 	  printf("ok in the else thingy: %s\n",cmor_axes[cmor_vars[var_id].axes_ids[i]].attributes[j]); */
-	  if (cmor_axes[cmor_vars[var_id].axes_ids[i]].attributes_type[j]=='c') {
-	    ierr = cmor_put_nc_char_attribute(ncid,nc_vars[i],cmor_axes[cmor_vars[var_id].axes_ids[i]].attributes[j],cmor_axes[cmor_vars[var_id].axes_ids[i]].attributes_values_char[j],cmor_vars[var_id].id);
-	    if (ncid!=ncafid) {
-	      ierr = cmor_put_nc_char_attribute(ncafid,nc_vars_af[i],cmor_axes[cmor_vars[var_id].axes_ids[i]].attributes[j],cmor_axes[cmor_vars[var_id].axes_ids[i]].attributes_values_char[j],cmor_vars[var_id].id);
-	    }
-	  }
-	  else {
-	    ierr = cmor_put_nc_num_attribute(ncid,nc_vars[i],cmor_axes[cmor_vars[var_id].axes_ids[i]].attributes[j], cmor_axes[cmor_vars[var_id].axes_ids[i]].attributes_type[j], cmor_axes[cmor_vars[var_id].axes_ids[i]].attributes_values_num[j],cmor_vars[var_id].id);
-	    if (ncid!=ncafid) {
-	      ierr = cmor_put_nc_num_attribute(ncafid,nc_vars_af[i],cmor_axes[cmor_vars[var_id].axes_ids[i]].attributes[j], cmor_axes[cmor_vars[var_id].axes_ids[i]].attributes_type[j], cmor_axes[cmor_vars[var_id].axes_ids[i]].attributes_values_num[j],cmor_vars[var_id].id);
-	    }
-	  }
-	}
-      }
-    }
-    /* Store the dimension id for reuse when writting over multiple call to cmor_write */
-    cmor_vars[var_id].time_nc_id = nc_vars[0];
-
-    /* check if it is a grid thing */
-    if (cmor_vars[var_id].grid_id>-1) {
-      /* first of all checks for grid_mapping */
-      if (strcmp(cmor_grids[cmor_vars[var_id].grid_id].mapping,"")!=0) {
-	/* ok we need to create this dummy variable that contains all the info */
-	cmor_set_variable_attribute(var_id,"grid_mapping",'c',cmor_grids[cmor_vars[var_id].grid_id].mapping);
-	ierr = nc_def_var(ncafid,cmor_grids[cmor_vars[var_id].grid_id].mapping,NC_INT,0,&nc_dims_associated[0],&m);
-	if (ierr != NC_NOERR) {
-	  snprintf(msg,CMOR_MAX_STRING,"NetCDF error %i while defining associated grid mapping variable %s",ierr,cmor_grids[cmor_vars[var_id].grid_id].mapping);
-	  cmor_handle_error(msg,CMOR_CRITICAL);
-	}
-	/* Creates attributes related to that variable */
-	ierr = cmor_put_nc_char_attribute(ncafid,m,"grid_mapping_name",cmor_grids[cmor_vars[var_id].grid_id].mapping,cmor_vars[var_id].id);
-	for (k=0;k<cmor_grids[cmor_vars[var_id].grid_id].nattributes;k++){
-	  if (strcmp(cmor_grids[cmor_vars[var_id].grid_id].attributes_names[k],"standard_parallel1")==0 ||strcmp(cmor_grids[cmor_vars[var_id].grid_id].attributes_names[k],"standard_parallel2")==0 ){
-	    i = -cmor_vars[var_id].grid_id-10;
-	    if ((cmor_has_grid_attribute(i,"standard_parallel1")==0) && (cmor_has_grid_attribute(i,"standard_parallel2")==0)) {
-	      cmor_get_grid_attribute(i,"standard_parallel1",&tmps[0]);
-	      cmor_get_grid_attribute(i,"standard_parallel2",&tmps[1]);
-	      ierr = nc_put_att_double(ncafid,m,"standard_parallel",NC_DOUBLE,2,&tmps[0]);
-	    }
-	    else if (cmor_has_grid_attribute(i,"standard_parallel1")==0) {
-	      cmor_get_grid_attribute(i,"standard_parallel1",&tmps[0]);
-	      ierr = nc_put_att_double(ncafid,m,"standard_parallel",NC_DOUBLE,1,&tmps[0]);
-	    }
-	    else {
-	      cmor_get_grid_attribute(i,"standard_parallel2",&tmps[0]);
-	      ierr = nc_put_att_double(ncafid,m,"standard_parallel",NC_DOUBLE,1,&tmps[0]);
-	    }
-	    if (ierr!=NC_NOERR) {
-	      snprintf(msg,CMOR_MAX_STRING,"NetCDF Error (%i) writing standard_parallel to file",ierr);
-	      cmor_handle_error(msg,CMOR_NORMAL);
-	      cmor_pop_traceback();
-	      return 1;
-	    }
-	  }
-	  else {
-	    ierr = cmor_put_nc_num_attribute(ncafid,m,cmor_grids[cmor_vars[var_id].grid_id].attributes_names[k],'d',cmor_grids[cmor_vars[var_id].grid_id].attributes_values[k],cmor_grids[cmor_vars[var_id].grid_id].mapping);
-	  }
-	}
-      }
-      /* preps the marker for vertices diemnsions */
-      m=0;
-      /* At this point creates the associated variables */
-      /* all is done is associated file */
-      for (i=0;i<5;i++) {
-	m2[i]=0;
-	j = cmor_grids[cmor_vars[var_id].grid_id].associated_variables[i];
-/* 	printf("i: %i, associated is: %i\n",i,j); */
-	if (j!=-1) {
-	  /* ok we need to define this variable */
-	  l=0;
-	  /* first we need to figure out the actual grid dimensions and their netcdf eq */
-	  for(k=0;k<cmor_vars[var_id].ndims;k++) {
-/* 	    printf("axis: %s\n",cmor_axes[cmor_vars[var_id].axes_ids[k]].id); */
-	    if (cmor_axes[cmor_vars[var_id].axes_ids[k]].isgridaxis==1) {
-	      nc_dims_associated[l]=nc_dim_af[k];
-/* 	      printf("ok we have a grid axis %s associated with dim %i (k is: %i)\n",cmor_axes[cmor_vars[var_id].axes_ids[k]].id,l,k); */
-	      if (m2[i]==0 && (i==0 || i==1)) {
-		if (cmor_has_variable_attribute(var_id,"coordinates")==0) {
-		  cmor_get_variable_attribute(var_id,"coordinates",&msg);
-		  strncat(msg," ",CMOR_MAX_STRING-strlen(msg));
-		  strncat(msg,cmor_vars[cmor_grids[cmor_vars[var_id].grid_id].associated_variables[i]].id,CMOR_MAX_STRING-strlen(msg));
-		}
-		else {
-		  strncpy(msg,cmor_vars[cmor_grids[cmor_vars[var_id].grid_id].associated_variables[i]].id,CMOR_MAX_STRING-strlen(msg));
-		}
-		cmor_set_variable_attribute(var_id,"coordinates",'c',msg);
-		m2[i]=1;
-	      }
-	      l++;
-	    }
-	  }
-	  if (((i==2) || (i==3)) && (m==0)) { /*vertices need to be added */
-	    m=1; /* ok now it has been defined */
-	    ierr = nc_def_dim(ncafid,"vertices",cmor_axes[cmor_vars[j].axes_ids[cmor_vars[j].ndims-1]].length,&nc_dims_associated[l]);
-	    if (ierr != NC_NOERR) {snprintf(msg,CMOR_MAX_STRING,"NetCDF error %i while defining vertices dimension",ierr);cmor_handle_error(msg,CMOR_CRITICAL);}
-	  }
-	  mtype = cmor_vars[j].type;
-/* 	  printf("type, ndims: %c, %i\n",mtype,cmor_vars[j].ndims); */
-/* 	  for(k=0;k<cmor_vars[var_id].ndims;k++) { */
-/* 	    printf("nc dim for dim %i is: %i\n",k,nc_dims_associated[k]); */
-/* 	  } */
-	  if (mtype=='d' ) ierr = nc_def_var(ncafid,cmor_vars[j].id,NC_DOUBLE,cmor_vars[j].ndims,&nc_dims_associated[0],&nc_associated_vars[i]);
-	  else if (mtype=='f' ) ierr = nc_def_var(ncafid,cmor_vars[j].id,NC_FLOAT,cmor_vars[j].ndims,&nc_dims_associated[0],&nc_associated_vars[i]);
-	  else if (mtype=='l' ) ierr = nc_def_var(ncafid,cmor_vars[j].id,NC_INT,cmor_vars[j].ndims,&nc_dims_associated[0],&nc_associated_vars[i]);
-	  else if (mtype=='i' ) ierr = nc_def_var(ncafid,cmor_vars[j].id,NC_INT,cmor_vars[j].ndims,&nc_dims_associated[0],&nc_associated_vars[i]);
-	  if (ierr != NC_NOERR) {snprintf(msg,CMOR_MAX_STRING,"NetCDF error %i while defining associated variable %s",ierr,cmor_vars[j].id);cmor_handle_error(msg,CMOR_CRITICAL);}
-	  /* /\* at this point we check if tables match *\/ */
-	  /* if (cmor_vars[j].ref_table_id!=cmor_vars[var_id].ref_table_id) { */
-	  /*   snprintf(msg,CMOR_MAX_STRING,"Table %s (%s) ",cmor_tables[cmor_vars[j].ref_table_id].table_id,cmor_tables[cmor_vars[j].ref_table_id].date); */
-	  /*   for (i=0;i<16;i++) sprintf(&ctmp[2*i],"%02x",cmor_tables[cmor_axes[cmor_vars[var_id].axes_ids[i]].ref_table_id].md5[i]); */
-	  /*   ctmp[32]='\0'; */
-	  /*   strcat(msg,ctmp); */
-	  /*   ierr = nc_put_att_text(ncid, nc_associated_vars[i],"table_id",strlen(msg)+1,msg); */
-	  /*   if (ierr != NC_NOERR) { */
-	  /*     snprintf(ctmp2,CMOR_MAX_STRING,"NetCDF error (%i) for associated variable %s writing table_id att (%s) onto associated var: %s",ierr,cmor_vars[var_id].id,msg,cmor_vars[j].id); */
-	  /*     cmor_handle_error(ctmp2,CMOR_CRITICAL); */
-	  /*   } */
-	  /* } */
-	  /* Creates attributes related to that variable */
-	  for (k=0;k<cmor_vars[j].nattributes;k++){
-	    if (strcmp(cmor_vars[j].attributes[k],"flag_values")==0) {
-	      /* ok we need to convert the string to a list of int */
-	      ierr = cmor_convert_string_to_list(cmor_vars[j].attributes_values_char[k],'i',(void *)&int_list,&nelts);
-	      ierr = nc_put_att_int(ncafid, nc_associated_vars[i],"flag_values",NC_INT,nelts,int_list);
-	      if (ierr != NC_NOERR) {
-		snprintf(msg,CMOR_MAX_STRING,"NetCDF Error (%i) setting flags numerical attribute on variable",ierr);
-		cmor_handle_error(msg,CMOR_CRITICAL);
-	      }
-	      free(int_list);
-	    }
-	    else if (cmor_vars[j].attributes_type[k] == 'c') {
-	      ierr = cmor_put_nc_char_attribute(ncafid,nc_associated_vars[i],cmor_vars[j].attributes[k],cmor_vars[j].attributes_values_char[k],cmor_vars[j].id) ;
-	    }
-	    else {
-	      ierr = cmor_put_nc_num_attribute(ncafid,nc_associated_vars[i],cmor_vars[j].attributes[k],cmor_vars[j].attributes_type[k],cmor_vars[j].attributes_values_num[k],cmor_vars[j].id);
-	    }
-	  }
-	  /* Compression stuff */
-	  if ((CMOR_NETCDF_MODE != CMOR_REPLACE_3) && (CMOR_NETCDF_MODE != CMOR_PRESERVE_3) && (CMOR_NETCDF_MODE != CMOR_APPEND_3)) {
-	    if (cmor_vars[j].ndims>0) {
-	      ics = cmor_tables[cmor_vars[j].ref_table_id].vars[cmor_vars[j].ref_var_id].shuffle;
-	      icd = cmor_tables[cmor_vars[j].ref_table_id].vars[cmor_vars[j].ref_var_id].deflate;
-	      icdl = cmor_tables[cmor_vars[j].ref_table_id].vars[cmor_vars[j].ref_var_id].deflate_level;
-	      ierr = nc_def_var_deflate(ncafid,nc_associated_vars[i],ics,icd,icdl);
-	      if (ierr != NC_NOERR) {
-		snprintf(msg,CMOR_MAX_STRING,"NCError (%i) defining compression parameters for variable '%s'",ierr,cmor_vars[j].id);
-		cmor_handle_error(msg,CMOR_CRITICAL);
-	      }
-	    }
-	  }
-	}
-      }
-    }
-
-
-
-    /* Creates singleton dimension variables */
-    for(i=0;i<CMOR_MAX_DIMENSIONS;i++) {
-      j = cmor_vars[var_id].singleton_ids[i];
-      if (j!=-1) {
-	ierr = nc_def_var(ncid,cmor_axes[j].id,NC_DOUBLE,0,&nc_singletons[i],&nc_singletons[i]);
-	if (ierr != NC_NOERR) {
-	  snprintf(msg,CMOR_MAX_STRING,"NCError (%i) defining scalar variable %s for variable %s",ierr,cmor_axes[j].id,cmor_vars[var_id].id);
-	  cmor_handle_error(msg,CMOR_CRITICAL);
-	}
-	/* now  puts on its attributes */
-	for (k=0;k<cmor_axes[j].nattributes;k++){
-	  if (cmor_axes[j].attributes_type[k] == 'c') {
-	    ierr = cmor_put_nc_char_attribute(ncid,nc_singletons[i],cmor_axes[j].attributes[k],cmor_axes[j].attributes_values_char[k],cmor_vars[var_id].id) ;
-	  }
-	  else {
-	    ierr = cmor_put_nc_num_attribute(ncid,nc_singletons[i],cmor_axes[j].attributes[k],cmor_axes[j].attributes_type[k],cmor_axes[j].attributes_values_num[k],cmor_vars[var_id].id);
-	  }
-	}
-	/* ok we need to see if there's bounds as well... */
-	if (cmor_axes[j].bounds!=NULL) { /*yep */
-	  snprintf(msg,CMOR_MAX_STRING,"%s_bnds",cmor_axes[j].id);
-	  ierr = cmor_put_nc_char_attribute(ncid,nc_singletons[i],"bounds",msg,cmor_vars[var_id].id) ;
-	  ierr = nc_def_var(ncid,msg,NC_DOUBLE,1,&dim_bnds,&nc_singletons_bnds[i]);
-	  if (ierr != NC_NOERR) {
-	    snprintf(msg,CMOR_MAX_STRING,"NCError (%i) defining scalar bounds variable %s for variable %s",ierr,cmor_axes[j].id,cmor_vars[var_id].id);
-	    cmor_handle_error(msg,CMOR_CRITICAL);
-	  }
-	}
-      }
-    }
-
-
-
-    /* Creating variable to write */
-    mtype=cmor_vars[var_id].type;
-    if (mtype=='d' ) ierr = nc_def_var(ncid,cmor_vars[var_id].id,NC_DOUBLE,cmor_vars[var_id].ndims,&nc_dim[0],&nc_vars[cmor_vars[var_id].ndims]);
-    else if (mtype=='f' ) ierr = nc_def_var(ncid,cmor_vars[var_id].id,NC_FLOAT,cmor_vars[var_id].ndims,&nc_dim[0],&nc_vars[cmor_vars[var_id].ndims]);
-    else if (mtype=='l' ) ierr = nc_def_var(ncid,cmor_vars[var_id].id,NC_INT,cmor_vars[var_id].ndims,&nc_dim[0],&nc_vars[cmor_vars[var_id].ndims]);
-    else if (mtype=='i' ) ierr = nc_def_var(ncid,cmor_vars[var_id].id,NC_INT,cmor_vars[var_id].ndims,&nc_dim[0],&nc_vars[cmor_vars[var_id].ndims]);
-    if (ierr != NC_NOERR) {
-      snprintf(msg,CMOR_MAX_STRING,"NetCDF Error (%i) writing variable: %s",ierr,cmor_vars[var_id].id);
-      cmor_handle_error(msg,CMOR_CRITICAL);
-    }
-
-    /* Store the var id for reuse when writting over multiple call to cmor_write and for cmor_close */
-    cmor_vars[var_id].nc_var_id=nc_vars[cmor_vars[var_id].ndims];
-
-    /* Creates attributes related to that variable */
-    for (j=0;j<cmor_vars[var_id].nattributes;j++){
-      if (strcmp(cmor_vars[var_id].attributes[j],"flag_values")==0) {
-	/* ok we need to convert the string to a list of int */
-	ierr = cmor_convert_string_to_list(cmor_vars[var_id].attributes_values_char[j],'i',(void *)&int_list,&nelts);
-	ierr = nc_put_att_int(ncid,cmor_vars[var_id].nc_var_id ,"flag_values",NC_INT,nelts,int_list);
-	if (ierr != NC_NOERR) {
-	  snprintf(msg,CMOR_MAX_STRING,"NetCDF Error (%i) setting flags numerical attribute on variable",ierr);
-	  cmor_handle_error(msg,CMOR_CRITICAL);
-	}
-	free(int_list);
-      }
-      else if (cmor_vars[var_id].attributes_type[j] == 'c') {
-	ierr = cmor_put_nc_char_attribute(ncid,cmor_vars[var_id].nc_var_id,cmor_vars[var_id].attributes[j],cmor_vars[var_id].attributes_values_char[j],cmor_vars[var_id].id) ;
-      }
-      else {
-	ierr = cmor_put_nc_num_attribute(ncid,cmor_vars[var_id].nc_var_id,cmor_vars[var_id].attributes[j],cmor_vars[var_id].attributes_type[j],cmor_vars[var_id].attributes_values_num[j],cmor_vars[var_id].id);
-      }
-    }
-
-    if ((CMOR_NETCDF_MODE != CMOR_REPLACE_3) && (CMOR_NETCDF_MODE != CMOR_PRESERVE_3) && (CMOR_NETCDF_MODE != CMOR_APPEND_3)) {
-      /* Compression stuff */
-      ics = cmor_tables[cmor_vars[var_id].ref_table_id].vars[cmor_vars[var_id].ref_var_id].shuffle;
-      icd = cmor_tables[cmor_vars[var_id].ref_table_id].vars[cmor_vars[var_id].ref_var_id].deflate;
-      icdl = cmor_tables[cmor_vars[var_id].ref_table_id].vars[cmor_vars[var_id].ref_var_id].deflate_level;
-      ierr = nc_def_var_deflate(ncid,cmor_vars[var_id].nc_var_id,ics,icd,icdl);
-      if (ierr != NC_NOERR) {
-	snprintf(msg,CMOR_MAX_STRING,"NCError (%i) defining compression parameters for variable '%s'",ierr,cmor_vars[var_id].id);
-	cmor_handle_error(msg,CMOR_CRITICAL);
-      }
-      /* Chunking stuff */
-#ifndef NC_CHUNKED
-#define NC_CHUNKED 0
-#endif
-      if (!((cmor_vars[var_id].grid_id>-1) && (cmor_grids[cmor_vars[var_id].grid_id].istimevarying==1))) {
-	ierr = nc_def_var_chunking(ncid,cmor_vars[var_id].nc_var_id,NC_CHUNKED,&nc_dim_chunking[0]);
-	if (ierr != NC_NOERR) {
-	  snprintf(msg,CMOR_MAX_STRING,"NCError (%i) defining chunking parameters for variable '%s'",ierr,cmor_vars[var_id].id);
-	  cmor_handle_error(msg,CMOR_CRITICAL);
-	}
-      }
-    }
-
-
-    /* Done with NetCDF file definitions */
-    ierr = nc_enddef(ncid);
-    if (ierr != NC_NOERR && ierr != NC_ENOTINDEFINE) {snprintf(msg,CMOR_MAX_STRING,"NetCDF Error (%i) leaving definition mode for file %s",ierr,outname);cmor_handle_error(msg,CMOR_CRITICAL);}
-    ierr = nc_enddef(ncafid);
-    if (ierr != NC_NOERR && ierr != NC_ENOTINDEFINE) {snprintf(msg,CMOR_MAX_STRING,"NetCDF Error (%i) leaving definition mode for metafile %s",ierr,cmor_current_dataset.associated_file_name);cmor_handle_error(msg,CMOR_CRITICAL);}
-    
-    /* Write non time dimension of variable into the NetCDF file */
-
-    l = 1;
-    if (cmor_axes[cmor_vars[var_id].axes_ids[0]].axis!='T') {
-      l=0;
-    }
-    for(i=l;i<cmor_vars[var_id].ndims;i++) {
-      /* for(j=0;j<cmor_axes[cmor_vars[var_id].axes_ids[i]].length;j++) printf("axis %s : writing value: %i, %lf\n",cmor_axes[cmor_vars[var_id].axes_ids[i]].id,j,cmor_axes[cmor_vars[var_id].axes_ids[i]].values[j]); */
-      /* at this point we need to check if the values of the axis need to be replaced (hybrid coords *//* we only need to do this if ho != hi */
-      if (cmor_axes[cmor_vars[var_id].axes_ids[i]].hybrid_out!=cmor_axes[cmor_vars[var_id].axes_ids[i]].hybrid_in) {
-	ho = 0;
-	if (cmor_axes[cmor_vars[var_id].axes_ids[i]].hybrid_out!=0) {
-	  ho = cmor_axes[cmor_vars[var_id].axes_ids[i]].hybrid_out;
-	}
-	else if (cmor_axes[cmor_vars[var_id].axes_ids[i]].hybrid_in!=0) {
-	  ho = cmor_axes[cmor_vars[var_id].axes_ids[i]].hybrid_in;
-	}
-	/*       printf("ok the hybrid out on this axis %i (%s) is: %i\n",cmor_vars[var_id].axes_ids[i],cmor_axes[cmor_vars[var_id].axes_ids[i]].id,ho); */
-	if (ho!=0) {
-	  /* yep need to change them */
-	  if (ho==1) { /* std hyb sigma*/
-	    /* look for a coeff */
-	    k=-1;
-	    for(j=0;j<=cmor_nvars;j++) if ((strcmp(cmor_vars[j].id,"a")==0) && (cmor_vars[j].zaxis==cmor_vars[var_id].axes_ids[i])) { k=j; break;}
-	    if (k==-1) {
-	      snprintf(msg,CMOR_MAX_STRING,"could not find 'a' coeff for axis: %s",cmor_axes[cmor_vars[var_id].axes_ids[i]].id);
-	      cmor_handle_error(msg,CMOR_CRITICAL);
-	    }
-	    for (j=0;j<cmor_axes[cmor_vars[var_id].axes_ids[i]].length;j++) cmor_axes[cmor_vars[var_id].axes_ids[i]].values[j]=cmor_vars[k].values[j];
-	    /* look for b coeff */
-	    k=-1;
-	    for(j=0;j<=cmor_nvars;j++) if ((strcmp(cmor_vars[j].id,"b")==0) && (cmor_vars[j].zaxis==cmor_vars[var_id].axes_ids[i])) { k=j; break;}
-	    if (k==-1) {
-	      snprintf(msg,CMOR_MAX_STRING,"could find 'b' coeff for axis: %s",cmor_axes[cmor_vars[var_id].axes_ids[i]].id);
-	      cmor_handle_error(msg,CMOR_CRITICAL);
-	    }
-	    for (j=0;j<cmor_axes[cmor_vars[var_id].axes_ids[i]].length;j++) cmor_axes[cmor_vars[var_id].axes_ids[i]].values[j]+=cmor_vars[k].values[j];
-	    
-	    /* do we have bounds to treat as well ? */
-	    if (cmor_axes[cmor_vars[var_id].axes_ids[i]].bounds!=NULL) {
-	      k=-1;
-	      for(j=0;j<=cmor_nvars;j++) if ((strcmp(cmor_vars[j].id,"a_bnds")==0) && (cmor_vars[j].zaxis==cmor_vars[var_id].axes_ids[i])) { k=j; break;}
-	      if (k==-1) {
-		snprintf(msg,CMOR_MAX_STRING,"could not find 'a_bnds' coeff for axis: %s",cmor_axes[cmor_vars[var_id].axes_ids[i]].id);
-		cmor_handle_error(msg,CMOR_CRITICAL);
-	      }
-	      for (j=0;j<cmor_axes[cmor_vars[var_id].axes_ids[i]].length*2;j++) cmor_axes[cmor_vars[var_id].axes_ids[i]].bounds[j]=cmor_vars[k].values[j];
-	      k=-1;
-	      for(j=0;j<=cmor_nvars;j++) if ((strcmp(cmor_vars[j].id,"b_bnds")==0) && (cmor_vars[j].zaxis==cmor_vars[var_id].axes_ids[i])) { k=j; break;}
-	      if (k==-1) {
-		snprintf(msg,CMOR_MAX_STRING,"could find 'b_bnds' coef for axis: %s",cmor_axes[cmor_vars[var_id].axes_ids[i]].id);
-		cmor_handle_error(msg,CMOR_CRITICAL);
-	      }
-	      for (j=0;j<cmor_axes[cmor_vars[var_id].axes_ids[i]].length*2;j++) cmor_axes[cmor_vars[var_id].axes_ids[i]].bounds[j]+=cmor_vars[k].values[j]; 
-	    }
-	    cmor_flip_hybrid(var_id,i,"a","b","a_bnds","b_bnds");
-	  }
-	  else if (ho==2) {/* alternate hyb sigma*/
-	    /* look for ap coeff */
-	    k=-1;
-	    for(j=0;j<=cmor_nvars;j++) if ((strcmp(cmor_vars[j].id,"ap")==0) && (cmor_vars[j].zaxis==cmor_vars[var_id].axes_ids[i])) { k=j; break;}
-	    if (k==-1) {
-	      snprintf(msg,CMOR_MAX_STRING,"could not find 'ap' coeef for axis: %s",cmor_axes[cmor_vars[var_id].axes_ids[i]].id);
-	      cmor_handle_error(msg,CMOR_CRITICAL);
-	    }
-	    for (j=0;j<cmor_axes[cmor_vars[var_id].axes_ids[i]].length;j++) cmor_axes[cmor_vars[var_id].axes_ids[i]].values[j]=cmor_vars[k].values[j]/cmor_vars[l].values[0];
-	    /* look for b coeff */
-	    k=-1;
-	    for(j=0;j<=cmor_nvars;j++) if ((strcmp(cmor_vars[j].id,"b")==0) && (cmor_vars[j].zaxis==cmor_vars[var_id].axes_ids[i])) { k=j; break;}
-	    if (k==-1) {
-	      snprintf(msg,CMOR_MAX_STRING,"could find 'b' coef for axis: %s",cmor_axes[cmor_vars[var_id].axes_ids[i]].id);
-	      cmor_handle_error(msg,CMOR_CRITICAL);
-	    }
-	    for (j=0;j<cmor_axes[cmor_vars[var_id].axes_ids[i]].length;j++) cmor_axes[cmor_vars[var_id].axes_ids[i]].values[j]+=cmor_vars[k].values[j];
-	    
-	    /* deals with bounds */
-	    if (cmor_axes[cmor_vars[var_id].axes_ids[i]].bounds!=NULL) {
-	      k=-1;
-	      for(j=0;j<=cmor_nvars;j++) if ((strcmp(cmor_vars[j].id,"ap_bnds")==0) && (cmor_vars[j].zaxis==cmor_vars[var_id].axes_ids[i])) { k=j; break;}
-	      if (k==-1) {
-		snprintf(msg,CMOR_MAX_STRING,"could not find 'ap_bnds' coeff for axis: %s",cmor_axes[cmor_vars[var_id].axes_ids[i]].id);
-		cmor_handle_error(msg,CMOR_CRITICAL);
-	      }
-	      for (j=0;j<cmor_axes[cmor_vars[var_id].axes_ids[i]].length*2;j++) cmor_axes[cmor_vars[var_id].axes_ids[i]].bounds[j]=cmor_vars[k].values[j]/cmor_vars[l].values[0];
-	      k=-1;
-	      for(j=0;j<=cmor_nvars;j++) if ((strcmp(cmor_vars[j].id,"b_bnds")==0) && (cmor_vars[j].zaxis==cmor_vars[var_id].axes_ids[i])) { k=j; break;}
-	      if (k==-1) {
-		snprintf(msg,CMOR_MAX_STRING,"could find 'b_bnds' coef for axis: %s",cmor_axes[cmor_vars[var_id].axes_ids[i]].id);
-		cmor_handle_error(msg,CMOR_CRITICAL);
-	      }
-	      for (j=0;j<cmor_axes[cmor_vars[var_id].axes_ids[i]].length*2;j++) cmor_axes[cmor_vars[var_id].axes_ids[i]].bounds[j]+=cmor_vars[k].values[j]; 
-	    }
-	    cmor_flip_hybrid(var_id,i,"ap","b","ap_bnds","b_bnds");
-	  }
-	  else if (ho==3) { /* sigma */
-	    k=-1;
-	    for(j=0;j<=cmor_nvars;j++) if ((strcmp(cmor_vars[j].id,"sigma")==0) && (cmor_vars[j].zaxis==cmor_vars[var_id].axes_ids[i])) { k=j; break;}
-	    if (k==-1) {
-	      snprintf(msg,CMOR_MAX_STRING,"could not find 'sigma' coeef for axis: %s",cmor_axes[cmor_vars[var_id].axes_ids[i]].id);
-	      cmor_handle_error(msg,CMOR_CRITICAL);
-	    }
-	    for (j=0;j<cmor_axes[cmor_vars[var_id].axes_ids[i]].length;j++) cmor_axes[cmor_vars[var_id].axes_ids[i]].values[j]=cmor_vars[k].values[j];
-	    /* deals with bounds */
-	    if (cmor_axes[cmor_vars[var_id].axes_ids[i]].bounds!=NULL) {
-	      k=-1;
-	      for(j=0;j<=cmor_nvars;j++) if ((strcmp(cmor_vars[j].id,"sigma_bnds")==0) && (cmor_vars[j].zaxis==cmor_vars[var_id].axes_ids[i])) { k=j; break;}
-	      if (k==-1) {
-		snprintf(msg,CMOR_MAX_STRING,"could not find 'sigma_bnds' coeff for axis: %s",cmor_axes[cmor_vars[var_id].axes_ids[i]].id);
-		cmor_handle_error(msg,CMOR_CRITICAL);
-	      }
-	      for (j=0;j<cmor_axes[cmor_vars[var_id].axes_ids[i]].length*2;j++) cmor_axes[cmor_vars[var_id].axes_ids[i]].bounds[j]=cmor_vars[k].values[j];
-	    }
-	  }	  
-	  cmor_flip_hybrid(var_id,i,"sigma",NULL,"sigma_bnds",NULL);
-	} 
-      }
-      if (cmor_axes[cmor_vars[var_id].axes_ids[i]].cvalues == NULL) {
-	if (cmor_axes[cmor_vars[var_id].axes_ids[i]].store_in_netcdf == 1) {
-	  ierr = nc_put_var_double(ncid,nc_vars[i],cmor_axes[cmor_vars[var_id].axes_ids[i]].values);
-	  if (ierr != NC_NOERR) {
-	    snprintf(msg,CMOR_MAX_STRING,"NetCDF Error (%i) writing axis '%s' values",ierr,cmor_axes[cmor_vars[var_id].axes_ids[i]].id);
-	    cmor_handle_error(msg,CMOR_CRITICAL);
-	  }
-	  if (ncid!=ncafid) {
-	    ierr = nc_put_var_double(ncafid,nc_vars_af[i],cmor_axes[cmor_vars[var_id].axes_ids[i]].values);
-	    if (ierr != NC_NOERR) {
-	      snprintf(msg,CMOR_MAX_STRING,"NetCDF Error (%i) writing axis '%s' values to metafile",ierr,cmor_axes[cmor_vars[var_id].axes_ids[i]].id);
-	      cmor_handle_error(msg,CMOR_CRITICAL);
-	    }
-	  }
-	}
-      }
-      else {
-	for (j=0;j<cmor_axes[cmor_vars[var_id].axes_ids[i]].length;j++) {
-	  starts[0]=j;
-	  starts[1]=0;
-	  counts[0]=1;
-	  counts[1]=strlen(cmor_axes[cmor_vars[var_id].axes_ids[i]].cvalues[j]);
-	  ierr = nc_put_vara_text(ncid,nc_vars[i],starts,counts,cmor_axes[cmor_vars[var_id].axes_ids[i]].cvalues[j]);
-	  if (ierr != NC_NOERR) {
-	    snprintf(msg,CMOR_MAX_STRING,"NetCDF Error (%i) writing axis '%s' value number %d (%s)",ierr,cmor_axes[cmor_vars[var_id].axes_ids[i]].id,j,cmor_axes[cmor_vars[var_id].axes_ids[i]].cvalues[j]);
-	    cmor_handle_error(msg,CMOR_CRITICAL);
-	  }
-	  if (ncid!=ncafid) {
-	    ierr = nc_put_vara_text(ncafid,nc_vars_af[i],starts,counts,cmor_axes[cmor_vars[var_id].axes_ids[i]].cvalues[j]);
-	    if (ierr != NC_NOERR) {
-	      snprintf(msg,CMOR_MAX_STRING,"NetCDF Error (%i) writing axis '%s' values to metafile",ierr,cmor_axes[cmor_vars[var_id].axes_ids[i]].id);
-	      cmor_handle_error(msg,CMOR_CRITICAL);
-	    }
-	  }
-	}
-      }
-      /* ok do we have bounds on this axis? */
-      if (cmor_axes[cmor_vars[var_id].axes_ids[i]].bounds!=NULL) {
-	ierr = nc_put_var_double(ncafid,nc_bnds_vars[i],cmor_axes[cmor_vars[var_id].axes_ids[i]].bounds);
-	if (ierr != NC_NOERR) {
-	  snprintf(msg,CMOR_MAX_STRING,"NC error (%i) on variable %s writing bounds for dim %i (%s)",ierr,cmor_vars[var_id].id,i,cmor_axes[cmor_vars[var_id].axes_ids[i]].id);
-	  cmor_handle_error(msg,CMOR_CRITICAL);
-	}
-      }
-    }
-
-    /* ok now need to write grid variables */
-    if (cmor_vars[var_id].grid_id>-1) {
-      if (cmor_grids[cmor_vars[var_id].grid_id].istimevarying==0) {
-	for (i=0;i<4;i++) {
-	  j = cmor_grids[cmor_vars[var_id].grid_id].associated_variables[i];
-	  if (j!=-1) { /* we need to write this variable */
-	    cmor_vars[j].nc_var_id = nc_associated_vars[i];
-	    switch (i) {
-	    case (0) :
-	      cmor_write_var_to_file(ncafid,&cmor_vars[j],cmor_grids[cmor_vars[var_id].grid_id].lats,'d',0,NULL,NULL);
-	      break;
-	    case (1) :
-	      cmor_write_var_to_file(ncafid,&cmor_vars[j],cmor_grids[cmor_vars[var_id].grid_id].lons,'d',0,NULL,NULL);
-	      break;
-	    case (2) :
-	      cmor_write_var_to_file(ncafid,&cmor_vars[j],cmor_grids[cmor_vars[var_id].grid_id].blats,'d',0,NULL,NULL);
-	      break;
-	    case (3) :
-	      cmor_write_var_to_file(ncafid,&cmor_vars[j],cmor_grids[cmor_vars[var_id].grid_id].blons,'d',0,NULL,NULL);
-	      break;
-	      /* 	  case (4) : */
-	      /* 	    cmor_write_var_to_file(ncafid,&cmor_vars[j],cmor_grids[cmor_vars[var_id].grid_id].area,'d',0,NULL,NULL); */
-	      /* 	    break; */
-	    default :
-	      break;
-	    }
-	  }
-	}
-      }
-    }
-	
-    /* ok now write the zfactor values if necessary */
-    for(i=0;i<nzfactors;i++) {
-      if (cmor_vars[zfactors[i]].values != NULL) {/* ok this one has value defined we need to store it */
-	cmor_vars[zfactors[i]].nc_var_id = nc_zfactors[i];
-	cmor_write_var_to_file(ncafid,&cmor_vars[zfactors[i]],cmor_vars[zfactors[i]].values,'d',0,NULL,NULL);
-      }
-/*       if (cmor_vars[zfactors[i]].bounds != NULL) {/\* ok this one has value defined we need to store it *\/ */
-/* 	printf("writing bounds to nc file variable: %s, ncvar: %i\n",cmor_vars[zfactors[i]].id,nc_zfactors[i+1]); */
-/* 	cmor_vars[zfactors[i+1]].nc_var_id = nc_zfactors[i+1]; */
-/* 	cmor_write_var_to_file(ncid,&cmor_vars[zfactors[i+1]],&cmor_vars[zfactors[i]].bounds,0,NULL); */
-/* 	i++; */
-/*       } */
-    }
-    /* Write singleton dimension variables */
-    for(i=0;i<CMOR_MAX_DIMENSIONS;i++) {
-      j = cmor_vars[var_id].singleton_ids[i];
-      if (j!=-1) {
-	ierr = nc_put_var_double(ncid,nc_singletons[i],cmor_axes[j].values);
-	if (ierr != NC_NOERR) {
-	  snprintf(msg,CMOR_MAX_STRING,"NCError (%i) writing scalar variable %s for variable %s, value: %lf",ierr,cmor_axes[j].id,cmor_vars[var_id].id,cmor_axes[j].values[0]);
-	  cmor_handle_error(msg,CMOR_CRITICAL);
-	}
-	/* now see if we need bounds */
-	if (cmor_axes[j].bounds!=NULL) { /*yep */
-	  ierr = nc_put_var_double(ncid,nc_singletons_bnds[i],cmor_axes[j].bounds);
-	  if (ierr != NC_NOERR) {
-	    snprintf(msg,CMOR_MAX_STRING,"NCError (%i) writing scalar bounds variable %s for variable %s, values: %lf, %lf",ierr,cmor_axes[j].id,cmor_vars[var_id].id,cmor_axes[j].bounds[0],cmor_axes[j].bounds[1]);
-	    cmor_handle_error(msg,CMOR_CRITICAL);
-	  }
-	}
-      }
-    }
-    cmor_current_dataset.associate_file=ncafid;
-  }
-  else { 
-    /* Variable already been thru cmor_write, we just get the netcdf file id */
-    ncid=cmor_vars[varid].initialized;
-
-  /* generates a new unique id */
-    uuid_create(&myuuid);
-    uuid_make(myuuid,4);
-    myuuid_str = NULL;
-    fmt = UUID_FMT_STR;
-    uuid_export(myuuid,fmt,&myuuid_str,&uuidlen);
-    strncpy(cmor_current_dataset.tracking_id,(char *)myuuid_str,CMOR_MAX_STRING);
-    cmor_set_cur_dataset_attribute("tracking_id",cmor_current_dataset.tracking_id,0);
-
-    ierr = nc_put_att_text(ncid, NC_GLOBAL, "tracking_id",(int)uuidlen,myuuid_str);
-    free(myuuid_str);
-    uuid_destroy(myuuid);
-
-    if (ierr != NC_NOERR) {snprintf(msg,CMOR_MAX_STRING,"NetCDF error (%i) for variable %s writing global att: %s (%s)",ierr,cmor_vars[var_id].id,cmor_current_dataset.attributes_names[i],cmor_current_dataset.attributes_values[i]); cmor_handle_error(msg,CMOR_CRITICAL);}
-    cmor_vars[var_id].time_nc_id=cmor_vars[varid].time_nc_id; /* in case we are doing a zfactor var */
-    cmor_vars[var_id].time_bnds_nc_id=cmor_vars[varid].time_bnds_nc_id; /* in case we are doing a zfactor var */
-  }
-
-  /* here we add the number of time written for the associated variable */
-  if ((refvar!=NULL) && (cmor_vars[varid].grid_id>-1) && (cmor_grids[cmor_vars[varid].grid_id].istimevarying==1)) {
-    for (i=0;i<4;i++) {
-      if (cmor_grids[cmor_vars[varid].grid_id].associated_variables[i] == var_id) {
-	if (cmor_vars[varid].ntimes_written_coords[i]==-1) {
-	  cmor_vars[varid].ntimes_written_coords[i]=ntimes_passed;
-	}
-	else {
-	  cmor_vars[varid].ntimes_written_coords[i]+=ntimes_passed;
-	}
-      }
-    }
-  }
-  if (refvar!=NULL) {
-    for(i=0;i<10;i++) {
-      if (cmor_vars[*refvar].associated_ids[i]==var_id) {
-	if (cmor_vars[*refvar].ntimes_written_associated[i] == 0) {
-	  cmor_vars[*refvar].ntimes_written_associated[i] = ntimes_passed;
-	}
-	else {
-	  cmor_vars[*refvar].ntimes_written_associated[i] += ntimes_passed;
-	}
-      }
-    }
-  }
-  cmor_write_var_to_file(ncid,&cmor_vars[var_id],data,type,ntimes_passed,time_vals,time_bounds);
-  cmor_pop_traceback();
-  return 0;
-};
-
-
-
-int cmor_create_output_path(int var_id,char *outpath)
-{
-  /* reconstruct the suggested outpath structure */
-  /* returns 1 if it is a fixed filed 0 otherwise */
-  char tmp[CMOR_MAX_STRING],tmp2[CMOR_MAX_STRING];
-  int i,j;
-  double interval;
-  int createdirs;
-  int nurls = 4;
-  char urls[4][20] = { "http:", "https:", "HTTP:", "HTTPS:"};
-  int isfixed = 0;
-  extern int cmor_convert_char_to_hyphen(char c);
-
-  cmor_add_traceback("cmor_create_output_path");
-  /* user's base path */
-  strncpytrim(outpath,cmor_current_dataset.outpath,CMOR_MAX_STRING);
-  strncat(outpath,"/",CMOR_MAX_STRING-strlen(outpath));
-
-  /* decides if it is a URL or not, if it is no directory creation */
-  createdirs =1;
-  for (i=0;i<nurls;i++) {
-    if (strncmp(outpath,urls[i],strlen(urls[i]))==0) createdirs=0;
-  }
-  /* activity */
-  strncpytrim(tmp,cmor_tables[cmor_vars[var_id].ref_table_id].project_id,CMOR_MAX_STRING);
-  /* make sure you replace spaces with "_" */
-  for(i=0;i<strlen(tmp);i++) {
-    if (tmp[i]==' ') tmp[i]='_';
-  }
-  strncattrim(outpath,tmp,CMOR_MAX_STRING-strlen(outpath));
-  strncat(outpath,"/",CMOR_MAX_STRING-strlen(outpath));
-  if (createdirs==1) {
-    if ((mkdir(outpath, (S_IRWXU | S_IRWXG | S_IRWXO )) == -1) && (errno != EEXIST)) {
-      sprintf(tmp,"creating outpath: %s, not enough permission?",outpath);
-      cmor_handle_error(tmp,CMOR_CRITICAL);
-    }
-  }
-  /* product */
-  strncpytrim(tmp,cmor_tables[cmor_vars[var_id].ref_table_id].product,CMOR_MAX_STRING);
-  /* make sure you replace spaces with "_" */
-  for(i=0;i<strlen(tmp);i++) {
-    if (tmp[i]==' ') tmp[i]='_';
-  }
-  strncattrim(outpath,tmp,CMOR_MAX_STRING-strlen(outpath));
-  strncat(outpath,"/",CMOR_MAX_STRING-strlen(outpath));
-  if (createdirs==1) {
-    if ((mkdir(outpath, (S_IRWXU | S_IRWXG | S_IRWXO )) == -1) && (errno != EEXIST)) {
-      sprintf(tmp,"creating outpath: %s, not enough permission?",outpath);
-      cmor_handle_error(tmp,CMOR_CRITICAL);
-    }
-  }
-  /* institute */
-  cmor_get_cur_dataset_attribute("institute_id",tmp);
-  if (strcmp(tmp,"not specified")==0) {
-    strcpy(tmp,"INSTITUTE_ID");
-  }
-  strncattrim(outpath,tmp,CMOR_MAX_STRING-strlen(outpath));
-  strncat(outpath,"/",CMOR_MAX_STRING-strlen(outpath));
-  if (createdirs==1) {
-    if ((mkdir(outpath, (S_IRWXU | S_IRWXG | S_IRWXO )) == -1) && (errno != EEXIST)) {
-      sprintf(tmp,"creating outpath: %s, not enough permission?",outpath);
-      cmor_handle_error(tmp,CMOR_CRITICAL);
-    }
-  }
-  
-  /*model id */
-  if ( cmor_has_cur_dataset_attribute("model_id")==0) {
-    cmor_get_cur_dataset_attribute("model_id",tmp);
-    for (i=0;i<strlen(tmp);i++) {
-      if (cmor_convert_char_to_hyphen(tmp[i])==1) {
-	  tmp[i]='-';
-	}
-    }
-    /* removes trailing "-" */
-    for (i=strlen(tmp)-1;i>0;i--) {
-      if (tmp[i]=='-') {
-	tmp[i]='\0';
-      }
-      else {
-	break;
-      }
-    }
-    strncattrim(outpath,tmp,CMOR_MAX_STRING-strlen(outpath));
-    strncat(outpath,"/",CMOR_MAX_STRING-strlen(outpath));
-  }
-  if (createdirs==1) {
-    if ((mkdir(outpath, (S_IRWXU | S_IRWXG | S_IRWXO )) == -1) && (errno != EEXIST)) {
-      sprintf(tmp,"creating outpath: %s, not enough permission?",outpath);
-      cmor_handle_error(tmp,CMOR_CRITICAL);
-    }
-  }
-
-  /* experiment id */
-  cmor_get_cur_dataset_attribute("experiment_id",tmp);
-  /* ok here we need to reset the expt id to the shrt name if necessary */
-  for (i=0;i<=cmor_tables[cmor_vars[var_id].ref_table_id].nexps;i++) {
-/*     printf("i: %i, lng expt: %s\n",i,cmor_tables[cmor_vars[var_id].ref_table_id].expt_ids[i]); */
-/*     printf("i: %i, sht expt: %s\n",i,cmor_tables[cmor_vars[var_id].ref_table_id].sht_expt_ids[i]); */
-    j = strlen(tmp);
-    if (strncmp(cmor_tables[cmor_vars[var_id].ref_table_id].expt_ids[i],tmp,j)==0) {
-      if (strlen(cmor_tables[cmor_vars[var_id].ref_table_id].sht_expt_ids[i])!=0) {
-	strncpy(tmp2,cmor_tables[cmor_vars[var_id].ref_table_id].sht_expt_ids[i],j-4);
-	tmp2[j-4]='\0';
-	if (j>4) {
-	  strncpy(&tmp2[j-4],&tmp[j-4],4);
-	  tmp2[j]='\0';
-	}
-      }
-      else {
-	strcpy(tmp2,"");
-      }
-      strcpy(tmp,tmp2);
-      break;
-    }
-  }
-  if (strcmp(tmp,"")!=0) {
-    strncattrim(outpath,tmp,CMOR_MAX_STRING-strlen(outpath));
-    strncat(outpath,"/",CMOR_MAX_STRING-strlen(outpath));
-  }
-/*   else { */
-/*     strcpy(tmp,"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"); */
-/*     cmor_handle_error(tmp,CMOR_CRITICAL); */
-/*   } */
-  if (createdirs==1) {
-    if ((mkdir(outpath, (S_IRWXU | S_IRWXG | S_IRWXO )) == -1) && (errno != EEXIST)) {
-      sprintf(tmp,"creating outpath: %s, not enough permission?",outpath);
-      cmor_handle_error(tmp,CMOR_CRITICAL);
-    }
-  }
-
-  /* frequency */
-  if ((cmor_tables[cmor_vars[var_id].ref_table_id].frequency[0]=='\0') &&
-      (cmor_tables[cmor_vars[var_id].ref_table_id].vars[cmor_vars[var_id].ref_var_id].frequency[0]=='\0') ) {
-    /* need to figure out the approximate interval */
-    if ((cmor_tables[cmor_axes[cmor_vars[var_id].axes_ids[0]].ref_table_id].axes[cmor_axes[cmor_vars[var_id].axes_ids[0]].ref_axis_id].axis!='T') ) {
-      strcpy(tmp,"fx");
-      isfixed =1;
-    }
-    else {
-      interval = cmor_convert_interval_to_seconds(cmor_tables[cmor_axes[cmor_vars[var_id].axes_ids[0]].ref_table_id].interval,cmor_tables[cmor_axes[cmor_vars[var_id].axes_ids[0]].ref_table_id].axes[cmor_axes[cmor_vars[var_id].axes_ids[0]].ref_axis_id].units);
-      if (interval<2500.) { 
-	strcpy(tmp,"subhr");
-      }
-      else if (interval<15000.) {
-	strcpy(tmp,"3hr");
-      }
-      else if (interval<30000.) {
-	strcpy(tmp,"6hr");
-      }
-      else if (interval<100000.) {
-	strcpy(tmp,"day");
-      }
-      else if (interval<3.E6) {
-	strcpy(tmp,"mon");
-      }
-      else {
-	strcpy(tmp,"yr");
-      }
-      if (interval == 0.) {
-	strcpy(tmp,"fx");
-	isfixed=1;
-      }
-    }
-  }
-  else if (cmor_tables[cmor_vars[var_id].ref_table_id].vars[cmor_vars[var_id].ref_var_id].frequency[0]!='\0') {
-    strncpy(tmp,cmor_tables[cmor_vars[var_id].ref_table_id].vars[cmor_vars[var_id].ref_var_id].frequency,CMOR_MAX_STRING);
-  }
-  else {
-    strncpy(tmp,cmor_tables[cmor_vars[var_id].ref_table_id].frequency,CMOR_MAX_STRING);
-    if (strcmp(tmp,"fx")==0) isfixed=1;
-  }
-
-  /*Ok in case of climatology needs to add "clim" to it */
-  if (cmor_tables[cmor_axes[cmor_vars[var_id].axes_ids[0]].ref_table_id].axes[cmor_axes[cmor_vars[var_id].axes_ids[0]].ref_axis_id].climatology==1) {
-	strncat(tmp,"Clim",CMOR_MAX_STRING-strlen(tmp));	
-  }
-  strncattrim(outpath,tmp,CMOR_MAX_STRING-strlen(outpath));
-  strncat(outpath,"/",CMOR_MAX_STRING-strlen(outpath));
-  if (createdirs==1) {
-    if ((mkdir(outpath, (S_IRWXU | S_IRWXG | S_IRWXO )) == -1) && (errno != EEXIST)) {
-      sprintf(tmp,"creating outpath: %s, not enough permission?",outpath);
-      cmor_handle_error(tmp,CMOR_CRITICAL);
-    }
-  }
-  cmor_set_cur_dataset_attribute("frequency",tmp,1);
-  
-  /* realm */
-  /* first check if the variable itslef has a realm */
-  if (cmor_tables[cmor_vars[var_id].ref_table_id].vars[cmor_vars[var_id].ref_var_id].realm[0]!='\0') {
-    /* we want to copy only the first realm here */
-    for (i=0;i<strlen(cmor_tables[cmor_vars[var_id].ref_table_id].vars[cmor_vars[var_id].ref_var_id].realm);i++) {
-      if (cmor_tables[cmor_vars[var_id].ref_table_id].vars[cmor_vars[var_id].ref_var_id].realm[i]!=' ') {
-	tmp[i]=cmor_tables[cmor_vars[var_id].ref_table_id].vars[cmor_vars[var_id].ref_var_id].realm[i];
-	tmp[i+1]='\0';
-      }
-      else {
-	break;
-      }
-    }
-    strncattrim(outpath,tmp,CMOR_MAX_STRING-strlen(outpath));
-  }
-  else { /*ok it didn't so we're using the value from the table */
-    strncattrim(outpath,cmor_tables[cmor_vars[var_id].ref_table_id].realm,CMOR_MAX_STRING-strlen(outpath));
-  }
-  strncat(outpath,"/",CMOR_MAX_STRING-strlen(outpath));
-  if (createdirs==1) {
-    if ((mkdir(outpath, (S_IRWXU | S_IRWXG | S_IRWXO )) == -1) && (errno != EEXIST)) {
-      sprintf(tmp,"creating outpath: %s, not enough permission?",outpath);
-      cmor_handle_error(tmp,CMOR_CRITICAL);
-    }
-  }
-  
-  /* var id */
-  strncattrim(outpath,cmor_vars[var_id].id,CMOR_MAX_STRING-strlen(outpath));
-  strncat(outpath,"/",CMOR_MAX_STRING-strlen(outpath));
-  if (createdirs==1) {
-    if ((mkdir(outpath, (S_IRWXU | S_IRWXG | S_IRWXO )) == -1) && (errno != EEXIST)) {
-      sprintf(tmp,"creating outpath: %s, not enough permission?",outpath);
-      cmor_handle_error(tmp,CMOR_CRITICAL);
-    }
-  }
-  
-  if (isfixed==1) {
-    strncat(outpath,"r0i0p0",CMOR_MAX_STRING-strlen(outpath) );
-    cmor_set_cur_dataset_attribute("physics_version","0",0);
-    cmor_set_cur_dataset_attribute("initialization_method","0",0);
-  }
-  else {
-    /*realization */
-    snprintf(tmp,CMOR_MAX_STRING,"r%d",cmor_current_dataset.realization);
-    strncat(outpath,tmp,CMOR_MAX_STRING-strlen(outpath) );
-    
-    /* initialization id (optional) */
-    if ( cmor_has_cur_dataset_attribute("initialization_method")==0) {
-      cmor_get_cur_dataset_attribute("initialization_method",tmp);
-      sscanf(tmp,"%i",&i);
-      snprintf(tmp,CMOR_MAX_STRING,"i%d",i);
-      strncat(outpath,tmp,CMOR_MAX_STRING-strlen(outpath) );
-    }
-    
-    /* physics id (optional) */
-    if ( cmor_has_cur_dataset_attribute("physics_version")==0) {
-      cmor_get_cur_dataset_attribute("physics_version",tmp);
-      sscanf(tmp,"%i",&i);
-      snprintf(tmp,CMOR_MAX_STRING,"p%d",i);
-      strncat(outpath,tmp,CMOR_MAX_STRING-strlen(outpath) );
-    }
-  }
-  strncat(outpath,"/",CMOR_MAX_STRING-strlen(outpath));
-  if (createdirs==1) {
-    if ((mkdir(outpath, (S_IRWXU | S_IRWXG | S_IRWXO )) == -1) && (errno != EEXIST)) {
-      sprintf(tmp,"creating outpath: %s, not enough permission?",outpath);
-      cmor_handle_error(tmp,CMOR_CRITICAL);
-    }
-  }
-  cleanup_varid=-1;
-  cmor_pop_traceback();
-  return isfixed;
-}
-
-int cmor_close_variable(int var_id, char *file_name, int *preserve) 
-{
-  int ierr;
-  extern int cmor_nvars;
-  char outname[CMOR_MAX_STRING];
-  char msg[CMOR_MAX_STRING];
-  char msg2[CMOR_MAX_STRING];
-  char ctmp[CMOR_MAX_STRING];
-  char ctmp2[CMOR_MAX_STRING];
-  cdCalenType icalo;
-  cdCompTime comptime;
-  int i,j,n;
-  double interval;
-  /* these are for recopying in case of preserve */
-  char attribute_types[CMOR_MAX_ATTRIBUTES]; /*stores attributes type */
-  char attributes[CMOR_MAX_ATTRIBUTES][CMOR_MAX_STRING]; /*stores attributes names */
-  char attributes_values_char[CMOR_MAX_ATTRIBUTES][CMOR_MAX_STRING];
-  double attributes_values_num[CMOR_MAX_ATTRIBUTES];
-  int nattributes ; /* number of  attributes */
-  char itype;
-  double miss;
-  char iunits[CMOR_MAX_STRING];
-  int axes_ids[CMOR_MAX_DIMENSIONS];
-  int ndims;
-  double tolerance;
-  char positive;
-  struct stat buf;
-  off_t sz;
-  long maxsz=(long) pow(2,32) -1;
-  cmor_add_traceback("cmor_close_variable");
-  cmor_is_setup();
-
-  cleanup_varid=var_id;
-
-  if (cmor_vars[var_id].initialized != -1) {
-    ierr = nc_close(cmor_vars[var_id].initialized);
-    
-    if (ierr != NC_NOERR) {
-      snprintf(msg,CMOR_MAX_STRING,"NCError (%i) closing variable %s!",ierr,cmor_vars[var_id].id);
-      cmor_handle_error(msg,CMOR_CRITICAL);
-    }
-    
-
-    /* Ok we need to make the associated variables have been written in the case of a time varying grid */
-    if ((cmor_vars[var_id].grid_id>-1) && (cmor_grids[cmor_vars[var_id].grid_id].istimevarying==1)) {
-      for (i=0;i<4;i++) {
-	if (cmor_grids[cmor_vars[var_id].grid_id].associated_variables[i]!=-1) { /* ok this associated coord should be stored */
-	  if (cmor_vars[var_id].ntimes_written!=cmor_vars[var_id].ntimes_written_coords[i]) {
-	    /* ok we either wrote more or less data but in any case not the right amount! */
-	    if (cmor_vars[var_id].ntimes_written==0) {
-	      for (j=0;j<cmor_vars[var_id].ndims;j++) {
-		if (cmor_axes[cmor_vars[var_id].axes_ids[j]].axis=='T') {
-		  sprintf(ctmp2,"%i",cmor_axes[cmor_vars[var_id].axes_ids[j]].length);
-		  break;
-		}
-	      }
-	    }
-	    else {
-	      sprintf(ctmp2,"%i",cmor_vars[var_id].ntimes_written);
-	    }
-	    if (cmor_vars[var_id].ntimes_written_coords[i]==-1) {
-	      sprintf(ctmp,"no");
-	    }
-	    else {
-	      sprintf(ctmp,"%i",cmor_vars[var_id].ntimes_written_coords[i]);
-	    }
-	    snprintf(msg,CMOR_MAX_STRING,"while closing variable %i (%s) we noticed it has a time varying grid, you wrote %s time steps for the variable, but its associated variable %i (%s) has %s times written", cmor_vars[var_id].self, cmor_vars[var_id].id, ctmp2, cmor_vars[cmor_grids[cmor_vars[var_id].grid_id].associated_variables[i]].self,cmor_vars[cmor_grids[cmor_vars[var_id].grid_id].associated_variables[i]].id,ctmp);
-	    cmor_handle_error(msg,CMOR_CRITICAL);
-	  }
-	}
-      }
-    }
-    for (i=0;i<10;i++) {
-      if (cmor_vars[var_id].associated_ids[i]!=-1) {
-	if (cmor_vars[var_id].ntimes_written != cmor_vars[var_id].ntimes_written_associated[i]) {
-	  sprintf(ctmp2,"%i",cmor_vars[var_id].ntimes_written);
-	  sprintf(ctmp,"%i",cmor_vars[var_id].ntimes_written_associated[i]);
-	  snprintf(msg,CMOR_MAX_STRING,"while closing variable %i (%s) we noticed it has a time varying associated variable, you wrote %s time steps for the variable, but its associated variable %i (%s) has %s times written", cmor_vars[var_id].self, cmor_vars[var_id].id, ctmp2, cmor_vars[cmor_vars[var_id].associated_ids[i]].self,cmor_vars[cmor_vars[var_id].associated_ids[i]].id,ctmp);
-	  cmor_handle_error(msg,CMOR_CRITICAL);
-	}
-      }
-    }
-    /* ok at that point we need to construct the final name! */
-    strncpytrim(outname,cmor_vars[var_id].base_path,CMOR_MAX_STRING);
-    
-    if (cmor_tables[cmor_axes[cmor_vars[var_id].axes_ids[0]].ref_table_id].axes[cmor_axes[cmor_vars[var_id].axes_ids[0]].ref_axis_id].axis=='T') {
-      cmor_get_axis_attribute(cmor_vars[var_id].axes_ids[0],"units",'c',&msg);
-      cmor_get_cur_dataset_attribute("calendar",msg2);
-      
-      if (cmor_calendar_c2i(msg2,&icalo)!=0) {
-	snprintf(msg,CMOR_MAX_STRING,"Cannot convert times for calendar: %s",msg2);
-	cmor_handle_error(msg,CMOR_CRITICAL);
-	cmor_pop_traceback();
-	return 1;
-      }
-      
-      /* ok makes a comptime out of input */
-      /* if (cmor_vars[var_id].first_bound!=1.e20) { */
-      /* 	cdRel2Comp(icalo,msg,cmor_vars[var_id].first_bound,&comptime); */
-      /* } */
-      /* else { */
-	cdRel2Comp(icalo,msg,cmor_vars[var_id].first_time,&comptime);
-      /* } */
-      /* need to figure out the approximate interval */
-      interval  = cmor_convert_interval_to_seconds(cmor_tables[cmor_axes[cmor_vars[var_id].axes_ids[0]].ref_table_id].interval,cmor_tables[cmor_axes[cmor_vars[var_id].axes_ids[0]].ref_table_id].axes[cmor_axes[cmor_vars[var_id].axes_ids[0]].ref_axis_id].units);
-      
-      
-      /*       printf("interval: %lf\n",interval); */
-      /* first time point */
-      strncat(outname,"_",CMOR_MAX_STRING-strlen(outname));
-      snprintf(msg2,CMOR_MAX_STRING,"%.4ld",comptime.year);
-      strncat(outname,msg2,CMOR_MAX_STRING-strlen(outname));
-      if (interval<29.E6) { /* less than a year */
-	snprintf(msg2,CMOR_MAX_STRING,"%.2i",comptime.month);
-	strncat(outname,msg2,CMOR_MAX_STRING-strlen(outname));
-      }
-      if (interval<2.E6) { /* less than a month */
-	snprintf(msg2,CMOR_MAX_STRING,"%.2i",comptime.day);
-	strncat(outname,msg2,CMOR_MAX_STRING-strlen(outname));
-      }
-      if (interval<86000) { /* less than a day */
-	/* from now on add 1 more level of precision since that frequency */
-	snprintf(msg2,CMOR_MAX_STRING,"%.2i",(int)comptime.hour);
-	strncat(outname,msg2,CMOR_MAX_STRING-strlen(outname));
-	snprintf(msg2,CMOR_MAX_STRING,"%.2i",(int)((comptime.hour-(int)(comptime.hour))*60.));
-	strncat(outname,msg2,CMOR_MAX_STRING-strlen(outname));
-      }
-      if (interval<3000) { /* less than an hour */
-	snprintf(msg2,CMOR_MAX_STRING,"%.2i",(int)((comptime.hour-(int)(comptime.hour))*3600.));
-	strncat(outname,msg2,CMOR_MAX_STRING-strlen(outname));
-      }
-      
-      
-      /* if (cmor_vars[var_id].last_bound!=1.e20) { */
-      /* 	cdRel2Comp(icalo,msg,cmor_vars[var_id].last_bound,&comptime); */
-      /* } */
-      /* else { */
-	cdRel2Comp(icalo,msg,cmor_vars[var_id].last_time,&comptime);
-      /* } */
-      
-      /* /\* ok apparently we don't like the new time format if it's ending at midnight exactly so I'm removing one second...*\/ */
-      /* if (icalo==cdMixed) { */
-      /* 	cdCompAddMixed(comptime,-1./3600.,&comptime); */
-      /* } */
-      /* else{ */
-      /* 	cdCompAdd(comptime,-1./3600.,icalo,&comptime); */
-      /* } */
-      /* separator between first and last time */
-      strncat(outname,"-",CMOR_MAX_STRING-strlen(outname));
-      
-      /* last time point */
-      snprintf(msg2,CMOR_MAX_STRING,"%.4ld",comptime.year);
-      strncat(outname,msg2,CMOR_MAX_STRING-strlen(outname));
-      if (interval<29.E6) { /* less than a year */
-	snprintf(msg2,CMOR_MAX_STRING,"%.2i",comptime.month);
-	strncat(outname,msg2,CMOR_MAX_STRING-strlen(outname));
-      }
-      if (interval<2.E6) { /* less than a month */
-	snprintf(msg2,CMOR_MAX_STRING,"%.2i",comptime.day);
-	strncat(outname,msg2,CMOR_MAX_STRING-strlen(outname));
-      }
-      if (interval<86000) { /* less than a day */
-	/* from now on add 1 more level of precision since that frequency */
-	snprintf(msg2,CMOR_MAX_STRING,"%.2i",(int)comptime.hour);
-	strncat(outname,msg2,CMOR_MAX_STRING-strlen(outname));
-	snprintf(msg2,CMOR_MAX_STRING,"%.2i",(int)((comptime.hour-(int)(comptime.hour))*60.));
-	strncat(outname,msg2,CMOR_MAX_STRING-strlen(outname));
-      }
-      if (interval<3000) { /* less than an hour */
-	snprintf(msg2,CMOR_MAX_STRING,"%.2i",(int)((comptime.hour-(int)(comptime.hour))*3600.));
-	strncat(outname,msg2,CMOR_MAX_STRING-strlen(outname));
-      }
-      
-      if (cmor_tables[cmor_axes[cmor_vars[var_id].axes_ids[0]].ref_table_id].axes[cmor_axes[cmor_vars[var_id].axes_ids[0]].ref_axis_id].climatology==1) {
-	strncat(outname,"_clim",CMOR_MAX_STRING-strlen(outname));	
-      }
-    }
-/*     else { */
-/*       printf("first axis is not time axis ?\n"); */
-/*     } */
-    if (cmor_vars[var_id].suffix_has_date==1) {
-      /* all right we need to pop out the date part.... */
-      n = strlen(cmor_vars[var_id].suffix);
-      i=0;
-      while (cmor_vars[var_id].suffix[i]!='_') i++;
-      i++;
-      while ((cmor_vars[var_id].suffix[i]!='_') && i<n) i++;
-      /* ok now we have the length of dates */
-      /* at this point we are either at the _clim the actual _suffix or the end (==nosuffix) */
-      /* checking if _clim needs to be added */
-      if (cmor_tables[cmor_axes[cmor_vars[var_id].axes_ids[i]].ref_table_id].axes[cmor_axes[cmor_vars[var_id].axes_ids[0]].ref_axis_id].climatology==1) {
-	i+=5;
-      }
-      strcpy(msg,"");
-      for (j=i;j<n;j++) {
-	msg[j-i]=cmor_vars[var_id].suffix[i];
-	msg[j-i+1]='\0';
-      }
-    }
-    else {
-      strncpy(msg,cmor_vars[var_id].suffix,CMOR_MAX_STRING);
-    }
-    
-    if (strlen(msg)>0) {
-      strncat(outname,"_",CMOR_MAX_STRING-strlen(outname));
-      strncat(outname,msg,CMOR_MAX_STRING-strlen(outname));
-    }
-    
-    strncat(outname,".nc",CMOR_MAX_STRING-strlen(outname));
-    
-    
-    /* ok now we can actually move the file */
-    /*     printf("moving: %s to %s\n",cmor_vars[var_id].current_path,outname); */
-    /* here we need to make sure we are not in preserve mode! */
-    if ((CMOR_NETCDF_MODE == CMOR_PRESERVE_4) || (CMOR_NETCDF_MODE == CMOR_PRESERVE_3)) {
-      FILE *fperr;
-    /* ok first let's check if the file does exists or not */
-      fperr = NULL;
-      fperr=fopen(outname,"r");
-      if ( fperr != NULL) {
-	sprintf(msg,"%s.copy",outname);
-	if (rename(cmor_vars[var_id].current_path,msg)==0 ) {
-	  snprintf(msg,CMOR_MAX_STRING,"Output file ( %s ) already exists, remove file or use CMOR_REPLACE or CMOR_APPEND for CMOR_NETCDF_MODE value in cmor_setup for convenience the file you were trying to write has been saved at: %s.copy",outname,outname);
-	}
-	else {
-	  snprintf(msg,CMOR_MAX_STRING,"Output file ( %s ) already exists, remove file or use CMOR_REPLACE or CMOR_APPEND for CMOR_NETCDF_MODE value in cmor_setup.",outname);
-	}
-	cmor_handle_error(msg,CMOR_CRITICAL);
-      }
-    }
-    if (rename(cmor_vars[var_id].current_path,outname)!=0) {
-      snprintf(msg,CMOR_MAX_STRING,"could not rename temporary file: %s to final file name: %s",cmor_vars[var_id].current_path,outname);
-      cmor_handle_error(msg,CMOR_CRITICAL);
-    }
-    if (file_name!=NULL) {
-      strncpy(file_name,outname,CMOR_MAX_STRING);
-    }
-
-    /* At this point we need to check the file's size and issue a warning if greater than 4Gb*/
-    stat(outname,&buf);
-    sz = buf.st_size;
-    if (sz > maxsz) {
-      sprintf(msg,"Closing file: %s, size is greater than 4Gb, while this is acceptable it may be unreadable on older file systems",outname);
-      cmor_handle_error(msg,CMOR_WARNING);
-    }
-
-    if (preserve != NULL) {
-      cmor_vars[var_id].initialized=-1;
-      cmor_vars[var_id].ntimes_written=0;
-      cmor_vars[var_id].time_nc_id=-999;
-      cmor_vars[var_id].time_bnds_nc_id=-999;
-      for (i=0;i<10;i++) {
-	cmor_vars[var_id].ntimes_written_coords[i]=-1;
-	cmor_vars[var_id].ntimes_written_associated[i]=0;
-	cmor_vars[var_id].associated_ids[i]=-1;
-	cmor_vars[var_id].nc_var_id=-999;
-      }
-      for (i=0;i<cmor_vars[var_id].nattributes;i++) {
-	if (strcmp(cmor_vars[var_id].attributes[i],"cell_methods")==0) {
-	  cmor_set_variable_attribute(var_id,"cell_methods",'c',cmor_tables[cmor_vars[var_id].ref_table_id].vars[cmor_vars[var_id].ref_var_id].cell_methods);
-	}
-      }
-    }
-    else {
-      cmor_reset_variable(var_id);
-      cmor_vars[var_id].closed=1;
-    }
-  }
-  cleanup_varid=-1;
-  cmor_pop_traceback();
-  return 0;
-}
-
-int cmor_close(void) 
-{
-  int i,ierr,j;
-  extern int cmor_nvars;
-  char msg[CMOR_MAX_STRING];
-  extern ut_system *ut_read;
-  extern FILE *output_logfile;
-
-  cmor_add_traceback("cmor_close");
-  cmor_is_setup();
-  if (output_logfile == NULL) output_logfile = stderr;
-  /*ut_free_system(ut_read);*/
-/*   if (ut_get_status() != UT_SUCCESS) { */
-/*     snprintf(msg,CMOR_MAX_STRING,"Udunits: Error freeing units system"); */
-/*     cmor_handle_error(msg,CMOR_CRITICAL); */
-/*   } */
-  for (i=0;i<cmor_nvars+1;i++) {
-    if (cmor_vars[i].initialized != -1) {
-      if (cmor_vars[i].closed==0) {
-	ierr = cmor_close_variable(i,NULL,NULL);
-      }
-    }
-    else if ((cmor_vars[i].needsinit==1)&&(cmor_vars[i].closed!=1)) {
-      snprintf(msg,CMOR_MAX_STRING,"variable %s (%i) has been defined but never initialized",cmor_vars[i].id,i);
-      cmor_handle_error(msg,CMOR_WARNING);
-    }
-  }
-  for (i=0;i<CMOR_MAX_TABLES;i++) {
-    for(j=0;j<CMOR_MAX_ELEMENTS;j++) {
-      if (cmor_tables[i].axes[j].requested!=NULL) {free(cmor_tables[i].axes[j].requested);cmor_tables[i].axes[j].requested=NULL;}
-      if (cmor_tables[i].axes[j].requested_bounds!=NULL) {free(cmor_tables[i].axes[j].requested_bounds);cmor_tables[i].axes[j].requested_bounds=NULL;}
-      if (cmor_tables[i].axes[j].crequested!=NULL) {free(cmor_tables[i].axes[j].crequested);cmor_tables[i].axes[j].crequested=NULL;}  
-    }
-    if (cmor_tables[i].nforcings>0) {
-      for (j=0;j<cmor_tables[i].nforcings;j++) {
-	free(cmor_tables[i].forcings[i]);
-	cmor_tables[i].forcings[i]=NULL;
-      }
-      free(cmor_tables[i].forcings);
-      cmor_tables[i].forcings=NULL;
-      cmor_tables[i].nforcings=0;
-    }
-  }
-  for (i=0;i<CMOR_MAX_GRIDS;i++) {
-    if (cmor_grids[i].lons!=NULL) {free(cmor_grids[i].lons);cmor_grids[i].lons=NULL;}
-    if (cmor_grids[i].lats!=NULL) {free(cmor_grids[i].lats);cmor_grids[i].lats=NULL;}
-    if (cmor_grids[i].blons!=NULL) {free(cmor_grids[i].blons);cmor_grids[i].blons=NULL;}
-    if (cmor_grids[i].blats!=NULL) {free(cmor_grids[i].blats);cmor_grids[i].blats=NULL;}
-/*     if (cmor_grids[i].area!=NULL) {free(cmor_grids[i].area);cmor_grids[i].area=NULL;} */
-/*     if (cmor_grids[i].volumes!=NULL) {free(cmor_grids[i].volumes);cmor_grids[i].volumes=NULL;} */
-  }
-  if (cmor_nerrors!=0 || cmor_nwarnings!=0) {
-    fprintf(output_logfile,"------\nCMOR is now closed.\n------\nDuring execution we encountered:\n");
-#ifdef COLOREDOUTPUT
-    fprintf(output_logfile,"%c[%d;%dm",0X1B,1,34);
-#endif
-    fprintf(output_logfile,"%3i Warning(s)",cmor_nwarnings);
-#ifdef COLOREDOUTPUT
-    fprintf(output_logfile,"%c[%dm",0X1B,0);
-#endif
-    fprintf(output_logfile,"\n");
-#ifdef COLOREDOUTPUT
-    fprintf(output_logfile,"%c[%d;%dm",0X1B,1,31);
-#endif
-    fprintf(output_logfile,"%3i Error(s)",cmor_nerrors);
-#ifdef COLOREDOUTPUT
-    fprintf(output_logfile,"%c[%dm",0X1B,0);
-#endif
-    fprintf(output_logfile,"\n------\nPlease review them.\n------\n");
-  }
-  else {
-    fprintf(output_logfile,"------\nCMOR is now closed.\n------\n\nWe encountered no warnings or errors during execution\n------\nCongratulations!\n------\n");
-  }
-  if (output_logfile != stderr) fclose(output_logfile);
-  cmor_pop_traceback();
-  return 0;
-}
-
-void cmor_trim_string(char *in,char *out) {
-  int n,i,j;
-
-  if (in==NULL) {
-    out=NULL;
-    return;
-  }
-  n = strlen(in);
-
-  if (n==0) {
-    out[0]='\0';
-    return;
-  }
-  if (n>CMOR_MAX_STRING) n=CMOR_MAX_STRING; /* make sure we don't go over the limit */
-  j=0;
-  for (i=0;i<n;i++) {
-    if (in[i]!=' ' && in[i]!='\n' && in[i]!='\t') {
-      break;
-    }
-    else {
-      j++;
-    }
-  }
-  for(i=j;i<n;i++) {
-    out[i-j]=in[i];
-  }
-  out[i-j]='\0';
-  n = strlen(out);
-  i=n;
-  while((out[i]=='\0' || out[i]==' ')) { out[i]='\0'; i--;}
-}
-
diff --git a/Src/cmor_axes.c b/Src/cmor_axes.c
deleted file mode 100644
index 21c918c..0000000
--- a/Src/cmor_axes.c
+++ /dev/null
@@ -1,1554 +0,0 @@
-#include <stdio.h>
-#include <string.h>
-#include "cmor.h"
-#include <udunits2.h>
-#include <stdlib.h>
-#include "cdmsint.h"
-#include <math.h>
-
-int cuErrOpts =CU_VERBOSE;
-
-int cmor_calendar_c2i(char *calendar, cdCalenType *ical) {
-  cmor_add_traceback("cmor_calendar_c2i");
-  cmor_is_setup();
-  if (strcmp(calendar,"gregorian")==0)*ical = cdStandard;
-  else if (strcmp(calendar,"standard")==0) *ical = cdStandard;
-  else if (strcmp(calendar,"proleptic_gregorian")==0) *ical = cdMixed;
-  else if (strcmp(calendar,"noleap")==0) *ical = cdNoLeap;
-  else if (strcmp(calendar,"365_day")==0) *ical = cdNoLeap;
-  else if (strcmp(calendar,"360_day")==0) *ical = cd360;
-  else if (strcmp(calendar,"julian")==0) *ical = cdJulian;
-  else if (strcmp(calendar,"none")==0) *ical = cdClim;
-  else {
-    cmor_pop_traceback();
-    return 1;
-  }
-  cmor_pop_traceback();
-  return 0;
-}
-
-double cmor_convert_interval_to_seconds( double interv, char *inunits) {
-  /* this converts times values from some units to some others */
-
-  int i,oui,n;
-  char msg[CMOR_MAX_STRING];
-  char ctmp[CMOR_MAX_STRING];
-  char sshort[6];
-  extern ut_system *ut_read;
-  ut_unit *user_units=NULL, *cmor_units=NULL;
-  cv_converter *ut_cmor_converter=NULL;
-  double tmp;
-
-  cmor_add_traceback("cmor_convert_interval_to_seconds");
-
-  strcpy(msg,"seconds");
-
-  ut_trim(msg,UT_ASCII);
-  cmor_units = ut_parse(ut_read, msg,UT_ASCII);
-
-  sshort[5]='\0';
-  /* first we need to figure out the out units */
-  /* step 1 look for the since keyword */
-  n=strlen(inunits);
-  oui=-1;
-  for (i=0;i<n;i++) {
-    strncpy(sshort,&inunits[i],5);
-    if (strcmp(sshort,"since")==0) {oui=i;break;}
-  }
-  if (oui==-1) {
-    snprintf(msg,CMOR_MAX_STRING,"Time units conversion, output units must contain the 'since' word, you defined: %s",inunits);
-    cmor_handle_error(msg,CMOR_CRITICAL);
-  }
-
-  strncpy(msg,inunits,oui-1);
-  msg[oui-1]='\0';
-
-  /* ok at this point we need to convert this in some base units: seconds */
-  ut_trim(msg,UT_ASCII);
-
-  user_units = ut_parse(ut_read, msg, UT_ASCII);
-  if (ut_get_status() != UT_SUCCESS) {
-    snprintf(msg,CMOR_MAX_STRING,"In udunuits parsing user units: %s",msg);
-    cmor_handle_error(msg,CMOR_CRITICAL);
-  }
-  if (ut_are_convertible(cmor_units,user_units)==0 ) {
-    snprintf(ctmp,CMOR_MAX_STRING,"axis interval units (%s) are incompatible with seconds",msg);
-    cmor_handle_error(ctmp,CMOR_CRITICAL);
-    cmor_pop_traceback();
-    return 1;
-  }
-  ut_cmor_converter=ut_get_converter(user_units,cmor_units);
-  if (ut_get_status() != UT_SUCCESS) {
-    snprintf(msg,CMOR_MAX_STRING,"In udunuits getting converter");
-    cmor_handle_error(msg,CMOR_CRITICAL);
-  }
-  tmp = cv_convert_double(ut_cmor_converter,interv);
-  if (ut_get_status() != UT_SUCCESS) {
-    snprintf(msg,CMOR_MAX_STRING,"In udunuits converting");
-    cmor_handle_error(msg,CMOR_CRITICAL);
-  }
-  cv_free(ut_cmor_converter);
-  if (ut_get_status() != UT_SUCCESS) {
-    snprintf(msg,CMOR_MAX_STRING,"Udunits: Error freeing converter");
-    cmor_handle_error(msg,CMOR_CRITICAL);
-  }
-  ut_free(user_units);
-  if (ut_get_status() != UT_SUCCESS) {
-    snprintf(msg,CMOR_MAX_STRING,"Udunits: Error freeing units");
-    cmor_handle_error(msg,CMOR_CRITICAL);
-  }
-  ut_free(cmor_units);
-  if (ut_get_status() != UT_SUCCESS) {
-    snprintf(msg,CMOR_MAX_STRING,"Udunits: Error freeing units");
-    cmor_handle_error(msg,CMOR_CRITICAL);
-  }
-
-  cmor_pop_traceback();
-  return tmp;
-}
-int cmor_convert_time_units( char *inunits, char *outunits, char *loutunits) {
-  /* this converts times values from some units to some others */
-
-  int i,oui,iui,n;
-  char msg[CMOR_MAX_STRING];
-  char sshort[6];
-  int hasqm;
-
-  cmor_add_traceback("cmor_convert_time_units");
-  cmor_is_setup();
-
-  sshort[5]='\0';
-  /* first we need to figure out the out units */
-  /* step 1 look for the since keyword */
-  n=strlen(outunits);
-  oui=-1;
-  for (i=0;i<n;i++) {
-    strncpy(sshort,&outunits[i],5);
-    if (strcmp(sshort,"since")==0) {oui=i;break;}
-  }
-  if (oui==-1) {
-    snprintf(msg,CMOR_MAX_STRING,"Time units conversion, output units must contain the 'since' word");
-    cmor_handle_error(msg,CMOR_CRITICAL);
-  }
-
-  /* ok now check if output units have a "?" */
-  hasqm =-1;
-  for (i=oui+5;i<n;i++)  if (outunits[i]=='?') {hasqm=i;break;}
-
-  /* here we check for the since in user units */
-  n=strlen(inunits);
-  iui=-1;
-  for (i=0;i<n;i++) {
-    strncpy(sshort,&inunits[i],5);
-    if (strcmp(sshort,"since")==0) {iui=i;break;}
-  }
-  if (iui==-1) {
-    snprintf(msg,CMOR_MAX_STRING,"Time units conversion, input units must contain the 'since' word");
-    cmor_handle_error(msg,CMOR_CRITICAL);
-  }
-  /* now construct the output units in case of a ? */
-  if (hasqm!=-1) { /* there is a ? */
-    strncpy(loutunits,outunits,oui);
-    loutunits[oui]='\0';
-    strcpy(msg,&inunits[iui]);
-    strncat(loutunits,msg,CMOR_MAX_STRING-strlen(loutunits));
-  }
-  else { /* fully defined output units */
-    strncpy(loutunits,outunits,CMOR_MAX_STRING);
-  }
-  cmor_pop_traceback();
-  return 0;
-}
-
-int cmor_convert_time_values( void *values_in, char type, int nvalues, double *values_out, char *inunits, char *outunits, char *calin, char *calout) {
-  /* this converts times values from some units to some others */
-
-  int i;
-  char msg[CMOR_MAX_STRING];
-  char loutunits[CMOR_MAX_STRING];
-  double dtmp;
-  cdCalenType icali, icalo;
-  cdCompTime comptime;
-
-  cmor_add_traceback("cmor_convert_time_values");
-  cmor_is_setup();
-
-
-  if (cmor_calendar_c2i(calin,&icali)!=0) {
-    snprintf(msg,CMOR_MAX_STRING,"Cannot convert times for calendar: %s",calin);
-    cmor_handle_error(msg,CMOR_NORMAL);
-    cmor_pop_traceback();
-    return 1;
-  }
-  if (cmor_calendar_c2i(calout,&icalo)!=0) {
-    snprintf(msg,CMOR_MAX_STRING,"Cannot convert times for calendar: %s",calout);
-    cmor_handle_error(msg,CMOR_NORMAL);
-    cmor_pop_traceback();
-    return 1;
-  }
-
-  i = cmor_convert_time_units( inunits, outunits, &loutunits[0]);
-  for (i=0;i<nvalues;i++) {
-     if (type=='d') dtmp = (double)((double *)values_in)[i];
-     else if (type=='f') dtmp = (double)((float *)values_in)[i];
-     else if (type=='l') dtmp = (double)((long *)values_in)[i];
-     else if (type=='i') dtmp = (double)((int *)values_in)[i];
-     else {
-       snprintf(msg,CMOR_MAX_STRING,"cannot convert time value from '%c' type",type);
-       cmor_handle_error(msg,CMOR_CRITICAL);
-     }
-    /* ok makes a comptime out of input */
-    cdRel2Comp(icali,&inunits[0],dtmp,&comptime);
-    /* ok now converts that back to a rel units with outunits */
-    cdComp2Rel(icalo,comptime,loutunits,&dtmp);
-    values_out[i]=dtmp;
-  }
-  cmor_pop_traceback();
-  return 0;
-}
-
-int cmor_set_axis_attribute(int id, char *attribute_name, char type, void *value)
-{
-  extern cmor_axis_t cmor_axes[];
-  char msg[CMOR_MAX_STRING];
-  int i,index;
-
-  cmor_add_traceback("cmor_set_axis_attribute");
-  cmor_is_setup();
-
-  index=-1;
-  cmor_trim_string(attribute_name,msg);
-  for (i=0;i<cmor_axes[id].nattributes;i++) {
-    if (strcmp(cmor_axes[id].attributes[i],msg)==0) {index=i;break;} /* we found it */
-  }
-  if (index==-1) {index=cmor_axes[id].nattributes; cmor_axes[id].nattributes+=1;}
-  strncpy(cmor_axes[id].attributes[index],msg,CMOR_MAX_STRING); /*stores the name */
-  cmor_axes[id].attributes_type[index]=type;
-  if (type=='c') {if (strlen(value)>0) strncpytrim(cmor_axes[id].attributes_values_char[index],value,CMOR_MAX_STRING);}
-  else if (type=='f')  cmor_axes[id].attributes_values_num[index] = (double)*(float*)value;
-  else if (type=='i')  cmor_axes[id].attributes_values_num[index] = (double)*(int*)value;
-  else if (type=='d') cmor_axes[id].attributes_values_num[index] = (double)*(double*)value;
-  else if (type=='l') cmor_axes[id].attributes_values_num[index] = (double)*(long*)value;
-  else {
-    snprintf(msg,CMOR_MAX_STRING,"unknown type %c allowed types are c,i,l,f,d",type);
-    cmor_handle_error(msg,CMOR_NORMAL);
-    cmor_pop_traceback();
-    return 1;
-  }
-  cmor_pop_traceback();
-  return 0;
-}
-int cmor_get_axis_attribute(int id, char *attribute_name, char type, void *value)
-{
-  extern cmor_axis_t cmor_axes[];
-  char msg[CMOR_MAX_STRING];
-  int i,index;
-  cmor_add_traceback("cmor_get_axis_attribute");
-  cmor_is_setup();
-  index=-1;
-  for (i=0;i<cmor_axes[id].nattributes;i++) {
-    if (strcmp(cmor_axes[id].attributes[i],attribute_name)==0) {index=i;break;} /* we found it */
-  }
-  if (index==-1) {
-    snprintf(msg,CMOR_MAX_STRING,"Attribute %s could not be found for axis %i\n",attribute_name,id);
-    cmor_handle_error(msg,CMOR_NORMAL);
-    cmor_pop_traceback();
-    return 1;
-  }
-  type = cmor_axes[id].attributes_type[i];
-  if (type=='c')  strcpy(value,cmor_axes[id].attributes_values_char[index]);
-  else if (type=='f')  value = (float *)&cmor_axes[id].attributes_values_num[index];
-  else if (type=='i')  value = (int *)&cmor_axes[id].attributes_values_num[index];
-  else if (type=='d') value = (double *)&cmor_axes[id].attributes_values_num[index];
-  else if (type=='l') value = (long *)&cmor_axes[id].attributes_values_num[index];
-  cmor_pop_traceback();
-  return 0;
-}
-int cmor_has_axis_attribute(int id, char *attribute_name)
-{
-  extern cmor_axis_t cmor_axes[];
-  int i,index;
-  cmor_add_traceback("cmor_has_axis_attribute");
-  cmor_is_setup();
-  index=-1;
-  for (i=0;i<cmor_axes[id].nattributes;i++) {
-    if (strcmp(cmor_axes[id].attributes[i],attribute_name)==0) {index=i;break;} /* we found it */
-  }
-  if (index==-1) {
-    cmor_pop_traceback();
-    return 1;
-  }
-  cmor_pop_traceback();
-  return 0;
-}
-
-int cmor_check_values_inside_bounds(double *values,double *bounds, int length, char *name) {
-  int i;
-  char msg[CMOR_MAX_STRING];
-  cmor_add_traceback("cmor_check_values_inside_bounds");
-  for (i=0;i<length;i++) {
-    /* printf("check within: %i: %lf < %lf < %lf ???\n",i,bounds[2*i],values[i],bounds[2*i+1]); */
-    if ( ((bounds[2*i]<values[i]) && (bounds[2*i+1]<values[i])) || ((bounds[2*i]>values[i]) && (bounds[2*i+1]>values[i])) ) {
-      snprintf(msg,CMOR_MAX_STRING,"axis %s has values not within bounds at indice: %i: %lf not within: %lf, %lf",name,i,values[i],bounds[2*i],bounds[2*i+1]);
-      cmor_handle_error(msg,CMOR_CRITICAL);
-    }
-  }
-  cmor_pop_traceback();
-  return 0;
-}
-
-int cmor_check_monotonic(double *values,int length, char *name,int isbounds, int axis_id) {
-  int i,treatlon=0,j=0;
-  char msg[CMOR_MAX_STRING];
-  char msg2[CMOR_MAX_STRING];
-  cmor_axis_def_t *refaxis;
-  int mono;
-  int nloop;
-  double *values2,tmp;
-/*   for (i=0;i<length;i++) printf("in monotonic: %i, %lf, %i\n",i,values[i],isbounds); */
-  cmor_add_traceback("cmor_check_monotonic");
-
-  refaxis = &cmor_tables[cmor_axes[axis_id].ref_table_id].axes[cmor_axes[axis_id].ref_axis_id];
-  if (refaxis->axis=='X') {
-    treatlon=1;
-  }
-  /* ok ensure that values are monotonic */
-  if (isbounds==1) {
-    for (i=0;i<length/2-2;i++) {
-      if (((values[2*i]-values[2*i+2])/(values[2*i+2]-values[2*i+4]))<0.) { 
-	if (refaxis->axis=='X') {
-	  treatlon=1;
-	}
-	else {
-	snprintf(msg,CMOR_MAX_STRING,"axis %s has non monotonic bounds values : %lf, %lf, %lf",name,values[2*i],values[2*i+2],values[2*i+4]);
-	cmor_handle_error(msg,CMOR_CRITICAL);
-	}
-      }
-    }
-    /* printf("In is isbounds treatlon is: %i\n",treatlon); */
-    if (treatlon) {/* ok we are dealing with a longitude need to figure out the offset.... */
-      /* for (i=0;i<length;i++) printf("in monotonic: %i, %lf\n",i,values[i]); */
-     /* The VERY first thing is to make sure we are modulo 360 */
-      values2 = (double *) malloc(sizeof(double)*length);
-      for (i=0;i<length;i++) {
-	values2[i] = fmod(values[i], 360.);
-      }
-
-      /* for(i=0;i<length-1;i+=2) { */
-      /* 	fprintf(stderr,"moduloed: %i: %lf - %lf\n",i,values2[i],values2[i+1]); */
-      /* } */
-
-      /* Now keep looping until we do not have up and downs */
-      mono = -1;
-      nloop=0;
-      while (mono == -1 ) {
-	mono=1;
-	tmp=0;
-	for (i=0;i<length-4;i++) {
-	  tmp =  (values2[i]-values2[i+2])*(values2[i+2]-values2[i+4]);
-	  if (tmp<0) break;
-	}
-	if (tmp<0) { /* ok we flip floppped */
-	  tmp=values2[0];
-	  for (i=0;i<length-1;i++) {
-	    values2[i]=values2[i+1];
-	  }
-	  values2[i]=tmp;
-	  mono=-1;
-	  nloop+=1;
-	  if (nloop==length) {
-	    sprintf(msg,"longitude axis bounds are not monotonic");
-	    cmor_handle_error(msg,CMOR_CRITICAL);
-	}
-	}
-      }
-      /* for(i=0;i<length-1;i+=2) { */
-      /* 	fprintf(stderr,"ordered: %i: %lf - %lf\n",i,values2[i],values2[i+1]); */
-      /* } */
-
-      if (length>2) {
-	if (values2[0]<values2[2]) {
-	  /* first keep adding 360 until each value is greater than the previous */
-	  for (i=0;i<length-2;i++) {
-	    while (values[i+2]<values[i]) {
-	      values[i+2]+=360.;
-	    }
-	  }
-	}
-	else {
-	  /* first keep adding 360 until each value is greater than the previous */
-	  for (i=0;i<length-2;i++) {
-	    while (values[i+2]>values[i]) {
-	      values[i+2]-=360.;
-	    }
-	  }
-	}
-      }
-      free(values2);
-    
-      /* stored_direction*/
-       /* printf("------length: %i, storeddir: %c, vlue-1, vlaue0: %lf and %lf\n",length,refaxis->stored_direction,values[length-1],values[0]); */
-     if ((length>1) && (((refaxis->stored_direction=='i') && (values[length-1]<values[0])) || ((refaxis->stored_direction=='d') && (values[0]<values[length-1])))) { /* need to flip that axis */
-	if (cmor_axes[axis_id].revert==1) {
-	  snprintf(msg,CMOR_MAX_STRING, "bounds of axis %s need to be flipped but axis values did not need to. This is inconsistent",name);
-	  cmor_handle_error(msg,CMOR_CRITICAL);
-	}
-	for (i=0;i<length/2;i++) {
-	  tmp = values[i];
-	  values[i] = values[length-1-i];
-	  values[length-1-i] = tmp;
-	}
-      }
-
-      /* for(i=0;i<length-1;i+=2) { */
-      /* 	fprintf(stderr,"finally: %i: %lf - %lf\n",i,values[i],values[i+1]); */
-      /* } */
-
-      /* ok make sure we have data spanning only 1 modulo */
-      if (abs(values[length-1]-values[0])>360.) {
-	snprintf(msg,CMOR_MAX_STRING,"axis %s has bounds values spanning more 360 degrees %lf, %lf",name,values[0],values[length-1]);
-	cmor_handle_error(msg,CMOR_CRITICAL);
-      }
-      /* ok now check the monotonic again */
-      for (i=0;i<length/2-2;i++) {
-	if (((values[2*i]-values[2*i+2])/(values[2*i+2]-values[2*i+4]))<0.) { 
-	  snprintf(msg,CMOR_MAX_STRING,"axis %s has really non monotonic bounds values : %lf, %lf, %lf",name,values[i],values[i+2],values[i+4]);
-	  cmor_handle_error(msg,CMOR_CRITICAL);
-	}
-      }
-      /* First of all need to check if bounds needs to be flipped */
-      j=1;
-      for (i=0;i<length-2;i+=2) {
-	if ((values[i]<values[i+1])&&(values[i]>values[i+2])) {
-	  sprintf(msg,"Axis: '%s', your bounds direction seems to be decreasing, but within cell %i they are stored increasingly: you have [%lf, %lf], but the next set is: [%lf, %lf]",name,i,values[i],values[i+1],values[i+2],values[i+3]);
-	  cmor_handle_error(msg,CMOR_WARNING);
-	  j++;
-	}
-	if ((values[i]>values[i+1]) && (values[i]<values[i+2])) {
-	  sprintf(msg,"Axis: '%s', your bounds direction seems to be increasing, but within cell %i they are stored decreasingly: you have [%lf, %lf], but the next set is: [%lf, %lf]",name,i,values[i],values[i+1],values[i+2],values[i+3]);
-	  cmor_handle_error(msg,CMOR_WARNING);
-	  j++;
-	}
-      }
-      if (j==length/2) {
-	for(i=0;i<length;i+=2) {
-	  tmp=values[i];
-	  values[i]=values[i+1];
-	  values[i+1]=tmp;
-	}
-      }
-      else if (j!=1) {
-	sprintf(msg,"Some but not all of your longitude bounds need to be flipped, see warnings ot see which ones");
-	cmor_handle_error(msg,CMOR_CRITICAL);
-      }
-    }
-    
-    
-     /* do not do the following in case of climatological stuff.... */
-    if (refaxis->climatology==0) {
-      for (i=0;i<length-2;i++) {
-	/* also check that bounds do not overlap */
-	if (((values[i]<values[i+1]) && (values[i+2]<values[i+1])) || ((values[i]>values[i+1]) && (values[i+2]>values[i+1]))) {
-	  snprintf(msg,CMOR_MAX_STRING,"axis %s has overlapping bounds values : %lf, %lf, %lf at index: %i",name,values[i],values[i+1],values[i+2],i);
-	  cmor_handle_error(msg,CMOR_CRITICAL);
-	}
-      }
-      for (i=0;i<length-2;i=i+2) {
-	if (values[i+1]!=values[i+2]) {
-	  snprintf(msg,CMOR_MAX_STRING,"axis %s has bounds values that leave gaps (index %i): %lf, %lf, %lf",name,i,values[i],values[i+1],values[i+2]);
-	  cmor_handle_error(msg,CMOR_WARNING);
-	}
-      }
-    }
-  }
-  else {
-    for (i=0;i<length-2;i++) {
-      if (((values[i]-values[i+1])/(values[i+1]-values[i+2]))<0.) {
-	if (refaxis->axis == 'X') { 
-	  treatlon = 1;
-	  break;
-	}
-	else {
-	  snprintf(msg,CMOR_MAX_STRING,"axis %s has non monotonic values : %lf, %lf and  %lf",name,values[i],values[i+1],values[i+2]);
-	  cmor_handle_error(msg,CMOR_CRITICAL);
-	}
-      }
-    }
-
-    if (treatlon) {/* ok we are dealing with a longitude need to figure out the offset.... */
-
-      /* The VERY first thing is to make sure we are modulo 360 */
-      values2 = (double *) malloc(sizeof(double)*length);
-      for (i=0;i<length;i++) {
-	values2[i] = fmod(values[i], 360.);
-      }
-
-      /* Now keep looping until we do not have up and downs */
-      mono = -1;
-      nloop=0;
-      while (mono == -1 ) {
-	mono=1;
-	tmp=0;
-	for (i=0;i<length-2;i++) {
-	  tmp =  (values2[i]-values2[i+1])*(values2[i+1]-values2[i+2]);
-	  if (tmp<0) break;
-	}
-	if (tmp<0) { /* ok we flip floppped */
-	  tmp=values2[0];
-	  for (i=0;i<length-1;i++) {
-	    values2[i]=values2[i+1];
-	  }
-	  values2[i]=tmp;
-	  mono=-1;
-	  nloop+=1;
-	  if (nloop==length) {
-	    sprintf(msg,"longitude axis is not monotonic");
-	    cmor_handle_error(msg,CMOR_CRITICAL);
-	}
-	}
-      }
-
-
-      if (length>1) {
-	if (values2[0]<values2[1]) {
-	  /* first keep adding 360 until each value is greater than the previous */
-	  for (i=0;i<length-1;i++) {
-	    while (values[i+1]<values[i]) {
-	      values[i+1]+=360.;
-	    }
-	  }
-	}
-	else {
-	  /* first keep removing 360 until each value is lower than the previous */
-	  for (i=0;i<length-1;i++) {
-	    while (values[i+1]>values[i]) {
-	      values[i+1]-=360.;
-	    }
-	  }
-	}
-      }
-      free(values2);
-
-      /* stored_direction*/
-      /* printf("length: %i, storeddir: %c, vlue-1, vlaue0: %lf and %lf\n",length,refaxis->stored_direction,values[length-1],values[0]); */
-      if ((length>1) && (((refaxis->stored_direction=='i') && (values[length-1]<values[0])) || ((refaxis->stored_direction=='d') && (values[0]<values[length-1])))) { /* need to flip that axis */
-	if ((isbounds==1)  && (cmor_axes[axis_id].revert==1)) {
-	  snprintf(msg,CMOR_MAX_STRING, "bounds of axis %s need to be flipped but axis values did not need to. This is inconsistent",name);
-	  cmor_handle_error(msg,CMOR_CRITICAL);
-	}
-	cmor_axes[axis_id].revert=-1;
-	for (i=0;i<length/2;i++) {
-	  tmp = values[i];
-	  values[i] = values[length-1-i];
-	  values[length-1-i] = tmp;
-	}
-      }
-
-
-     /* ok make sure we have data spanning only 1 modulo */
-      if (abs(values[length-1]-values[0])>360.) {
-	snprintf(msg,CMOR_MAX_STRING,"axis %s has values spanning more 360 degrees %lf, %lf",name,values[0],values[length-1]);
-	cmor_handle_error(msg,CMOR_CRITICAL);
-      }
-      /* ok now check the monotonic again */
-      for (i=0;i<length-2;i++) {
-	if (((values[i]-values[i+1])/(values[i+1]-values[i+2]))<0.) {
-	  snprintf(msg,CMOR_MAX_STRING,"axis %s has non monotonic values : %lf, %lf and  %lf",name,values[i],values[i+1],values[i+2]);
-	  cmor_handle_error(msg,CMOR_CRITICAL);
-	}
-      }
-    }
-  }
-  /* here we check if interval is about right */
-  if ( (refaxis->axis=='T')) {
-    /* do not do the following in case of climatological stuff.... */
-    if (refaxis->climatology==0) {
-      /* just keep the begining of units out no need to know the since part */
-      j=0;
-      while (refaxis->units[j]==' ') j++;
-      i=0;
-      while ((refaxis->units[i+j]!=' ') && (refaxis->units[i+j]!='\0')) {
-	msg2[i]=refaxis->units[i+j];
-	i++;
-      }
-      msg2[i]='\0';
-      snprintf(msg,CMOR_MAX_STRING,"%lf %s",cmor_tables[cmor_axes[axis_id].ref_table_id].interval,msg2);
-      /* printf("calling chck interv: %i\n",length); */
-      /* for(i=0;i<length;i++) printf("i:%i ,val: %lf\n",i,values[i]); */
-      /* ok skip this for non standard cal */
-      
-      i = cmor_check_interval(axis_id,msg,&values[0],length,isbounds);
-    }
-  }
-  cmor_pop_traceback();
-  return treatlon;
-}
-
-
-int cmor_treat_axis_values(int axis_id, double *values, int length, int n_requested, char *units, char *name, int isbounds){
-  extern ut_system *ut_read;
-  ut_unit *user_units, *cmor_units;
-  cv_converter *ut_cmor_converter;
-  char local_unit[CMOR_MAX_STRING];
-  int i,j,treatlon=0;
-  double tmp;
-  char msg[CMOR_MAX_STRING];
-  cdCalenType acal;
-  double *tmplon;
-
-  cmor_axis_def_t *refaxis;
-  cmor_axis_t *axis;
-  int found = 0;
-  double eps,eps2;
-
-  cmor_add_traceback("cmor_treat_axis_values");
-  cmor_is_setup();
-
-  axis = &cmor_axes[axis_id];
-  refaxis = &cmor_tables[axis->ref_table_id].axes[axis->ref_axis_id];
-
-  /* for (i=0;i<length;i++) printf("isbounds: %i, i: %i, value: %lf\n",isbounds,i,values[i]); */
-
-  if (refaxis->axis=='T') {
-    /*ok this part will try to convert time values to the right units */
-    cmor_get_cur_dataset_attribute("calendar",&msg[0]);
-    if (cmor_calendar_c2i(msg,&acal)!=0) {
-      snprintf(msg,CMOR_MAX_STRING,"none standard calendar... hum we will try to accomodate this later\n");
-      cmor_handle_error(msg,CMOR_NORMAL);
-      cmor_pop_traceback();
-      return 1;
-    }
-/*     for(i=0;i<length;i++) printf("coming in values are: %i, %lf\n",i,values[i]); */
-    cmor_convert_time_values(&values[0],'d',length,&values[0],units,refaxis->units,msg,msg);
-/*     for(i=0;i<length;i++) printf("converted values are: %i, %lf\n",i,values[i]); */
-  }
-  else { /*ok using udunits to convert */
-    strcpy(local_unit,units);
-    ut_trim(local_unit,UT_ASCII);
-    user_units = ut_parse(ut_read, local_unit, UT_ASCII);
-    if (ut_get_status() != UT_SUCCESS ) {
-      snprintf(msg,CMOR_MAX_STRING,"In udunits analyzing units from user (%s)",local_unit);
-      cmor_handle_error(msg,CMOR_CRITICAL);
-      cmor_pop_traceback();
-      return 1;
-    }
-    if (strcmp(refaxis->units,"?")==0) strcpy(local_unit,units);
-    else strcpy(local_unit,refaxis->units);
-    ut_trim(local_unit,UT_ASCII);
-    cmor_units = ut_parse(ut_read, local_unit,UT_ASCII);
-    if (ut_get_status() != UT_SUCCESS ) {
-      snprintf(msg,CMOR_MAX_STRING,"In udunits analyzing table defined units (%s) for axis: %s",local_unit,refaxis->id );
-      cmor_handle_error(msg,CMOR_CRITICAL);
-      cmor_pop_traceback();
-      return 1;
-    }
-    if (ut_are_convertible(cmor_units,user_units)==0 ) {
-      snprintf(msg,CMOR_MAX_STRING,"axis %i (%s): cmor and user units are incompatible: %s and %s",axis_id,cmor_axes[axis_id].id,refaxis->units,units);
-      cmor_handle_error(msg,CMOR_CRITICAL);
-      cmor_pop_traceback();
-      return 1;
-    }
-    ut_cmor_converter=ut_get_converter(user_units,cmor_units);
-    if (ut_get_status() != UT_SUCCESS ) {
-      snprintf(msg,CMOR_MAX_STRING,"In udunits getting converter" );
-      cmor_handle_error(msg,CMOR_CRITICAL);
-      cmor_pop_traceback();
-      return 1;
-    }
-    cv_convert_doubles(ut_cmor_converter,values,length,values);
-    /*    cv_convert_doubles(ut_cmor_converter,&cmor_axes[cmor_naxes].values[0],length,&cmor_axes[cmor_naxes].values[0]); */
-    if (ut_get_status() != UT_SUCCESS ) {
-      snprintf(msg,CMOR_MAX_STRING,"In udunits converting values" );
-      cmor_handle_error(msg,CMOR_CRITICAL);
-      cmor_pop_traceback();
-      return 1;
-    }
-    cv_free(ut_cmor_converter);
-    if (ut_get_status() != UT_SUCCESS) {
-      snprintf(msg,CMOR_MAX_STRING,"Udunits: Error freeing converter");
-      cmor_handle_error(msg,CMOR_CRITICAL);
-    }
-    
-    ut_free(cmor_units);
-    if (ut_get_status() != UT_SUCCESS) {
-      snprintf(msg,CMOR_MAX_STRING,"Udunits: Error freeing units");
-      cmor_handle_error(msg,CMOR_CRITICAL);
-    }
-    ut_free(user_units);
-    if (ut_get_status() != UT_SUCCESS) {
-      snprintf(msg,CMOR_MAX_STRING,"Udunits: Error freeing units");
-      cmor_handle_error(msg,CMOR_CRITICAL);
-    }
-  }
-
-
-  /* test for requested */
-  /* ok is there some requested values ? */
-  if (n_requested!=0) {
-    for (j=0;j<n_requested;j++) {
-      found=0;
-      /* First test is it within .001 of req_values */
-      eps = (double) fabs(1.e-3*refaxis->tolerance*refaxis->requested[j]);
-/*       printf("epsilon  is: %lf, tol: %lf\n",eps,refaxis->tolerance); */
-      if (j>0) {
-	eps2 = (double)fabs(refaxis->requested[j]-refaxis->requested[j-1])*refaxis->tolerance;
-/* 	printf("epsilon2 is: %lf\n",eps2); */
-	if (eps2<eps) eps=eps2;
-      }
-      for (i=0;i<length;i++) {
-	/* 	  printf("value %d is: %lf\n",i,values[i]); */
-	if ((double)fabs(values[i]-refaxis->requested[j])<=eps) {
-	  found = 1;
-	  break;
-	}
-      }
-      if (found==0) {
-	snprintf(msg,CMOR_MAX_STRING,"requested value %f for axis %s was not found",refaxis->requested[j],name);
-	cmor_handle_error(msg,CMOR_CRITICAL);
-      }
-    }
-  }
-  
-
-  /* stored_direction*/
-  if ((length>1) && (((refaxis->stored_direction=='i') && (values[length-1]<values[0])) || ((refaxis->stored_direction=='d') && (values[0]<values[length-1])))) { /* need to flip that axis */
-    if ((isbounds==1)  && (axis->revert==1)) {
-      snprintf(msg,CMOR_MAX_STRING, "bounds of axis %s need to be flipped but axis values did not need to. This is inconsistent",name);
-      cmor_handle_error(msg,CMOR_CRITICAL);
-    }
-    axis->revert=-1;
-    for (i=0;i<length/2;i++) {
-      tmp = values[i];
-      values[i] = values[length-1-i];
-      values[length-1-i] = tmp;
-    }
-  }
-  if (isbounds==1) {
-    /* ok at that point we need to see if the bounds are stored in the correct first bound/second bounds order */
-    if (refaxis->axis!='X') {
-      if (refaxis->stored_direction=='i') { /* ok values are going incresingly */
-	for (i=0;i<length;i=i+2) { 
-	  if (values[i]>values[i+1]) { /* ok bounds are not stored first bound lower that second one */
-	    tmp = values[i];
-	    values[i] = values[i+1];
-	    values[i+1]=tmp;
-	  }
-	}
-      }
-      else {
-	for (i=0;i<length;i=i+2) { 
-	  if (values[i]<values[i+1]) { /* ok bounds are not stored first bound greater that second one */
-	    tmp = values[i];
-	    values[i] = values[i+1];
-	    values[i+1]=tmp;
-	  }
-	}
-      }
-    }
-    /* need to check for requested bounds */
-    if (refaxis->n_requested_bounds!=0) {
-      /* ok let's loop thru it but basically we need to loop every over ones */
-      for (j=0;j<refaxis->n_requested_bounds;j++) {
-	found=0;
-	/* First test is it within .001 of req_values */
-	eps = (double) fabs(1.e-3*refaxis->tolerance*refaxis->requested_bounds[j]);
-	if ((j % 2) == 0) {
-	  eps2 = (double)fabs(refaxis->requested_bounds[j]-refaxis->requested_bounds[j+1])*refaxis->tolerance;
-	}
-	else {
-	  eps2 = (double)fabs(refaxis->requested_bounds[j]-refaxis->requested_bounds[j-1])*refaxis->tolerance;
-	}
-/* 	printf("j, eps 2 is:%i, %lf\n",j,eps2); */
-	if (eps2<eps) eps=eps2;
-	if ((j%2)==0) {
-	  for (i=0;i<length;i=i+2) { /* it is a req beg bounds need to test against beg ones only */
-/* 	    printf("0req: %lf, val: %lf, eps: %lf, diff: %lf\n",refaxis->requested_bounds[j],values[i],eps,fabs(values[i]-refaxis->requested_bounds[j])); */
-	    if ((double)fabs(values[i]-refaxis->requested_bounds[j])<=eps) {
-	      found = 1;
-	      break;
-	    }
-	  }
-	}
-	else {
-	  for (i=1;i<length;i=i+2) { /* it is a second bounds, need to test against second nes only */
-/* 	    printf("1req: %lf, val: %lf, eps: %lf, diff: %lf\n",refaxis->requested_bounds[j],values[i],eps,fabs(values[i]-refaxis->requested_bounds[j])); */
-	    if ((double)fabs(values[i]-refaxis->requested_bounds[j])<=eps) {
-	      found = 1;
-	      break;
-	    }
-	  }
-	}
-	if (found==0) {
-	  snprintf(msg,CMOR_MAX_STRING,"requested value %f for axis %s was not found",refaxis->requested_bounds[j],name);
-	  cmor_handle_error(msg,CMOR_CRITICAL);
-	}
-      }
-    }
-    
-  }
-
-  /* is there any offsetting to be done ? */
-  if ((axis->offset!=0) && (isbounds==1)) {
-    tmplon = malloc(2*axis->offset*sizeof(double));
-    for (i=0;i<2*axis->offset;i++) {
-      tmplon[i]=values[i];
-    }
-    for (i=2*axis->offset;i<length;i++) {
-      values[i-2*axis->offset]=values[i];
-    }
-    for (i=0;i<2*axis->offset;i++) {
-      values[i+length-2*axis->offset]=tmplon[i];
-    }
-    free(tmplon);
-  }
- 
-  i = cmor_check_monotonic(&values[0],length,name,isbounds,axis_id);
-
-
-  /* now check for valid_min/max things */
-  if (isbounds==0) {
-    if (refaxis->valid_min!=1.e20) for (i=0;i<length;i++) if (values[i]<refaxis->valid_min) { 
-      if (refaxis->axis=='X') {
-	treatlon = 1;
-      }
-      else {
-	snprintf(msg,CMOR_MAX_STRING,"axis %s, detected value at: %f when valid_min is %f\n",name,values[i],refaxis->valid_min); 
-	cmor_handle_error(msg,CMOR_NORMAL);
-	cmor_pop_traceback();
-	return 1;
-      }
-    }
-    if (treatlon==1) {
-      for (i=0;i<length;i++) { /* ok lets add 360. until it's all good */
-	while (values[i]<refaxis->valid_min) values[i]+=360.;
-      }
-      /* ok now need to determine the offset */
-      for (i=0;i<length-1;i++) {
-	if (values[i]>values[i+1]) {
-	  axis->offset = i+1; 
-	  break;
-	}
-      }
-    }
-    treatlon=0;
-    if (refaxis->valid_max!=1.e20) for (i=0;i<length;i++) if (values[i]>refaxis->valid_max) {
-      if (refaxis->axis=='X') {
-    	treatlon = 1;
-      }
-      else {
-    	snprintf(msg,CMOR_MAX_STRING,"axis %s, detected value at: %f when valid_max is %f\n",name,values[i],refaxis->valid_max);
-    	cmor_handle_error(msg,CMOR_NORMAL);
-    	cmor_pop_traceback();
-    	return 1;
-      }
-    }
-    if (treatlon==1) {
-      for (i=0;i<length;i++) { /* ok lets add 360. until it's all good */
-    	while (values[i]>refaxis->valid_max) values[i]-=360.;
-      }
-      /* ok now need to determine the offset */
-      for (i=0;i<length-1;i++) {
-    	if (values[i]>values[i+1]) {
-    	  axis->offset = i+1;
-    	  break;
-    	}
-      }
-    }
-    /* ok now need to move the offset thing */
-    if (axis->offset!=0) {
-      if (isbounds==0) {
-/* 	printf("ok unoffseted values are (axes): (offset is: %i) \n",axis->offset); */
-/* 	for (i=0;i<length;i++) printf("%i : %f\n",i,values[i]); */
-	tmplon = malloc(axis->offset*sizeof(double));
-	for (i=0;i<axis->offset;i++) {
-	  tmplon[i]=values[i];
-	}
-	for (i=axis->offset;i<length;i++) {
-	  values[i-axis->offset]=values[i];
-	}
-	for (i=0;i<axis->offset;i++) {
-	  values[i+length-axis->offset]=tmplon[i];
-	}
-	free(tmplon);
-/* 	printf("ok offseted values are (axes): \n"); */
-/* 	for (i=0;i<length;i++) printf("%i : %f\n",i,values[i]); */
-      }
-      else {
-	tmplon = malloc(2*axis->offset*sizeof(double));
-	for (i=0;i<2*axis->offset;i++) {
-	  tmplon[i]=values[i];
-	}
-	for (i=2*axis->offset;i<length;i++) {
-	  values[i-2*axis->offset]=values[i];
-	}
-	for (i=0;i<2*axis->offset;i++) {
-	  values[i+length-2*axis->offset]=tmplon[i];
-	}
-	free(tmplon);
-      }
-    }
-    i = cmor_check_monotonic(&values[0],length,name,isbounds,axis_id);
-
-  }
-  cmor_pop_traceback();
-  return 0;
-}
-
-int cmor_check_interval(int axis_id, char *interval, double *values, int nvalues, int isbounds) 
-{
-  char ctmp[CMOR_MAX_STRING];
-  char ctmp2[CMOR_MAX_STRING];
-  char msg[CMOR_MAX_STRING];
-  int i,j,n,nval;
-  double interv,diff,tmp;
-  extern ut_system *ut_read;
-  ut_unit *user_units=NULL, *cmor_units=NULL;
-  cv_converter *ut_cmor_converter=NULL;
-  double *tmp_values=NULL;
-  cmor_axis_def_t *refaxis;
-  cmor_axis_t *axis;
-  cdCalenType icali;
-  cdCompTime comptime;
-
-  cmor_add_traceback("cmor_check_interval"); 
-  axis = &cmor_axes[axis_id];
-  refaxis = &cmor_tables[axis->ref_table_id].axes[axis->ref_axis_id];
-
-  if (isbounds==0) {
-    nval = nvalues;
-    tmp_values=values;
-  }
-  else {
-    nval = nvalues/2+1;
-    tmp_values = malloc(sizeof(double)*nval);
-    if (tmp_values==NULL) {
-      snprintf(ctmp,CMOR_MAX_STRING,"Error allocating memory for %i values in check_interval (%s)",nval,interval);
-      cmor_handle_error(ctmp,CMOR_CRITICAL);
-    }
-    for (i=0;i<nval-1;i++) tmp_values[i] = values[i*2];
-    tmp_values[nval-1] = values[nvalues-1];
-  }
-  /* first of all need to figure out the numeric and unit part of the interval */
-  cmor_trim_string(interval,ctmp);
-  n = strlen(ctmp);
-  for (i=0;i<n;i++) {
-    if (ctmp[i]==' ') {
-      ctmp2[i]='\0';
-      break;
-    }
-    ctmp2[i]=ctmp[i];
-  }
-  interv = atof(ctmp2);
-  for(j=0;j<n-i;j++) {
-    ctmp2[j]=ctmp[j+i+1];
-  }
-  ctmp2[j]='\0';
-  /* ok at this point we need to convert this in some base units: seconds */
-  sprintf(msg,"seconds");
-  ut_trim(msg,UT_ASCII);
-  cmor_units = ut_parse(ut_read, msg,UT_ASCII);
-  user_units = ut_parse(ut_read, ctmp2, UT_ASCII);
-  if (ut_get_status() != UT_SUCCESS) {
-    snprintf(msg,CMOR_MAX_STRING,"In udunuits parsing user units: %s",ctmp2);
-    cmor_handle_error(msg,CMOR_CRITICAL);
-  }
-  if (ut_are_convertible(cmor_units,user_units)==0 ) {
-    snprintf(ctmp,CMOR_MAX_STRING,"axis interval units (%s) are incompatible with seconds",ctmp2);
-    cmor_handle_error(ctmp,CMOR_CRITICAL);
-    cmor_pop_traceback();
-    return 1;
-  }
-  ut_cmor_converter=ut_get_converter(user_units,cmor_units);
-  if (ut_get_status() != UT_SUCCESS) {
-    snprintf(msg,CMOR_MAX_STRING,"In udunuits getting converter");
-    cmor_handle_error(msg,CMOR_CRITICAL);
-  }
-  tmp = cv_convert_double(ut_cmor_converter,interv);
-  if (ut_get_status() != UT_SUCCESS) {
-    snprintf(msg,CMOR_MAX_STRING,"In udunuits converting");
-    cmor_handle_error(msg,CMOR_CRITICAL);
-  }
-  interv = tmp;
-  cv_free(ut_cmor_converter);
-  if (ut_get_status() != UT_SUCCESS) {
-    snprintf(msg,CMOR_MAX_STRING,"Udunits: Error freeing converter");
-    cmor_handle_error(msg,CMOR_CRITICAL);
-  }
-  ut_free(user_units);
-  if (ut_get_status() != UT_SUCCESS) {
-    snprintf(msg,CMOR_MAX_STRING,"Udunits: Error freeing units");
-    cmor_handle_error(msg,CMOR_CRITICAL);
-  }
-  
-  /* at this point we need to figure out the axis units interval */
-  strcpy(ctmp,refaxis->units);
-  n = strlen(ctmp);
-  for (i=0;i<n;i++) {
-    if (ctmp[i]==' ') {
-      ctmp2[i]='\0';
-      break;
-    }
-    ctmp2[i]=ctmp[i];
-  }
-  user_units = ut_parse(ut_read, ctmp2, UT_ASCII);
-  if (ut_get_status() != UT_SUCCESS) {
-    snprintf(msg,CMOR_MAX_STRING,"In udunuits parsing user units: %s",ctmp2);
-    cmor_handle_error(msg,CMOR_CRITICAL);
-  }
-  if (ut_are_convertible(cmor_units,user_units)==0 ) {
-    snprintf(ctmp,CMOR_MAX_STRING,"axis interval units (%s) are incompatible with seconds",ctmp2);
-    cmor_handle_error(ctmp,CMOR_CRITICAL);
-    cmor_pop_traceback();
-    return 1;
-  }
-  ut_cmor_converter=ut_get_converter(user_units,cmor_units);
-  if (ut_get_status() != UT_SUCCESS) {
-    snprintf(msg,CMOR_MAX_STRING,"Udunits: Error getting converter from %s to %s",ctmp2,msg);
-    cmor_handle_error(msg,CMOR_CRITICAL);
-  }
-  tmp=0.;
-  for (i=0;i<nval-1;i++) {
-    diff = tmp_values[i+1]-tmp_values[i]; /* still in user units */
-    /* now converts to seconds */
-    tmp = cv_convert_double(ut_cmor_converter,diff);
-    if (ut_get_status() != UT_SUCCESS) {
-      snprintf(msg,CMOR_MAX_STRING,"In udunuits converting");
-      cmor_handle_error(msg,CMOR_CRITICAL);
-    }
-    diff = tmp;
-    tmp = (double)fabs(diff-interv);
-    tmp = tmp/interv;
-    if (tmp>.2) { /* more than 20% diff issues an error */
-      if (isbounds==1) {
-	snprintf(ctmp,CMOR_MAX_STRING,"approximate time axis interval is defined as %f seconds (%s), for value %i we got a difference (based on bounds) of %f, which is %f %% , seems too big, check your values", interv, interval, i+1, diff, tmp*100.);
-      }
-      else {
-	if (isbounds==1) {
-	  snprintf(ctmp,CMOR_MAX_STRING,"approximate time axis interval is defined as %f seconds (%s), for value %i we got a difference (based on bounds) of %f, which is %f %% , seems too big, check your values", interv, interval, i+1, diff, tmp*100.);
-	}
-	else {
-	  snprintf(ctmp,CMOR_MAX_STRING,"approximate time axis interval is defined as %f seconds (%s), for value %i we got a difference of %f, which is %f %% , seems too big, check your values", interv, interval, i+1, diff, tmp*100.);
-	}
-      }
-      cmor_handle_error(ctmp,CMOR_CRITICAL);
-    }
-    else if (tmp>.1) { /* more than 10% diff issues a warning */
-      snprintf(ctmp,CMOR_MAX_STRING,"approximate time axis interval is defined as %f seconds (%s), for value %i we got a difference of %f, which is %f %% , seems too big, check your values", interv, interval, i+1, diff, tmp*100.);
-      cmor_handle_error(ctmp,CMOR_WARNING);
-    }
-  }
-
-  /* ok here we test for bounds being at begining and end of the month */
-  if ((isbounds==1) && (fabs(interv-2592000.)/2592000. < .1)) {
-    cmor_get_cur_dataset_attribute("calendar",ctmp);
-    if (cmor_calendar_c2i(ctmp,&icali)!=0) {
-      snprintf(ctmp,CMOR_MAX_STRING,"Cannot convert times for calendar: %s",ctmp);
-      cmor_handle_error(ctmp,CMOR_NORMAL);
-      cmor_pop_traceback();
-      return 1;
-    }
-    for (i=0;i<nvalues;i++) {
-      cdRel2Comp(icali,axis->iunits,values[i],&comptime);
-      if (comptime.day!=1) {
-	snprintf(ctmp,CMOR_MAX_STRING,"Bounds value %ld-%d-%d is not beg or end of month and you seem to be writing monthly data, please check",comptime.year,comptime.month,comptime.day);
-	cmor_handle_error(ctmp,CMOR_WARNING);
-      }
-    }
-  }
-  cv_free(ut_cmor_converter);
-  if (ut_get_status() != UT_SUCCESS) {
-    snprintf(msg,CMOR_MAX_STRING,"Udunits: Error freeing converter");
-    cmor_handle_error(msg,CMOR_CRITICAL);
-  }
-  
-  ut_free(cmor_units);
-  if (ut_get_status() != UT_SUCCESS) {
-    snprintf(msg,CMOR_MAX_STRING,"Udunits: Error freeing units");
-    cmor_handle_error(msg,CMOR_CRITICAL);
-  }
-  ut_free(user_units);
-  if (ut_get_status() != UT_SUCCESS) {
-    snprintf(msg,CMOR_MAX_STRING,"Udunits: Error freeing units");
-    cmor_handle_error(msg,CMOR_CRITICAL);
-  }
-  if (isbounds == 1) free(tmp_values);
-  cmor_pop_traceback();
-  return 0;
-}
-
-int cmor_axis(int *axis_id, char *name,char *units, int length,void *coord_vals, char type, void *cell_bounds,int cell_bounds_ndim,char *interval) 
-{
-  extern int cmor_naxes;
-  extern int CMOR_TABLE;
-
-  int i,iref,j,ierr,k,l;
-  cmor_axis_def_t refaxis;
-  char msg[CMOR_MAX_STRING];
-  char ctmp[CMOR_MAX_STRING];
-  
-  cmor_add_traceback("cmor_axis");
-  cmor_is_setup();
-
-  if (CMOR_TABLE==-1) {
-    cmor_handle_error("You did not define a table yet!",CMOR_CRITICAL);
-  }
-
-  if (cmor_naxes==CMOR_MAX_AXES-1) { 
-    cmor_handle_error("Too many axes defined",CMOR_CRITICAL);
-    cmor_pop_traceback();
-    return 1;
-  }
-
-  /* printf("cell bnds ndims: %i\n",cell_bounds_ndim); */
-  /* if (cell_bounds_ndim==1) { */
-  /*   for (i=0;i<length;i++) { */
-  /*     printf("%lf < %lf < %lf\n",(double)((double *)cell_bounds)[i],(double)((double *)coord_vals)[i],(double)((double *)cell_bounds)[i+1]); */
-  /*   } */
-  /* } */
-   /* for (i=0;i<length;i++) {printf("ok in cmor_axsi we have: %i, %lf, %lf, %lf\n",i,(double)((double *)coord_vals)[i],(double)((double *)cell_bounds)[2*i],(double)((double *)cell_bounds)[2*i+1]);} */
-
-  cmor_naxes+=1;
-  strncpytrim(cmor_axes[cmor_naxes].id,name,CMOR_MAX_STRING);
-  /* ok now look which axis is corresponding in table if not found then error */
-  iref=-1;
-  cmor_trim_string(name,msg);
-  for (i=0;i<=cmor_tables[CMOR_TABLE].naxes;i++) if (strcmp(cmor_tables[CMOR_TABLE].axes[i].id,msg)==0) { iref=i;break;}
-  if (iref==-1) {
-    snprintf(ctmp,CMOR_MAX_STRING,"Could not find a matching axis for name: '%s'\n",msg);
-    cmor_handle_error(ctmp,CMOR_CRITICAL);
-  }
-  /*printf("ok your axis is actually axis %i in table %i\n",iref,CMOR_TABLE);*/
-  refaxis=cmor_tables[CMOR_TABLE].axes[iref];
-  cmor_axes[cmor_naxes].ref_table_id=CMOR_TABLE;
-  cmor_axes[cmor_naxes].ref_axis_id=iref;
-
-  cmor_axes[cmor_naxes].length=length;
-  cmor_axes[cmor_naxes].type=type;
-  cmor_axes[cmor_naxes].store_in_netcdf=1;
-
-  /* attributes settings */
-  if (refaxis.axis=='T') {
-    cmor_get_cur_dataset_attribute("calendar",ctmp);
-    cmor_set_axis_attribute(cmor_naxes,"calendar",'c',ctmp);
-    cmor_convert_time_units(units,refaxis.units,&ctmp[0]);
-    strncpytrim(cmor_axes[cmor_naxes].iunits,units,CMOR_MAX_STRING);
-  }
-  else strcpy(ctmp,refaxis.units);
-  ierr = cmor_set_axis_attribute(cmor_naxes,"units",'c',ctmp);
-  ctmp[0]=refaxis.axis; 
-  ctmp[1]='\0';
-  cmor_axes[cmor_naxes].axis=refaxis.axis;
-/*   printf("axis %s ref axis convert: %s\n",cmor_axes[cmor_naxes].id,refaxis.convert_to); */
-  if (refaxis.axis!='\0') ierr = cmor_set_axis_attribute(cmor_naxes,"axis",'c',ctmp);
-  if (refaxis.positive!='\0') {
-    if (refaxis.positive=='u') cmor_set_axis_attribute(cmor_naxes,"positive",'c',"up");
-    else if (refaxis.positive=='d') cmor_set_axis_attribute(cmor_naxes,"positive",'c',"down");
-  }
-  if (refaxis.long_name[0]!='\0') ierr = cmor_set_axis_attribute(cmor_naxes,"long_name",'c',refaxis.long_name);
-  if (refaxis.standard_name[0]!='\0') ierr = cmor_set_axis_attribute(cmor_naxes,"standard_name",'c',refaxis.standard_name);
-  if (refaxis.formula[0]!='\0') ierr = cmor_set_axis_attribute(cmor_naxes,"formula",'c',refaxis.formula);
-  if (refaxis.z_factors[0]!='\0') ierr = cmor_set_axis_attribute(cmor_naxes,"z_factors",'c',refaxis.z_factors);
-  if ((refaxis.z_bounds_factors[0]!='\0') && (cell_bounds!=NULL)) ierr = cmor_set_axis_attribute(cmor_naxes,"z_bounds_factors",'c',refaxis.z_bounds_factors);
-
-/*   printf("comparing %s\n",cmor_axes[cmor_naxes].id); */
-  if (strcmp(cmor_axes[cmor_naxes].id,"standard_sigma")==0) cmor_axes[cmor_naxes].hybrid_in=3;
-  if (strcmp(cmor_axes[cmor_naxes].id,"standard_hybrid_sigma")==0) cmor_axes[cmor_naxes].hybrid_in=1;
-  if (strcmp(cmor_axes[cmor_naxes].id,"alternate_hybrid_sigma")==0) cmor_axes[cmor_naxes].hybrid_in=2;
-/*   printf("we got hybrid in setto : %i\n",cmor_axes[cmor_naxes].hybrid_in); */
-  if (refaxis.convert_to[0]!='\0') {
-    if (strcmp(refaxis.convert_to,name)!=0) {
-      if (strcmp(refaxis.convert_to,"standard_hybrid_sigma")==0) {
-	/* remembers what the original type was */
-	i = cmor_axes[cmor_naxes].hybrid_in;
-	if ((strcmp(name,"standard_hybrid_sigma")!=0) && (strcmp(name,"alternate_hybrid_sigma")!=0) && (strcmp(name,"standard_sigma")!=0)) {
-	  snprintf(msg,CMOR_MAX_STRING,"axis: %s converting to \"standard_hybrid_sigma\" from unknown type: %s",cmor_axes[cmor_naxes].id,name);
-	  cmor_handle_error(msg,CMOR_CRITICAL);
-	}
-	printf("yep we are copnverting to: %s\n",refaxis.convert_to);
-	ierr = cmor_axis(axis_id,refaxis.convert_to,units,length,coord_vals,type,cell_bounds,cell_bounds_ndim,interval); 
-	cmor_axes[cmor_naxes].hybrid_in=i; 
-	cmor_axes[cmor_naxes].hybrid_out=1;
-	*axis_id = cmor_naxes;
-	cmor_pop_traceback();
-	return 0;
-      }
-      else {
-	snprintf(msg,CMOR_MAX_STRING,"axis: %s is declared to be converted to unknown type: %s",cmor_axes[cmor_naxes].id,refaxis.convert_to);
-	cmor_handle_error(msg,CMOR_CRITICAL);
-      }
-    }
-  }
-  else {
-    cmor_axes[cmor_naxes].hybrid_out=cmor_axes[cmor_naxes].hybrid_in;
-  }
-
-  /* interval attribute */
-  if ((interval!=NULL) && (interval[0]!='\0')) {
-    ierr = cmor_set_axis_attribute(cmor_naxes,"interval",'c',interval);
-  }
-  
-  /* test whether bounds are requested or not */
-  if ((cell_bounds==NULL) && (refaxis.must_have_bounds==1)) {
-    if (refaxis.axis!='T') {
-      snprintf(msg,CMOR_MAX_STRING,"axis: %s must have bounds, you did not pass any when creating it via cmor_axis",cmor_axes[cmor_naxes].id);
-      cmor_handle_error(msg,CMOR_CRITICAL);
-    }
-    else if (coord_vals!=NULL) { /* we passed time values that means we do not intend to pass them later */
-      snprintf(msg,CMOR_MAX_STRING,"axis: %s must have bounds, you did not pass any when creating it via cmor_axis",cmor_axes[cmor_naxes].id);
-      cmor_handle_error(msg,CMOR_CRITICAL);
-    }
-  }
-  if (coord_vals!=NULL) { /* user passed coords need to convert this guys */
-    if (type!='c') {
-      cmor_axes[cmor_naxes].values=malloc(length*sizeof(double));
-      if ( cmor_axes[cmor_naxes].values == NULL ) {
-	snprintf(msg,CMOR_MAX_STRING,"cmor_axis: cannot allocate memory for %i double elts for axis %s",length,cmor_axes[cmor_naxes].id);
-	cmor_handle_error(msg,CMOR_CRITICAL);
-      }
-      if (type=='f') for (i=0;i<length;i++) cmor_axes[cmor_naxes].values[i] = (double)((float *)coord_vals)[i];
-      else if (type=='l') for (i=0;i<length;i++) cmor_axes[cmor_naxes].values[i] = (double)((long *)coord_vals)[i];
-      else if (type=='i') for (i=0;i<length;i++) cmor_axes[cmor_naxes].values[i] = (double)((int *)coord_vals)[i];
-      else if (type=='d') for (i=0;i<length;i++) cmor_axes[cmor_naxes].values[i] = (double)((double *)coord_vals)[i];
-
-/*       for(i=0;i<length;i++) printf("ok we received: %i:%lf\n",i,cmor_axes[cmor_naxes].values[i]); */
-    }
-    else {
-      cmor_axes[cmor_naxes].cvalues=malloc(length*sizeof(char *));
-      if (cmor_axes[cmor_naxes].cvalues == NULL)  {
-	snprintf(msg,CMOR_MAX_STRING,"cmor_axis: cannot allocate memory for %i char elts for axis %s",length,cmor_axes[cmor_naxes].id);
-	cmor_handle_error(msg,CMOR_CRITICAL);
-      }
-      if (cell_bounds_ndim==0) k=CMOR_MAX_STRING;
-      else k=cell_bounds_ndim;
-      for (i=0;i<length;i++) {
-	j = strlen(&((char *)coord_vals)[i*k]);
-	if (j>k) j=k;
-	cmor_axes[cmor_naxes].cvalues[i]=malloc((j+1)*sizeof(char));
-	if (cmor_axes[cmor_naxes].cvalues[i] == NULL )   {
-	  snprintf(msg,CMOR_MAX_STRING,"cmor_axis: cannot allocate memory for %i char elts for axis %s",j+1,cmor_axes[cmor_naxes].id);
-	  cmor_handle_error(msg,CMOR_CRITICAL);
-	}
-	strncpy(cmor_axes[cmor_naxes].cvalues[i],&((char *)coord_vals)[i*k],j);
-	cmor_axes[cmor_naxes].cvalues[i][j]='\0';
-      }
-      /* we don't want to do the bounds stuff */
-      /* but we need to look at the requested thing! */
-      if (refaxis.crequested!=NULL) {
-	i=0;
-	j=strlen(&refaxis.crequested[0]);
-	for (i=0;i<j;i++) {
-	  k=0;
-	  while ((refaxis.crequested[i]!=' ') && (refaxis.crequested[i]!='\0')) {ctmp[k]=refaxis.crequested[i];i++;k++;}
-	  ctmp[k]='\0';
-	  k=-1;
-	  for (l=0;l<length;l++) {
-/* 	    printf("comparing: %s and %s\n",ctmp,cmor_axes[cmor_naxes].cvalues[l]); */
-	    if (strncmp(ctmp,cmor_axes[cmor_naxes].cvalues[l],strlen(ctmp))==0) k=l;
-	  }
-	  if (k==-1) {
-	    snprintf(msg,CMOR_MAX_STRING,"Requested region for axis '%s' is not passed: '%s'",cmor_axes[cmor_naxes].id,ctmp);
-	    cmor_handle_error(msg,CMOR_CRITICAL);
-	  }
-	}
-      }
-      if (refaxis.out_name[0]!='\0') strcpy(cmor_axes[cmor_naxes].id,refaxis.out_name);
-      *axis_id=cmor_naxes;
-      cmor_pop_traceback();
-      return 0;
-    }
-
-    ierr = cmor_treat_axis_values(cmor_naxes, &cmor_axes[cmor_naxes].values[0],length,refaxis.n_requested, units, name, 0 );
-    /* puts bounds on 2d array */
-    if ((cell_bounds!=NULL) && (cell_bounds_ndim!=0)) {
-      cmor_axes[cmor_naxes].bounds=malloc(2*length*sizeof(double));
-      if (cmor_axes[cmor_naxes].bounds == NULL)   {
-	snprintf(msg,CMOR_MAX_STRING,"cmor_axis: cannot allocate memory for %i bounds elts for axis %s",2*length,cmor_axes[cmor_naxes].id);
-	cmor_handle_error(msg,CMOR_CRITICAL);
-      }
-      if (cell_bounds_ndim == 2) {
-	if (type=='f') for (i=0;i<length;i++) { cmor_axes[cmor_naxes].bounds[2*i]=(double)((float *)cell_bounds)[2*i];cmor_axes[cmor_naxes].bounds[2*i+1]=(double)((float *)cell_bounds)[2*i+1]; }
-	else if (type=='d') for (i=0;i<length;i++) { cmor_axes[cmor_naxes].bounds[2*i]=(double)((double *)cell_bounds)[2*i];cmor_axes[cmor_naxes].bounds[2*i+1]=(double)((double *)cell_bounds)[2*i+1]; }
-	else if (type=='l') for (i=0;i<length;i++) { cmor_axes[cmor_naxes].bounds[2*i]=(double)((long *)cell_bounds)[2*i];cmor_axes[cmor_naxes].bounds[2*i+1]=(double)((long *)cell_bounds)[2*i+1]; }
-	else if (type=='i') for (i=0;i<length;i++) { cmor_axes[cmor_naxes].bounds[2*i]=(double)((int *)cell_bounds)[2*i];cmor_axes[cmor_naxes].bounds[2*i+1]=(double)((int *)cell_bounds)[2*i+1]; }
-	else { /* ??? charcter axis code here */ snprintf(msg,CMOR_MAX_STRING,"CMOR cannot handle axes of type %c please submit a request or change type\n",type); cmor_handle_error(msg,CMOR_CRITICAL);}
-      }
-      else if (cell_bounds_ndim == 1) {
-	if (type=='f') for (i=0;i<length;i++) { cmor_axes[cmor_naxes].bounds[2*i]=(double)((float *)cell_bounds)[i]; cmor_axes[cmor_naxes].bounds[2*i+1]=(double)((float *)cell_bounds)[i+1]; }
-	else if (type=='d') for (i=0;i<length;i++) {cmor_axes[cmor_naxes].bounds[2*i]=(double)((double *)cell_bounds)[i]; cmor_axes[cmor_naxes].bounds[2*i+1]=(double)((double *)cell_bounds)[i+1]; }
-	else if (type=='i') for (i=0;i<length;i++) { cmor_axes[cmor_naxes].bounds[2*i]=(double)((int *)cell_bounds)[i]; cmor_axes[cmor_naxes].bounds[2*i+1]=(double)((int *)cell_bounds)[i+1]; }
-	else if (type=='l') for (i=0;i<length;i++) { cmor_axes[cmor_naxes].bounds[2*i]=(double)((long *)cell_bounds)[i]; cmor_axes[cmor_naxes].bounds[2*i+1]=(double)((long *)cell_bounds)[i+1]; }
-	else { /* ??? charcter axis code here */ snprintf(msg,CMOR_MAX_STRING,"CMOR cannot handle axes of type %c please submit a request or change type\n",type); cmor_handle_error(msg,CMOR_CRITICAL);}
-      }
-      /* for (i=0;i<length;i++) printf("bounds: %i -> %lf,%lf\n",i,cmor_axes[cmor_naxes].bounds[2*i],cmor_axes[cmor_naxes].bounds[2*i+1]); */
-      ierr = cmor_treat_axis_values(cmor_naxes, &cmor_axes[cmor_naxes].bounds[0],2*length,0,units, name, 1 );
-      /* At this point we are checking that the axis values are within bounds */
-      /* for (i=0;i<length;i++) printf("check bounds: %i -> %lf,%lf,%lf\n",i,cmor_axes[cmor_naxes].bounds[2*i],cmor_axes[cmor_naxes].values[i],cmor_axes[cmor_naxes].bounds[2*i+1]); */
-      ierr = cmor_check_values_inside_bounds(&cmor_axes[cmor_naxes].values[0],&cmor_axes[cmor_naxes].bounds[0], length, name);
-      if (refaxis.axis=='T') {
-	/* ok now we need to overwrite the time values with mid point */
-	for (i=0;i<length;i++) cmor_axes[cmor_naxes].values[i]=(cmor_axes[cmor_naxes].bounds[2*i]+cmor_axes[cmor_naxes].bounds[2*i+1])/2.;
-      }
-    }
-  }
-  else {
-    if ((refaxis.axis!='T') && (refaxis.index_only=='n')) {
-      	snprintf(msg,CMOR_MAX_STRING,"cmor_axis: function called for axis '%s' w/o any values",cmor_axes[cmor_naxes].id);
-	cmor_handle_error(msg,CMOR_CRITICAL);
-    }
-    if (refaxis.index_only!='n') {
-      /* it is an index no need to store values */
-      cmor_axes[cmor_naxes].store_in_netcdf=0;
-    }
-  }
-
-  if (refaxis.out_name[0]!='\0') strcpy(cmor_axes[cmor_naxes].id,refaxis.out_name);
-  *axis_id=cmor_naxes;
-
-  cmor_pop_traceback();
-  return 0;
-};
-
-void cmor_init_axis_def(cmor_axis_def_t *axis, int table_id)
-{
-  cmor_is_setup();
-  axis->table_id=table_id;
-  axis->climatology=0;
-  axis->standard_name[0]='\0';
-  axis->units[0]='\0';
-  axis->axis='\0';
-  axis->positive='\0';
-  axis->long_name[0]='\0';
-  axis->out_name[0]='\0';
-  axis->type='d';
-  axis->stored_direction='i';
-  axis->valid_min=1.e20; /* means no check */
-  axis->valid_max=1.e20;
-  if (axis->requested!=NULL) free(axis->requested);
-  axis->requested=NULL;
-  if (axis->requested_bounds!=NULL) free(axis->requested_bounds);
-  axis->requested_bounds=NULL;
-  axis->tolerance=1.e-3;
-  axis->value=1.e20;
-  axis->bounds_value[0]=1.e20;
-  axis->bounds_value[1]=1.e20;
-  axis->convert_to[0]='\0';
-  axis->formula[0]='\0';
-  axis->z_factors[0]='\0';
-  axis->z_bounds_factors[0]='\0';
-  if (axis->crequested!=NULL) free(axis->requested);
-  axis->crequested=NULL;
-  axis->cname[0]='\0';
-  if (axis->requested_bounds!=NULL) free(axis->requested_bounds);
-  axis->requested=NULL;
-  axis->n_requested=0;
-  axis->n_requested_bounds=0;
-  axis->index_only='n';
-  axis->must_have_bounds=0;
-}
-
-int cmor_set_axis_def_att(cmor_axis_def_t *axis,char att[CMOR_MAX_STRING],char val[CMOR_MAX_STRING] ){
-  int i,n,j;
-  char dim[CMOR_MAX_STRING];
-  char msg[CMOR_MAX_STRING];
-  double vals[CMOR_MAX_ELEMENTS];
-  double *tmp=NULL;
-  
-  cmor_add_traceback("cmor_set_axis_def_att");
-  cmor_is_setup();
-/*   printf("setting %s to %s on axis %s\n",att,val,axis->id); */
-  if (strcmp(att,"required")==0) {
-    strcpy(axis->required,att);
-  }
-  else if (strcmp(att,"id")==0) {
-    strcpy(axis->id,val);
-  }
-  else if (strcmp(att,"climatology")==0) {
-    if (strcmp(val,"yes")==0) axis->climatology=1;
-  }
-  else if (strcmp(att,"out_name")==0) {
-    strcpy(axis->out_name,val);
-  }
-  else if (strcmp(att,"standard_name")==0) {
-    strcpy(axis->standard_name,val);
-  }
-  else if (strcmp(att,"long_name")==0) {
-    strcpy(axis->long_name,val);
-  }
-  else if (strcmp(att,"convert_to")==0) {
-    strcpy(axis->convert_to,val);
-  }
-  else if (strcmp(att,"formula")==0) {
-    strcpy(axis->formula,val);
-  }
-  else if (strcmp(att,"z_factors")==0) {
-    strcpy(axis->z_factors,val);
-  }
-  else if (strcmp(att,"z_bounds_factors")==0) {
-    strcpy(axis->z_bounds_factors,val);
-  }
-  else if (strcmp(att,"units")==0) {
-    strncpy(axis->units,val,CMOR_MAX_STRING);
-  }
-  else if (strcmp(att,"stored_direction")==0) {
-    if (val[0]=='i') axis->stored_direction='i';
-    else if (val[0]=='d') axis->stored_direction='d';
-  }
-  else if (strcmp(att,"positive")==0) {
-    axis->positive=val[0];
-  }
-  else if (strcmp(att,"axis")==0) {
-    axis->axis=val[0];
-  }
-  else if (strcmp(att,"index_only")==0) {
-    axis->index_only=val[0];
-  }
-  else if (strcmp(att,"must_have_bounds")==0) {
-    if (strcmp(val,"yes")==0) axis->must_have_bounds=1;
-  }
-  else if (strcmp(att,"type")==0) {
-    if (strcmp(val,"real")==0) axis->type='f';
-    else if (strcmp(val,"double")==0) axis->type='d';
-    else if (strcmp(val,"integer")==0) axis->type='i';
-    else if (strcmp(val,"long")==0) axis->type='l';
-    else if (strcmp(val,"character")==0) axis->type='c';
-  }
-  else if (strcmp(att,"valid_min")==0) {
-    axis->valid_min=atof(val);
-  }
-  else if (strcmp(att,"valid_max")==0) {
-    axis->valid_max=atof(val);
-  }
-  else if (strcmp(att,"tolerance")==0) {
-    axis->tolerance = atof(val);
-  }
-  else if (strcmp(att,"tol_on_requests")==0) {
-    axis->tolerance = atof(val);
-  }
-  else if (strcmp(att,"value")==0) {
-    axis->value = atof(val);
-  }
-  else if (strcmp(att,"bounds_values")==0) {
-    sscanf(val,"%lf %lf",&axis->bounds_value[0],&axis->bounds_value[1]);
-  }
-  else if (strcmp(att,"coords_attrib")==0) {
-    strncpytrim(axis->cname,val,CMOR_MAX_STRING);
-  }
-  else if ((strcmp(att,"bounds_requested")==0) || (strcmp(att,"requested_bounds")==0)) { /* requested values for axis */
-    dim[0]='\0';
-    n=0;
-    for(i=0;i<strlen(val);i++) {
-      j=i;
-      while(((val[i]!=' ')&&(val[i]!='\0')) && (i<strlen(val))) {
-	dim[i-j]=val[i];
-	i++;
-      }
-      dim[i-j]='\0';
-      sscanf(dim,"%lf",&vals[n]);
-      while((val[i]==' ') && (val[i]!='\0')) {
-	i++;
-      }
-      i--;
-      n++;
-    }
-    if (axis->n_requested_bounds!=0) { /* ok we already had some read in need to memorize it */
-      if (axis->requested_bounds == NULL)  {
-	snprintf(msg,CMOR_MAX_STRING,"axis: looks like we already read %d requested bounds but they are not stored in the internal tables, maybe some bad cleanup",axis->n_requested_bounds);
-	cmor_handle_error(msg,CMOR_CRITICAL);
-      }
-      tmp=malloc(axis->n_requested_bounds*sizeof(double));
-      if (tmp == NULL)  {
-	snprintf(msg,CMOR_MAX_STRING,"axis: cannot allocate memory for %i requested bounds elts for axis %s",axis->n_requested,axis->id);
-	cmor_handle_error(msg,CMOR_CRITICAL);
-      }
-      for (i=0;i<axis->n_requested_bounds;i++) {
-	tmp[i]=axis->requested_bounds[i];
-      }
-      free(axis->requested_bounds);
-      axis->n_requested_bounds+=n;
-    }
-    else {
-      axis->n_requested_bounds=n;
-    }
-    axis->requested_bounds=malloc(axis->n_requested_bounds*sizeof(double));
-    if (axis->requested_bounds == NULL)  {
-      snprintf(msg,CMOR_MAX_STRING,"axis: cannot allocate memory for %i requested bounds elts for axis %s",axis->n_requested,axis->id);
-      cmor_handle_error(msg,CMOR_CRITICAL);
-    }
-    for (i=0;i<n;i++) {  axis->requested_bounds[axis->n_requested_bounds-n+i]=vals[i];}
-    if (tmp!=NULL) { /* ok we had previously read in data need to add this */
-      for (i=0;i<axis->n_requested_bounds-n;i++) {
-	axis->requested_bounds[i]=tmp[i];
-      }
-      free(tmp); /* we don't need this any longer */
-      tmp=NULL;
-    }
-  }
-  else if (strcmp(att,"requested")==0) { /* requested values for axis */
-    if (axis->type!='c') {
-      dim[0]='\0';
-      n=0;
-      for(i=0;i<strlen(val);i++) {
-	j=i;
-	while(((val[i]!=' ')&&(val[i]!='\0')) && (i<strlen(val))) {
-	  dim[i-j]=val[i];
-	  i++;
-	}
-	dim[i-j]='\0';
-	sscanf(dim,"%lf",&vals[n]);
-	while((val[i]==' ') && (val[i]!='\0')) {
-	  i++;
-	}
-	i--;
-	n++;
-      }
-      if (axis->n_requested!=0) { /* ok we already had some read in need to memorize it */
-	if (axis->requested == NULL)  {
-	  snprintf(msg,CMOR_MAX_STRING,"axis: looks like we already read %d requested values but they are not stored in the internal tables, maybe some bad cleanup",axis->n_requested);
-	  cmor_handle_error(msg,CMOR_CRITICAL);
-	}
-	tmp=malloc(axis->n_requested*sizeof(double));
-	if (tmp == NULL)  {
-	  snprintf(msg,CMOR_MAX_STRING,"axis: cannot allocate memory for %i requested elts for axis %s",axis->n_requested,axis->id);
-	  cmor_handle_error(msg,CMOR_CRITICAL);
-	}
-	for (i=0;i<axis->n_requested;i++) {
-	  tmp[i]=axis->requested[i];
-	}
-	free(axis->requested);
-	axis->n_requested+=n;
-      }
-      else {
-	axis->n_requested=n;
-      }
-      axis->requested=malloc(axis->n_requested*sizeof(double));
-      if (axis->requested == NULL)  {
-	snprintf(msg,CMOR_MAX_STRING,"axis: cannot allocate memory for %i requested elts for axis %s",axis->n_requested,axis->id);
-	cmor_handle_error(msg,CMOR_CRITICAL);
-      }
-      for (i=0;i<n;i++) { /* printf("requested: %i : %f\n",i,vals[i]); */ axis->requested[i]=vals[i];}
-      if (tmp!=NULL) { /* ok we had previously read in data need to add this */
-	for (i=0;i<axis->n_requested-n;i++) {
-	  axis->requested[i+n]=tmp[i];
-	}
-	free(tmp); /* we don't need this any longer */
-	tmp=NULL;
-      }
-    }
-    else {
-      axis->n_requested=1;
-      axis->crequested=malloc((strlen(val)+1)*sizeof(char));
-      if (axis->crequested == NULL ) {
-	snprintf(msg,CMOR_MAX_STRING,"axis: cannot allocate memory for %ld requested char elts for axis %s",(long int)strlen(val)+1,axis->id);
-	cmor_handle_error(msg,CMOR_CRITICAL);
-      }
-      strcpy(axis->crequested,val); 
-    }
-  }
-  else {
-    snprintf(msg,CMOR_MAX_STRING,"Unknown attribute >>>%s<<< for axis section, value: %s",att,val);
-    cmor_handle_error(msg,CMOR_WARNING);
-  }
-  cmor_pop_traceback();
-  return 0;
-}
-
diff --git a/Src/cmor_cfortran_interface.c b/Src/cmor_cfortran_interface.c
deleted file mode 100644
index 0182510..0000000
--- a/Src/cmor_cfortran_interface.c
+++ /dev/null
@@ -1,481 +0,0 @@
-#include <stdlib.h>
-#include <string.h>
-#include "cmor.h"
-
-int cmor_ftn_get_tlen_cff_(int *var_id) {
-  int length;
-  int ierr;
-  ierr = cmor_get_variable_time_length(var_id,&length);
-  return length;
-}
-
-int cmor_get_original_shape_cff_(int *var_id,int *shape_array) {
-  int tmp,i;
-  i=7;
-  tmp = cmor_get_original_shape(var_id,shape_array,&i,1);
-  /* reverse it for fortran order */
-  for (i=0;i<3;i++) {
-    tmp = shape_array[i];
-    shape_array[i]=shape_array[6-i];
-    shape_array[6-i]=tmp;
-  }
-  /* now need to put the -1 back at the end */
-  tmp=0;
-  for (i=0;i<7;i++) if (shape_array[i]==-1) tmp+=1;
-  for (i=0;i<7-tmp;i++) shape_array[i]=shape_array[i+tmp];
-  for (i=0;i<tmp;i++) shape_array[i+7-tmp]=-1;
-  return 0;
-}
-
-void cmor_create_output_path_cff_(int *var_id, char *path, int *slen) {
-  int isfixed;
-  isfixed = cmor_create_output_path(*var_id,path);
-  *slen = strlen(path);
-}
-
-int cmor_set_cur_dset_attribute_cff_(char *name, char *value) {
-  return cmor_set_cur_dataset_attribute(name, value, 1);
-}
-
-int cmor_get_cur_dset_attribute_cff_(char *name, char *value) {
-  return cmor_get_cur_dataset_attribute(name, value) ;
-}
-
-int cmor_has_cur_dset_attribute_cff_(char *name) {
-  return  cmor_has_cur_dataset_attribute(name);
-}
-
-int cmor_close_cff_(void) {
-  return cmor_close();
-}
-
-int cmor_close_var_nofnm_cff_(int *var_id) {
-  return cmor_close_variable(*var_id,NULL,NULL);
-}
-
-int cmor_close_var_fnm_cff_(int *var_id, char *fnm) {
-  return cmor_close_variable(*var_id,fnm,NULL);
-}
-
-int cmor_close_var_nofnm_preserve_cff_(int *var_id, int *preserve) {
-  return cmor_close_variable(*var_id,NULL,preserve);
-}
-
-int cmor_close_var_fnm_preserve_cff_(int *var_id, char *fnm, int *preserve) {
-  return cmor_close_variable(*var_id,fnm,preserve);
-}
-
-int cmor_set_grd_map_cff_(int *gid, char *name, int *nparam, char **attributes_names, int *lparam, double *values, char **units, int *lnunits){
-  return cmor_set_grid_mapping(*gid, name, *nparam, attributes_names, *lparam, values, units, *lnunits);
-}
-
-/* int cmor_grid_cff_long_(int *grid_id, int *ndims, int *axes_ids, void *lat, void *lon, int *nvertices, void *blat, void *blon,void *area){ */
-/*   return cmor_grid(grid_id,*ndims,axes_ids,'l',lat,lon,*nvertices,blat,blon,area); */
-/* } */
-/* int cmor_grid_cff_noarea_long_(int *grid_id, int *ndims, int *axes_ids, void *lat, void *lon, int *nvertices, void *blat, void *blon){ */
-/*   return cmor_grid(grid_id,*ndims,axes_ids,'l',lat,lon,*nvertices,blat,blon); */
-/* } */
-/* int cmor_grid_cff_noblon_long_(int *grid_id, int *ndims, int *axes_ids, void *lat, void *lon, int *nvertices, void *blat, void *area){ */
-/*   return cmor_grid(grid_id,*ndims,axes_ids,'l',lat,lon,*nvertices,blat,NULL,area); */
-/* } */
-/* int cmor_grid_cff_noblat_long_(int *grid_id, int *ndims, int *axes_ids, void *lat, void *lon, int *nvertices, void *blon,void *area){ */
-/*   return cmor_grid(grid_id,*ndims,axes_ids,'l',lat,lon,*nvertices,NULL,blon,area); */
-/* } */
-/* int cmor_grid_cff_nobnds_long_(int *grid_id, int *ndims, int *axes_ids, void *lat, void *lon, int *nvertices, void *area){ */
-/*   return cmor_grid(grid_id,*ndims,axes_ids,'l',lat,lon,*nvertices,NULL,NULL,area); */
-/* } */
-/* int cmor_grid_cff_noblaar_long_(int *grid_id, int *ndims, int *axes_ids, void *lat, void *lon, int *nvertices, void *blon){ */
-/*   return cmor_grid(grid_id,*ndims,axes_ids,'l',lat,lon,*nvertices,NULL,blon); */
-/* } */
-/* int cmor_grid_cff_nobloar_long_(int *grid_id, int *ndims, int *axes_ids, void *lat, void *lon, int *nvertices, void *blat){ */
-/*   return cmor_grid(grid_id,*ndims,axes_ids,'l',lat,lon,*nvertices,blat,NULL); */
-/* } */
-/* int cmor_grid_cff_nothg_long_(int *grid_id, int *ndims, int *axes_ids, void *lat, void *lon, int *nvertices, void *blat, void *blon,void *area){ */
-/*   return cmor_grid(grid_id,*ndims,axes_ids,'l',lat,lon,*nvertices,NULL,NULL,NULL); */
-/* } */
-
-/* int cmor_grid_cff_double_(int *grid_id, int *ndims, int *axes_ids, void *lat, void *lon, int *nvertices, void *blat, void *blon,void *area){ */
-/*   return cmor_grid(grid_id,*ndims,axes_ids,'d',lat,lon,*nvertices,blat,blon,area); */
-/* } */
-int cmor_grid_cff_noarea_double_(int *grid_id, int *ndims, int *axes_ids, void *lat, void *lon, int *nvertices, void *blat, void *blon){
-  return cmor_grid(grid_id,*ndims,axes_ids,'d',lat,lon,*nvertices,blat,blon);
-}
-
-/* int cmor_grid_cff_noblon_double_(int *grid_id, int *ndims, int *axes_ids, void *lat, void *lon, int *nvertices, void *blat, void *area){ */
-/*   return cmor_grid(grid_id,*ndims,axes_ids,'d',lat,lon,*nvertices,blat,NULL,area); */
-/* } */
-/* int cmor_grid_cff_noblat_double_(int *grid_id, int *ndims, int *axes_ids, void *lat, void *lon, int *nvertices, void *blon,void *area){ */
-/*   return cmor_grid(grid_id,*ndims,axes_ids,'d',lat,lon,*nvertices,NULL,blon,area); */
-/* } */
-/* int cmor_grid_cff_nobnds_double_(int *grid_id, int *ndims, int *axes_ids, void *lat, void *lon, int *nvertices, void *area){ */
-/*   return cmor_grid(grid_id,*ndims,axes_ids,'d',lat,lon,*nvertices,NULL,NULL,area); */
-/* } */
-int cmor_grid_cff_noblaar_double_(int *grid_id, int *ndims, int *axes_ids, void *lat, void *lon, int *nvertices, void *blon){
-  return cmor_grid(grid_id,*ndims,axes_ids,'d',lat,lon,*nvertices,NULL,blon);
-}
-int cmor_grid_cff_nobloar_double_(int *grid_id, int *ndims, int *axes_ids, void *lat, void *lon, int *nvertices, void *blat){
-  return cmor_grid(grid_id,*ndims,axes_ids,'d',lat,lon,*nvertices,blat,NULL);
-}
-int cmor_grid_cff_nothg_double_(int *grid_id, int *ndims, int *axes_ids, void *lat, void *lon, int *nvertices){
-  return cmor_grid(grid_id,*ndims,axes_ids,'d',lat,lon,*nvertices,NULL,NULL);
-}
-
-/* int cmor_grid_cff_real_(int *grid_id, int *ndims, int *axes_ids, void *lat, void *lon, int *nvertices, void *blat, void *blon,void *area){ */
-/*   return cmor_grid(grid_id,*ndims,axes_ids,'f',lat,lon,*nvertices,blat,blon,area); */
-/* } */
-int cmor_grid_cff_noarea_real_(int *grid_id, int *ndims, int *axes_ids, void *lat, void *lon, int *nvertices, void *blat, void *blon){
-  return cmor_grid(grid_id,*ndims,axes_ids,'f',lat,lon,*nvertices,blat,blon);
-}
-/* int cmor_grid_cff_noblon_real_(int *grid_id, int *ndims, int *axes_ids, void *lat, void *lon, int *nvertices, void *blat, void *area){ */
-/*   return cmor_grid(grid_id,*ndims,axes_ids,'f',lat,lon,*nvertices,blat,NULL,area); */
-/* } */
-/* int cmor_grid_cff_noblat_real_(int *grid_id, int *ndims, int *axes_ids, void *lat, void *lon, int *nvertices, void *blon,void *area){ */
-/*   return cmor_grid(grid_id,*ndims,axes_ids,'f',lat,lon,*nvertices,NULL,blon,area); */
-/* } */
-/* int cmor_grid_cff_nobnds_real_(int *grid_id, int *ndims, int *axes_ids, void *lat, void *lon, int *nvertices, void *area){ */
-/*   return cmor_grid(grid_id,*ndims,axes_ids,'f',lat,lon,*nvertices,NULL,NULL,area); */
-/* } */
-int cmor_grid_cff_noblaar_real_(int *grid_id, int *ndims, int *axes_ids, void *lat, void *lon, int *nvertices, void *blon){
-  return cmor_grid(grid_id,*ndims,axes_ids,'f',lat,lon,*nvertices,NULL,blon);
-}
-int cmor_grid_cff_nobloar_real_(int *grid_id, int *ndims, int *axes_ids, void *lat, void *lon, int *nvertices, void *blat){
-  return cmor_grid(grid_id,*ndims,axes_ids,'f',lat,lon,*nvertices,blat,NULL);
-}
-int cmor_grid_cff_nothg_real_(int *grid_id, int *ndims, int *axes_ids, void *lat, void *lon, int *nvertices){
-  return cmor_grid(grid_id,*ndims,axes_ids,'f',lat,lon,*nvertices,NULL,NULL);
-}
-int cmor_grid_cff_nocoords_(int *grid_id, int *ndims, int *axes_ids, int *nvert) {
-  return cmor_grid(grid_id,*ndims,axes_ids,'f',NULL,NULL,*nvert,NULL,NULL);
-}
-
-/* int cmor_grid_cff_int_(int *grid_id, int *ndims, int *axes_ids, void *lat, void *lon, int *nvertices, void *blat, void *blon,void *area){ */
-/*   return cmor_grid(grid_id,*ndims,axes_ids,'i',lat,lon,*nvertices,blat,blon,area); */
-/* } */
-int cmor_grid_cff_noarea_int_(int *grid_id, int *ndims, int *axes_ids, void *lat, void *lon, int *nvertices, void *blat, void *blon){
-  return cmor_grid(grid_id,*ndims,axes_ids,'i',lat,lon,*nvertices,blat,blon);
-}
-/* int cmor_grid_cff_noblon_int_(int *grid_id, int *ndims, int *axes_ids, void *lat, void *lon, int *nvertices, void *blat, void *area){ */
-/*   return cmor_grid(grid_id,*ndims,axes_ids,'i',lat,lon,*nvertices,blat,NULL,area); */
-/* } */
-/* int cmor_grid_cff_noblat_int_(int *grid_id, int *ndims, int *axes_ids, void *lat, void *lon, int *nvertices, void *blon,void *area){ */
-/*   return cmor_grid(grid_id,*ndims,axes_ids,'i',lat,lon,*nvertices,NULL,blon,area); */
-/* } */
-/* int cmor_grid_cff_nobnds_int_(int *grid_id, int *ndims, int *axes_ids, void *lat, void *lon, int *nvertices, void *area){ */
-/*   return cmor_grid(grid_id,*ndims,axes_ids,'i',lat,lon,*nvertices,NULL,NULL,area); */
-/* } */
-
-int cmor_grid_cff_noblaar_int_(int *grid_id, int *ndims, int *axes_ids, void *lat, void *lon, int *nvertices, void *blon){
-  return cmor_grid(grid_id,*ndims,axes_ids,'i',lat,lon,*nvertices,NULL,blon);
-}
-int cmor_grid_cff_nobloar_int_(int *grid_id, int *ndims, int *axes_ids, void *lat, void *lon, int *nvertices, void *blat){
-  return cmor_grid(grid_id,*ndims,axes_ids,'i',lat,lon,*nvertices,blat,NULL);
-}
-int cmor_grid_cff_nothg_int_(int *grid_id, int *ndims, int *axes_ids, void *lat, void *lon, int *nvertices){
-  return cmor_grid(grid_id,*ndims,axes_ids,'i',lat,lon,*nvertices,NULL,NULL);
-}
-
-int cmor_grid_cff_tvc_f_(int *coord_grid_id, int *grid_id, char *name, char *units, void *missing) {
-  return cmor_time_varying_grid_coordinate(coord_grid_id, *grid_id, name, units, 'f', missing, NULL);
-}
-int cmor_grid_cff_tvc_d_(int *coord_grid_id, int *grid_id, char *name, char *units, void *missing) {
-  return cmor_time_varying_grid_coordinate(coord_grid_id, *grid_id, name, units, 'd', missing, NULL);
-}
-int cmor_grid_cff_tvc_i_(int *coord_grid_id, int *grid_id, char *name, char *units, void *missing) {
-  return cmor_time_varying_grid_coordinate(coord_grid_id, *grid_id, name, units, 'i', missing, NULL);
-}
-int cmor_grid_cff_tvc_no_(int *coord_grid_id, int *grid_id, char *name, char *units) {
-  return cmor_time_varying_grid_coordinate(coord_grid_id, *grid_id, name, units, 'f', NULL, NULL);
-}
-
-
-
-int cmor_load_table_cff_(char table[CMOR_MAX_STRING], int *table_id) {
-  return cmor_load_table(table,table_id);
-}
-
-void cmor_set_table_cff_(int *table) {
-  int i;
-  i = cmor_set_table(*table);
-}
-
-void cmor_handle_error_cff_(char error_msg[CMOR_MAX_STRING],int *level) {
-  cmor_handle_error(error_msg,*level);
-}
-
-
-int cmor_setup_cff_nolog_(char *path, int *netcdf, int *verbosity, int *mode, int *crsub)
-{ 
-  return  cmor_setup(path,netcdf,verbosity,mode,NULL,crsub);
-}
-int cmor_setup_cff_(char *path, int *netcdf, int *verbosity, int *mode, char *logfile, int *crsub)
-{ 
-  return  cmor_setup(path,netcdf,verbosity,mode,logfile,crsub);
-}
-
-int cmor_dataset_cff_(char *outpath, 
-		      char *experiment_id,
-		      char *institution, 
-		      char *source,   
-		      char *calendar, 
-		      int *realization, 
-		      char *contact, 
-		      char *history, 
-		      char *comment, 
-		      char *references,	 
-		      int *leap_year, 
-		      int *leap_month, 
-		      int *month_lengths,
-		      char *model_name,
-		      char *forcing,
-		      int *initialization_method,
-		      int *physics_version,
-		      char *institute_id,
-		      char *parent_exp_id,
-		      double *branch_time)
-{
-  return cmor_dataset(outpath,experiment_id,institution,source,calendar,*realization,contact,history,comment,references,*leap_year,*leap_month,month_lengths,model_name,forcing,*initialization_method,*physics_version,institute_id,parent_exp_id,branch_time);
-}
-int cmor_dataset_cff_null_(char *outpath, 
-			   char *experiment_id,
-			   char *institution, 
-			   char *source,   
-			   char *calendar, 
-			   int  *realization, 
-			   char *contact, 
-			   char *history, 
-			   char *comment, 
-			   char *references,	 
-			   int  *leap_year, 
-			   int  *leap_month,
-			   char *model_name,
-			   char *forcing,
-			   int  *initialization_method,
-			   int  *physics_version,
-			   char *institute_id,
-			   char *parent_exp_id,
-			   double *branch_time)
-{
-  return cmor_dataset(outpath,experiment_id,institution,source,calendar,*realization,contact,history,comment,references,*leap_year,*leap_month,NULL,model_name,forcing,*initialization_method,*physics_version,institute_id,parent_exp_id,branch_time);
-}
-int cmor_dataset_cff_nobrch_(char *outpath, 
-			     char *experiment_id,
-			     char *institution, 
-			     char *source,   
-			     char *calendar, 
-			     int *realization, 
-			     char *contact, 
-			     char *history, 
-			     char *comment, 
-			     char *references,	 
-			     int *leap_year, 
-			     int *leap_month, 
-			     int *month_lengths,
-			     char *model_name,
-			     char *forcing,
-			     int *initialization_method,
-			     int *physics_version,
-			     char *institute_id,
-			     char *parent_exp_id)
-{
-  return cmor_dataset(outpath,experiment_id,institution,source,calendar,*realization,contact,history,comment,references,*leap_year,*leap_month,month_lengths,model_name,forcing,*initialization_method,*physics_version,institute_id,parent_exp_id,NULL);
-}
-int cmor_dataset_cff_null_nobrch_(char *outpath, 
-				  char *experiment_id,
-				  char *institution, 
-				  char *source,   
-				  char *calendar, 
-				  int  *realization, 
-				  char *contact, 
-				  char *history, 
-				  char *comment, 
-				  char *references,	 
-				  int  *leap_year, 
-				  int  *leap_month,
-				  char *model_name,
-				  char *forcing,
-				  int  *initialization_method,
-				  int  *physics_version,
-				  char *institute_id,
-				  char *parent_exp_id)
-{
-  return cmor_dataset(outpath,experiment_id,institution,source,calendar,*realization,contact,history,comment,references,*leap_year,*leap_month,NULL,model_name,forcing,*initialization_method,*physics_version,institute_id,parent_exp_id,NULL);
-}
-
-int cmor_axis_cff_double_(int *axis_id, char *name,char *units, int *length,void *coord_vals, void *cell_bounds,int *cell_bounds_ndim,char *interval) {
-  return cmor_axis(axis_id,name,units,*length,coord_vals,'d', cell_bounds, *cell_bounds_ndim, interval);
-}
-int cmor_axis_cff_real_(int *axis_id, char *name,char *units, int *length,void *coord_vals, void *cell_bounds,int *cell_bounds_ndim,char *interval) {
-  return cmor_axis(axis_id,name,units,*length,coord_vals,'f', cell_bounds, *cell_bounds_ndim, interval);
-}
-int cmor_axis_cff_int_(int *axis_id, char *name,char *units, int *length,void *coord_vals, void *cell_bounds,int *cell_bounds_ndim,char *interval) {
-  return cmor_axis(axis_id,name,units,*length,coord_vals,'i', cell_bounds, *cell_bounds_ndim, interval);
-}
-int cmor_axis_cff_long_(int *axis_id, char *name,char *units, int *length,void *coord_vals, void *cell_bounds,int *cell_bounds_ndim,char *interval) {
-  return cmor_axis(axis_id,name,units,*length,coord_vals,'l', cell_bounds, *cell_bounds_ndim, interval);
-}
-int cmor_axis_cff_nobnds_double_(int *axis_id, char *name,char *units, int *length,void *coord_vals,char *interval) {
-  return cmor_axis(axis_id,name,units,*length,coord_vals,'d', NULL, 0, interval);
-}
-int cmor_axis_cff_nobnds_real_(int *axis_id, char *name,char *units, int *length,void *coord_vals,char *interval) {
-  return cmor_axis(axis_id,name,units,*length,coord_vals,'f', NULL, 0, interval);
-}
-int cmor_axis_cff_nobnds_int_(int *axis_id, char *name,char *units, int *length,void *coord_vals,char *interval) {
-  return cmor_axis(axis_id,name,units,*length,coord_vals,'i', NULL, 0, interval);
-}
-int cmor_axis_cff_nobnds_long_(int *axis_id, char *name,char *units, int *length,void *coord_vals,char *interval) {
-  return cmor_axis(axis_id,name,units,*length,coord_vals,'l', NULL, 0, interval);
-}
-int cmor_axis_cff_nobnds_char_(int *axis_id, char *name,char *units, int *length,void *coord_vals, int *cell_bounds_ndim,char *interval) {
-  return cmor_axis(axis_id,name,units,*length,coord_vals,'c', NULL, *cell_bounds_ndim, interval);
-}
-int cmor_axis_cff_nocoords_(int *axis_id, char *name,char *units, int *length,char *interval) {
-  return cmor_axis(axis_id,name,units,*length,NULL,'d', NULL, 0, interval);
-}
-
-int cmor_zfactor_cff_double_(int *zvar_id,int *axis_id, char *name, char *units, int *ndims, int *axes_ids, void *values, void *bounds) {
-  return cmor_zfactor(zvar_id, *axis_id, name, units, *ndims, axes_ids, 'd', values, bounds);
-}
-int cmor_zfactor_cff_double_nobnds_(int *zvar_id,int *axis_id, char *name, char *units, int *ndims, int *axes_ids, void *values) {
-  return cmor_zfactor(zvar_id, *axis_id, name, units, *ndims, axes_ids, 'd', values, NULL);
-}
-int cmor_zfactor_cff_int_(int *zvar_id,int *axis_id, char *name, char *units, int *ndims, int *axes_ids, void *values, void *bounds) {
-  return cmor_zfactor(zvar_id, *axis_id, name, units, *ndims, axes_ids, 'i', values, bounds);
-}
-int cmor_zfactor_cff_int_nobnds_(int *zvar_id,int *axis_id, char *name, char *units, int *ndims, int *axes_ids, void *values) {
-  return cmor_zfactor(zvar_id, *axis_id, name, units, *ndims, axes_ids, 'i', values, NULL);
-}
-int cmor_zfactor_cff_long_(int *zvar_id,int *axis_id, char *name, char *units, int *ndims, int *axes_ids, void *values, void *bounds) {
-  return cmor_zfactor(zvar_id, *axis_id, name, units, *ndims, axes_ids, 'l', values, bounds);
-}
-int cmor_zfactor_cff_long_nobnds_(int *zvar_id,int *axis_id, char *name, char *units, int *ndims, int *axes_ids, void *values) {
-  return cmor_zfactor(zvar_id, *axis_id, name, units, *ndims, axes_ids, 'l', values, NULL);
-}
-int cmor_zfactor_cff_real_(int *zvar_id,int *axis_id, char *name, char *units, int *ndims, int *axes_ids, void *values, void *bounds) {
-  return cmor_zfactor(zvar_id, *axis_id, name, units, *ndims, axes_ids, 'f', values, bounds);
-}
-int cmor_zfactor_cff_real_nobnds_(int *zvar_id,int *axis_id, char *name, char *units, int *ndims, int *axes_ids, void *values) {
-  return cmor_zfactor(zvar_id, *axis_id, name, units, *ndims, axes_ids, 'f', values, NULL);
-}
-int cmor_zfactor_cff_novals_(int *zvar_id,int *axis_id, char *name, char *units, int *ndims, int *axes_ids) {
-  return cmor_zfactor(zvar_id, *axis_id, name, units, *ndims, axes_ids, 'd', NULL, NULL);
-}
-
-int cmor_variable_cff_double_(int *var_id, char *name, char *units, int *ndims, int *axes_ids, double *missing, double *tolerance, char *positive, char*original_name, char *history, char *comment) {
-  return cmor_variable(var_id,name,units,*ndims,axes_ids,'d',missing,tolerance,positive,original_name,history,comment);
-}
-int cmor_variable_cff_real_(int *var_id, char *name, char *units, int *ndims, int *axes_ids, float *missing, double *tolerance, char *positive, char*original_name, char *history, char *comment) {
-  return cmor_variable(var_id,name,units,*ndims,axes_ids,'f',missing,tolerance,positive,original_name,history,comment);
-}
-int cmor_variable_cff_int_(int *var_id, char *name, char *units, int *ndims, int *axes_ids, int *missing, double *tolerance, char *positive, char*original_name, char *history, char *comment) {
-  return cmor_variable(var_id,name,units,*ndims,axes_ids,'i',missing,tolerance,positive,original_name,history,comment);
-}
-int cmor_variable_cff_long_(int *var_id, char *name, char *units, int *ndims, int *axes_ids, long *missing, double *tolerance, char *positive, char*original_name, char *history, char *comment) {
-  return cmor_variable(var_id,name,units,*ndims,axes_ids,'l',missing,tolerance,positive,original_name,history,comment);
-}
-int cmor_variable_cff_nomiss_(int *var_id, char *name, char *units, int *ndims, int *axes_ids, double *tolerance, char *positive, char*original_name, char *history, char *comment) {
-  return cmor_variable(var_id,name,units,*ndims,axes_ids,'f',NULL,tolerance,positive,original_name,history,comment);
-}
-
-int cmor_write_cff_double_(int *var_id,void *data, char *suffix, int *ntimes_passed, double *time_vals, double *time_bounds, int *refvar) {
-  if (*refvar<0) {
-    return cmor_write(*var_id,data,'d',suffix,*ntimes_passed,time_vals,time_bounds,NULL);
-  }
-  else {
-    return cmor_write(*var_id,data,'d',suffix,*ntimes_passed,time_vals,time_bounds,refvar);
-  }
-}
-int cmor_write_cff_double_nobnds_(int *var_id,void *data, char *suffix, int *ntimes_passed, double *time_vals, int *refvar) {
-  if (*refvar<0) {
-    return cmor_write(*var_id,data,'d',suffix,*ntimes_passed,time_vals,NULL,NULL);
-  }
-  else {
-    return cmor_write(*var_id,data,'d',suffix,*ntimes_passed,time_vals,NULL,refvar);
-  }
-}
-int cmor_write_cff_double_notime_(int *var_id,void *data, char *suffix, int *ntimes_passed, int *refvar) {
-  if (*refvar<0) {
-    return cmor_write(*var_id,data,'d',suffix,*ntimes_passed,NULL,NULL,NULL);
-  }
-  else {
-    return cmor_write(*var_id,data,'d',suffix,*ntimes_passed,NULL,NULL,refvar);
-  }
-}
-
-int cmor_write_cff_real_(int *var_id,void *data, char *suffix, int *ntimes_passed, double *time_vals, double *time_bounds, int *refvar) {
-  /*   int i; */
-  /*   printf("in interface\n"); */
-  /*   for(i=0;i<12;i++) printf("ok in here we got: %i, %i, %f\n",*var_id,*refvar,(float)((float *)data)[i]); */
-  if (*refvar<0) {
-    return cmor_write(*var_id,data,'f',suffix,*ntimes_passed,time_vals,time_bounds,NULL);
-  }
-  else {
-    return cmor_write(*var_id,data,'f',suffix,*ntimes_passed,time_vals,time_bounds,refvar);
-  }
-}
-int cmor_write_cff_real_nobnds_(int *var_id,void *data, char *suffix, int *ntimes_passed, double *time_vals, int *refvar) {
-  if (*refvar<0) {
-    return cmor_write(*var_id,data,'f',suffix,*ntimes_passed,time_vals,NULL,NULL);
-  }
-  else {
-    return cmor_write(*var_id,data,'f',suffix,*ntimes_passed,time_vals,NULL,refvar);
-  }
-}
-int cmor_write_cff_real_notime_(int *var_id,void *data, char *suffix, int *ntimes_passed, int *refvar) {
-  /*   int i; */
-  /*   for(i=0;i<12;i++) printf("ok in here we got: %i, %i, %f\n",*var_id,*refvar,(float)((float *)data)[i]); */
-  if (*refvar<0) {
-    return cmor_write(*var_id,data,'f',suffix,*ntimes_passed,NULL,NULL,NULL);
-  }
-  else {
-    return cmor_write(*var_id,data,'f',suffix,*ntimes_passed,NULL,NULL,refvar);
-  }
-}
-
-int cmor_write_cff_int_(int *var_id,void *data, char *suffix, int *ntimes_passed, double *time_vals, double *time_bounds, int *refvar) {
-  if (*refvar<0) {
-    return cmor_write(*var_id,data,'i',suffix,*ntimes_passed,time_vals,time_bounds,NULL);
-  }
-  else {
-    return cmor_write(*var_id,data,'i',suffix,*ntimes_passed,time_vals,time_bounds,refvar);
-  }
-}
-int cmor_write_cff_int_nobnds_(int *var_id,void *data, char *suffix, int *ntimes_passed, double *time_vals, int *refvar) {
-  if (*refvar<0) {
-    return cmor_write(*var_id,data,'i',suffix,*ntimes_passed,time_vals,NULL,NULL);
-  }
-  else {
-    return cmor_write(*var_id,data,'i',suffix,*ntimes_passed,time_vals,NULL,refvar);
-  }
-}
-int cmor_write_cff_int_notime_(int *var_id,void *data, char *suffix, int *ntimes_passed, int *refvar) {
-  if (*refvar<0) {
-    return cmor_write(*var_id,data,'i',suffix,*ntimes_passed,NULL,NULL,NULL);
-  }
-  else {
-    return cmor_write(*var_id,data,'i',suffix,*ntimes_passed,NULL,NULL,refvar);
-  }
-}
-int cmor_write_cff_long_(int *var_id,void *data, char *suffix, int *ntimes_passed, double *time_vals, double *time_bounds, int *refvar) {
-  if (*refvar<0) {
-    return cmor_write(*var_id,data,'l',suffix,*ntimes_passed,time_vals,time_bounds,NULL);
-  }
-  else {
-    return cmor_write(*var_id,data,'l',suffix,*ntimes_passed,time_vals,time_bounds,refvar);
-  }
-}
-int cmor_write_cff_long_nobnds_(int *var_id,void *data, char *suffix, int *ntimes_passed, double *time_vals, int *refvar) {
-  if (*refvar<0) {
-    return cmor_write(*var_id,data,'l',suffix,*ntimes_passed,time_vals,NULL,NULL);
-  }
-  else {
-    return cmor_write(*var_id,data,'l',suffix,*ntimes_passed,time_vals,NULL,refvar);
-  }
-}
-int cmor_write_cff_long_notime_(int *var_id,void *data, char *suffix, int *ntimes_passed, int *refvar) {
-  if (*refvar<0) {
-    return cmor_write(*var_id,data,'l',suffix,*ntimes_passed,NULL,NULL,NULL);
-  }
-  else {
-    return cmor_write(*var_id,data,'l',suffix,*ntimes_passed,NULL,NULL,refvar);
-  }
-}
diff --git a/Src/cmor_fortran_interface.f90 b/Src/cmor_fortran_interface.f90
deleted file mode 100644
index f6a8eea..0000000
--- a/Src/cmor_fortran_interface.f90
+++ /dev/null
@@ -1,7805 +0,0 @@
-module cmor_users_functions
-  interface 
-     subroutine cmor_create_output_path_cff(var_id, path, slen)
-       character(*), intent(out) ::  path
-       integer var_id
-       integer , intent(out) :: slen
-     end subroutine cmor_create_output_path_cff
-  end interface
-  interface 
-     function cmor_set_cur_dset_attribute_cff(nm, value) result (ierr)
-       character(*) nm
-       character (*) value
-       integer ierr
-     end function cmor_set_cur_dset_attribute_cff
-  end interface
-  interface 
-     function cmor_get_cur_dset_attribute_cff(name, value) result (ierr)
-       character(*) name
-       character(*) value
-       integer ierr
-     end function cmor_get_cur_dset_attribute_cff
-  end interface
-  interface 
-     function cmor_has_cur_dset_attribute_cff(name) result (ierr)
-       character(*) name
-       integer ierr
-     end function cmor_has_cur_dset_attribute_cff
-  end interface
-  interface 
-     subroutine cmor_get_original_shape_cff(var_id,shape_array)
-       integer var_id,shape_array
-     end subroutine cmor_get_original_shape_cff
-  end interface
-  interface 
-     subroutine cmor_set_table_cff(table_id)
-       integer table_id
-     end subroutine cmor_set_table_cff
-  end interface
-  interface cmor_handle_error
-     subroutine cmor_handle_error_cff(error_msg, level)
-       character(*) error_msg
-       integer level
-     end subroutine cmor_handle_error_cff
-  end interface
-
-  interface
-     subroutine cmor_load_table_cff(table, table_id)
-       integer, intent(out) :: table_id
-       character(*) table
-     end subroutine cmor_load_table_cff
-  end interface
-
-  interface 
-     function cmor_setup_cff_nolog(path,ncmode,verbosity,mode,crsub) result (j)
-       integer ncmode,verbosity,mode, j, crsub
-       character(*) path
-     end function cmor_setup_cff_nolog
-  end interface
-  interface 
-     function cmor_setup_cff(path,ncmode,verbosity,mode,logfile,crsub) result (j)
-       integer ncmode,verbosity,mode, j, crsub
-       character(*) path, logfile
-     end function cmor_setup_cff
-  end interface
-
-  interface
-     function  cmor_ftn_get_tlen_cff(var_id) result(ierr)
-       integer var_id,ierr
-     end function cmor_ftn_get_tlen_cff
-  end interface
-
-  interface cmor_dataset_cff
-     function cmor_dataset_cff(outpath,experiment_id,institution,&
-          source,calendar,realization,contact,history,comment,&
-          references, leap_year,leap_month,month_lengths,model_id,&
-          forcing,initialization_method,physics_version,institute_id,&
-          parent_exp_id,branch_time) result (ierr)
-       character(*) :: outpath,experiment_id,institution,source,calendar,contact
-       character(*) :: history,comment,references,model_id,forcing,institute_id
-       character(*) :: parent_exp_id
-       integer :: realization,leap_year,leap_month,month_lengths
-       integer :: ierr,initialization_method,physics_version
-       double precision branch_time
-     end function cmor_dataset_cff
-     function cmor_dataset_cff_null(outpath,experiment_id,institution,&
-          source,calendar,realization,contact,history,comment,&
-          references, leap_year,leap_month,model_id,forcing,&
-          initialization_method,physics_version,institute_id, &
-          parent_exp_id,branch_time) result (ierr)
-       character(*) :: outpath,experiment_id,institution,source,calendar,contact
-       character(*) :: history,comment,references,model_id,forcing,institute_id
-       character(*) :: parent_exp_id
-       integer :: realization,leap_year,leap_month
-       integer :: ierr,initialization_method,physics_version
-       double precision branch_time
-     end function cmor_dataset_cff_null
-     function cmor_dataset_cff_nobrch(outpath,experiment_id,institution,&
-          source,calendar,realization,contact,history,comment,&
-          references, leap_year,leap_month,month_lengths,model_id,&
-          forcing,initialization_method,physics_version,institute_id, &
-          parent_exp_id) result (ierr)
-       character(*) :: outpath,experiment_id,institution,source,calendar,contact
-       character(*) :: history,comment,references,model_id,forcing,institute_id
-       character(*) :: parent_exp_id
-       integer :: realization,leap_year,leap_month,month_lengths
-       integer :: ierr,initialization_method,physics_version
-     end function cmor_dataset_cff_nobrch
-     function cmor_dataset_cff_null_nobrch(outpath,experiment_id,institution,&
-          source,calendar,realization,contact,history,comment,&
-          references, leap_year,leap_month,model_id,forcing,&
-          initialization_method,physics_version,institute_id, &
-          parent_exp_id) result (ierr)
-       character(*) :: outpath,experiment_id,institution,source,calendar,contact
-       character(*) :: history,comment,references,model_id,forcing,institute_id
-       character(*) :: parent_exp_id
-       integer :: realization,leap_year,leap_month
-       integer :: ierr,initialization_method,physics_version
-     end function cmor_dataset_cff_null_nobrch
-  end interface
-
-  interface 
-     function cmor_axis_cff_double(axis_id,table_entry,units,length,&
-          coord_vals,cell_bounds,cell_bounds_ndim,interval) result(ierr)
-       integer, intent(out):: axis_id
-       character(*) table_entry,units,interval
-       double precision :: coord_vals,cell_bounds
-       integer cell_bounds_ndim, length
-       integer ierr
-     end function cmor_axis_cff_double
-  end interface
-
-  interface 
-     function cmor_axis_cff_real(axis_id,table_entry,units,length,&
-          coord_vals,cell_bounds,cell_bounds_ndim,interval) result(ierr)
-       integer, intent(out):: axis_id
-       character(*) table_entry,units,interval
-       real :: coord_vals,cell_bounds
-       integer cell_bounds_ndim, length
-       integer ierr
-     end function cmor_axis_cff_real
-  end interface
-  interface 
-     function cmor_axis_cff_int(axis_id,table_entry,units,length,&
-          coord_vals,cell_bounds,cell_bounds_ndim,interval) result(ierr)
-       integer, intent(out):: axis_id
-       character(*) table_entry,units,interval
-       integer :: coord_vals,cell_bounds
-       integer cell_bounds_ndim, length
-       integer ierr
-     end function cmor_axis_cff_int
-  end interface
-!!$  interface 
-!!$     function cmor_axis_cff_long(axis_id,table_entry,units,length,&
-!!$          coord_vals,cell_bounds,cell_bounds_ndim,interval) result(ierr)
-!!$       integer, intent(out):: axis_id
-!!$       character(*) table_entry,units,interval
-!!$       integer (kind=8):: coord_vals,cell_bounds
-!!$       integer cell_bounds_ndim, length
-!!$       integer ierr
-!!$     end function cmor_axis_cff_long
-!!$  end interface
-  interface 
-     function cmor_axis_cff_nocoords(axis_id,table_entry,units,length,&
-          interval) result(ierr)
-       integer, intent(out):: axis_id
-       character(*) table_entry,units,interval
-       integer length
-        character type
-        integer ierr
-    end function cmor_axis_cff_nocoords
-  end interface
-  interface 
-     function cmor_axis_cff_nobnds_double(axis_id,table_entry,units,length,&
-          coord_vals,interval)  result(ierr)
-       integer, intent(out):: axis_id
-       character(*) table_entry,units,interval
-       double precision :: coord_vals
-       integer length
-       integer ierr
-     end function cmor_axis_cff_nobnds_double
-  end interface
-  interface 
-     function cmor_axis_cff_nobnds_real(axis_id,table_entry,units,length,&
-          coord_vals,interval)  result(ierr)
-       integer, intent(out)::axis_id
-       character(*) table_entry,units,interval
-       real :: coord_vals
-       integer length
-       integer ierr
-     end function cmor_axis_cff_nobnds_real
-  end interface
-  interface 
-     function cmor_axis_cff_nobnds_int(axis_id,table_entry,units,length,&
-          coord_vals,interval)  result(ierr)
-       integer, intent(out):: axis_id
-       character(*) table_entry,units,interval
-       integer :: coord_vals
-       integer length
-       integer ierr
-     end function cmor_axis_cff_nobnds_int
-  end interface
-!!$  interface 
-!!$     function cmor_axis_cff_nobnds_long(axis_id,table_entry,units,length,&
-!!$          coord_vals,interval)  result(ierr)
-!!$       integer, intent(out):: axis_id
-!!$       character(*) table_entry,units,interval
-!!$       integer (kind=8) :: coord_vals
-!!$       integer  length
-!!$       integer ierr
-!!$     end function cmor_axis_cff_nobnds_long
-!!$  end interface
-  interface 
-     function cmor_axis_cff_nobnds_char(axis_id,table_entry,units,length,&
-          coord_vals,cell_bounds_ndim,interval)  result(ierr)
-       integer, intent(out):: axis_id
-       character(*) table_entry,units,interval
-       character(*) :: coord_vals
-       integer cell_bounds_ndim, length
-       integer ierr
-     end function cmor_axis_cff_nobnds_char
-  end interface
-
-  interface 
-     function cmor_zfactor_cff_double(zvar_id,axis_id, name, units, ndims, &
-          axes_ids, values, bounds) result (ierr)
-       integer,intent(out) :: zvar_id
-       integer axis_id,ndims,ierr
-       character(*) name,units
-       integer axes_ids
-       double precision values,bounds
-     end function cmor_zfactor_cff_double
-  end interface
-  interface 
-     function cmor_zfactor_cff_double_nobnds(zvar_id,axis_id, name, units, ndims, &
-          axes_ids, values) result (ierr)
-       integer,intent(out) :: zvar_id
-       integer axis_id,ndims,ierr
-       character(*) name,units
-       integer axes_ids
-       double precision values
-     end function cmor_zfactor_cff_double_nobnds
-  end interface
-  interface 
-     function cmor_zfactor_cff_real(zvar_id,axis_id, name, units, ndims, &
-          axes_ids, values, bounds) result (ierr)
-       integer,intent(out) :: zvar_id
-       integer axis_id,ndims,ierr
-       character(*) name,units
-       integer axes_ids
-       real values,bounds
-     end function cmor_zfactor_cff_real
-  end interface
-  interface 
-     function cmor_zfactor_cff_real_nobnds(zvar_id,axis_id, name, units, ndims, &
-          axes_ids, values) result (ierr)
-       integer,intent(out) :: zvar_id
-       integer axis_id,ndims,ierr
-       character(*) name,units
-       integer axes_ids
-       real values
-     end function cmor_zfactor_cff_real_nobnds
-  end interface
-  interface 
-     function cmor_zfactor_cff_int(zvar_id,axis_id, name, units, ndims, &
-          axes_ids, values, bounds) result (ierr)
-       integer,intent(out) :: zvar_id
-       integer axis_id,ndims,ierr
-       character(*) name,units
-       integer axes_ids
-       integer values,bounds
-     end function cmor_zfactor_cff_int
-  end interface
-  interface 
-     function cmor_zfactor_cff_int_nobnds(zvar_id,axis_id, name, units, ndims, &
-          axes_ids, values) result (ierr)
-       integer,intent(out) :: zvar_id
-       integer axis_id,ndims,ierr
-       character(*) name,units
-       integer axes_ids
-       integer values
-     end function cmor_zfactor_cff_int_nobnds
-  end interface
-!!$  interface 
-!!$     function cmor_zfactor_cff_long(zvar_id,axis_id, name, units, ndims, &
-!!$          axes_ids, values, bounds) result (ierr)
-!!$       integer,intent(out) :: zvar_id
-!!$       integer axis_id,ndims,ierr
-!!$       character(*) name,units
-!!$       integer axes_ids
-!!$       integer (kind=8) :: values,bounds
-!!$     end function cmor_zfactor_cff_long
-!!$  end interface
-!!$  interface 
-!!$     function cmor_zfactor_cff_long_nobnds(zvar_id,axis_id, name, units, ndims, &
-!!$          axes_ids, values) result (ierr)
-!!$       integer,intent(out) :: zvar_id
-!!$       integer axis_id,ndims,ierr
-!!$       character(*) name,units
-!!$       integer axes_ids
-!!$       integer(kind=8) :: values
-!!$     end function cmor_zfactor_cff_long_nobnds
-!!$  end interface
-  interface 
-     function cmor_zfactor_cff_novals(zvar_id,axis_id, name, units, ndims, &
-          axes_ids) result (ierr)
-       integer,intent(out) :: zvar_id
-       integer axis_id,ndims,ierr
-       character(*) name,units
-       integer axes_ids
-     end function cmor_zfactor_cff_novals
-  end interface
-
-  interface 
-     function cmor_variable_cff_double(var_id,name,units,ndims,&
-       axes_ids,missing,tol,&
-       pos,onm,hist,com) result (ierr)
-     integer , intent(out) :: var_id
-     character(*) :: name,units,pos,onm,hist,com
-     double precision tol
-     double precision missing
-     integer ierr,axes_ids,ndims
-   end function cmor_variable_cff_double
-  end interface
-  interface 
-     function cmor_variable_cff_int(var_id,name,units,ndims,&
-       axes_ids,missing,tol,&
-       pos,onm,hist,com) result (ierr)
-     integer , intent(out) :: var_id
-     character(*) :: name,units,pos,onm,hist,com
-     double precision tol
-     integer missing
-     integer ierr,axes_ids,ndims
-   end function cmor_variable_cff_int
-  end interface
-!!$  interface 
-!!$     function cmor_variable_cff_long(var_id,name,units,ndims,&
-!!$       axes_ids,missing,tol,&
-!!$       pos,onm,hist,com) result (ierr)
-!!$     integer , intent(out) :: var_id
-!!$     character(*) :: name,units,pos,onm,hist,com
-!!$     double precision tol
-!!$     integer (kind=8) missing
-!!$     integer ierr,axes_ids,ndims
-!!$   end function cmor_variable_cff_long
-!!$  end interface
-  interface 
-     function cmor_variable_cff_real(var_id,name,units,ndims,axes_ids,&
-       missing,tol,&
-       pos,onm,hist,com) result (ierr)
-     integer , intent(out) :: var_id
-     character(*) :: name,units,pos,onm,hist,com
-     double precision tol
-     real missing
-     integer ierr,axes_ids,ndims
-   end function cmor_variable_cff_real
-  end interface
-  interface 
-     function cmor_variable_cff_nomiss(var_id,name,units,&
-       ndims,axes_ids,tol,&
-       pos,onm,hist,com) result (ierr)
-     integer , intent(out) :: var_id
-     character(*) :: name,units,pos,onm,hist,com
-     double precision tol
-     integer ierr,axes_ids,ndims
-   end function cmor_variable_cff_nomiss
-  end interface
-
-  interface 
-     function cmor_write_cff_real(var_id,data,suffix,ntimes_passed, &
-          time_vals,time_bounds,refvar) result(ierr)
-       integer var_id
-       real :: data
-       character(*) suffix
-       integer ntimes_passed
-       double precision time_vals, time_bounds
-       integer refvar,ierr
-     end function cmor_write_cff_real
-  end interface
-  interface 
-     function cmor_write_cff_real_nobnds(var_id,data,suffix,ntimes_passed, &
-          time_vals,refvar) result(ierr)
-       integer var_id
-       real :: data
-       character(*) suffix
-       integer ntimes_passed
-       double precision time_vals
-       integer refvar,ierr
-     end function cmor_write_cff_real_nobnds
-  end interface
-  interface 
-     function cmor_write_cff_real_notime(var_id,data,suffix,ntimes_passed, &
-          refvar) result(ierr)
-       integer var_id
-       real :: data
-       character(*) suffix
-       integer ntimes_passed
-       integer refvar,ierr
-     end function cmor_write_cff_real_notime
-  end interface
-  interface 
-     function cmor_write_cff_double(var_id,data,suffix,ntimes_passed, &
-          time_vals,time_bounds,refvar) result(ierr)
-       integer var_id
-       double precision :: data
-       character(*) suffix
-       integer ntimes_passed
-       double precision time_vals, time_bounds
-       integer refvar,ierr
-     end function cmor_write_cff_double
-  end interface
-  interface 
-     function cmor_write_cff_double_nobnds(var_id,data,suffix,ntimes_passed, &
-          time_vals,refvar) result(ierr)
-       integer var_id
-       double precision:: data
-       character(*) suffix
-       integer ntimes_passed
-       double precision time_vals
-       integer refvar,ierr
-     end function cmor_write_cff_double_nobnds
-  end interface
-  interface 
-     function cmor_write_cff_double_notime(var_id,data,suffix,ntimes_passed, &
-          refvar) result(ierr)
-       integer var_id
-       double precision :: data
-       character(*) suffix
-       integer ntimes_passed
-       integer refvar,ierr
-     end function cmor_write_cff_double_notime
-  end interface
-  interface 
-     function cmor_write_cff_int(var_id,data,suffix,ntimes_passed, &
-          time_vals,time_bounds,refvar) result(ierr)
-       integer var_id
-       integer :: data
-       character(*) suffix
-       integer ntimes_passed
-       double precision time_vals, time_bounds
-       integer refvar,ierr
-     end function cmor_write_cff_int
-  end interface
-  interface 
-     function cmor_write_cff_int_nobnds(var_id,data,suffix,ntimes_passed, &
-          time_vals,refvar) result(ierr)
-       integer var_id
-       integer :: data
-       character(*) suffix
-       integer ntimes_passed
-       double precision time_vals
-       integer refvar,ierr
-     end function cmor_write_cff_int_nobnds
-  end interface
-  interface 
-     function cmor_write_cff_int_notime(var_id,data,suffix,ntimes_passed, &
-          refvar) result(ierr)
-       integer var_id
-       integer :: data
-       character(*) suffix
-       integer ntimes_passed
-       integer refvar,ierr
-     end function cmor_write_cff_int_notime
-  end interface
-!!$  interface 
-!!$     function cmor_write_cff_long(var_id,data,suffix,ntimes_passed, &
-!!$          time_vals,time_bounds,refvar) result(ierr)
-!!$       integer var_id
-!!$       integer(kind=8) :: data
-!!$       character(*) suffix
-!!$       integer ntimes_passed
-!!$       double precision time_vals, time_bounds
-!!$       integer refvar,ierr
-!!$     end function cmor_write_cff_long
-!!$  end interface
-!!$  interface 
-!!$     function cmor_write_cff_long_nobnds(var_id,data,suffix,ntimes_passed, &
-!!$          time_vals,refvar) result(ierr)
-!!$       integer var_id
-!!$       integer(kind=8) :: data
-!!$       character(*) suffix
-!!$       integer ntimes_passed
-!!$       double precision time_vals
-!!$       integer refvar,ierr
-!!$     end function cmor_write_cff_long_nobnds
-!!$  end interface
-!!$  interface 
-!!$     function cmor_write_cff_long_notime(var_id,data,suffix,ntimes_passed, &
-!!$          refvar) result(ierr)
-!!$       integer var_id
-!!$       integer(kind=8) :: data
-!!$       character(*) suffix
-!!$       integer ntimes_passed
-!!$       integer refvar,ierr
-!!$     end function cmor_write_cff_long_notime
-!!$  end interface
-!!$
-!!$
-!!$  interface 
-!!$     function cmor_grid_cff_long(grid_id,ndims,axes_ids,&
-!!$       lat,lon,nvertices,blat,blon,area) result(ierr)
-!!$       integer, intent(out) :: grid_id
-!!$       integer ierr,nvertices,ndims
-!!$       integer axes_ids
-!!$       INTEGER (KIND=8) :: lat,lon,area,blat,blon
-!!$     end function cmor_grid_cff_long
-!!$  end interface
-!!$  interface  
-!!$     function cmor_grid_cff_noarea_long(grid_id,ndims,axes_ids,&
-!!$          lat,lon,nvertices,blat,blon) result(ierr)
-!!$       integer, intent(out) :: grid_id
-!!$       integer ierr,nvertices,ndims
-!!$       integer axes_ids
-!!$       INTEGER (KIND=8) :: lat,lon,blat,blon
-!!$     end function cmor_grid_cff_noarea_long
-!!$  end interface
-!!$  interface  
-!!$     function  cmor_grid_cff_noblon_long(grid_id,ndims,axes_ids,&
-!!$          lat,lon,nvertices,blat,area) result(ierr)
-!!$       integer, intent(out) :: grid_id
-!!$       integer ierr,nvertices,ndims
-!!$       integer axes_ids
-!!$       INTEGER (KIND=8) :: lat,lon,blat,area
-!!$     end function cmor_grid_cff_noblon_long
-!!$  end interface
-!!$  interface  
-!!$     function  cmor_grid_cff_noblat_long(grid_id,ndims,axes_ids,&
-!!$          lat,lon,nvertices,blon,area) result(ierr)
-!!$       integer, intent(out) :: grid_id
-!!$       integer ierr,nvertices,ndims
-!!$       integer axes_ids
-!!$       INTEGER (KIND=8) :: lat,lon,area,blon
-!!$     end function cmor_grid_cff_noblat_long
-!!$  end interface
-!!$  interface  
-!!$     function  cmor_grid_cff_nobnds_long(grid_id,ndims,axes_ids,&
-!!$          lat,lon,nvertices,area) result(ierr)
-!!$       integer, intent(out) :: grid_id
-!!$       integer ierr,nvertices,ndims
-!!$       integer axes_ids
-!!$       INTEGER (KIND=8) :: lat,lon,area
-!!$     end function cmor_grid_cff_nobnds_long
-!!$  end interface
-!!$  interface   
-!!$     function cmor_grid_cff_noblaar_long(grid_id,ndims,axes_ids,&
-!!$          lat,lon,nvertices,blon) result(ierr)
-!!$       integer, intent(out) :: grid_id
-!!$       integer ierr,nvertices,ndims
-!!$       integer axes_ids
-!!$       INTEGER (KIND=8) :: lat,lon,blon
-!!$     end function cmor_grid_cff_noblaar_long
-!!$  end interface
-!!$  interface  
-!!$     function  cmor_grid_cff_nobloar_long(grid_id,ndims,axes_ids,&
-!!$          lat,lon,nvertices,blat) result(ierr)
-!!$       integer, intent(out) :: grid_id
-!!$       integer ierr,nvertices,ndims
-!!$       integer axes_ids
-!!$       INTEGER (KIND=8) :: lat,lon,blat
-!!$     end function cmor_grid_cff_nobloar_long
-!!$  end interface
-!!$  interface  
-!!$     function  cmor_grid_cff_nothg_long(grid_id,ndims,axes_ids,&
-!!$          lat,lon,nvertices) result(ierr)
-!!$       integer, intent(out) :: grid_id
-!!$       integer ierr,nvertices,ndims
-!!$       integer axes_ids
-!!$       INTEGER (KIND=8) :: lat,lon
-!!$     end function cmor_grid_cff_nothg_long
-!!$  end interface
-
-
-!!$  interface 
-!!$     function cmor_grid_cff_double(grid_id,ndims,axes_ids,&
-!!$       lat,lon,nvertices,blat,blon,area) result(ierr)
-!!$       integer, intent(out) :: grid_id
-!!$       integer ierr,nvertices,ndims
-!!$       integer axes_ids
-!!$       DOUBLE PRECISION :: lat,lon,area,blat,blon
-!!$     end function cmor_grid_cff_double
-!!$  end interface
-  interface  
-     function cmor_grid_cff_noarea_double(grid_id,ndims,axes_ids,&
-          lat,lon,nvertices,blat,blon) result(ierr)
-       integer, intent(out) :: grid_id
-       integer ierr,nvertices,ndims
-       integer axes_ids
-       DOUBLE PRECISION :: lat,lon,blat,blon
-     end function cmor_grid_cff_noarea_double
-  end interface
-!!$  interface  
-!!$     function  cmor_grid_cff_noblon_double(grid_id,ndims,axes_ids,&
-!!$          lat,lon,nvertices,blat,area) result(ierr)
-!!$       integer, intent(out) :: grid_id
-!!$       integer ierr,nvertices,ndims
-!!$       integer axes_ids
-!!$       DOUBLE PRECISION :: lat,lon,blat,area
-!!$     end function cmor_grid_cff_noblon_double
-!!$  end interface
-!!$  interface  
-!!$     function  cmor_grid_cff_noblat_double(grid_id,ndims,axes_ids,&
-!!$          lat,lon,nvertices,blon,area) result(ierr)
-!!$       integer, intent(out) :: grid_id
-!!$       integer ierr,nvertices,ndims
-!!$       integer axes_ids
-!!$       DOUBLE PRECISION :: lat,lon,area,blon
-!!$     end function cmor_grid_cff_noblat_double
-!!$  end interface
-!!$  interface  
-!!$     function  cmor_grid_cff_nobnds_double(grid_id,ndims,axes_ids,&
-!!$          lat,lon,nvertices,area) result(ierr)
-!!$       integer, intent(out) :: grid_id
-!!$       integer ierr,nvertices,ndims
-!!$       integer axes_ids
-!!$       DOUBLE PRECISION :: lat,lon,area
-!!$     end function cmor_grid_cff_nobnds_double
-!!$  end interface
-  interface   
-     function cmor_grid_cff_noblaar_double(grid_id,ndims,axes_ids,&
-          lat,lon,nvertices,blon) result(ierr)
-       integer, intent(out) :: grid_id
-       integer ierr,nvertices,ndims
-       integer axes_ids
-       DOUBLE PRECISION :: lat,lon,blon
-     end function cmor_grid_cff_noblaar_double
-  end interface
-  interface  
-     function  cmor_grid_cff_nobloar_double(grid_id,ndims,axes_ids,&
-          lat,lon,nvertices,blat) result(ierr)
-       integer, intent(out) :: grid_id
-       integer ierr,nvertices,ndims
-       integer axes_ids
-       DOUBLE PRECISION :: lat,lon,blat
-     end function cmor_grid_cff_nobloar_double
-  end interface
-  interface  
-     function  cmor_grid_cff_nothg_double(grid_id,ndims,axes_ids,&
-          lat,lon,nvertices) result(ierr)
-       integer, intent(out) :: grid_id
-       integer ierr,nvertices,ndims
-       integer axes_ids
-       DOUBLE PRECISION :: lat,lon
-     end function cmor_grid_cff_nothg_double
-  end interface
-
-
-
-!!$  interface 
-!!$     function cmor_grid_cff_int(grid_id,ndims,axes_ids,&
-!!$       lat,lon,nvertices,blat,blon,area) result(ierr)
-!!$       integer, intent(out) :: grid_id
-!!$       integer ierr,nvertices,ndims
-!!$       integer axes_ids
-!!$       INTEGER :: lat,lon,area,blat,blon
-!!$     end function cmor_grid_cff_int
-!!$  end interface
-  interface  
-     function cmor_grid_cff_noarea_int(grid_id,ndims,axes_ids,&
-          lat,lon,nvertices,blat,blon) result(ierr)
-       integer, intent(out) :: grid_id
-       integer ierr,nvertices,ndims
-       integer axes_ids
-       INTEGER :: lat,lon,blat,blon
-     end function cmor_grid_cff_noarea_int
-  end interface
-!!$  interface  
-!!$     function  cmor_grid_cff_noblon_int(grid_id,ndims,axes_ids,&
-!!$          lat,lon,nvertices,blat,area) result(ierr)
-!!$       integer, intent(out) :: grid_id
-!!$       integer ierr,nvertices,ndims
-!!$       integer axes_ids
-!!$       INTEGER :: lat,lon,blat,area
-!!$     end function cmor_grid_cff_noblon_int
-!!$  end interface
-!!$  interface  
-!!$     function  cmor_grid_cff_noblat_int(grid_id,ndims,axes_ids,&
-!!$          lat,lon,nvertices,blon,area) result(ierr)
-!!$       integer, intent(out) :: grid_id
-!!$       integer ierr,nvertices,ndims
-!!$       integer axes_ids
-!!$       INTEGER :: lat,lon,area,blon
-!!$     end function cmor_grid_cff_noblat_int
-!!$  end interface
-!!$  interface  
-!!$     function  cmor_grid_cff_nobnds_int(grid_id,ndims,axes_ids,&
-!!$          lat,lon,nvertices,area) result(ierr)
-!!$       integer, intent(out) :: grid_id
-!!$       integer ierr,nvertices,ndims
-!!$       integer axes_ids
-!!$       INTEGER :: lat,lon,area
-!!$     end function cmor_grid_cff_nobnds_int
-!!$  end interface
-  interface   
-     function cmor_grid_cff_noblaar_int(grid_id,ndims,axes_ids,&
-          lat,lon,nvertices,blon) result(ierr)
-       integer, intent(out) :: grid_id
-       integer ierr,nvertices,ndims
-       integer axes_ids
-       INTEGER :: lat,lon,blon
-     end function cmor_grid_cff_noblaar_int
-  end interface
-  interface  
-     function  cmor_grid_cff_nobloar_int(grid_id,ndims,axes_ids,&
-          lat,lon,nvertices,blat) result(ierr)
-       integer, intent(out) :: grid_id
-       integer ierr,nvertices,ndims
-       integer axes_ids
-       INTEGER :: lat,lon,blat
-     end function cmor_grid_cff_nobloar_int
-  end interface
-  interface  
-     function  cmor_grid_cff_nothg_int(grid_id,ndims,axes_ids,&
-          lat,lon,nvertices) result(ierr)
-       integer, intent(out) :: grid_id
-       integer ierr,nvertices,ndims
-       integer axes_ids
-       INTEGER :: lat,lon
-     end function cmor_grid_cff_nothg_int
-  end interface
-  interface
-     function cmor_grid_cff_nocoords(grid_id,ndims,axes_ids,nvert) &
-          result (ierr)
-       integer, intent(out) :: grid_id
-       integer ierr, ndims, axes_ids, nvert
-     end function cmor_grid_cff_nocoords
-  end interface
-
-!!$  interface 
-!!$     function cmor_grid_cff_real(grid_id,ndims,axes_ids,&
-!!$       lat,lon,nvertices,blat,blon,area) result(ierr)
-!!$       integer, intent(out) :: grid_id
-!!$       integer ierr,nvertices,ndims
-!!$       integer axes_ids
-!!$       REAL :: lat,lon,area,blat,blon
-!!$     end function cmor_grid_cff_real
-!!$  end interface
-  interface  
-     function cmor_grid_cff_noarea_real(grid_id,ndims,axes_ids,&
-          lat,lon,nvertices,blat,blon) result(ierr)
-       integer, intent(out) :: grid_id
-       integer ierr,nvertices,ndims
-       integer axes_ids
-       REAL :: lat,lon,blat,blon
-     end function cmor_grid_cff_noarea_real
-  end interface
-!!$  interface  
-!!$     function  cmor_grid_cff_noblon_real(grid_id,ndims,axes_ids,&
-!!$          lat,lon,nvertices,blat,area) result(ierr)
-!!$       integer, intent(out) :: grid_id
-!!$       integer ierr,nvertices,ndims
-!!$       integer axes_ids
-!!$       REAL :: lat,lon,blat,area
-!!$     end function cmor_grid_cff_noblon_real
-!!$  end interface
-!!$  interface  
-!!$     function  cmor_grid_cff_noblat_real(grid_id,ndims,axes_ids,&
-!!$          lat,lon,nvertices,blon,area) result(ierr)
-!!$       integer, intent(out) :: grid_id
-!!$       integer ierr,nvertices,ndims
-!!$       integer axes_ids
-!!$       REAL :: lat,lon,area,blon
-!!$     end function cmor_grid_cff_noblat_real
-!!$  end interface
-!!$  interface  
-!!$     function  cmor_grid_cff_nobnds_real(grid_id,ndims,axes_ids,&
-!!$          lat,lon,nvertices,area) result(ierr)
-!!$       integer, intent(out) :: grid_id
-!!$       integer ierr,nvertices,ndims
-!!$       integer axes_ids
-!!$       REAL :: lat,lon,area
-!!$     end function cmor_grid_cff_nobnds_real
-!!$  end interface
-  interface   
-     function cmor_grid_cff_noblaar_real(grid_id,ndims,axes_ids,&
-          lat,lon,nvertices,blon) result(ierr)
-       integer, intent(out) :: grid_id
-       integer ierr,nvertices,ndims
-       integer axes_ids
-       REAL :: lat,lon,blon
-     end function cmor_grid_cff_noblaar_real
-  end interface
-  interface  
-     function  cmor_grid_cff_nobloar_real(grid_id,ndims,axes_ids,&
-          lat,lon,nvertices,blat) result(ierr)
-       integer, intent(out) :: grid_id
-       integer ierr,nvertices,ndims
-       integer axes_ids
-       REAL :: lat,lon,blat
-     end function cmor_grid_cff_nobloar_real
-  end interface
-  interface  
-     function  cmor_grid_cff_nothg_real(grid_id,ndims,axes_ids,&
-          lat,lon,nvertices) result(ierr)
-       integer, intent(out) :: grid_id
-       integer ierr,nvertices,ndims
-       integer axes_ids
-       REAL :: lat,lon
-     end function cmor_grid_cff_nothg_real
-  end interface
-
-
-  interface
-     function cmor_grid_cff_tvc_d(coord_grid_id,grid_id,name,units,&
-          missing) result (ierr)
-       integer,intent(out):: coord_grid_id
-       integer grid_id,ierr
-       character(*) name,units
-       double precision missing
-     end function cmor_grid_cff_tvc_d
-  end interface
-  interface
-     function cmor_grid_cff_tvc_f(coord_grid_id,grid_id,name,units,&
-          missing) result (ierr)
-       integer,intent(out):: coord_grid_id
-       integer grid_id,ierr
-       character(*) name,units
-       REAL missing
-     end function cmor_grid_cff_tvc_f
-  end interface
-  interface
-     function cmor_grid_cff_tvc_i(coord_grid_id,grid_id,name,units,&
-          missing) result (ierr)
-       integer,intent(out):: coord_grid_id
-       integer grid_id,ierr
-       character(*) name,units
-       integer missing
-     end function cmor_grid_cff_tvc_i
-  end interface
-  interface
-     function cmor_grid_cff_tvc_no(coord_grid_id,grid_id,name,units)&
-          result (ierr)
-       integer,intent(out):: coord_grid_id
-       integer grid_id,ierr
-       character(*) name,units
-     end function cmor_grid_cff_tvc_no
-  end interface
-
-  interface
-     function cmor_set_grd_map_cff(gid,nm,nparam,att_names,lparam,&
-          values,units,lunits) result(ierr)
-       integer gid, nparam,lparam,lunits
-       character(*):: att_names,units
-       character(*) :: nm
-       double precision :: values
-     end function cmor_set_grd_map_cff
-  end interface
-
-  interface 
-     function cmor_close_var_nofnm_cff(varid) result (ierr)
-       integer ierr,varid
-     end function cmor_close_var_nofnm_cff
-  end interface
-  interface 
-     function cmor_close_var_fnm_cff(varid, fnm) result (ierr)
-       integer ierr,varid
-       character(*) :: fnm
-     end function cmor_close_var_fnm_cff
-  end interface
-  interface 
-     function cmor_close_var_nofnm_preserve_cff(varid, preserve) &
-          result (ierr)
-       integer ierr,varid,preserve
-     end function cmor_close_var_nofnm_preserve_cff
-  end interface
-  interface 
-     function cmor_close_var_fnm_preserve_cff(varid, fnm, preserve) &
-          result (ierr)
-       integer ierr,varid,preserve
-       character(*) :: fnm
-     end function cmor_close_var_fnm_preserve_cff
-  end interface
-  interface 
-     function cmor_close_cff() result (ierr)
-       integer ierr
-     end function cmor_close_cff
-  end interface
-  
-  interface cmor_axis
-     module procedure cmor_axis_double_1
-     module procedure cmor_axis_double_2
-     module procedure cmor_axis_real_1
-     module procedure cmor_axis_real_2
-     module procedure cmor_axis_int_1
-     module procedure cmor_axis_int_2
-!!$     module procedure cmor_axis_long_1
-!!$     module procedure cmor_axis_long_2
-     module procedure cmor_axis_char
-  end interface
-
-  interface cmor_setup
-     module procedure cmor_setup_ints
-     module procedure cmor_setup_nc_char
-  end interface
-
-
-  integer, parameter:: CMOR_MAX_STRING = 1024
-  integer, parameter:: CMOR_DEF_ATTR_STR_LEN = 256
-  integer, parameter:: CMOR_MAX_ELEMENTS = 500
-  integer, parameter:: CMOR_MAX_AXES = CMOR_MAX_ELEMENTS*3
-  integer, parameter:: CMOR_MAX_VARIABLES = CMOR_MAX_ELEMENTS
-  integer, parameter:: CMOR_MAX_GRIDS = 10
-  integer, parameter:: CMOR_MAX_DIMENSIONS = 7
-  integer, parameter:: CMOR_MAX_ATTRIBUTES = 100
-  integer, parameter:: CMOR_MAX_ERRORS = 10
-  integer, parameter:: CMOR_MAX_TABLES = 10
-  integer, parameter:: CMOR_MAX_GRID_ATTRIBUTES = 15
-
-  integer, parameter:: CMOR_QUIET = 0
-
-  integer, parameter:: CMOR_EXIT_ON_MAJOR = 0
-  integer, parameter:: CMOR_EXIT_ON_WARNING = 2
-
-  real,    parameter:: CMOR_VERSION = 2.0
-  real,    parameter:: CMOR_CF_VERSION = 1.4
-
-  integer, parameter:: CMOR_WARNING = 20
-  integer, parameter:: CMOR_NORMAL = 21
-  integer, parameter:: CMOR_CRITICAL = 22
-
-  integer, parameter:: CMOR_N_VALID_CALS = 8
-
-  integer, parameter:: CMOR_PRESERVE_4 = 10
-  integer, parameter:: CMOR_APPEND_4 = 11
-  integer, parameter:: CMOR_REPLACE_4 = 12
-  integer, parameter:: CMOR_PRESERVE_3 = 13
-  integer, parameter:: CMOR_APPEND_3 = 14
-  integer, parameter:: CMOR_REPLACE_3 = 15
-  integer, parameter:: CMOR_PRESERVE = CMOR_PRESERVE_3
-  integer, parameter:: CMOR_APPEND = CMOR_APPEND_3
-  integer, parameter:: CMOR_REPLACE = CMOR_REPLACE_3
-
-  interface cmor_zfactor
-     module procedure cmor_zfactor_double
-     module procedure cmor_zfactor_double_0dvalues
-     module procedure cmor_zfactor_double_2dvalues
-     module procedure cmor_zfactor_double_3dvalues
-     module procedure cmor_zfactor_double_4dvalues
-     module procedure cmor_zfactor_double_5dvalues
-     module procedure cmor_zfactor_double_6dvalues
-     module procedure cmor_zfactor_real
-     module procedure cmor_zfactor_real_0dvalues
-     module procedure cmor_zfactor_real_2dvalues
-     module procedure cmor_zfactor_real_3dvalues
-     module procedure cmor_zfactor_real_4dvalues
-     module procedure cmor_zfactor_real_5dvalues
-     module procedure cmor_zfactor_real_6dvalues
-     module procedure cmor_zfactor_int
-     module procedure cmor_zfactor_int_0dvalues
-     module procedure cmor_zfactor_int_2dvalues
-     module procedure cmor_zfactor_int_3dvalues
-     module procedure cmor_zfactor_int_4dvalues
-     module procedure cmor_zfactor_int_5dvalues
-     module procedure cmor_zfactor_int_6dvalues
-!!$     module procedure cmor_zfactor_long
-!!$     module procedure cmor_zfactor_long_0dvalues
-     module procedure cmor_zfactor_novals
-  end interface
-
-  interface cmor_variable
-     module procedure cmor_variable_double
-     module procedure cmor_variable_real
-     module procedure cmor_variable_int
-!!$     module procedure cmor_variable_long
-  end interface
-  interface cmor_write
-!!$     module procedure cmor_write_1d_l
-     module procedure cmor_write_1d_i
-     module procedure cmor_write_1d_r
-     module procedure cmor_write_1d_d
-     module procedure cmor_write_2d_i
-!!$     module procedure cmor_write_2d_l
-     module procedure cmor_write_2d_r
-     module procedure cmor_write_2d_d
-!!$     module procedure cmor_write_3d_l
-     module procedure cmor_write_3d_i
-     module procedure cmor_write_3d_r
-     module procedure cmor_write_3d_d
-     module procedure cmor_write_4d_i
-!!$     module procedure cmor_write_4d_l
-     module procedure cmor_write_4d_r
-     module procedure cmor_write_4d_d
-!!$     module procedure cmor_write_5d_l
-     module procedure cmor_write_5d_i
-     module procedure cmor_write_5d_r
-     module procedure cmor_write_5d_d
-     module procedure cmor_write_6d_i
-!!$     module procedure cmor_write_6d_l
-     module procedure cmor_write_6d_r
-     module procedure cmor_write_6d_d
-     module procedure cmor_write_7d_i
-!!$     module procedure cmor_write_7d_l
-     module procedure cmor_write_7d_r
-     module procedure cmor_write_7d_d
-  end interface
-
-
-  interface cmor_time_varying_grid_coordinate
-     module procedure cmor_grid_tvc_r
-     module procedure cmor_grid_tvc_d
-     module procedure cmor_grid_tvc_i
-  end interface
-
-  interface cmor_grid
-!!$     module procedure cmor_grid_1d_l
-!!$     module procedure cmor_grid_2d_l
-!!$     module procedure cmor_grid_3d_l
-!!$     module procedure cmor_grid_4d_l
-!!$     module procedure cmor_grid_5d_l
-!!$     module procedure cmor_grid_6d_l
-     module procedure cmor_grid_0d
-     module procedure cmor_grid_1d_i
-     module procedure cmor_grid_2d_i
-     module procedure cmor_grid_3d_i
-     module procedure cmor_grid_4d_i
-     module procedure cmor_grid_5d_i
-     module procedure cmor_grid_6d_i
-     module procedure cmor_grid_1d_r
-     module procedure cmor_grid_2d_r
-     module procedure cmor_grid_3d_r
-     module procedure cmor_grid_4d_r
-     module procedure cmor_grid_5d_r
-     module procedure cmor_grid_6d_r
-     module procedure cmor_grid_1d_d
-     module procedure cmor_grid_2d_d
-     module procedure cmor_grid_3d_d
-     module procedure cmor_grid_4d_d
-     module procedure cmor_grid_5d_d
-     module procedure cmor_grid_6d_d
-  end interface
-  interface cmor_ftn_map_data
-     module procedure cmor_ftn_map_data_1d_i
-     module procedure cmor_ftn_map_data_2d_i
-     module procedure cmor_ftn_map_data_3d_i
-     module procedure cmor_ftn_map_data_4d_i
-     module procedure cmor_ftn_map_data_5d_i
-     module procedure cmor_ftn_map_data_6d_i
-     module procedure cmor_ftn_map_data_7d_i
-     module procedure cmor_ftn_map_data_1d_r
-     module procedure cmor_ftn_map_data_2d_r
-     module procedure cmor_ftn_map_data_3d_r
-     module procedure cmor_ftn_map_data_4d_r
-     module procedure cmor_ftn_map_data_5d_r
-     module procedure cmor_ftn_map_data_6d_r
-     module procedure cmor_ftn_map_data_7d_r
-     module procedure cmor_ftn_map_data_1d_d
-     module procedure cmor_ftn_map_data_2d_d
-     module procedure cmor_ftn_map_data_3d_d
-     module procedure cmor_ftn_map_data_4d_d
-     module procedure cmor_ftn_map_data_5d_d
-     module procedure cmor_ftn_map_data_6d_d
-     module procedure cmor_ftn_map_data_7d_d
-  end interface
-contains    
-
-  function cmor_ftn_map_data_1d_i(vshape,pdata,data,mdata,ntimes_passed) result(out)
-    integer, target:: data(:)
-    integer, pointer :: mdata(:)
-    integer, pointer :: pdata(:)
-    integer , dimension(1) :: dshape
-    integer , dimension(7) :: vshape
-    integer ndims
-    integer i,j
-    integer out
-    dshape = shape(data)
-    ndims=0
-    do i = 1, 7
-       if (vshape(i).ne.-1) ndims=ndims+1
-    end do
-    
-!!$ Ok we need to make sure the 1D array is big enough
-
-    j=1
-    do i=1,ndims
-       if (vshape(i).eq.0) then
-          j=j*ntimes_passed
-       else
-          j=j*vshape(i)
-       endif
-    enddo
-    if (j.gt.dshape(1)) then
-       j=CMOR_CRITICAL
-       call cmor_handle_error('data passed to cmor_write to' &
-            //'not contain enough data',j)
-    endif
-    pdata=>data
-    out=0
-  end function cmor_ftn_map_data_1d_i
-
-  function cmor_ftn_map_data_2d_i(vshape,pdata,data,mdata,ntimes_passed) result(out)
-    integer, target:: data(:,:)
-    integer, pointer :: mdata(:,:)
-    integer, pointer :: pdata(:,:)
-    integer , dimension(2) :: dshape,tshape
-    integer , dimension(7) :: vshape
-    integer ndims
-    integer i,j,k,error_code
-    integer out
-    character(600) msg
-    j=1
-    dshape = shape(data)
-    ndims=0
-    do i = 1, 7
-       if (vshape(i).ne.-1) ndims=ndims+1
-    end do
-    
-    k=1
-    do i=1,ndims
-       if (vshape(i).eq.0) then
-          tshape(k)=ntimes_passed
-       else 
-          tshape(k)=vshape(i)
-       endif
-       if ((tshape(k).eq.1).and.(dshape(k).ne.1)) then
-          ndims=ndims-1
-       else
-          k=k+1
-       endif
-       if (k.gt.2) exit
-       if (tshape(k).ne.dshape(k)) then
-          j=0
-       endif
-    enddo
-    if (ndims.gt.2) then
-       do i=3,ndims
-          if ((vshape(i).eq.1).or.((vshape(i).eq.0).and.(ntimes_passed.eq.1))) ndims=ndims-1
-       enddo
-    endif
-    if (ndims.ne.2) then
-       write(msg,*) 'In FORTRAN: you passed a 2d array of shape:',dshape,'this does not'&
-            //'match var number of dims: ',ndims,' please recheck your declaration,'&
-            //' the expected shape was: ',tshape,char(0)
-       error_code = CMOR_CRITICAL
-       call cmor_handle_error(msg,error_code)
-    end if
-    do i=1,2
-       if (tshape(i).gt.dshape(i)) then
-          write(msg, *)  'In FORTRAN: you passed a 2d array that'&
-               //' is not big enough to hold your var, your data shape is:',&
-               dshape,'expected shape was:',tshape,char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-    enddo
-    if (j.eq.0) then
-       allocate(mdata(tshape(1),tshape(2)))
-       pdata=>mdata
-       do j=1,tshape(2)
-          do i=1,tshape(1)
-             pdata(i,j) = data(i,j)
-          end do
-       enddo
-       out = 1
-    else
-       pdata=>data
-       out=0
-    endif
-  end function cmor_ftn_map_data_2d_i
-  function cmor_ftn_map_data_3d_i(vshape,pdata,data,mdata,ntimes_passed) result(out)
-    integer, target:: data(:,:,:)
-    integer, pointer :: mdata(:,:,:)
-    integer, pointer :: pdata(:,:,:)
-    integer , dimension(3) :: dshape,tshape
-    integer , dimension(7) :: vshape
-    integer ndims
-    integer i,j,k,error_code
-    integer out
-    character(600) msg
-    j=1
-    dshape = shape(data)
-    ndims=0
-    do i = 1, 7
-       if (vshape(i).ne.-1) ndims=ndims+1
-    end do
-    
-    k=1
-    do i=1,ndims
-       if (vshape(i).eq.0) then
-          tshape(k)=ntimes_passed
-       else 
-          tshape(k)=vshape(i)
-       endif
-       if ((tshape(k).eq.1).and.(dshape(k).ne.1)) then
-          ndims=ndims-1
-       else
-          k=k+1
-       endif
-       if (k.gt.3) exit
-       if (tshape(k).ne.dshape(k)) then
-          j=0
-       endif
-    enddo
-     if (ndims.gt.3) then
-       do i=4,ndims
-          if ((vshape(i).eq.1).or.((vshape(i).eq.0).and.(ntimes_passed.eq.1))) ndims=ndims-1
-       enddo
-    endif
-   if (ndims.ne.3) then
-       write(msg,*) 'In FORTRAN: you passed a 3d array of shape:',dshape,'this does not'&
-            //'match var number of dims: ',ndims,' please recheck your declaration,'&
-            //' the expected shape was: ',tshape,char(0)
-       error_code = CMOR_CRITICAL
-       call cmor_handle_error(msg,error_code)
-    end if
-    do i=1,3
-       if (tshape(i).gt.dshape(i)) then
-          write(msg, *)  'In FORTRAN: you passed a 3d array that'&
-               //' is not big enough to hold your var, your data shape is:',&
-               dshape,'expected shape was:',tshape,char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-    enddo
-    if (j.eq.0) then
-       allocate(mdata(tshape(1),tshape(2),tshape(3)))
-       pdata=>mdata
-       do k=1,tshape(3)
-          do j=1,tshape(2)
-             do i=1,tshape(1)
-                pdata(i,j,k) = data(i,j,k)
-             end do
-          enddo
-       enddo
-       out = 1
-    else
-       pdata=>data
-       out=0
-    endif
-  end function cmor_ftn_map_data_3d_i
-  function cmor_ftn_map_data_4d_i(vshape,pdata,data,mdata,ntimes_passed) result(out)
-    integer, target:: data(:,:,:,:)
-    integer, pointer :: mdata(:,:,:,:)
-    integer, pointer :: pdata(:,:,:,:)
-    integer , dimension(4) :: dshape,tshape
-    integer , dimension(7) :: vshape
-    integer ndims
-    integer i,j,k,l,error_code
-    integer out
-    character(600) msg
-    j=1
-    dshape = shape(data)
-    ndims=0
-    do i = 1, 7
-       if (vshape(i).ne.-1) ndims=ndims+1
-    end do
-    
-    k=1
-    do i=1,ndims
-       if (vshape(i).eq.0) then
-          tshape(k)=ntimes_passed
-       else 
-          tshape(k)=vshape(i)
-       endif
-       if ((tshape(k).eq.1).and.(dshape(k).ne.1)) then
-          ndims=ndims-1
-       else
-          k=k+1
-       endif
-       if (k.gt.4) exit
-       if (tshape(k).ne.dshape(k)) then
-          j=0
-       endif
-    enddo
-    if (ndims.gt.4) then
-       do i=5,ndims
-          if ((vshape(i).eq.1).or.((vshape(i).eq.0).and.(ntimes_passed.eq.1))) ndims=ndims-1
-       enddo
-    endif
-
-    if (ndims.ne.4) then
-       write(msg,*) 'In FORTRAN: you passed a 4d array of shape:',dshape,'this does not'&
-            //'match var number of dims: ',ndims,' please recheck your declaration,'&
-            //' the expected shape was: ',tshape,char(0)
-       error_code = CMOR_CRITICAL
-       call cmor_handle_error(msg,error_code)
-    end if
-    do i=1,4
-       if (tshape(i).gt.dshape(i)) then
-           write(msg, *)  'In FORTRAN: you passed a 4d array that'&
-               //' is not big enough to hold your var, your data shape is:',&
-               dshape,'expected shape was:',tshape,char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-    enddo
-    if (j.eq.0) then
-       allocate(mdata(tshape(1),tshape(2),tshape(3),tshape(4)))
-       pdata=>mdata
-       do l=1,tshape(4)
-          do k=1,tshape(3)
-             do j=1,tshape(2)
-                do i=1,tshape(1)
-                   pdata(i,j,k,l) = data(i,j,k,l)
-                end do
-             enddo
-          enddo
-       enddo
-       out = 1
-    else
-       pdata=>data
-       out=0
-    endif
-  end function cmor_ftn_map_data_4d_i
-  function cmor_ftn_map_data_5d_i(vshape,pdata,data,mdata,ntimes_passed) result(out)
-    integer, target:: data(:,:,:,:,:)
-    integer, pointer :: mdata(:,:,:,:,:)
-    integer, pointer :: pdata(:,:,:,:,:)
-    integer , dimension(5) :: dshape,tshape
-    integer , dimension(7) :: vshape
-    integer ndims
-    integer i,j,k,l,m,error_code
-    integer out
-    character(600) msg
-    j=1
-    dshape = shape(data)
-    ndims=0
-    do i = 1, 7
-       if (vshape(i).ne.-1) ndims=ndims+1
-    end do
-    
-    k=1
-    do i=1,ndims
-       if (vshape(i).eq.0) then
-          tshape(k)=ntimes_passed
-       else 
-          tshape(k)=vshape(i)
-       endif
-       if ((tshape(k).eq.1).and.(dshape(k).ne.1)) then
-          ndims=ndims-1
-       else
-          k=k+1
-       endif
-       if (k.gt.5) exit
-       if (tshape(k).ne.dshape(k)) then
-          j=0
-       endif
-    enddo
-    if (ndims.gt.5) then
-       do i=6,ndims
-          if ((vshape(i).eq.1).or.((vshape(i).eq.0).and.(ntimes_passed.eq.1))) ndims=ndims-1
-       enddo
-    endif
-
-    if (ndims.ne.5) then
-       write(msg,*) 'In FORTRAN: you passed a 5d array of shape:',dshape,'this does not'&
-            //'match var number of dims: ',ndims,' please recheck your declaration,'&
-            //' the expected shape was: ',tshape,char(0)
-       error_code = CMOR_CRITICAL
-       call cmor_handle_error(msg,error_code)
-    end if
-    do i=1,5
-       if (tshape(i).gt.dshape(i)) then
-           write(msg, *)  'In FORTRAN: you passed a 5d array that'&
-               //' is not big enough to hold your var, your data shape is:',&
-               dshape,'expected shape was:',tshape,char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-    enddo
-    if (j.eq.0) then
-       allocate(mdata(tshape(1),tshape(2),tshape(3),tshape(4),tshape(5)))
-       pdata=>mdata
-       do m=1,tshape(5)
-          do l=1,tshape(4)
-             do k=1,tshape(3)
-                do j=1,tshape(2)
-                   do i=1,tshape(1)
-                      pdata(i,j,k,l,m) = data(i,j,k,l,m)
-                   end do
-                enddo
-             enddo
-          enddo
-       enddo
-       out = 1
-    else
-       pdata=>data
-       out =0
-    endif
-
-  end function cmor_ftn_map_data_5d_i
-  function cmor_ftn_map_data_6d_i(vshape,pdata,data,mdata,ntimes_passed) result(out)
-    integer, target:: data(:,:,:,:,:,:)
-    integer, pointer :: mdata(:,:,:,:,:,:)
-    integer, pointer :: pdata(:,:,:,:,:,:)
-    integer , dimension(6) :: dshape,tshape
-    integer , dimension(7) :: vshape
-    integer ndims
-    integer i,j,k,l,m,n,error_code
-    integer out
-    character(600) msg
-    j=1
-    dshape = shape(data)
-    ndims=0
-    do i = 1, 7
-       if (vshape(i).ne.-1) ndims=ndims+1
-    end do
-    
-    k=1
-    do i=1,ndims
-       if (vshape(i).eq.0) then
-          tshape(k)=ntimes_passed
-       else 
-          tshape(k)=vshape(i)
-       endif
-       if ((tshape(k).eq.1).and.(dshape(k).ne.1)) then
-          ndims=ndims-1
-       else
-          k=k+1
-       endif
-       if (k.gt.6) exit
-       if (tshape(k).ne.dshape(k)) then
-          j=0
-       endif
-    enddo
-    if (ndims.gt.6) then
-       do i=7,ndims
-          if ((vshape(i).eq.1).or.((vshape(i).eq.0).and.(ntimes_passed.eq.1))) ndims=ndims-1
-       enddo
-    endif
-    if (ndims.ne.6) then
-       write(msg,*) 'In FORTRAN: you passed a 6d array of shape:',dshape,'this does not'&
-            //'match var number of dims: ',ndims,' please recheck your declaration,'&
-            //' the expected shape was: ',tshape,char(0)
-       error_code = CMOR_CRITICAL
-       call cmor_handle_error(msg,error_code)
-    end if
-    do i=1,6
-       if (tshape(i).gt.dshape(i)) then
-          write(msg, *)  'In FORTRAN: you passed a 6d array that'&
-               //' is not big enough to hold your var, your data shape is:',&
-               dshape,'expected shape was:',tshape,char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-    enddo
-    if (j.eq.0) then
-       allocate(mdata(tshape(1),tshape(2),tshape(3),tshape(4),tshape(5),tshape(6)))
-       pdata=>mdata
-       do n=1,tshape(6)
-          do m=1,tshape(5)
-             do l=1,tshape(4)
-                do k=1,tshape(3)
-                   do j=1,tshape(2)
-                      do i=1,tshape(1)
-                         pdata(i,j,k,l,m,n) = data(i,j,k,l,m,n)
-                      end do
-                   enddo
-                enddo
-             enddo
-          enddo
-       enddo
-       out = 1
-    else
-       pdata=>data
-       out =0
-    endif
-
-  end function cmor_ftn_map_data_6d_i
-  function cmor_ftn_map_data_7d_i(vshape,pdata,data,mdata,ntimes_passed) result(out)
-    integer, target:: data(:,:,:,:,:,:,:)
-    integer, pointer :: mdata(:,:,:,:,:,:,:)
-    integer, pointer :: pdata(:,:,:,:,:,:,:)
-    integer , dimension(7) :: dshape,tshape
-    integer , dimension(7) :: vshape
-    integer ndims
-    integer i,j,k,l,m,n,o,error_code
-    integer out
-    character(600) msg
-    j=1
-    dshape = shape(data)
-    ndims=0
-    do i = 1, 7
-       if (vshape(i).ne.-1) ndims=ndims+1
-    end do
-    
-    k=1
-    do i=1,ndims
-       if (vshape(i).eq.0) then
-          tshape(k)=ntimes_passed
-       else 
-          tshape(k)=vshape(i)
-       endif
-       if ((tshape(k).eq.1).and.(dshape(k).ne.1)) then
-          ndims=ndims-1
-       else
-          k=k+1
-       endif
-       if (tshape(k).ne.dshape(k)) then
-          j=0
-       endif
-    enddo
-    if (ndims.ne.7) then
-       write(msg,*) 'In FORTRAN: you passed a 7d array of shape:',dshape,'this does not'&
-            //'match var number of dims: ',ndims,' please recheck your declaration,'&
-            //' the expected shape was: ',tshape,char(0)
-       error_code = CMOR_CRITICAL
-       call cmor_handle_error(msg,error_code)
-    end if
-    do i=1,7
-       if (tshape(i).gt.dshape(i)) then
-          write(msg, *)  'In FORTRAN: you passed a 7d array that'&
-               //' is not big enough to hold your var, your data shape is:',&
-               dshape,'expected shape was:',tshape,char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-    enddo
-    if (j.eq.0) then
-       allocate(mdata(tshape(1),tshape(2),tshape(3),tshape(4),tshape(5),tshape(6),tshape(7)))
-       pdata=>mdata
-       do o=1,tshape(7)
-          do n=1,tshape(6)
-             do m=1,tshape(5)
-                do l=1,tshape(4)
-                   do k=1,tshape(3)
-                      do j=1,tshape(2)
-                         do i=1,tshape(1)
-                            pdata(i,j,k,l,m,n,o) = data(i,j,k,l,m,n,o)
-                         end do
-                      enddo
-                   enddo
-                enddo
-             enddo
-          enddo
-       enddo
-       out = 1
-    else
-       pdata=>data
-       out =0
-    endif
-
-  end function cmor_ftn_map_data_7d_i
-  function cmor_ftn_map_data_1d_r(vshape,pdata,data,mdata,ntimes_passed) result(out)
-    real, target:: data(:)
-    real, pointer :: mdata(:)
-    real, pointer :: pdata(:)
-    integer , dimension(1) :: dshape
-    integer , dimension(7) :: vshape
-    integer ndims
-    integer i,j
-    integer out
-    dshape = shape(data)
-    ndims=0
-    do i = 1, 7
-       if (vshape(i).ne.-1) ndims=ndims+1
-    end do
-    
-!!$ Ok we need to make sure the 1D array is big enough
-
-    j=1
-    do i=1,ndims
-       if (vshape(i).eq.0) then
-          j=j*ntimes_passed
-       else
-          j=j*vshape(i)
-       endif
-    enddo
-    if (j.gt.dshape(1)) then
-       j=CMOR_CRITICAL
-       call cmor_handle_error('data passed to cmor_write to' &
-            //'not contain enough data',j)
-    endif
-    pdata=>data
-    out=0
-  end function cmor_ftn_map_data_1d_r
-
-  function cmor_ftn_map_data_2d_r(vshape,pdata,data,mdata,ntimes_passed) result(out)
-    real, target:: data(:,:)
-    real, pointer :: mdata(:,:)
-    real, pointer :: pdata(:,:)
-    integer , dimension(2) :: dshape,tshape
-    integer , dimension(7) :: vshape
-    integer ndims
-    integer i,j,k,error_code
-    integer out
-    character(600) msg
-    j=1
-    dshape = shape(data)
-    ndims=0
-    do i = 1, 7
-       if (vshape(i).ne.-1) ndims=ndims+1
-    end do
-    
-    k=1
-    do i=1,ndims
-       if (vshape(i).eq.0) then
-          tshape(k)=ntimes_passed
-       else 
-          tshape(k)=vshape(i)
-       endif
-       if ((tshape(k).eq.1).and.(dshape(k).ne.1)) then
-          ndims=ndims-1
-       else
-          k=k+1
-       endif
-       if (k.gt.2) exit
-       if (tshape(k).ne.dshape(k)) then
-          j=0
-       endif
-    enddo
-    if (ndims.gt.2) then
-       do i=3,ndims
-          if ((vshape(i).eq.1).or.((vshape(i).eq.0).and.(ntimes_passed.eq.1))) ndims=ndims-1
-       enddo
-    endif
-    if (ndims.ne.2) then
-       write(msg,*) 'In FORTRAN: you passed a 2d array of shape:',dshape,'this does not'&
-            //'match var number of dims: ',ndims,' please recheck your declaration,'&
-            //' the expected shape was: ',tshape,char(0)
-       error_code = CMOR_CRITICAL
-       call cmor_handle_error(msg,error_code)
-    end if
-    do i=1,2
-       if (tshape(i).gt.dshape(i)) then
-           write(msg, *)  'In FORTRAN: you passed a 2d array that'&
-               //' is not big enough to hold your var, your data shape is:',&
-               dshape,'expected shape was:',tshape,char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-    enddo
-    if (j.eq.0) then
-       allocate(mdata(tshape(1),tshape(2)))
-       pdata=>mdata
-       do j=1,tshape(2)
-          do i=1,tshape(1)
-             pdata(i,j) = data(i,j)
-          end do
-       enddo
-       out = 1
-    else
-       pdata=>data
-       out=0
-    endif
-  end function cmor_ftn_map_data_2d_r
-  function cmor_ftn_map_data_3d_r(vshape,pdata,data,mdata,ntimes_passed) result(out)
-    real, target:: data(:,:,:)
-    real, pointer :: mdata(:,:,:)
-    real, pointer :: pdata(:,:,:)
-    integer , dimension(3) :: dshape,tshape
-    integer , dimension(7) :: vshape
-    integer ndims
-    integer i,j,k,error_code
-    integer out
-    character(600) msg
-    j=1
-    dshape = shape(data)
-    ndims=0
-    do i = 1, 7
-       if (vshape(i).ne.-1) ndims=ndims+1
-    end do
-    
-    k=1
-    do i=1,ndims
-       if (vshape(i).eq.0) then
-          tshape(k)=ntimes_passed
-       else 
-          tshape(k)=vshape(i)
-       endif
-       if ((tshape(k).eq.1).and.(dshape(k).ne.1)) then
-          ndims=ndims-1
-       else
-          k=k+1
-       endif
-       if (k.gt.3) exit
-       
-       if (tshape(k).ne.dshape(k)) then
-          j=0
-       endif
-       
-    enddo
-
-    if (ndims.gt.3) then
-       do i=4,ndims
-          if ((vshape(i).eq.1).or.((vshape(i).eq.0).and.(ntimes_passed.eq.1))) ndims=ndims-1
-       enddo
-    endif
-    if (ndims.ne.3) then
-       write(msg,*) 'In FORTRAN: you passed a 3d array of shape:',dshape,'this does not'&
-            //'match var number of dims: ',ndims,' please recheck your declaration,'&
-            //' the expected shape was: ',tshape,char(0)
-       error_code = CMOR_CRITICAL
-       call cmor_handle_error(msg,error_code)
-    end if
-    do i=1,3
-       if (tshape(i).gt.dshape(i)) then
-          write(msg, *)  'In FORTRAN: you passed a 3d array that'&
-               //' is not big enough to hold your var, your data shape is:',&
-               dshape,'expected shape was:',tshape,char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-    enddo
-    if (j.eq.0) then
-       allocate(mdata(tshape(1),tshape(2),tshape(3)))
-       pdata=>mdata
-       do k=1,tshape(3)
-          do j=1,tshape(2)
-             do i=1,tshape(1)
-                pdata(i,j,k) = data(i,j,k)
-             end do
-          enddo
-       enddo
-       out = 1
-    else
-       pdata=>data
-       out=0
-    endif
-  end function cmor_ftn_map_data_3d_r
-  function cmor_ftn_map_data_4d_r(vshape,pdata,data,mdata,ntimes_passed) result(out)
-    real, target:: data(:,:,:,:)
-    real, pointer :: mdata(:,:,:,:)
-    real, pointer :: pdata(:,:,:,:)
-    integer , dimension(4) :: dshape,tshape
-    integer , dimension(7) :: vshape
-    integer ndims
-    integer i,j,k,l,error_code
-    integer out
-    character(600) msg
-    j=1
-    dshape = shape(data)
-    ndims=0
-    do i = 1, 7
-       if (vshape(i).ne.-1) ndims=ndims+1
-    end do
-    
-    k=1
-    do i=1,ndims
-       if (vshape(i).eq.0) then
-          tshape(k)=ntimes_passed
-       else 
-          tshape(k)=vshape(i)
-       endif
-       if ((tshape(k).eq.1).and.(dshape(k).ne.1)) then
-          ndims=ndims-1
-       else
-          k=k+1
-       endif
-       if (k.gt.4) exit
-       if (tshape(k).ne.dshape(k)) then
-          j=0
-       endif
-    enddo
-    if (ndims.gt.4) then
-       do i=5,ndims
-          if ((vshape(i).eq.1).or.((vshape(i).eq.0).and.(ntimes_passed.eq.1))) ndims=ndims-1
-       enddo
-    endif
-    if (ndims.ne.4) then
-       write(msg,*) 'In FORTRAN: you passed a 4d array of shape:',dshape,'this does not'&
-            //'match var number of dims: ',ndims,' please recheck your declaration,'&
-            //' the expected shape was: ',tshape,char(0)
-       error_code = CMOR_CRITICAL
-       call cmor_handle_error(msg,error_code)
-    end if
-    do i=1,4
-       if (tshape(i).gt.dshape(i)) then
-          write(msg, *)  'In FORTRAN: you passed a 4d array that'&
-               //' is not big enough to hold your var, your data shape is:',&
-               dshape,'expected shape was:',tshape,char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-    enddo
-    if (j.eq.0) then
-       allocate(mdata(tshape(1),tshape(2),tshape(3),tshape(4)))
-       pdata=>mdata
-       do l=1,tshape(4)
-          do k=1,tshape(3)
-             do j=1,tshape(2)
-                do i=1,tshape(1)
-                   pdata(i,j,k,l) = data(i,j,k,l)
-                end do
-             enddo
-          enddo
-       enddo
-       out = 1
-    else
-       pdata=>data
-       out=0
-    endif
-  end function cmor_ftn_map_data_4d_r
-  function cmor_ftn_map_data_5d_r(vshape,pdata,data,mdata,ntimes_passed) result(out)
-    real, target:: data(:,:,:,:,:)
-    real, pointer :: mdata(:,:,:,:,:)
-    real, pointer :: pdata(:,:,:,:,:)
-    integer , dimension(5) :: dshape,tshape
-    integer , dimension(7) :: vshape
-    integer ndims
-    integer i,j,k,l,m,error_code
-    integer out
-    character(600) msg
-    j=1
-    dshape = shape(data)
-    ndims=0
-    do i = 1, 7
-       if (vshape(i).ne.-1) ndims=ndims+1
-    end do
-    
-    k=1
-    do i=1,ndims
-       if (vshape(i).eq.0) then
-          tshape(k)=ntimes_passed
-       else 
-          tshape(k)=vshape(i)
-       endif
-       if ((tshape(k).eq.1).and.(dshape(k).ne.1)) then
-          ndims=ndims-1
-       else
-          k=k+1
-       endif
-       if (k.gt.5) exit
-       if (tshape(k).ne.dshape(k)) then
-          j=0
-       endif
-    enddo
-    if (ndims.gt.5) then
-       do i=6,ndims
-          if ((vshape(i).eq.1).or.((vshape(i).eq.0).and.(ntimes_passed.eq.1))) ndims=ndims-1
-       enddo
-    endif
-    if (ndims.ne.5) then
-       write(msg,*) 'In FORTRAN: you passed a 5d array of shape:',dshape,'this does not'&
-            //'match var number of dims: ',ndims,' please recheck your declaration,'&
-            //' the expected shape was: ',tshape,char(0)
-       error_code = CMOR_CRITICAL
-       call cmor_handle_error(msg,error_code)
-    end if
-    do i=1,5
-       if (tshape(i).gt.dshape(i)) then
-          write(msg, *)  'In FORTRAN: you passed a 5d array that'&
-               //' is not big enough to hold your var, your data shape is:',&
-               dshape,'expected shape was:',tshape,char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-    enddo
-    if (j.eq.0) then
-       allocate(mdata(tshape(1),tshape(2),tshape(3),tshape(4),tshape(5)))
-       pdata=>mdata
-       do m=1,tshape(5)
-          do l=1,tshape(4)
-             do k=1,tshape(3)
-                do j=1,tshape(2)
-                   do i=1,tshape(1)
-                      pdata(i,j,k,l,m) = data(i,j,k,l,m)
-                   end do
-                enddo
-             enddo
-          enddo
-       enddo
-       out = 1
-    else
-       pdata=>data
-       out =0
-    endif
-
-  end function cmor_ftn_map_data_5d_r
-  function cmor_ftn_map_data_6d_r(vshape,pdata,data,mdata,ntimes_passed) result(out)
-    real, target:: data(:,:,:,:,:,:)
-    real, pointer :: mdata(:,:,:,:,:,:)
-    real, pointer :: pdata(:,:,:,:,:,:)
-    integer , dimension(6) :: dshape,tshape
-    integer , dimension(7) :: vshape
-    integer ndims
-    integer i,j,k,l,m,n,error_code
-    integer out
-    character(600) msg
-    j=1
-    dshape = shape(data)
-    ndims=0
-    do i = 1, 7
-       if (vshape(i).ne.-1) ndims=ndims+1
-    end do
-    
-    k=1
-    do i=1,ndims
-       if (vshape(i).eq.0) then
-          tshape(k)=ntimes_passed
-       else 
-          tshape(k)=vshape(i)
-       endif
-       if ((tshape(k).eq.1).and.(dshape(k).ne.1)) then
-          ndims=ndims-1
-       else
-          k=k+1
-       endif
-       if (k.gt.6) exit
-       if (tshape(k).ne.dshape(k)) then
-          j=0
-       endif
-    enddo
-    if (ndims.gt.6) then
-       do i=7,ndims
-          if ((vshape(i).eq.1).or.((vshape(i).eq.0).and.(ntimes_passed.eq.1))) ndims=ndims-1
-       enddo
-    endif
-    if (ndims.ne.6) then
-       write(msg,*) 'In FORTRAN: you passed a 6d array of shape:',dshape,'this does not'&
-            //'match var number of dims: ',ndims,' please recheck your declaration,'&
-            //' the expected shape was: ',tshape,char(0)
-       error_code = CMOR_CRITICAL
-       call cmor_handle_error(msg,error_code)
-    end if
-    do i=1,6
-       if (tshape(i).gt.dshape(i)) then
-          write(msg, *)  'In FORTRAN: you passed a 6d array that'&
-               //' is not big enough to hold your var, your data shape is:',&
-               dshape,'expected shape was:',tshape,char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-    enddo
-    if (j.eq.0) then
-       allocate(mdata(tshape(1),tshape(2),tshape(3),tshape(4),tshape(5),tshape(6)))
-       pdata=>mdata
-       do n=1,tshape(6)
-          do m=1,tshape(5)
-             do l=1,tshape(4)
-                do k=1,tshape(3)
-                   do j=1,tshape(2)
-                      do i=1,tshape(1)
-                         pdata(i,j,k,l,m,n) = data(i,j,k,l,m,n)
-                      end do
-                   enddo
-                enddo
-             enddo
-          enddo
-       enddo
-       out = 1
-    else
-       pdata=>data
-       out =0
-    endif
-
-  end function cmor_ftn_map_data_6d_r
-  function cmor_ftn_map_data_7d_r(vshape,pdata,data,mdata,ntimes_passed) result(out)
-    real, target:: data(:,:,:,:,:,:,:)
-    real, pointer :: mdata(:,:,:,:,:,:,:)
-    real, pointer :: pdata(:,:,:,:,:,:,:)
-    integer , dimension(7) :: dshape,tshape
-    integer , dimension(7) :: vshape
-    integer ndims
-    integer i,j,k,l,m,n,o,error_code
-    integer out
-    character(600) msg
-    j=1
-    dshape = shape(data)
-    ndims=0
-    do i = 1, 7
-       if (vshape(i).ne.-1) ndims=ndims+1
-    end do
-    
-    k=1
-    do i=1,ndims
-       if (vshape(i).eq.0) then
-          tshape(k)=ntimes_passed
-       else 
-          tshape(k)=vshape(i)
-       endif
-       if ((tshape(k).eq.1).and.(dshape(k).ne.1)) then
-          ndims=ndims-1
-       else
-          k=k+1
-       endif
-       if (tshape(k).ne.dshape(k)) then
-          j=0
-       endif
-    enddo
-    if (ndims.ne.7) then
-       write(msg,*) 'In FORTRAN: you passed a 7d array of shape:',dshape,'this does not'&
-            //'match var number of dims: ',ndims,' please recheck your declaration,'&
-            //' the expected shape was: ',tshape,char(0)
-       error_code = CMOR_CRITICAL
-       call cmor_handle_error(msg,error_code)
-    end if
-    do i=1,7
-       if (tshape(i).gt.dshape(i)) then
-          write(msg, *)  'In FORTRAN: you passed a 7d array that'&
-               //' is not big enough to hold your var, your data shape is:',&
-               dshape,'expected shape was:',tshape,char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-    enddo
-    if (j.eq.0) then
-       allocate(mdata(tshape(1),tshape(2),tshape(3),tshape(4),tshape(5),tshape(6),tshape(7)))
-       pdata=>mdata
-       do o=1,tshape(7)
-          do n=1,tshape(6)
-             do m=1,tshape(5)
-                do l=1,tshape(4)
-                   do k=1,tshape(3)
-                      do j=1,tshape(2)
-                         do i=1,tshape(1)
-                            pdata(i,j,k,l,m,n,o) = data(i,j,k,l,m,n,o)
-                         end do
-                      enddo
-                   enddo
-                enddo
-             enddo
-          enddo
-       enddo
-       out = 1
-    else
-       pdata=>data
-       out =0
-    endif
-
-  end function cmor_ftn_map_data_7d_r
-
-  function cmor_ftn_map_data_1d_d(vshape,pdata,data,mdata,ntimes_passed) result(out)
-    double precision, target:: data(:)
-    double precision, pointer :: mdata(:)
-    double precision, pointer :: pdata(:)
-    integer , dimension(1) :: dshape
-    integer , dimension(7) :: vshape
-    integer ndims
-    integer i,j
-    integer out
-    dshape = shape(data)
-    ndims=0
-    do i = 1, 7
-       if (vshape(i).ne.-1) ndims=ndims+1
-    end do
-    
-!!$ Ok we need to make sure the 1D array is big enough
-
-    j=1
-    do i=1,ndims
-       if (vshape(i).eq.0) then
-          j=j*ntimes_passed
-       else
-          j=j*vshape(i)
-       endif
-    enddo
-    if (j.gt.dshape(1)) then
-       j=CMOR_CRITICAL
-       call cmor_handle_error('data passed to cmor_write to' &
-            //'not contain enough data',j)
-    endif
-    pdata=>data
-    out=0
-  end function cmor_ftn_map_data_1d_d
-
-  function cmor_ftn_map_data_2d_d(vshape,pdata,data,mdata,ntimes_passed) result(out)
-    double precision, target:: data(:,:)
-    double precision, pointer :: mdata(:,:)
-    double precision, pointer :: pdata(:,:)
-    integer , dimension(2) :: dshape,tshape
-    integer , dimension(7) :: vshape
-    integer ndims
-    integer i,j,k,error_code
-    integer out
-    character(600) msg
-    j=1
-    dshape = shape(data)
-    ndims=0
-    do i = 1, 7
-       if (vshape(i).ne.-1) ndims=ndims+1
-    end do
-    
-    k=1
-    do i=1,ndims
-       if (vshape(i).eq.0) then
-          tshape(k)=ntimes_passed
-       else 
-          tshape(k)=vshape(i)
-       endif
-       if ((tshape(k).eq.1).and.(dshape(k).ne.1)) then
-          ndims=ndims-1
-       else
-          k=k+1
-       endif
-       if (k.gt.2) exit
-       if (tshape(k).ne.dshape(k)) then
-          j=0
-       endif
-    enddo
-    if (ndims.gt.2) then
-       do i=3,ndims
-          if ((vshape(i).eq.1).or.((vshape(i).eq.0).and.(ntimes_passed.eq.1))) ndims=ndims-1
-       enddo
-    endif
-    if (ndims.ne.2) then
-       write(msg,*) 'In FORTRAN: you passed a 2d array of shape:',dshape,'this does not'&
-            //'match var number of dims: ',ndims,' please recheck your declaration,'&
-            //' the expected shape was: ',tshape,char(0)
-       error_code = CMOR_CRITICAL
-       call cmor_handle_error(msg,error_code)
-    end if
-    do i=1,2
-       if (tshape(i).gt.dshape(i)) then
-          write(msg, *)  'In FORTRAN: you passed a 2d array that'&
-               //' is not big enough to hold your var, your data shape is:',&
-               dshape,'expected shape was:',tshape,char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-    enddo
-    if (j.eq.0) then
-       allocate(mdata(tshape(1),tshape(2)))
-       pdata=>mdata
-       do j=1,tshape(2)
-          do i=1,tshape(1)
-             pdata(i,j) = data(i,j)
-          end do
-       enddo
-       out = 1
-    else
-       pdata=>data
-       out=0
-    endif
-  end function cmor_ftn_map_data_2d_d
-  function cmor_ftn_map_data_3d_d(vshape,pdata,data,mdata,ntimes_passed) result(out)
-    double precision, target:: data(:,:,:)
-    double precision, pointer :: mdata(:,:,:)
-    double precision, pointer :: pdata(:,:,:)
-    integer , dimension(3) :: dshape,tshape
-    integer , dimension(7) :: vshape
-    integer ndims
-    integer i,j,k,error_code
-    integer out
-    character(600) msg
-    j=1
-    dshape = shape(data)
-    ndims=0
-    do i = 1, 7
-       if (vshape(i).ne.-1) ndims=ndims+1
-    end do
-    
-    k=1
-    do i=1,ndims
-       if (vshape(i).eq.0) then
-          tshape(k)=ntimes_passed
-       else 
-          tshape(k)=vshape(i)
-       endif
-       if ((tshape(k).eq.1).and.(dshape(k).ne.1)) then
-          ndims=ndims-1
-       else
-          k=k+1
-       endif
-       if (k.gt.3) exit
-       if (tshape(k).ne.dshape(k)) then
-          j=0
-       endif
-    enddo
-    if (ndims.gt.3) then
-       do i=4,ndims
-          if ((vshape(i).eq.1).or.((vshape(i).eq.0).and.(ntimes_passed.eq.1))) ndims=ndims-1
-       enddo
-    endif
-    if (ndims.ne.3) then
-        write(msg,*) 'In FORTRAN: you passed a 3d array of shape:',dshape,'this does not'&
-            //'match var number of dims: ',ndims,' please recheck your declaration,'&
-            //' the expected shape was: ',tshape,char(0)
-       error_code = CMOR_CRITICAL
-       call cmor_handle_error(msg,error_code)
-    end if
-    do i=1,3
-       if (tshape(i).gt.dshape(i)) then
-          write(msg, *)  'In FORTRAN: you passed a 3d array that'&
-               //' is not big enough to hold your var, your data shape is:',&
-               dshape,'expected shape was:',tshape,char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-    enddo
-    if (j.eq.0) then
-       allocate(mdata(tshape(1),tshape(2),tshape(3)))
-       pdata=>mdata
-       do k=1,tshape(3)
-          do j=1,tshape(2)
-             do i=1,tshape(1)
-                pdata(i,j,k) = data(i,j,k)
-             end do
-          enddo
-       enddo
-       out = 1
-    else
-       pdata=>data
-       out=0
-    endif
-  end function cmor_ftn_map_data_3d_d
-  function cmor_ftn_map_data_4d_d(vshape,pdata,data,mdata,ntimes_passed) result(out)
-    double precision, target:: data(:,:,:,:)
-    double precision, pointer :: mdata(:,:,:,:)
-    double precision, pointer :: pdata(:,:,:,:)
-    integer , dimension(4) :: dshape,tshape
-    integer , dimension(7) :: vshape
-    integer ndims
-    integer i,j,k,l,error_code
-    integer out
-    character(600) msg
-    j=1
-    dshape = shape(data)
-    ndims=0
-    do i = 1, 7
-       if (vshape(i).ne.-1) ndims=ndims+1
-    end do
-    
-    k=1
-    do i=1,ndims
-       if (vshape(i).eq.0) then
-          tshape(k)=ntimes_passed
-       else 
-          tshape(k)=vshape(i)
-       endif
-       if ((tshape(k).eq.1).and.(dshape(k).ne.1)) then
-          ndims=ndims-1
-       else
-          k=k+1
-       endif
-       if (k.gt.4) exit 
-       if (tshape(k).ne.dshape(k)) then
-          j=0
-       endif
-    enddo
-    if (ndims.gt.4) then
-       do i=5,ndims
-          if ((vshape(i).eq.1).or.((vshape(i).eq.0).and.(ntimes_passed.eq.1))) ndims=ndims-1
-       enddo
-    endif
-    if (ndims.ne.4) then
-       write(msg,*) 'In FORTRAN: you passed a 4d array of shape:',dshape,'this does not'&
-            //'match var number of dims: ',ndims,' please recheck your declaration,'&
-            //' the expected shape was: ',tshape,char(0)
-       error_code = CMOR_CRITICAL
-       call cmor_handle_error(msg,error_code)
-    end if
-    do i = 1, 4
-       if (tshape(i).gt.dshape(i)) then
-          write(msg, *)  'In FORTRAN: you passed a 4d array that'&
-               //' is not big enough to hold your var, your data shape is:',&
-               dshape,'expected shape was:',tshape,char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-    enddo
-    if (j.eq.0) then
-       allocate(mdata(tshape(1),tshape(2),tshape(3),tshape(4)))
-       pdata=>mdata
-       do l=1,tshape(4)
-          do k=1,tshape(3)
-             do j=1,tshape(2)
-                do i=1,tshape(1)
-                   pdata(i,j,k,l) = data(i,j,k,l)
-                end do
-             enddo
-          enddo
-       enddo
-       out = 1
-    else
-       pdata=>data
-       out=0
-    endif
-  end function cmor_ftn_map_data_4d_d
-  function cmor_ftn_map_data_5d_d(vshape,pdata,data,mdata,ntimes_passed) result(out)
-    double precision, target:: data(:,:,:,:,:)
-    double precision, pointer :: mdata(:,:,:,:,:)
-    double precision, pointer :: pdata(:,:,:,:,:)
-    integer , dimension(5) :: dshape,tshape
-    integer , dimension(7) :: vshape
-    integer ndims
-    integer i,j,k,l,m,error_code
-    integer out
-    character(600) msg
-    j=1
-    dshape = shape(data)
-    ndims=0
-    do i = 1, 7
-       if (vshape(i).ne.-1) ndims=ndims+1
-    end do
-    
-    k=1
-    do i=1,ndims
-       if (vshape(i).eq.0) then
-          tshape(k)=ntimes_passed
-       else 
-          tshape(k)=vshape(i)
-       endif
-       if ((tshape(k).eq.1).and.(dshape(k).ne.1)) then
-          ndims=ndims-1
-       else
-          k=k+1
-       endif
-       if (k.gt.5) exit
-       if (tshape(k).ne.dshape(k)) then
-          j=0
-       endif
-    enddo
-    if (ndims.gt.5) then
-       do i=6,ndims
-          if ((vshape(i).eq.1).or.((vshape(i).eq.0).and.(ntimes_passed.eq.1))) ndims=ndims-1
-       enddo
-    endif
-    if (ndims.ne.5) then
-       write(msg,*) 'In FORTRAN: you passed a 5d array of shape:',dshape,'this does not'&
-            //'match var number of dims: ',ndims,' please recheck your declaration,'&
-            //' the expected shape was: ',tshape,char(0)
-       error_code = CMOR_CRITICAL
-       call cmor_handle_error(msg,error_code)
-    end if
-    do i=1,5
-       if (tshape(i).gt.dshape(i)) then
-          write(msg, *)  'In FORTRAN: you passed a 5d array that'&
-               //' is not big enough to hold your var, your data shape is:',&
-               dshape,'expected shape was:',tshape,char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-    enddo
-    if (j.eq.0) then
-       allocate(mdata(tshape(1),tshape(2),tshape(3),tshape(4),tshape(5)))
-       pdata=>mdata
-       do m=1,tshape(5)
-          do l=1,tshape(4)
-             do k=1,tshape(3)
-                do j=1,tshape(2)
-                   do i=1,tshape(1)
-                      pdata(i,j,k,l,m) = data(i,j,k,l,m)
-                   end do
-                enddo
-             enddo
-          enddo
-       enddo
-       out = 1
-    else
-       pdata=>data
-       out =0
-    endif
-
-  end function cmor_ftn_map_data_5d_d
-  function cmor_ftn_map_data_6d_d(vshape,pdata,data,mdata,ntimes_passed) result(out)
-    double precision, target:: data(:,:,:,:,:,:)
-    double precision, pointer :: mdata(:,:,:,:,:,:)
-    double precision, pointer :: pdata(:,:,:,:,:,:)
-    integer , dimension(6) :: dshape,tshape
-    integer , dimension(7) :: vshape
-    integer ndims
-    integer i,j,k,l,m,n,error_code
-    integer out
-    character(600) msg
-    j=1
-    dshape = shape(data)
-    ndims=0
-    do i = 1, 7
-       if (vshape(i).ne.-1) ndims=ndims+1
-    end do
-    
-    k=1
-    do i=1,ndims
-       if (vshape(i).eq.0) then
-          tshape(k)=ntimes_passed
-       else 
-          tshape(k)=vshape(i)
-       endif
-       if ((tshape(k).eq.1).and.(dshape(k).ne.1)) then
-          ndims=ndims-1
-       else
-          k=k+1
-       endif
-       if (k.gt.6) exit
-       if (tshape(k).ne.dshape(k)) then
-          j=0
-       endif
-    enddo
-    if (ndims.gt.6) then
-       do i=7,ndims
-          if ((vshape(i).eq.1).or.((vshape(i).eq.0).and.(ntimes_passed.eq.1))) ndims=ndims-1
-       enddo
-    endif
-    if (ndims.ne.6) then
-       write(msg,*) 'In FORTRAN: you passed a 6d array of shape:',dshape,'this does not'&
-            //'match var number of dims: ',ndims,' please recheck your declaration,'&
-            //' the expected shape was: ',tshape,char(0)
-       error_code = CMOR_CRITICAL
-       call cmor_handle_error(msg,error_code)
-    end if
-    do i=1,6
-       if (tshape(i).gt.dshape(i)) then
-          write(msg, *)  'In FORTRAN: you passed a 6d array that'&
-               //' is not big enough to hold your var, your data shape is:',&
-               dshape,'expected shape was:',tshape,char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-    enddo
-    if (j.eq.0) then
-       allocate(mdata(tshape(1),tshape(2),tshape(3),tshape(4),tshape(5),tshape(6)))
-       pdata=>mdata
-       do n=1,tshape(6)
-          do m=1,tshape(5)
-             do l=1,tshape(4)
-                do k=1,tshape(3)
-                   do j=1,tshape(2)
-                      do i=1,tshape(1)
-                         pdata(i,j,k,l,m,n) = data(i,j,k,l,m,n)
-                      end do
-                   enddo
-                enddo
-             enddo
-          enddo
-       enddo
-       out = 1
-    else
-       pdata=>data
-       out =0
-    endif
-
-  end function cmor_ftn_map_data_6d_d
-  function cmor_ftn_map_data_7d_d(vshape,pdata,data,mdata,ntimes_passed) result(out)
-    double precision, target:: data(:,:,:,:,:,:,:)
-    double precision, pointer :: mdata(:,:,:,:,:,:,:)
-    double precision, pointer :: pdata(:,:,:,:,:,:,:)
-    integer , dimension(7) :: dshape,tshape
-    integer , dimension(7) :: vshape
-    integer ndims
-    integer i,j,k,l,m,n,o,error_code
-    integer out
-    character(600) msg
-    j=1
-    dshape = shape(data)
-    ndims=0
-    do i = 1, 7
-       if (vshape(i).ne.-1) ndims=ndims+1
-    end do
-    
-    k=1
-    do i=1,ndims
-       if (vshape(i).eq.0) then
-          tshape(k)=ntimes_passed
-       else 
-          tshape(k)=vshape(i)
-       endif
-       if ((tshape(k).eq.1).and.(dshape(k).ne.1)) then
-          ndims=ndims-1
-       else
-          k=k+1
-       endif
-       if (tshape(k).ne.dshape(k)) then
-          j=0
-       endif
-    enddo
-    if (ndims.ne.7) then
-       write(msg,*) 'In FORTRAN: you passed a 7d array of shape:',dshape,'this does not'&
-            //'match var number of dims: ',ndims,' please recheck your declaration,'&
-            //' the expected shape was: ',tshape,char(0)
-       error_code = CMOR_CRITICAL
-       call cmor_handle_error(msg,error_code)
-    end if
-    do i=1,7
-       if (tshape(i).gt.dshape(i)) then
-          write(msg, *)  'In FORTRAN: you passed a 7d array that'&
-               //' is not big enough to hold your var, your data shape is:',&
-               dshape,'expected shape was:',tshape,char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-    enddo
-    if (j.eq.0) then
-       allocate(mdata(tshape(1),tshape(2),tshape(3),tshape(4),tshape(5),tshape(6),tshape(7)))
-       pdata=>mdata
-       do o=1,tshape(7)
-          do n=1,tshape(6)
-             do m=1,tshape(5)
-                do l=1,tshape(4)
-                   do k=1,tshape(3)
-                      do j=1,tshape(2)
-                         do i=1,tshape(1)
-                            pdata(i,j,k,l,m,n,o) = data(i,j,k,l,m,n,o)
-                         end do
-                      enddo
-                   enddo
-                enddo
-             enddo
-          enddo
-       enddo
-       out = 1
-    else
-       pdata=>data
-       out =0
-    endif
-
-  end function cmor_ftn_map_data_7d_d
-
-
-  function cmor_close(var_id,file_name, preserve) result(ierr)
-    integer, optional :: var_id,preserve
-    character (*), optional :: file_name
-    integer ierr
-    if (present(var_id)) then
-       if (present(preserve)) then
-          if (present(file_name)) then
-             ierr = cmor_close_var_fnm_preserve_cff(var_id,file_name,&
-                  preserve)
-          else
-             ierr = cmor_close_var_nofnm_preserve_cff(var_id,preserve)
-          endif
-       else
-          if (present(file_name)) then
-             ierr = cmor_close_var_fnm_cff(var_id,file_name)
-          else
-             ierr = cmor_close_var_nofnm_cff(var_id)
-          endif
-       endif
-    else
-       ierr = cmor_close_cff()
-    endif
-  end function cmor_close
-
-  function cmor_set_grid_mapping(grid_id,mapping_name,parameter_names,&
-       parameter_values,parameter_units) result(ierr)
-    implicit none
-    integer :: ierr,grid_id
-    character(*) :: mapping_name
-    character(*) :: parameter_names(:),parameter_units(:)
-    double precision :: parameter_values(:)
-    integer i,nparam,lparam,lunits
-    character(len=1024),allocatable ::  paranm(:),paraun(:)
-    nparam = size(parameter_values)
-    lparam = 1024
-    lunits = 1024
-    allocate(paranm(nparam))
-    allocate(paraun(nparam))
-    do i = 1,nparam
-       paranm(i) = trim(parameter_names(i))//char(0)
-       paraun(i) = trim(parameter_units(i))//char(0)
-    enddo
-    
-    ierr = cmor_set_grd_map_cff(grid_id,trim(mapping_name)//char(0),nparam,&
-                                paranm(1), lparam, &
-                                parameter_values(1), &
-                                paraun(1), lunits)
-    deallocate(paranm)
-    deallocate(paraun)
-  end function cmor_set_grid_mapping
-
-
-  function cmor_grid_tvc_r(grid_id,table_entry,units,missing) result (ierr)
-    implicit none
-    character (*) table_entry,units
-    integer var_id,grid_id
-    integer ierr
-    REAL,optional:: missing
-
-    if (present(missing)) then
-       ierr = cmor_grid_cff_tvc_f(var_id,grid_id,trim(table_entry)//char(0),trim(units)//char(0),missing)
-    else
-       ierr = cmor_grid_cff_tvc_no(var_id,grid_id,trim(table_entry)//char(0),trim(units)//char(0))
-    end if
-
-    if (ierr==0) then
-       ierr = var_id
-    else
-       ierr = -ierr
-    end if
-  end function cmor_grid_tvc_r
-  function cmor_grid_tvc_d(grid_id,table_entry,units,missing) result (ierr)
-    implicit none
-    character (*) table_entry,units
-    integer var_id,grid_id
-    integer ierr
-    double precision missing
-
-    ierr = cmor_grid_cff_tvc_d(var_id,grid_id,trim(table_entry)//char(0),trim(units)//char(0),missing)
-
-    if (ierr==0) then
-       ierr = var_id
-    else
-       ierr = -ierr
-    end if
-  end function cmor_grid_tvc_d
-  function cmor_grid_tvc_i(grid_id,table_entry,units,missing) result (ierr)
-    implicit none
-    character (*) table_entry,units
-    integer var_id,grid_id
-    integer ierr
-    integer missing
-
-    ierr = cmor_grid_cff_tvc_i(var_id,grid_id,trim(table_entry)//char(0),trim(units)//char(0),missing)
-
-    if (ierr==0) then
-       ierr = var_id
-    else
-       ierr = -ierr
-    end if
-  end function cmor_grid_tvc_i
-
-  function cmor_grid_0d(axis_ids,nvertices) result (ierr)
-    implicit none
-    integer ierr,i,nvert
-    integer axis_ids(:)
-    integer ndims,grid_id
-    integer, dimension(10)::  axes_ids
-    integer, optional :: nvertices
-
-    if (present(nvertices)) then
-       nvert = nvertices
-    else
-       nvert = 0
-    end if
-    ndims = size(axis_ids,1)
-    do i = 1, ndims
-       axes_ids(i) = axis_ids(ndims-i+1)
-    enddo
-    ierr = cmor_grid_cff_nocoords(grid_id,ndims,axes_ids(1),nvert)
-    if (ierr.eq.0) then
-       ierr = grid_id
-    endif
-  end function cmor_grid_0d
-
-  function cmor_grid_1d_r(axis_ids,latitude,longitude,&
-       latitude_vertices,longitude_vertices) result(ierr)
-    implicit none
-    integer axis_ids(:)
-    REAL latitude(:),longitude(:)
-    REAL,OPTIONAL :: latitude_vertices(:,:)
-    REAL,OPTIONAL :: longitude_vertices(:,:)
-!!$    REAL,OPTIONAL :: area(:)
-    integer ierr,grid_id,ndims,nvert,error_code
-    character(1024) msg
-    integer i
-    integer, dimension(10)::  axes_ids
-    
-    ndims = 1
-    do i = 1, ndims
-       axes_ids(i) = axis_ids(ndims-i+1)
-    enddo
-    if (present(latitude_vertices)) then
-       nvert = size(latitude_vertices,ndims+1)
-       if (present(longitude_vertices)) then
-          if (size(longitude_vertices,ndims+1).ne.nvert) then
-             msg = 'cmor_grid (fortran):: longitudes and latitudes'//&
-                  'vertices do not have the same number of vertices'//char(0)
-             error_code = CMOR_CRITICAL
-             call cmor_handle_error(msg,error_code)
-          endif
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_real(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1), longitude(1), &
-!!$                  nvert,latitude_vertices(1,1), &
-!!$                  longitude_vertices(1,1), area(1))
-!!$          else
-             ierr = cmor_grid_cff_noarea_real(grid_id,ndims,axes_ids(1),&
-                  latitude(1), longitude(1), &
-                  nvert,latitude_vertices(1,1), &
-                  longitude_vertices(1,1))
-!!$          endif
-       else
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_noblon_real(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1), longitude(1), &
-!!$                  nvert,latitude_vertices(1,1), &
-!!$                  area(1))
-!!$          else
-             ierr = cmor_grid_cff_nobloar_real(grid_id,ndims,axes_ids(1),&
-                  latitude(1), longitude(1), &
-                  nvert,latitude_vertices(1,1))
-!!$          endif
-       endif
-    else
-       if (present(longitude_vertices)) then
-          nvert = size(latitude_vertices,ndims+1)
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_noblat_real(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1), longitude(1), &
-!!$                  nvert,longitude_vertices(1,1), &
-!!$                  area(1))
-!!$          else
-             ierr = cmor_grid_cff_noblaar_real(grid_id,ndims,axes_ids(1),&
-                  latitude(1), longitude(1), &
-                  nvert,longitude_vertices(1,1))
-!!$          endif
-       else
-          nvert=0
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_nobnds_real(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1), longitude(1), &
-!!$                  nvert, &
-!!$                  area(1))
-!!$          else
-             ierr = cmor_grid_cff_nothg_real(grid_id,ndims,axes_ids(1),&
-                  latitude(1), longitude(1), &
-                  nvert)
-!!$          endif
-       endif
-    endif
-    if (ierr.eq.0) then
-       ierr = grid_id
-    endif
-  end function cmor_grid_1d_r
-  function cmor_grid_2d_r(axis_ids,latitude,longitude,&
-       latitude_vertices,longitude_vertices) result(ierr)
-    implicit none
-    integer axis_ids(:)
-    REAL latitude(:,:),longitude(:,:)
-    REAL,OPTIONAL :: latitude_vertices(:,:,:)
-    REAL,OPTIONAL :: longitude_vertices(:,:,:)
-!!$    REAL,OPTIONAL :: area(:,:)
-    integer ierr,grid_id,ndims,nvert,error_code
-    character(1024) msg
-    integer i
-    integer, dimension(10)::  axes_ids
-    
-    ndims = 2
-    do i = 1, ndims
-       axes_ids(i) = axis_ids(ndims-i+1)
-    enddo
-    if (present(latitude_vertices)) then
-       nvert = size(latitude_vertices,ndims+1)
-       if (present(longitude_vertices)) then
-          if (size(longitude_vertices,ndims+1).ne.nvert) then
-             msg = 'cmor_grid (fortran):: longitudes and latitudes'//&
-                  'vertices do not have the same number of vertices'//char(0)
-             error_code = CMOR_CRITICAL
-             call cmor_handle_error(msg,error_code)
-          endif
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_real(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1), longitude(1,1), &
-!!$                  nvert,latitude_vertices(1,1,1), &
-!!$                  longitude_vertices(1,1,1), area(1,1))
-!!$          else
-             ierr = cmor_grid_cff_noarea_real(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1), longitude(1,1), &
-                  nvert,latitude_vertices(1,1,1), &
-                  longitude_vertices(1,1,1))
-!!$          endif
-       else
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_noblon_real(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1), longitude(1,1), &
-!!$                  nvert,latitude_vertices(1,1,1), &
-!!$                  area(1,1))
-!!$          else
-             ierr = cmor_grid_cff_nobloar_real(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1), longitude(1,1), &
-                  nvert,latitude_vertices(1,1,1))
-!!$          endif
-       endif
-    else
-       if (present(longitude_vertices)) then
-          nvert = size(latitude_vertices,ndims+1)
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_noblat_real(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1), longitude(1,1), &
-!!$                  nvert,longitude_vertices(1,1,1), &
-!!$                  area(1,1))
-!!$          else
-             ierr = cmor_grid_cff_noblaar_real(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1), longitude(1,1), &
-                  nvert,longitude_vertices(1,1,1))
-!!$          endif
-       else
-          nvert=0
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_nobnds_real(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1), longitude(1,1), &
-!!$                  nvert, &
-!!$                  area(1,1))
-!!$          else
-             ierr = cmor_grid_cff_nothg_real(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1), longitude(1,1), &
-                  nvert)
-!!$          endif
-       endif
-    endif
-    if (ierr.eq.0) then
-       ierr = grid_id
-    endif
-  end function cmor_grid_2d_r
-  function cmor_grid_3d_r(axis_ids,latitude,longitude,&
-       latitude_vertices,longitude_vertices) result(ierr)
-    implicit none
-    integer axis_ids(:)
-    REAL latitude(:,:,:),longitude(:,:,:)
-    REAL,OPTIONAL :: latitude_vertices(:,:,:,:)
-    REAL,OPTIONAL :: longitude_vertices(:,:,:,:)
-!!$    REAL,OPTIONAL :: area(:,:,:)
-    integer ierr,grid_id,ndims,nvert,error_code
-    character(1024) msg
-    integer i
-    integer, dimension(10)::  axes_ids
-    
-    ndims = 3
-    do i = 1, ndims
-       axes_ids(i) = axis_ids(ndims-i+1)
-    enddo
-    if (present(latitude_vertices)) then
-       nvert = size(latitude_vertices,ndims+1)
-       if (present(longitude_vertices)) then
-          if (size(longitude_vertices,ndims+1).ne.nvert) then
-             msg = 'cmor_grid (fortran):: longitudes and latitudes'//&
-                  'vertices do not have the same number of vertices'//char(0)
-             error_code = CMOR_CRITICAL
-             call cmor_handle_error(msg,error_code)
-          endif
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_real(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1,1), longitude(1,1,1), &
-!!$                  nvert,latitude_vertices(1,1,1,1), &
-!!$                  longitude_vertices(1,1,1,1), area(1,1,1))
-!!$          else
-             ierr = cmor_grid_cff_noarea_real(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1,1), longitude(1,1,1), &
-                  nvert,latitude_vertices(1,1,1,1), &
-                  longitude_vertices(1,1,1,1))
-!!$          endif
-       else
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_noblon_real(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1,1), longitude(1,1,1), &
-!!$                  nvert,latitude_vertices(1,1,1,1), &
-!!$                  area(1,1,1))
-!!$          else
-             ierr = cmor_grid_cff_nobloar_real(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1,1), longitude(1,1,1), &
-                  nvert,latitude_vertices(1,1,1,1))
-!!$          endif
-       endif
-    else
-       if (present(longitude_vertices)) then
-          nvert = size(latitude_vertices,ndims+1)
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_noblat_real(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1,1), longitude(1,1,1), &
-!!$                  nvert,longitude_vertices(1,1,1,1), &
-!!$                  area(1,1,1))
-!!$          else
-             ierr = cmor_grid_cff_noblaar_real(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1,1), longitude(1,1,1), &
-                  nvert,longitude_vertices(1,1,1,1))
-!!$          endif
-       else
-          nvert=0
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_nobnds_real(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1,1), longitude(1,1,1), &
-!!$                  nvert, &
-!!$                  area(1,1,1))
-!!$          else
-             ierr = cmor_grid_cff_nothg_real(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1,1), longitude(1,1,1), &
-                  nvert)
-!!$          endif
-       endif
-    endif
-    if (ierr.eq.0) then
-       ierr = grid_id
-    endif
-  end function cmor_grid_3d_r
-  function cmor_grid_4d_r(axis_ids,latitude,longitude,&
-       latitude_vertices,longitude_vertices) result(ierr)
-    implicit none
-    integer axis_ids(:)
-    REAL latitude(:,:,:,:),longitude(:,:,:,:)
-    REAL,OPTIONAL :: latitude_vertices(:,:,:,:,:)
-    REAL,OPTIONAL :: longitude_vertices(:,:,:,:,:)
-!!$    REAL,OPTIONAL :: area(:,:,:,:)
-    integer ierr,grid_id,ndims,nvert,error_code
-    character(1024) msg
-    integer i
-    integer, dimension(10)::  axes_ids
-    
-    ndims = 4
-    do i = 1, ndims
-       axes_ids(i) = axis_ids(ndims-i+1)
-    enddo
-    if (present(latitude_vertices)) then
-       nvert = size(latitude_vertices,ndims+1)
-       if (present(longitude_vertices)) then
-          if (size(longitude_vertices,ndims+1).ne.nvert) then
-             msg = 'cmor_grid (fortran):: longitudes and latitudes'//&
-                  'vertices do not have the same number of vertices'//char(0)
-             error_code = CMOR_CRITICAL
-             call cmor_handle_error(msg,error_code)
-          endif
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_real(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1,1,1), longitude(1,1,1,1), &
-!!$                  nvert,latitude_vertices(1,1,1,1,1), &
-!!$                  longitude_vertices(1,1,1,1,1), area(1,1,1,1))
-!!$          else
-             ierr = cmor_grid_cff_noarea_real(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1,1,1), longitude(1,1,1,1), &
-                  nvert,latitude_vertices(1,1,1,1,1), &
-                  longitude_vertices(1,1,1,1,1))
-!!$          endif
-       else
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_noblon_real(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1,1,1), longitude(1,1,1,1), &
-!!$                  nvert,latitude_vertices(1,1,1,1,1), &
-!!$                  area(1,1,1,1))
-!!$          else
-             ierr = cmor_grid_cff_nobloar_real(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1,1,1), longitude(1,1,1,1), &
-                  nvert,latitude_vertices(1,1,1,1,1))
-!!$          endif
-       endif
-    else
-       if (present(longitude_vertices)) then
-          nvert = size(latitude_vertices,ndims+1)
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_noblat_real(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1,1,1), longitude(1,1,1,1), &
-!!$                  nvert,longitude_vertices(1,1,1,1,1), &
-!!$                  area(1,1,1,1))
-!!$          else
-             ierr = cmor_grid_cff_noblaar_real(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1,1,1), longitude(1,1,1,1), &
-                  nvert,longitude_vertices(1,1,1,1,1))
-!!$          endif
-       else
-          nvert=0
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_nobnds_real(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1,1,1), longitude(1,1,1,1), &
-!!$                  nvert, &
-!!$                  area(1,1,1,1))
-!!$          else
-             ierr = cmor_grid_cff_nothg_real(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1,1,1), longitude(1,1,1,1), &
-                  nvert)
-!!$          endif
-       endif
-    endif
-    if (ierr.eq.0) then
-       ierr = grid_id
-    endif
-  end function cmor_grid_4d_r
-  function cmor_grid_5d_r(axis_ids,latitude,longitude,&
-       latitude_vertices,longitude_vertices) result(ierr)
-    implicit none
-    integer axis_ids(:)
-    REAL latitude(:,:,:,:,:),longitude(:,:,:,:,:)
-    REAL,OPTIONAL :: latitude_vertices(:,:,:,:,:,:)
-    REAL,OPTIONAL :: longitude_vertices(:,:,:,:,:,:)
-!!$    REAL,OPTIONAL :: area(:,:,:,:,:)
-    integer ierr,grid_id,ndims,nvert,error_code
-    character(1024) msg
-    integer i
-    integer, dimension(10)::  axes_ids
-    
-    ndims = 5
-    do i = 1, ndims
-       axes_ids(i) = axis_ids(ndims-i+1)
-    enddo
-    if (present(latitude_vertices)) then
-       nvert = size(latitude_vertices,ndims+1)
-       if (present(longitude_vertices)) then
-          if (size(longitude_vertices,ndims+1).ne.nvert) then
-             msg = 'cmor_grid (fortran):: longitudes and latitudes'//&
-                  'vertices do not have the same number of vertices'//char(0)
-             error_code = CMOR_CRITICAL
-             call cmor_handle_error(msg,error_code)
-          endif
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_real(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1,1,1,1), longitude(1,1,1,1,1), &
-!!$                  nvert,latitude_vertices(1,1,1,1,1,1), &
-!!$                  longitude_vertices(1,1,1,1,1,1), area(1,1,1,1,1))
-!!$          else
-             ierr = cmor_grid_cff_noarea_real(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1,1,1,1), longitude(1,1,1,1,1), &
-                  nvert,latitude_vertices(1,1,1,1,1,1), &
-                  longitude_vertices(1,1,1,1,1,1))
-!!$          endif
-       else
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_noblon_real(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1,1,1,1), longitude(1,1,1,1,1), &
-!!$                  nvert,latitude_vertices(1,1,1,1,1,1), &
-!!$                  area(1,1,1,1,1))
-!!$          else
-             ierr = cmor_grid_cff_nobloar_real(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1,1,1,1), longitude(1,1,1,1,1), &
-                  nvert,latitude_vertices(1,1,1,1,1,1))
-!!$          endif
-       endif
-    else
-       if (present(longitude_vertices)) then
-          nvert = size(latitude_vertices,ndims+1)
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_noblat_real(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1,1,1,1), longitude(1,1,1,1,1), &
-!!$                  nvert,longitude_vertices(1,1,1,1,1,1), &
-!!$                  area(1,1,1,1,1))
-!!$          else
-             ierr = cmor_grid_cff_noblaar_real(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1,1,1,1), longitude(1,1,1,1,1), &
-                  nvert,longitude_vertices(1,1,1,1,1,1))
-!!$          endif
-       else
-          nvert=0
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_nobnds_real(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1,1,1,1), longitude(1,1,1,1,1), &
-!!$                  nvert, &
-!!$                  area(1,1,1,1,1))
-!!$          else
-             ierr = cmor_grid_cff_nothg_real(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1,1,1,1), longitude(1,1,1,1,1), &
-                  nvert)
-!!$          endif
-       endif
-    endif
-    if (ierr.eq.0) then
-       ierr = grid_id
-    endif
-  end function cmor_grid_5d_r
-  function cmor_grid_6d_r(axis_ids,latitude,longitude,&
-       latitude_vertices,longitude_vertices) result(ierr)
-    implicit none
-    integer axis_ids(:)
-    REAL latitude(:,:,:,:,:,:),longitude(:,:,:,:,:,:)
-    REAL,OPTIONAL :: latitude_vertices(:,:,:,:,:,:,:)
-    REAL,OPTIONAL :: longitude_vertices(:,:,:,:,:,:,:)
-!!$    REAL,OPTIONAL :: area(:,:,:,:,:,:)
-    integer ierr,grid_id,ndims,nvert,error_code
-    character(1024) msg
-    integer i
-    integer, dimension(10)::  axes_ids
-    
-    ndims = 6
-    do i = 1, ndims
-       axes_ids(i) = axis_ids(ndims-i+1)
-    enddo
-    if (present(latitude_vertices)) then
-       nvert = size(latitude_vertices,ndims+1)
-       if (present(longitude_vertices)) then
-          if (size(longitude_vertices,ndims+1).ne.nvert) then
-             msg = 'cmor_grid (fortran):: longitudes and latitudes'//&
-                  'vertices do not have the same number of vertices'//char(0)
-             error_code = CMOR_CRITICAL
-             call cmor_handle_error(msg,error_code)
-          endif
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_real(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1,1,1,1,1), longitude(1,1,1,1,1,1), &
-!!$                  nvert,latitude_vertices(1,1,1,1,1,1,1), &
-!!$                  longitude_vertices(1,1,1,1,1,1,1), area(1,1,1,1,1,1))
-!!$          else
-             ierr = cmor_grid_cff_noarea_real(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1,1,1,1,1), longitude(1,1,1,1,1,1), &
-                  nvert,latitude_vertices(1,1,1,1,1,1,1), &
-                  longitude_vertices(1,1,1,1,1,1,1))
-!!$          endif
-       else
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_noblon_real(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1,1,1,1,1), longitude(1,1,1,1,1,1), &
-!!$                  nvert,latitude_vertices(1,1,1,1,1,1,1), &
-!!$                  area(1,1,1,1,1,1))
-!!$          else
-             ierr = cmor_grid_cff_nobloar_real(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1,1,1,1,1), longitude(1,1,1,1,1,1), &
-                  nvert,latitude_vertices(1,1,1,1,1,1,1))
-!!$          endif
-       endif
-    else
-       if (present(longitude_vertices)) then
-          nvert = size(latitude_vertices,ndims+1)
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_noblat_real(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1,1,1,1,1), longitude(1,1,1,1,1,1), &
-!!$                  nvert,longitude_vertices(1,1,1,1,1,1,1), &
-!!$                  area(1,1,1,1,1,1))
-!!$          else
-             ierr = cmor_grid_cff_noblaar_real(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1,1,1,1,1), longitude(1,1,1,1,1,1), &
-                  nvert,longitude_vertices(1,1,1,1,1,1,1))
-!!$          endif
-       else
-          nvert=0
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_nobnds_real(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1,1,1,1,1), longitude(1,1,1,1,1,1), &
-!!$                  nvert, &
-!!$                  area(1,1,1,1,1,1))
-!!$          else
-             ierr = cmor_grid_cff_nothg_real(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1,1,1,1,1), longitude(1,1,1,1,1,1), &
-                  nvert)
-!!$          endif
-       endif
-    endif
-    if (ierr.eq.0) then
-       ierr = grid_id
-    endif
-  end function cmor_grid_6d_r
-
-
-  function cmor_grid_1d_d(axis_ids,latitude,longitude,&
-       latitude_vertices,longitude_vertices) result(ierr)
-    implicit none
-    integer axis_ids(:)
-    DOUBLE PRECISION latitude(:),longitude(:)
-    DOUBLE PRECISION,OPTIONAL :: latitude_vertices(:,:)
-    DOUBLE PRECISION,OPTIONAL :: longitude_vertices(:,:)
-    integer ierr,grid_id,ndims,nvert,error_code
-    character(1024) msg
-    integer i
-    integer, dimension(10)::  axes_ids
-    
-    ndims = 1
-    do i = 1, ndims
-       axes_ids(i) = axis_ids(ndims-i+1)
-    enddo
-    if (present(latitude_vertices)) then
-       nvert = size(latitude_vertices,ndims+1)
-       if (present(longitude_vertices)) then
-          if (size(longitude_vertices,ndims+1).ne.nvert) then
-             msg = 'cmor_grid (fortran):: longitudes and latitudes'//&
-                  'vertices do not have the same number of vertices'//char(0)
-             error_code = CMOR_CRITICAL
-             call cmor_handle_error(msg,error_code)
-          endif
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_double(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1), longitude(1), &
-!!$                  nvert,latitude_vertices(1,1), &
-!!$                  longitude_vertices(1,1), area(1))
-!!$          else
-             ierr = cmor_grid_cff_noarea_double(grid_id,ndims,axes_ids(1),&
-                  latitude(1), longitude(1), &
-                  nvert,latitude_vertices(1,1), &
-                  longitude_vertices(1,1))
-!!$          endif
-       else
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_noblon_double(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1), longitude(1), &
-!!$                  nvert,latitude_vertices(1,1), &
-!!$                  area(1))
-!!$          else
-             ierr = cmor_grid_cff_nobloar_double(grid_id,ndims,axes_ids(1),&
-                  latitude(1), longitude(1), &
-                  nvert,latitude_vertices(1,1))
-!!$          endif
-       endif
-    else
-       if (present(longitude_vertices)) then
-          nvert = size(latitude_vertices,ndims+1)
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_noblat_double(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1), longitude(1), &
-!!$                  nvert,longitude_vertices(1,1), &
-!!$                  area(1))
-!!$          else
-             ierr = cmor_grid_cff_noblaar_double(grid_id,ndims,axes_ids(1),&
-                  latitude(1), longitude(1), &
-                  nvert,longitude_vertices(1,1))
-!!$          endif
-       else
-          nvert=0
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_nobnds_double(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1), longitude(1), &
-!!$                  nvert, &
-!!$                  area(1))
-!!$          else
-             ierr = cmor_grid_cff_nothg_double(grid_id,ndims,axes_ids(1),&
-                  latitude(1), longitude(1), &
-                  nvert)
-!!$          endif
-       endif
-    endif
-    if (ierr.eq.0) then
-       ierr = grid_id
-    endif
-  end function cmor_grid_1d_d
-  function cmor_grid_2d_d(axis_ids,latitude,longitude,&
-       latitude_vertices,longitude_vertices) result(ierr)
-    implicit none
-    integer axis_ids(:)
-    DOUBLE PRECISION latitude(:,:),longitude(:,:)
-    DOUBLE PRECISION,OPTIONAL :: latitude_vertices(:,:,:)
-    DOUBLE PRECISION,OPTIONAL :: longitude_vertices(:,:,:)
-!!$    DOUBLE PRECISION,OPTIONAL :: area(:,:)
-    integer ierr,grid_id,ndims,nvert,error_code
-    character(1024) msg
-    integer i
-    integer, dimension(10)::  axes_ids
-    
-    ndims = 2
-    do i = 1, ndims
-       axes_ids(i) = axis_ids(ndims-i+1)
-    enddo
-    if (present(latitude_vertices)) then
-       nvert = size(latitude_vertices,ndims+1)
-       if (present(longitude_vertices)) then
-          if (size(longitude_vertices,ndims+1).ne.nvert) then
-             msg = 'cmor_grid (fortran):: longitudes and latitudes'//&
-                  'vertices do not have the same number of vertices'//char(0)
-             error_code = CMOR_CRITICAL
-             call cmor_handle_error(msg,error_code)
-          endif
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_double(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1), longitude(1,1), &
-!!$                  nvert,latitude_vertices(1,1,1), &
-!!$                  longitude_vertices(1,1,1), area(1,1))
-!!$          else
-             ierr = cmor_grid_cff_noarea_double(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1), longitude(1,1), &
-                  nvert,latitude_vertices(1,1,1), &
-                  longitude_vertices(1,1,1))
-!!$          endif
-       else
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_noblon_double(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1), longitude(1,1), &
-!!$                  nvert,latitude_vertices(1,1,1), &
-!!$                  area(1,1))
-!!$          else
-             ierr = cmor_grid_cff_nobloar_double(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1), longitude(1,1), &
-                  nvert,latitude_vertices(1,1,1))
-!!$          endif
-       endif
-    else
-       if (present(longitude_vertices)) then
-          nvert = size(latitude_vertices,ndims+1)
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_noblat_double(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1), longitude(1,1), &
-!!$                  nvert,longitude_vertices(1,1,1), &
-!!$                  area(1,1))
-!!$          else
-             ierr = cmor_grid_cff_noblaar_double(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1), longitude(1,1), &
-                  nvert,longitude_vertices(1,1,1))
-!!$          endif
-       else
-          nvert=0
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_nobnds_double(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1), longitude(1,1), &
-!!$                  nvert, &
-!!$                  area(1,1))
-!!$          else
-             ierr = cmor_grid_cff_nothg_double(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1), longitude(1,1), &
-                  nvert)
-!!$          endif
-       endif
-    endif
-    if (ierr.eq.0) then
-       ierr = grid_id
-    endif
-  end function cmor_grid_2d_d
-  function cmor_grid_3d_d(axis_ids,latitude,longitude,&
-       latitude_vertices,longitude_vertices) result(ierr)
-    implicit none
-    integer axis_ids(:)
-    DOUBLE PRECISION latitude(:,:,:),longitude(:,:,:)
-    DOUBLE PRECISION,OPTIONAL :: latitude_vertices(:,:,:,:)
-    DOUBLE PRECISION,OPTIONAL :: longitude_vertices(:,:,:,:)
-!!$    DOUBLE PRECISION,OPTIONAL :: area(:,:,:)
-    integer ierr,grid_id,ndims,nvert,error_code
-    character(1024) msg
-    integer i
-    integer, dimension(10)::  axes_ids
-    
-    ndims = 3
-    do i = 1, ndims
-       axes_ids(i) = axis_ids(ndims-i+1)
-    enddo
-    if (present(latitude_vertices)) then
-       nvert = size(latitude_vertices,ndims+1)
-       if (present(longitude_vertices)) then
-          if (size(longitude_vertices,ndims+1).ne.nvert) then
-             msg = 'cmor_grid (fortran):: longitudes and latitudes'//&
-                  'vertices do not have the same number of vertices'//char(0)
-             error_code = CMOR_CRITICAL
-             call cmor_handle_error(msg,error_code)
-          endif
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_double(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1,1), longitude(1,1,1), &
-!!$                  nvert,latitude_vertices(1,1,1,1), &
-!!$                  longitude_vertices(1,1,1,1), area(1,1,1))
-!!$          else
-             ierr = cmor_grid_cff_noarea_double(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1,1), longitude(1,1,1), &
-                  nvert,latitude_vertices(1,1,1,1), &
-                  longitude_vertices(1,1,1,1))
-!!$          endif
-       else
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_noblon_double(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1,1), longitude(1,1,1), &
-!!$                  nvert,latitude_vertices(1,1,1,1), &
-!!$                  area(1,1,1))
-!!$          else
-             ierr = cmor_grid_cff_nobloar_double(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1,1), longitude(1,1,1), &
-                  nvert,latitude_vertices(1,1,1,1))
-!!$          endif
-       endif
-    else
-       if (present(longitude_vertices)) then
-          nvert = size(latitude_vertices,ndims+1)
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_noblat_double(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1,1), longitude(1,1,1), &
-!!$                  nvert,longitude_vertices(1,1,1,1), &
-!!$                  area(1,1,1))
-!!$          else
-             ierr = cmor_grid_cff_noblaar_double(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1,1), longitude(1,1,1), &
-                  nvert,longitude_vertices(1,1,1,1))
-!!$          endif
-       else
-          nvert=0
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_nobnds_double(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1,1), longitude(1,1,1), &
-!!$                  nvert, &
-!!$                  area(1,1,1))
-!!$          else
-             ierr = cmor_grid_cff_nothg_double(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1,1), longitude(1,1,1), &
-                  nvert)
-!!$          endif
-       endif
-    endif
-    if (ierr.eq.0) then
-       ierr = grid_id
-    endif
-  end function cmor_grid_3d_d
-  function cmor_grid_4d_d(axis_ids,latitude,longitude,&
-       latitude_vertices,longitude_vertices) result(ierr)
-    implicit none
-    integer axis_ids(:)
-    DOUBLE PRECISION latitude(:,:,:,:),longitude(:,:,:,:)
-    DOUBLE PRECISION,OPTIONAL :: latitude_vertices(:,:,:,:,:)
-    DOUBLE PRECISION,OPTIONAL :: longitude_vertices(:,:,:,:,:)
-!!$    DOUBLE PRECISION,OPTIONAL :: area(:,:,:,:)
-    integer ierr,grid_id,ndims,nvert,error_code
-    character(1024) msg
-    integer i
-    integer, dimension(10)::  axes_ids
-    
-    ndims = 4
-    do i = 1, ndims
-       axes_ids(i) = axis_ids(ndims-i+1)
-    enddo
-    if (present(latitude_vertices)) then
-       nvert = size(latitude_vertices,ndims+1)
-       if (present(longitude_vertices)) then
-          if (size(longitude_vertices,ndims+1).ne.nvert) then
-             msg = 'cmor_grid (fortran):: longitudes and latitudes'//&
-                  'vertices do not have the same number of vertices'//char(0)
-             error_code = CMOR_CRITICAL
-             call cmor_handle_error(msg,error_code)
-          endif
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_double(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1,1,1), longitude(1,1,1,1), &
-!!$                  nvert,latitude_vertices(1,1,1,1,1), &
-!!$                  longitude_vertices(1,1,1,1,1), area(1,1,1,1))
-!!$          else
-             ierr = cmor_grid_cff_noarea_double(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1,1,1), longitude(1,1,1,1), &
-                  nvert,latitude_vertices(1,1,1,1,1), &
-                  longitude_vertices(1,1,1,1,1))
-!!$          endif
-       else
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_noblon_double(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1,1,1), longitude(1,1,1,1), &
-!!$                  nvert,latitude_vertices(1,1,1,1,1), &
-!!$                  area(1,1,1,1))
-!!$          else
-             ierr = cmor_grid_cff_nobloar_double(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1,1,1), longitude(1,1,1,1), &
-                  nvert,latitude_vertices(1,1,1,1,1))
-!!$          endif
-       endif
-    else
-       if (present(longitude_vertices)) then
-          nvert = size(latitude_vertices,ndims+1)
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_noblat_double(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1,1,1), longitude(1,1,1,1), &
-!!$                  nvert,longitude_vertices(1,1,1,1,1), &
-!!$                  area(1,1,1,1))
-!!$          else
-             ierr = cmor_grid_cff_noblaar_double(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1,1,1), longitude(1,1,1,1), &
-                  nvert,longitude_vertices(1,1,1,1,1))
-!!$          endif
-       else
-          nvert=0
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_nobnds_double(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1,1,1), longitude(1,1,1,1), &
-!!$                  nvert, &
-!!$                  area(1,1,1,1))
-!!$          else
-             ierr = cmor_grid_cff_nothg_double(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1,1,1), longitude(1,1,1,1), &
-                  nvert)
-!!$          endif
-       endif
-    endif
-    if (ierr.eq.0) then
-       ierr = grid_id
-    endif
-  end function cmor_grid_4d_d
-  function cmor_grid_5d_d(axis_ids,latitude,longitude,&
-       latitude_vertices,longitude_vertices) result(ierr)
-    implicit none
-    integer axis_ids(:)
-    DOUBLE PRECISION latitude(:,:,:,:,:),longitude(:,:,:,:,:)
-    DOUBLE PRECISION,OPTIONAL :: latitude_vertices(:,:,:,:,:,:)
-    DOUBLE PRECISION,OPTIONAL :: longitude_vertices(:,:,:,:,:,:)
-    integer ierr,grid_id,ndims,nvert,error_code
-    character(1024) msg
-    integer i
-    integer, dimension(10)::  axes_ids
-    
-    ndims = 5
-    do i = 1, ndims
-       axes_ids(i) = axis_ids(ndims-i+1)
-    enddo
-    if (present(latitude_vertices)) then
-       nvert = size(latitude_vertices,ndims+1)
-       if (present(longitude_vertices)) then
-          if (size(longitude_vertices,ndims+1).ne.nvert) then
-             msg = 'cmor_grid (fortran):: longitudes and latitudes'//&
-                  'vertices do not have the same number of vertices'//char(0)
-             error_code = CMOR_CRITICAL
-             call cmor_handle_error(msg,error_code)
-          endif
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_double(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1,1,1,1), longitude(1,1,1,1,1), &
-!!$                  nvert,latitude_vertices(1,1,1,1,1,1), &
-!!$                  longitude_vertices(1,1,1,1,1,1), area(1,1,1,1,1))
-!!$          else
-             ierr = cmor_grid_cff_noarea_double(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1,1,1,1), longitude(1,1,1,1,1), &
-                  nvert,latitude_vertices(1,1,1,1,1,1), &
-                  longitude_vertices(1,1,1,1,1,1))
-!!$          endif
-       else
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_noblon_double(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1,1,1,1), longitude(1,1,1,1,1), &
-!!$                  nvert,latitude_vertices(1,1,1,1,1,1), &
-!!$                  area(1,1,1,1,1))
-!!$          else
-             ierr = cmor_grid_cff_nobloar_double(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1,1,1,1), longitude(1,1,1,1,1), &
-                  nvert,latitude_vertices(1,1,1,1,1,1))
-!!$          endif
-       endif
-    else
-       if (present(longitude_vertices)) then
-          nvert = size(latitude_vertices,ndims+1)
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_noblat_double(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1,1,1,1), longitude(1,1,1,1,1), &
-!!$                  nvert,longitude_vertices(1,1,1,1,1,1), &
-!!$                  area(1,1,1,1,1))
-!!$          else
-             ierr = cmor_grid_cff_noblaar_double(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1,1,1,1), longitude(1,1,1,1,1), &
-                  nvert,longitude_vertices(1,1,1,1,1,1))
-!!$          endif
-       else
-          nvert=0
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_nobnds_double(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1,1,1,1), longitude(1,1,1,1,1), &
-!!$                  nvert, &
-!!$                  area(1,1,1,1,1))
-!!$          else
-             ierr = cmor_grid_cff_nothg_double(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1,1,1,1), longitude(1,1,1,1,1), &
-                  nvert)
-!!$          endif
-       endif
-    endif
-    if (ierr.eq.0) then
-       ierr = grid_id
-    endif
-  end function cmor_grid_5d_d
-  function cmor_grid_6d_d(axis_ids,latitude,longitude,&
-       latitude_vertices,longitude_vertices) result(ierr)
-    implicit none
-    integer axis_ids(:)
-    DOUBLE PRECISION latitude(:,:,:,:,:,:),longitude(:,:,:,:,:,:)
-    DOUBLE PRECISION,OPTIONAL :: latitude_vertices(:,:,:,:,:,:,:)
-    DOUBLE PRECISION,OPTIONAL :: longitude_vertices(:,:,:,:,:,:,:)
-!!$    DOUBLE PRECISION,OPTIONAL :: area(:,:,:,:,:,:)
-    integer ierr,grid_id,ndims,nvert,error_code
-    character(1024) msg
-    integer i
-    integer, dimension(10)::  axes_ids
-    
-    ndims = 6
-    do i = 1, ndims
-       axes_ids(i) = axis_ids(ndims-i+1)
-    enddo
-    if (present(latitude_vertices)) then
-       nvert = size(latitude_vertices,ndims+1)
-       if (present(longitude_vertices)) then
-          if (size(longitude_vertices,ndims+1).ne.nvert) then
-             msg = 'cmor_grid (fortran):: longitudes and latitudes'//&
-                  'vertices do not have the same number of vertices'//char(0)
-             error_code = CMOR_CRITICAL
-             call cmor_handle_error(msg,error_code)
-          endif
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_double(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1,1,1,1,1), longitude(1,1,1,1,1,1), &
-!!$                  nvert,latitude_vertices(1,1,1,1,1,1,1), &
-!!$                  longitude_vertices(1,1,1,1,1,1,1), area(1,1,1,1,1,1))
-!!$          else
-             ierr = cmor_grid_cff_noarea_double(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1,1,1,1,1), longitude(1,1,1,1,1,1), &
-                  nvert,latitude_vertices(1,1,1,1,1,1,1), &
-                  longitude_vertices(1,1,1,1,1,1,1))
-!!$          endif
-       else
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_noblon_double(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1,1,1,1,1), longitude(1,1,1,1,1,1), &
-!!$                  nvert,latitude_vertices(1,1,1,1,1,1,1), &
-!!$                  area(1,1,1,1,1,1))
-!!$          else
-             ierr = cmor_grid_cff_nobloar_double(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1,1,1,1,1), longitude(1,1,1,1,1,1), &
-                  nvert,latitude_vertices(1,1,1,1,1,1,1))
-!!$          endif
-       endif
-    else
-       if (present(longitude_vertices)) then
-          nvert = size(latitude_vertices,ndims+1)
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_noblat_double(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1,1,1,1,1), longitude(1,1,1,1,1,1), &
-!!$                  nvert,longitude_vertices(1,1,1,1,1,1,1), &
-!!$                  area(1,1,1,1,1,1))
-!!$          else
-             ierr = cmor_grid_cff_noblaar_double(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1,1,1,1,1), longitude(1,1,1,1,1,1), &
-                  nvert,longitude_vertices(1,1,1,1,1,1,1))
-!!$          endif
-       else
-          nvert=0
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_nobnds_double(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1,1,1,1,1), longitude(1,1,1,1,1,1), &
-!!$                  nvert, &
-!!$                  area(1,1,1,1,1,1))
-!!$          else
-             ierr = cmor_grid_cff_nothg_double(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1,1,1,1,1), longitude(1,1,1,1,1,1), &
-                  nvert)
-!!$          endif
-       endif
-    endif
-    if (ierr.eq.0) then
-       ierr = grid_id
-    endif
-  end function cmor_grid_6d_d
-
-
-
-
-
-  function cmor_grid_1d_i(axis_ids,latitude,longitude,&
-       latitude_vertices,longitude_vertices) result(ierr)
-    implicit none
-    integer axis_ids(:)
-    INTEGER latitude(:),longitude(:)
-    INTEGER,OPTIONAL :: latitude_vertices(:,:)
-    INTEGER,OPTIONAL :: longitude_vertices(:,:)
-!!$    INTEGER,OPTIONAL :: area(:)
-    integer ierr,grid_id,ndims,nvert,error_code
-    character(1024) msg
-    integer i
-    integer, dimension(10)::  axes_ids
-    
-    ndims = 1
-    do i = 1, ndims
-       axes_ids(i) = axis_ids(ndims-i+1)
-    enddo
-    if (present(latitude_vertices)) then
-       nvert = size(latitude_vertices,ndims+1)
-       if (present(longitude_vertices)) then
-          if (size(longitude_vertices,ndims+1).ne.nvert) then
-             msg = 'cmor_grid (fortran):: longitudes and latitudes'//&
-                  'vertices do not have the same number of vertices'//char(0)
-             error_code = CMOR_CRITICAL
-             call cmor_handle_error(msg,error_code)
-          endif
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_int(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1), longitude(1), &
-!!$                  nvert,latitude_vertices(1,1), &
-!!$                  longitude_vertices(1,1), area(1))
-!!$          else
-             ierr = cmor_grid_cff_noarea_int(grid_id,ndims,axes_ids(1),&
-                  latitude(1), longitude(1), &
-                  nvert,latitude_vertices(1,1), &
-                  longitude_vertices(1,1))
-!!$          endif
-       else
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_noblon_int(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1), longitude(1), &
-!!$                  nvert,latitude_vertices(1,1), &
-!!$                  area(1))
-!!$          else
-             ierr = cmor_grid_cff_nobloar_int(grid_id,ndims,axes_ids(1),&
-                  latitude(1), longitude(1), &
-                  nvert,latitude_vertices(1,1))
-!!$          endif
-       endif
-    else
-       if (present(longitude_vertices)) then
-          nvert = size(latitude_vertices,ndims+1)
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_noblat_int(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1), longitude(1), &
-!!$                  nvert,longitude_vertices(1,1), &
-!!$                  area(1))
-!!$          else
-             ierr = cmor_grid_cff_noblaar_int(grid_id,ndims,axes_ids(1),&
-                  latitude(1), longitude(1), &
-                  nvert,longitude_vertices(1,1))
-!!$          endif
-       else
-          nvert=0
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_nobnds_int(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1), longitude(1), &
-!!$                  nvert, &
-!!$                  area(1))
-!!$          else
-             ierr = cmor_grid_cff_nothg_int(grid_id,ndims,axes_ids(1),&
-                  latitude(1), longitude(1), &
-                  nvert)
-!!$          endif
-       endif
-    endif
-    if (ierr.eq.0) then
-       ierr = grid_id
-    endif
-  end function cmor_grid_1d_i
-  function cmor_grid_2d_i(axis_ids,latitude,longitude,&
-       latitude_vertices,longitude_vertices) result(ierr)
-    implicit none
-    integer axis_ids(:)
-    INTEGER latitude(:,:),longitude(:,:)
-    INTEGER,OPTIONAL :: latitude_vertices(:,:,:)
-    INTEGER,OPTIONAL :: longitude_vertices(:,:,:)
-!!$    INTEGER,OPTIONAL :: area(:,:)
-    integer ierr,grid_id,ndims,nvert,error_code
-    character(1024) msg
-    integer i
-    integer, dimension(10)::  axes_ids
-    
-    ndims = 2
-    do i = 1, ndims
-       axes_ids(i) = axis_ids(ndims-i+1)
-    enddo
-    if (present(latitude_vertices)) then
-       nvert = size(latitude_vertices,ndims+1)
-       if (present(longitude_vertices)) then
-          if (size(longitude_vertices,ndims+1).ne.nvert) then
-             msg = 'cmor_grid (fortran):: longitudes and latitudes'//&
-                  'vertices do not have the same number of vertices'//char(0)
-             error_code = CMOR_CRITICAL
-             call cmor_handle_error(msg,error_code)
-          endif
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_int(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1), longitude(1,1), &
-!!$                  nvert,latitude_vertices(1,1,1), &
-!!$                  longitude_vertices(1,1,1), area(1,1))
-!!$          else
-             ierr = cmor_grid_cff_noarea_int(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1), longitude(1,1), &
-                  nvert,latitude_vertices(1,1,1), &
-                  longitude_vertices(1,1,1))
-!!$          endif
-       else
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_noblon_int(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1), longitude(1,1), &
-!!$                  nvert,latitude_vertices(1,1,1), &
-!!$                  area(1,1))
-!!$          else
-             ierr = cmor_grid_cff_nobloar_int(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1), longitude(1,1), &
-                  nvert,latitude_vertices(1,1,1))
-!!$          endif
-       endif
-    else
-       if (present(longitude_vertices)) then
-          nvert = size(latitude_vertices,ndims+1)
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_noblat_int(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1), longitude(1,1), &
-!!$                  nvert,longitude_vertices(1,1,1), &
-!!$                  area(1,1))
-!!$          else
-             ierr = cmor_grid_cff_noblaar_int(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1), longitude(1,1), &
-                  nvert,longitude_vertices(1,1,1))
-!!$          endif
-       else
-          nvert=0
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_nobnds_int(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1), longitude(1,1), &
-!!$                  nvert, &
-!!$                  area(1,1))
-!!$          else
-             ierr = cmor_grid_cff_nothg_int(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1), longitude(1,1), &
-                  nvert)
-!!$          endif
-       endif
-    endif
-    if (ierr.eq.0) then
-       ierr = grid_id
-    endif
-  end function cmor_grid_2d_i
-  function cmor_grid_3d_i(axis_ids,latitude,longitude,&
-       latitude_vertices,longitude_vertices) result(ierr)
-    implicit none
-    integer axis_ids(:)
-    INTEGER latitude(:,:,:),longitude(:,:,:)
-    INTEGER,OPTIONAL :: latitude_vertices(:,:,:,:)
-    INTEGER,OPTIONAL :: longitude_vertices(:,:,:,:)
-!!$    INTEGER,OPTIONAL :: area(:,:,:)
-    integer ierr,grid_id,ndims,nvert,error_code
-    character(1024) msg
-    integer i
-    integer, dimension(10)::  axes_ids
-    
-    ndims = 3
-    do i = 1, ndims
-       axes_ids(i) = axis_ids(ndims-i+1)
-    enddo
-    if (present(latitude_vertices)) then
-       nvert = size(latitude_vertices,ndims+1)
-       if (present(longitude_vertices)) then
-          if (size(longitude_vertices,ndims+1).ne.nvert) then
-             msg = 'cmor_grid (fortran):: longitudes and latitudes'//&
-                  'vertices do not have the same number of vertices'//char(0)
-             error_code = CMOR_CRITICAL
-             call cmor_handle_error(msg,error_code)
-          endif
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_int(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1,1), longitude(1,1,1), &
-!!$                  nvert,latitude_vertices(1,1,1,1), &
-!!$                  longitude_vertices(1,1,1,1), area(1,1,1))
-!!$          else
-             ierr = cmor_grid_cff_noarea_int(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1,1), longitude(1,1,1), &
-                  nvert,latitude_vertices(1,1,1,1), &
-                  longitude_vertices(1,1,1,1))
-!!$          endif
-       else
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_noblon_int(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1,1), longitude(1,1,1), &
-!!$                  nvert,latitude_vertices(1,1,1,1), &
-!!$                  area(1,1,1))
-!!$          else
-             ierr = cmor_grid_cff_nobloar_int(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1,1), longitude(1,1,1), &
-                  nvert,latitude_vertices(1,1,1,1))
-!!$          endif
-       endif
-    else
-       if (present(longitude_vertices)) then
-          nvert = size(latitude_vertices,ndims+1)
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_noblat_int(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1,1), longitude(1,1,1), &
-!!$                  nvert,longitude_vertices(1,1,1,1), &
-!!$                  area(1,1,1))
-!!$          else
-             ierr = cmor_grid_cff_noblaar_int(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1,1), longitude(1,1,1), &
-                  nvert,longitude_vertices(1,1,1,1))
-!!$          endif
-       else
-          nvert=0
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_nobnds_int(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1,1), longitude(1,1,1), &
-!!$                  nvert, &
-!!$                  area(1,1,1))
-!!$          else
-             ierr = cmor_grid_cff_nothg_int(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1,1), longitude(1,1,1), &
-                  nvert)
-!!$          endif
-       endif
-    endif
-    if (ierr.eq.0) then
-       ierr = grid_id
-    endif
-  end function cmor_grid_3d_i
-  function cmor_grid_4d_i(axis_ids,latitude,longitude,&
-       latitude_vertices,longitude_vertices) result(ierr)
-    implicit none
-    integer axis_ids(:)
-    INTEGER latitude(:,:,:,:),longitude(:,:,:,:)
-    INTEGER,OPTIONAL :: latitude_vertices(:,:,:,:,:)
-    INTEGER,OPTIONAL :: longitude_vertices(:,:,:,:,:)
-!!$    INTEGER,OPTIONAL :: area(:,:,:,:)
-    integer ierr,grid_id,ndims,nvert,error_code
-    character(1024) msg
-    integer i
-    integer, dimension(10)::  axes_ids
-    
-    ndims = 4
-    do i = 1, ndims
-       axes_ids(i) = axis_ids(ndims-i+1)
-    enddo
-    if (present(latitude_vertices)) then
-       nvert = size(latitude_vertices,ndims+1)
-       if (present(longitude_vertices)) then
-          if (size(longitude_vertices,ndims+1).ne.nvert) then
-             msg = 'cmor_grid (fortran):: longitudes and latitudes'//&
-                  'vertices do not have the same number of vertices'//char(0)
-             error_code = CMOR_CRITICAL
-             call cmor_handle_error(msg,error_code)
-          endif
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_int(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1,1,1), longitude(1,1,1,1), &
-!!$                  nvert,latitude_vertices(1,1,1,1,1), &
-!!$                  longitude_vertices(1,1,1,1,1), area(1,1,1,1))
-!!$          else
-             ierr = cmor_grid_cff_noarea_int(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1,1,1), longitude(1,1,1,1), &
-                  nvert,latitude_vertices(1,1,1,1,1), &
-                  longitude_vertices(1,1,1,1,1))
-!!$          endif
-       else
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_noblon_int(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1,1,1), longitude(1,1,1,1), &
-!!$                  nvert,latitude_vertices(1,1,1,1,1), &
-!!$                  area(1,1,1,1))
-!!$          else
-             ierr = cmor_grid_cff_nobloar_int(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1,1,1), longitude(1,1,1,1), &
-                  nvert,latitude_vertices(1,1,1,1,1))
-!!$          endif
-       endif
-    else
-       if (present(longitude_vertices)) then
-          nvert = size(latitude_vertices,ndims+1)
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_noblat_int(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1,1,1), longitude(1,1,1,1), &
-!!$                  nvert,longitude_vertices(1,1,1,1,1), &
-!!$                  area(1,1,1,1))
-!!$          else
-             ierr = cmor_grid_cff_noblaar_int(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1,1,1), longitude(1,1,1,1), &
-                  nvert,longitude_vertices(1,1,1,1,1))
-!!$          endif
-       else
-          nvert=0
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_nobnds_int(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1,1,1), longitude(1,1,1,1), &
-!!$                  nvert, &
-!!$                  area(1,1,1,1))
-!!$          else
-             ierr = cmor_grid_cff_nothg_int(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1,1,1), longitude(1,1,1,1), &
-                  nvert)
-!!$          endif
-       endif
-    endif
-    if (ierr.eq.0) then
-       ierr = grid_id
-    endif
-  end function cmor_grid_4d_i
-  function cmor_grid_5d_i(axis_ids,latitude,longitude,&
-       latitude_vertices,longitude_vertices) result(ierr)
-    implicit none
-    integer axis_ids(:)
-    INTEGER latitude(:,:,:,:,:),longitude(:,:,:,:,:)
-    INTEGER,OPTIONAL :: latitude_vertices(:,:,:,:,:,:)
-    INTEGER,OPTIONAL :: longitude_vertices(:,:,:,:,:,:)
-!!$    INTEGER,OPTIONAL :: area(:,:,:,:,:)
-    integer ierr,grid_id,ndims,nvert,error_code
-    character(1024) msg
-    integer i
-    integer, dimension(10)::  axes_ids
-    
-    ndims = 5
-    do i = 1, ndims
-       axes_ids(i) = axis_ids(ndims-i+1)
-    enddo
-    if (present(latitude_vertices)) then
-       nvert = size(latitude_vertices,ndims+1)
-       if (present(longitude_vertices)) then
-          if (size(longitude_vertices,ndims+1).ne.nvert) then
-             msg = 'cmor_grid (fortran):: longitudes and latitudes'//&
-                  'vertices do not have the same number of vertices'//char(0)
-             error_code = CMOR_CRITICAL
-             call cmor_handle_error(msg,error_code)
-          endif
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_int(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1,1,1,1), longitude(1,1,1,1,1), &
-!!$                  nvert,latitude_vertices(1,1,1,1,1,1), &
-!!$                  longitude_vertices(1,1,1,1,1,1), area(1,1,1,1,1))
-!!$          else
-             ierr = cmor_grid_cff_noarea_int(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1,1,1,1), longitude(1,1,1,1,1), &
-                  nvert,latitude_vertices(1,1,1,1,1,1), &
-                  longitude_vertices(1,1,1,1,1,1))
-!!$          endif
-       else
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_noblon_int(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1,1,1,1), longitude(1,1,1,1,1), &
-!!$                  nvert,latitude_vertices(1,1,1,1,1,1), &
-!!$                  area(1,1,1,1,1))
-!!$          else
-             ierr = cmor_grid_cff_nobloar_int(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1,1,1,1), longitude(1,1,1,1,1), &
-                  nvert,latitude_vertices(1,1,1,1,1,1))
-!!$          endif
-       endif
-    else
-       if (present(longitude_vertices)) then
-          nvert = size(latitude_vertices,ndims+1)
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_noblat_int(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1,1,1,1), longitude(1,1,1,1,1), &
-!!$                  nvert,longitude_vertices(1,1,1,1,1,1), &
-!!$                  area(1,1,1,1,1))
-!!$          else
-             ierr = cmor_grid_cff_noblaar_int(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1,1,1,1), longitude(1,1,1,1,1), &
-                  nvert,longitude_vertices(1,1,1,1,1,1))
-!!$          endif
-       else
-          nvert=0
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_nobnds_int(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1,1,1,1), longitude(1,1,1,1,1), &
-!!$                  nvert, &
-!!$                  area(1,1,1,1,1))
-!!$          else
-             ierr = cmor_grid_cff_nothg_int(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1,1,1,1), longitude(1,1,1,1,1), &
-                  nvert)
-!!$          endif
-       endif
-    endif
-    if (ierr.eq.0) then
-       ierr = grid_id
-    endif
-  end function cmor_grid_5d_i
-  function cmor_grid_6d_i(axis_ids,latitude,longitude,&
-       latitude_vertices,longitude_vertices) result(ierr)
-    implicit none
-    integer axis_ids(:)
-    INTEGER latitude(:,:,:,:,:,:),longitude(:,:,:,:,:,:)
-    INTEGER,OPTIONAL :: latitude_vertices(:,:,:,:,:,:,:)
-    INTEGER,OPTIONAL :: longitude_vertices(:,:,:,:,:,:,:)
-!!$    INTEGER,OPTIONAL :: area(:,:,:,:,:,:)
-    integer ierr,grid_id,ndims,nvert,error_code
-    character(1024) msg
-    integer i
-    integer, dimension(10)::  axes_ids
-    
-    ndims = 6
-    do i = 1, ndims
-       axes_ids(i) = axis_ids(ndims-i+1)
-    enddo
-    if (present(latitude_vertices)) then
-       nvert = size(latitude_vertices,ndims+1)
-       if (present(longitude_vertices)) then
-          if (size(longitude_vertices,ndims+1).ne.nvert) then
-             msg = 'cmor_grid (fortran):: longitudes and latitudes'//&
-                  'vertices do not have the same number of vertices'//char(0)
-             error_code = CMOR_CRITICAL
-             call cmor_handle_error(msg,error_code)
-          endif
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_int(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1,1,1,1,1), longitude(1,1,1,1,1,1), &
-!!$                  nvert,latitude_vertices(1,1,1,1,1,1,1), &
-!!$                  longitude_vertices(1,1,1,1,1,1,1), area(1,1,1,1,1,1))
-!!$          else
-             ierr = cmor_grid_cff_noarea_int(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1,1,1,1,1), longitude(1,1,1,1,1,1), &
-                  nvert,latitude_vertices(1,1,1,1,1,1,1), &
-                  longitude_vertices(1,1,1,1,1,1,1))
-!!$          endif
-       else
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_noblon_int(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1,1,1,1,1), longitude(1,1,1,1,1,1), &
-!!$                  nvert,latitude_vertices(1,1,1,1,1,1,1), &
-!!$                  area(1,1,1,1,1,1))
-!!$          else
-             ierr = cmor_grid_cff_nobloar_int(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1,1,1,1,1), longitude(1,1,1,1,1,1), &
-                  nvert,latitude_vertices(1,1,1,1,1,1,1))
-!!$          endif
-       endif
-    else
-       if (present(longitude_vertices)) then
-          nvert = size(latitude_vertices,ndims+1)
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_noblat_int(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1,1,1,1,1), longitude(1,1,1,1,1,1), &
-!!$                  nvert,longitude_vertices(1,1,1,1,1,1,1), &
-!!$                  area(1,1,1,1,1,1))
-!!$          else
-             ierr = cmor_grid_cff_noblaar_int(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1,1,1,1,1), longitude(1,1,1,1,1,1), &
-                  nvert,longitude_vertices(1,1,1,1,1,1,1))
-!!$          endif
-       else
-          nvert=0
-!!$          if (present(area)) then
-!!$             ierr = cmor_grid_cff_nobnds_int(grid_id,ndims,axes_ids(1),&
-!!$                  latitude(1,1,1,1,1,1), longitude(1,1,1,1,1,1), &
-!!$                  nvert, &
-!!$                  area(1,1,1,1,1,1))
-!!$          else
-             ierr = cmor_grid_cff_nothg_int(grid_id,ndims,axes_ids(1),&
-                  latitude(1,1,1,1,1,1), longitude(1,1,1,1,1,1), &
-                  nvert)
-!!$          endif
-       endif
-    endif
-    if (ierr.eq.0) then
-       ierr = grid_id
-    endif
-  end function cmor_grid_6d_i
-
-
-  FUNCTION cmor_write_1d_r(var_id, data, file_suffix, ntimes_passed,  &
-        time_vals,time_bnds,store_with) RESULT(ierr)
-    implicit none
-    REAL, target :: data(:)
-    REAL, pointer :: mdata(:)
-    real, pointer :: pdata(:)
-    INTEGER, INTENT(in) ::var_id
-    CHARACTER(len=*), INTENT(in), OPTIONAL :: file_suffix
-    INTEGER, INTENT(in), OPTIONAL :: ntimes_passed
-    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_vals(:)
-    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_bnds(:,:)
-    INTEGER, INTENT(in), OPTIONAL :: store_with
-    integer refvar,ierr,ntp,did_malloc,vshape(7)
-    character(1024) suf
-    call cmor_get_original_shape_cff(var_id,vshape(1))
-    if (present(ntimes_passed)) then 
-       did_malloc = cmor_ftn_map_data(vshape,pdata,data,mdata,ntimes_passed)
-    else
-       ierr = cmor_ftn_get_tlen_cff(var_id)
-       did_malloc = cmor_ftn_map_data(vshape,pdata,data,mdata,ierr)
-    endif
-    if (present(file_suffix)) then
-       suf = trim(file_suffix)//char(0)
-    else
-       suf = char(0)
-    endif
-
-    if (present(store_with)) then
-       refvar = store_with
-    else
-       refvar = -1 ! means do not pass it
-    end if
-    if (present(ntimes_passed)) then
-       ntp = ntimes_passed
-    else
-       ntp=0
-    endif
-    if (present(time_vals)) then
-       if (ntp==0) ntp = size(time_vals)
-       if (present(time_bnds)) then
-          ierr = cmor_write_cff_real(var_id,pdata(1),suf,ntp,&
-               time_vals(1),time_bnds(1,1),refvar)
-       else
-          ierr = cmor_write_cff_real_nobnds(var_id,pdata(1),suf,ntp,&
-               time_vals(1),refvar)
-       end if
-    else
-       ierr = cmor_write_cff_real_notime(var_id,pdata(1),suf,ntp,&
-            refvar)
-    endif
-    if (did_malloc.eq.1) then
-       deallocate(mdata)
-    endif
-    nullify(pdata)
-    
-  END FUNCTION cmor_write_1d_r
-  FUNCTION cmor_write_2d_r(var_id, data, file_suffix, ntimes_passed,  &
-        time_vals,time_bnds,store_with) RESULT(ierr)
-    implicit none
-    REAL,target :: data(:,:)
-    REAL,pointer :: mdata(:,:)
-    REAL, pointer :: pdata(:,:)
-    INTEGER, INTENT(in) ::var_id
-    CHARACTER(len=*), INTENT(in), OPTIONAL :: file_suffix
-    INTEGER, INTENT(in), OPTIONAL :: ntimes_passed
-    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_vals(:)
-    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_bnds(:,:)
-    INTEGER, INTENT(in), OPTIONAL :: store_with
-    integer refvar,ierr,ntp,did_malloc,vshape(7)
-    character(1024) suf
-    call cmor_get_original_shape_cff(var_id,vshape(1))
-    if (present(ntimes_passed)) then 
-       did_malloc = cmor_ftn_map_data(vshape,pdata,data,mdata,ntimes_passed)
-    else
-       ierr = cmor_ftn_get_tlen_cff(var_id)
-       did_malloc = cmor_ftn_map_data(vshape,pdata,data,mdata,ierr)
-    endif
-    if (present(file_suffix)) then
-       suf = trim(file_suffix)//char(0)
-    else
-       suf = char(0)
-    endif
-
-    if (present(store_with)) then
-       refvar = store_with
-    else
-       refvar = -1 ! means do not pass it
-    end if
-    if (present(ntimes_passed)) then
-       ntp = ntimes_passed
-    else
-       ntp=0
-    endif
-    if (present(time_vals)) then
-       if (ntp==0) ntp = size(time_vals)
-       if (present(time_bnds)) then
-          ierr = cmor_write_cff_real(var_id,pdata(1,1),suf,ntp,&
-               time_vals(1),time_bnds(1,1),refvar)
-       else
-          ierr = cmor_write_cff_real_nobnds(var_id,pdata(1,1),suf,ntp,&
-               time_vals(1),refvar)
-       end if
-    else
-       ierr = cmor_write_cff_real_notime(var_id,pdata(1,1),suf,ntp,&
-            refvar)
-    endif
-    if (did_malloc.eq.1) then
-       deallocate(mdata)
-    endif
-    nullify(pdata)
-    
-  END FUNCTION cmor_write_2d_r
-  FUNCTION cmor_write_3d_r(var_id, data, file_suffix, ntimes_passed,  &
-        time_vals,time_bnds,store_with) RESULT(ierr)
-    implicit none
-    REAL, target :: data(:,:,:)
-    REAL, pointer :: mdata(:,:,:)
-    REAL, pointer :: pdata(:,:,:)
-    INTEGER, INTENT(in) ::var_id
-    CHARACTER(len=*), INTENT(in), OPTIONAL :: file_suffix
-    INTEGER, INTENT(in), OPTIONAL :: ntimes_passed
-    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_vals(:)
-    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_bnds(:,:)
-    INTEGER, INTENT(in), OPTIONAL :: store_with
-    integer refvar,ierr,ntp,did_malloc,vshape(7)
-    character(1024) suf
-
-    call cmor_get_original_shape_cff(var_id,vshape(1))
-    if (present(ntimes_passed)) then 
-       did_malloc = cmor_ftn_map_data(vshape,pdata,data,mdata,ntimes_passed)
-    else
-       ierr = cmor_ftn_get_tlen_cff(var_id)
-       did_malloc = cmor_ftn_map_data(vshape,pdata,data,mdata,ierr)
-    endif
-    if (present(file_suffix)) then
-       suf = trim(file_suffix)//char(0)
-    else
-       suf = char(0)
-    endif
-
-    if (present(store_with)) then
-       refvar = store_with
-    else
-       refvar = -1 ! means do not pass it
-    end if
-    if (present(ntimes_passed)) then
-       ntp = ntimes_passed
-    else
-       ntp=0
-    endif
-    if (present(time_vals)) then
-       if (ntp==0) ntp = size(time_vals)
-       if (present(time_bnds)) then
-          ierr = cmor_write_cff_real(var_id,pdata(1,1,1),suf,ntp,&
-               time_vals(1),time_bnds(1,1),refvar)
-       else
-          ierr = cmor_write_cff_real_nobnds(var_id,pdata(1,1,1),suf,ntp,&
-               time_vals(1),refvar)
-       end if
-    else
-       ierr = cmor_write_cff_real_notime(var_id,pdata(1,1,1),suf,ntp,&
-            refvar)
-    endif
-    if (did_malloc.eq.1) then
-       deallocate(mdata)
-    endif
-       nullify(pdata)
-   
-  END FUNCTION cmor_write_3d_r
-  FUNCTION cmor_write_4d_r(var_id, data, file_suffix, ntimes_passed,  &
-        time_vals,time_bnds,store_with) RESULT(ierr)
-    implicit none
-    REAL, target :: data(:,:,:,:)
-    REAL, pointer :: mdata(:,:,:,:)
-    REAL, pointer :: pdata(:,:,:,:)
-    INTEGER, INTENT(in) ::var_id
-    CHARACTER(len=*), INTENT(in), OPTIONAL :: file_suffix
-    INTEGER, INTENT(in), OPTIONAL :: ntimes_passed
-    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_vals(:)
-    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_bnds(:,:)
-    INTEGER, INTENT(in), OPTIONAL :: store_with
-    integer refvar,ierr,ntp,vshape(7),did_malloc
-    character(1024) suf
-    call cmor_get_original_shape_cff(var_id,vshape(1))
-    if (present(ntimes_passed)) then 
-       did_malloc = cmor_ftn_map_data(vshape,pdata,data,mdata,ntimes_passed)
-    else
-       ierr = cmor_ftn_get_tlen_cff(var_id)
-       did_malloc = cmor_ftn_map_data(vshape,pdata,data,mdata,ierr)
-    endif
-    if (present(file_suffix)) then
-       suf = trim(file_suffix)//char(0)
-    else
-       suf = char(0)
-    endif
-
-    if (present(store_with)) then
-       refvar = store_with
-    else
-       refvar = -1 ! means do not pass it
-    end if
-    if (present(ntimes_passed)) then
-       ntp = ntimes_passed
-    else
-       ntp=0
-    endif
-    if (present(time_vals)) then
-       if (ntp==0) ntp = size(time_vals)
-       if (present(time_bnds)) then
-          ierr = cmor_write_cff_real(var_id,pdata(1,1,1,1),suf,ntp,&
-               time_vals(1),time_bnds(1,1),refvar)
-       else
-          ierr = cmor_write_cff_real_nobnds(var_id,pdata(1,1,1,1),suf,ntp,&
-               time_vals(1),refvar)
-       end if
-    else
-       ierr = cmor_write_cff_real_notime(var_id,pdata(1,1,1,1),suf,ntp,&
-            refvar)
-    endif
-    if (did_malloc.eq.1) then
-       deallocate(mdata)
-    endif
-       nullify(pdata)
-  END FUNCTION cmor_write_4d_r
-  FUNCTION cmor_write_5d_r(var_id, data, file_suffix, ntimes_passed,  &
-        time_vals,time_bnds,store_with) RESULT(ierr)
-    implicit none
-    REAL, target :: data(:,:,:,:,:)
-    REAL, pointer :: mdata(:,:,:,:,:)
-    REAL, pointer :: pdata(:,:,:,:,:)
-    INTEGER, INTENT(in) ::var_id
-    CHARACTER(len=*), INTENT(in), OPTIONAL :: file_suffix
-    INTEGER, INTENT(in), OPTIONAL :: ntimes_passed
-    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_vals(:)
-    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_bnds(:,:)
-    INTEGER, INTENT(in), OPTIONAL :: store_with
-    integer refvar,ierr,ntp,did_malloc,vshape(7)
-    character(1024) suf
-    call cmor_get_original_shape_cff(var_id,vshape(1))
-    if (present(ntimes_passed)) then 
-       did_malloc = cmor_ftn_map_data(vshape,pdata,data,mdata,ntimes_passed)
-    else
-       ierr = cmor_ftn_get_tlen_cff(var_id)
-       did_malloc = cmor_ftn_map_data(vshape,pdata,data,mdata,ierr)
-    endif
-    if (present(file_suffix)) then
-       suf = trim(file_suffix)//char(0)
-    else
-       suf = char(0)
-    endif
-
-    if (present(store_with)) then
-       refvar = store_with
-    else
-       refvar = -1 ! means do not pass it
-    end if
-    if (present(ntimes_passed)) then
-       ntp = ntimes_passed
-    else
-       ntp=0
-    endif
-    if (present(time_vals)) then
-       if (ntp==0) ntp = size(time_vals)
-       if (present(time_bnds)) then
-          ierr = cmor_write_cff_real(var_id,pdata(1,1,1,1,1),suf,ntp,&
-               time_vals(1),time_bnds(1,1),refvar)
-       else
-          ierr = cmor_write_cff_real_nobnds(var_id,pdata(1,1,1,1,1),suf,ntp,&
-               time_vals(1),refvar)
-       end if
-    else
-       ierr = cmor_write_cff_real_notime(var_id,pdata(1,1,1,1,1),suf,ntp,&
-            refvar)
-    endif
-    if (did_malloc.eq.1) then
-       deallocate(mdata)
-    endif
-    nullify(pdata)
-    
-  END FUNCTION cmor_write_5d_r
-  FUNCTION cmor_write_6d_r(var_id, data, file_suffix, ntimes_passed,  &
-        time_vals,time_bnds,store_with) RESULT(ierr)
-    implicit none
-    REAL, target :: data(:,:,:,:,:,:)
-    REAL, pointer :: mdata(:,:,:,:,:,:)
-    REAL, pointer :: pdata(:,:,:,:,:,:)
-    INTEGER, INTENT(in) ::var_id
-    CHARACTER(len=*), INTENT(in), OPTIONAL :: file_suffix
-    INTEGER, INTENT(in), OPTIONAL :: ntimes_passed
-    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_vals(:)
-    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_bnds(:,:)
-    INTEGER, INTENT(in), OPTIONAL :: store_with
-    integer refvar,ierr,ntp,did_malloc,vshape(7)
-    character(1024) suf
-    call cmor_get_original_shape_cff(var_id,vshape(1))
-    if (present(ntimes_passed)) then 
-       did_malloc = cmor_ftn_map_data(vshape,pdata,data,mdata,ntimes_passed)
-    else
-       ierr = cmor_ftn_get_tlen_cff(var_id)
-       did_malloc = cmor_ftn_map_data(vshape,pdata,data,mdata,ierr)
-    endif
-
-    if (present(file_suffix)) then
-       suf = trim(file_suffix)//char(0)
-    else
-       suf = char(0)
-    endif
-
-    if (present(store_with)) then
-       refvar = store_with
-    else
-       refvar = -1 ! means do not pass it
-    end if
-    if (present(ntimes_passed)) then
-       ntp = ntimes_passed
-    else
-       ntp=0
-    endif
-    if (present(time_vals)) then
-       if (ntp==0) ntp = size(time_vals)
-       if (present(time_bnds)) then
-          ierr = cmor_write_cff_real(var_id,pdata(1,1,1,1,1,1),suf,ntp,&
-               time_vals(1),time_bnds(1,1),refvar)
-       else
-          ierr = cmor_write_cff_real_nobnds(var_id,pdata(1,1,1,1,1,1),suf,ntp,&
-               time_vals(1),refvar)
-       end if
-    else
-       ierr = cmor_write_cff_real_notime(var_id,pdata(1,1,1,1,1,1),suf,ntp,&
-            refvar)
-    endif
-    if (did_malloc.eq.1) then
-       deallocate(mdata)
-    endif
-    nullify(pdata)
-   
-  END FUNCTION cmor_write_6d_r
-  FUNCTION cmor_write_7d_r(var_id, data, file_suffix, ntimes_passed,  &
-        time_vals,time_bnds,store_with) RESULT(ierr)
-    implicit none
-    REAL, target :: data(:,:,:,:,:,:,:)
-    REAL, pointer :: mdata(:,:,:,:,:,:,:)
-    REAL, pointer :: pdata(:,:,:,:,:,:,:)
-    INTEGER, INTENT(in) ::var_id
-    CHARACTER(len=*), INTENT(in), OPTIONAL :: file_suffix
-    INTEGER, INTENT(in), OPTIONAL :: ntimes_passed
-    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_vals(:)
-    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_bnds(:,:)
-    INTEGER, INTENT(in), OPTIONAL :: store_with
-    integer refvar,ierr,ntp,did_malloc,vshape(7)
-    character(1024) suf
-    call cmor_get_original_shape_cff(var_id,vshape(1))
-    if (present(ntimes_passed)) then 
-       did_malloc = cmor_ftn_map_data(vshape,pdata,data,mdata,ntimes_passed)
-    else
-       ierr = cmor_ftn_get_tlen_cff(var_id)
-       did_malloc = cmor_ftn_map_data(vshape,pdata,data,mdata,ierr)
-    endif
-    if (present(file_suffix)) then
-       suf = trim(file_suffix)//char(0)
-    else
-       suf = char(0)
-    endif
-
-    if (present(store_with)) then
-       refvar = store_with
-    else
-       refvar = -1 ! means do not pass it
-    end if
-    if (present(ntimes_passed)) then
-       ntp = ntimes_passed
-    else
-       ntp=0
-    endif
-    if (present(time_vals)) then
-       if (ntp==0) ntp = size(time_vals)
-       if (present(time_bnds)) then
-          ierr = cmor_write_cff_real(var_id,pdata(1,1,1,1,1,1,1),suf,ntp,&
-               time_vals(1),time_bnds(1,1),refvar)
-       else
-          ierr = cmor_write_cff_real_nobnds(var_id,pdata(1,1,1,1,1,1,1),suf,ntp,&
-               time_vals(1),refvar)
-       end if
-    else
-       ierr = cmor_write_cff_real_notime(var_id,pdata(1,1,1,1,1,1,1),suf,ntp,&
-            refvar)
-    endif
-    if (did_malloc.eq.1) then
-       deallocate(pdata)
-    endif
-    nullify(pdata)
-  END FUNCTION cmor_write_7d_r
-
-  FUNCTION cmor_write_1d_d(var_id, data, file_suffix, ntimes_passed,  &
-        time_vals,time_bnds,store_with) RESULT(ierr)
-    implicit none
-    DOUBLE PRECISION,target :: data(:)
-    DOUBLE PRECISION,pointer :: mdata(:)
-    DOUBLE PRECISION, pointer:: pdata(:)
-    INTEGER, INTENT(in) ::var_id
-    CHARACTER(len=*), INTENT(in), OPTIONAL :: file_suffix
-    INTEGER, INTENT(in), OPTIONAL :: ntimes_passed
-    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_vals(:)
-    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_bnds(:,:)
-    INTEGER, INTENT(in), OPTIONAL :: store_with
-    integer refvar,ierr,ntp,vshape(7),did_malloc
-    character(1024) suf
-    call cmor_get_original_shape_cff(var_id,vshape(1))
-    if (present(ntimes_passed)) then 
-       did_malloc = cmor_ftn_map_data(vshape,pdata,data,mdata,ntimes_passed)
-    else
-       did_malloc = cmor_ftn_map_data(vshape,pdata,data,mdata,1)
-    endif
-    if (present(file_suffix)) then
-       suf = trim(file_suffix)//char(0)
-    else
-       suf = char(0)
-    endif
-
-    if (present(store_with)) then
-       refvar = store_with
-    else
-       refvar = -1 ! means do not pass it
-    end if
-    if (present(ntimes_passed)) then
-       ntp = ntimes_passed
-    else
-       ntp=0
-    endif
-    if (present(time_vals)) then
-       if (ntp==0) ntp = size(time_vals)
-       if (present(time_bnds)) then
-          ierr = cmor_write_cff_double(var_id,pdata(1),suf,ntp,&
-               time_vals(1),time_bnds(1,1),refvar)
-       else
-          ierr = cmor_write_cff_double_nobnds(var_id,pdata(1),suf,ntp,&
-               time_vals(1),refvar)
-       end if
-    else
-       ierr = cmor_write_cff_double_notime(var_id,pdata(1),suf,ntp,&
-            refvar)
-    endif
-    if (did_malloc.eq.1) then
-       deallocate(mdata)
-    end if
-    nullify(pdata)
-  END FUNCTION cmor_write_1d_d
-  FUNCTION cmor_write_2d_d(var_id, data, file_suffix, ntimes_passed,  &
-        time_vals,time_bnds,store_with) RESULT(ierr)
-    implicit none
-    DOUBLE PRECISION,target :: data(:,:)
-    DOUBLE PRECISION,pointer :: mdata(:,:)
-    DOUBLE PRECISION, pointer :: pdata(:,:)
-    INTEGER, INTENT(in) ::var_id
-    CHARACTER(len=*), INTENT(in), OPTIONAL :: file_suffix
-    INTEGER, INTENT(in), OPTIONAL :: ntimes_passed
-    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_vals(:)
-    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_bnds(:,:)
-    INTEGER, INTENT(in), OPTIONAL :: store_with
-    integer refvar,ierr,ntp,did_malloc,vshape(7)
-    character(1024) suf
-    call cmor_get_original_shape_cff(var_id,vshape(1))
-    if (present(ntimes_passed)) then 
-       did_malloc = cmor_ftn_map_data(vshape,pdata,data,mdata,ntimes_passed)
-    else
-       ierr = cmor_ftn_get_tlen_cff(var_id)
-       did_malloc = cmor_ftn_map_data(vshape,pdata,data,mdata,ierr)
-    endif
-    if (present(file_suffix)) then
-       suf = trim(file_suffix)//char(0)
-    else
-       suf = char(0)
-    endif
-
-    if (present(store_with)) then
-       refvar = store_with
-    else
-       refvar = -1 ! means do not pass it
-    end if
-    if (present(ntimes_passed)) then
-       ntp = ntimes_passed
-    else
-       ntp=0
-    endif
-    if (present(time_vals)) then
-       if (ntp==0) ntp = size(time_vals)
-       if (present(time_bnds)) then
-          ierr = cmor_write_cff_double(var_id,data(1,1),suf,ntp,&
-               time_vals(1),time_bnds(1,1),refvar)
-       else
-          ierr = cmor_write_cff_double_nobnds(var_id,data(1,1),suf,ntp,&
-               time_vals(1),refvar)
-       end if
-    else
-       ierr = cmor_write_cff_double_notime(var_id,data(1,1),suf,ntp,&
-            refvar)
-    endif
-    if (did_malloc.eq.1) then
-       deallocate(mdata)
-    endif
-    nullify(pdata)
-   
-  END FUNCTION cmor_write_2d_d
-  FUNCTION cmor_write_3d_d(var_id, data, file_suffix, ntimes_passed,  &
-        time_vals,time_bnds,store_with) RESULT(ierr)
-    implicit none
-    DOUBLE PRECISION , target:: data(:,:,:)
-    DOUBLE PRECISION , pointer:: mdata(:,:,:)
-    DOUBLE PRECISION, pointer :: pdata(:,:,:)
-    INTEGER, INTENT(in) ::var_id
-    CHARACTER(len=*), INTENT(in), OPTIONAL :: file_suffix
-    INTEGER, INTENT(in), OPTIONAL :: ntimes_passed
-    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_vals(:)
-    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_bnds(:,:)
-    INTEGER, INTENT(in), OPTIONAL :: store_with
-    integer refvar,ierr,ntp,did_malloc,vshape(7)
-    character(1024) suf
-    call cmor_get_original_shape_cff(var_id,vshape(1))
-    if (present(ntimes_passed)) then 
-       did_malloc = cmor_ftn_map_data(vshape,pdata,data,mdata,ntimes_passed)
-    else
-       did_malloc = cmor_ftn_map_data(vshape,pdata,data,mdata,1)
-    endif
-    if (present(file_suffix)) then
-       suf = trim(file_suffix)//char(0)
-    else
-       suf = char(0)
-    endif
-
-    if (present(store_with)) then
-       refvar = store_with
-    else
-       refvar = -1 ! means do not pass it
-    end if
-    if (present(ntimes_passed)) then
-       ntp = ntimes_passed
-    else
-       ntp=0
-    endif
-    if (present(time_vals)) then
-       if (ntp==0) ntp = size(time_vals)
-       if (present(time_bnds)) then
-          ierr = cmor_write_cff_double(var_id,pdata(1,1,1),suf,ntp,&
-               time_vals(1),time_bnds(1,1),refvar)
-       else
-          ierr = cmor_write_cff_double_nobnds(var_id,pdata(1,1,1),suf,ntp,&
-               time_vals(1),refvar)
-       end if
-    else
-       ierr = cmor_write_cff_double_notime(var_id,pdata(1,1,1),suf,ntp,&
-            refvar)
-    endif
-    if (did_malloc.eq.1) then
-       deallocate(mdata)
-    endif
-    nullify(pdata)
-  END FUNCTION cmor_write_3d_d
-
-  FUNCTION cmor_write_4d_d(var_id, data, file_suffix, ntimes_passed,  &
-        time_vals,time_bnds,store_with) RESULT(ierr)
-    implicit none
-    DOUBLE PRECISION, INTENT(IN), target :: data(:,:,:,:)
-    DOUBLE PRECISION, pointer :: mdata(:,:,:,:)
-    INTEGER, INTENT(in) ::var_id
-    CHARACTER(len=*), INTENT(in), OPTIONAL :: file_suffix
-    INTEGER, INTENT(in), OPTIONAL :: ntimes_passed
-    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_vals(:)
-    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_bnds(:,:)
-    INTEGER, INTENT(in), OPTIONAL :: store_with
-    integer refvar,ierr,ntp
-    character(1024) suf
-    integer   vshape(7),did_malloc
-    double precision, pointer :: pdata(:,:,:,:)
-
-    call cmor_get_original_shape_cff(var_id,vshape(1))
-    if (present(ntimes_passed)) then 
-       did_malloc = cmor_ftn_map_data(vshape,pdata,data,mdata,ntimes_passed)
-    else
-       ierr = cmor_ftn_get_tlen_cff(var_id)
-       did_malloc = cmor_ftn_map_data(vshape,pdata,data,mdata,ierr)
-    endif
-    if (present(file_suffix)) then
-       suf = trim(file_suffix)//char(0)
-    else
-       suf = char(0)
-    endif
-
-    if (present(store_with)) then
-       refvar = store_with
-    else
-       refvar = -1 ! means do not pass it
-    end if
-    if (present(ntimes_passed)) then
-       ntp = ntimes_passed
-    else
-       ntp=0
-    endif
-    if (present(time_vals)) then
-       if (ntp==0) ntp = size(time_vals)
-       if (present(time_bnds)) then
-          ierr = cmor_write_cff_double(var_id,pdata(1,1,1,1),suf,ntp,&
-               time_vals(1),time_bnds(1,1),refvar)
-       else
-          ierr = cmor_write_cff_double_nobnds(var_id,pdata(1,1,1,1),suf,ntp,&
-               time_vals(1),refvar)
-       end if
-    else
-       ierr = cmor_write_cff_double_notime(var_id,pdata(1,1,1,1),suf,ntp,&
-            refvar)
-    endif
-    if (did_malloc.eq.1) deallocate(mdata)
-    nullify(pdata)
-  END FUNCTION cmor_write_4d_d
-  FUNCTION cmor_write_5d_d(var_id, data, file_suffix, ntimes_passed,  &
-        time_vals,time_bnds,store_with) RESULT(ierr)
-    implicit none
-    DOUBLE PRECISION, target :: data(:,:,:,:,:)
-    DOUBLE PRECISION, pointer :: mdata(:,:,:,:,:)
-    DOUBLE PRECISION, pointer :: pdata(:,:,:,:,:)
-    INTEGER, INTENT(in) ::var_id
-    CHARACTER(len=*), INTENT(in), OPTIONAL :: file_suffix
-    INTEGER, INTENT(in), OPTIONAL :: ntimes_passed
-    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_vals(:)
-    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_bnds(:,:)
-    INTEGER, INTENT(in), OPTIONAL :: store_with
-    integer refvar,ierr,ntp,did_malloc,vshape(7)
-    character(1024) suf
-    call cmor_get_original_shape_cff(var_id,vshape(1))
-    if (present(ntimes_passed)) then 
-       did_malloc = cmor_ftn_map_data(vshape,pdata,data,mdata,ntimes_passed)
-    else
-       did_malloc = cmor_ftn_map_data(vshape,pdata,data,mdata,1)
-    endif
-    if (present(file_suffix)) then
-       suf = trim(file_suffix)//char(0)
-    else
-       suf = char(0)
-    endif
-
-    if (present(store_with)) then
-       refvar = store_with
-    else
-       refvar = -1 ! means do not pass it
-    end if
-    if (present(ntimes_passed)) then
-       ntp = ntimes_passed
-    else
-       ntp=0
-    endif
-    if (present(time_vals)) then
-       if (ntp==0) ntp = size(time_vals)
-       if (present(time_bnds)) then
-          ierr = cmor_write_cff_double(var_id,pdata(1,1,1,1,1),suf,ntp,&
-               time_vals(1),time_bnds(1,1),refvar)
-       else
-          ierr = cmor_write_cff_double_nobnds(var_id,pdata(1,1,1,1,1),suf,ntp,&
-               time_vals(1),refvar)
-       end if
-    else
-       ierr = cmor_write_cff_double_notime(var_id,pdata(1,1,1,1,1),suf,ntp,&
-            refvar)
-    endif
-    if (did_malloc.eq.1) then
-       deallocate(mdata)
-    endif
-    nullify(pdata)
-  END FUNCTION cmor_write_5d_d
-  FUNCTION cmor_write_6d_d(var_id, data, file_suffix, ntimes_passed,  &
-        time_vals,time_bnds,store_with) RESULT(ierr)
-    implicit none
-    DOUBLE PRECISION,target :: data(:,:,:,:,:,:)
-    DOUBLE PRECISION,pointer :: mdata(:,:,:,:,:,:)
-    DOUBLE PRECISION, pointer :: pdata(:,:,:,:,:,:)
-    INTEGER, INTENT(in) ::var_id
-    CHARACTER(len=*), INTENT(in), OPTIONAL :: file_suffix
-    INTEGER, INTENT(in), OPTIONAL :: ntimes_passed
-    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_vals(:)
-    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_bnds(:,:)
-    INTEGER, INTENT(in), OPTIONAL :: store_with
-    integer refvar,ierr,ntp,did_malloc,vshape(7)
-    character(1024) suf
-    call cmor_get_original_shape_cff(var_id,vshape(1))
-    if (present(ntimes_passed)) then 
-       did_malloc = cmor_ftn_map_data(vshape,pdata,data,mdata,ntimes_passed)
-    else
-       ierr = cmor_ftn_get_tlen_cff(var_id)
-       did_malloc = cmor_ftn_map_data(vshape,pdata,data,mdata,ierr)
-    endif
-    if (present(file_suffix)) then
-       suf = trim(file_suffix)//char(0)
-    else
-       suf = char(0)
-    endif
-
-    if (present(store_with)) then
-       refvar = store_with
-    else
-       refvar = -1 ! means do not pass it
-    end if
-    if (present(ntimes_passed)) then
-       ntp = ntimes_passed
-    else
-       ntp=0
-    endif
-    if (present(time_vals)) then
-       if (ntp==0) ntp = size(time_vals)
-       if (present(time_bnds)) then
-          ierr = cmor_write_cff_double(var_id,pdata(1,1,1,1,1,1),suf,ntp,&
-               time_vals(1),time_bnds(1,1),refvar)
-       else
-          ierr = cmor_write_cff_double_nobnds(var_id,pdata(1,1,1,1,1,1),suf,ntp,&
-               time_vals(1),refvar)
-       end if
-    else
-       ierr = cmor_write_cff_double_notime(var_id,pdata(1,1,1,1,1,1),suf,ntp,&
-            refvar)
-    endif
-    if (did_malloc.eq.1) then
-       deallocate(pdata)
-    endif
-    nullify(pdata)
-    
-  END FUNCTION cmor_write_6d_d
-  FUNCTION cmor_write_7d_d(var_id, data, file_suffix, ntimes_passed,  &
-        time_vals,time_bnds,store_with) RESULT(ierr)
-    implicit none
-    DOUBLE PRECISION, target :: data(:,:,:,:,:,:,:)
-    DOUBLE PRECISION, pointer :: mdata(:,:,:,:,:,:,:)
-    DOUBLE PRECISION, pointer :: pdata(:,:,:,:,:,:,:)
-    INTEGER, INTENT(in) ::var_id
-    CHARACTER(len=*), INTENT(in), OPTIONAL :: file_suffix
-    INTEGER, INTENT(in), OPTIONAL :: ntimes_passed
-    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_vals(:)
-    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_bnds(:,:)
-    INTEGER, INTENT(in), OPTIONAL :: store_with
-    integer refvar,ierr,ntp,did_malloc,vshape(7)
-    character(1024) suf
-    call cmor_get_original_shape_cff(var_id,vshape(1))
-    if (present(ntimes_passed)) then 
-       did_malloc = cmor_ftn_map_data(vshape,pdata,data,mdata,ntimes_passed)
-    else
-       ierr = cmor_ftn_get_tlen_cff(var_id)
-       did_malloc = cmor_ftn_map_data(vshape,pdata,data,mdata,ierr)
-    endif
-    if (present(file_suffix)) then
-       suf = trim(file_suffix)//char(0)
-    else
-       suf = char(0)
-    endif
-
-    if (present(store_with)) then
-       refvar = store_with
-    else
-       refvar = -1 ! means do not pass it
-    end if
-    if (present(ntimes_passed)) then
-       ntp = ntimes_passed
-    else
-       ntp=0
-    endif
-    if (present(time_vals)) then
-       if (ntp==0) ntp = size(time_vals)
-       if (present(time_bnds)) then
-          ierr = cmor_write_cff_double(var_id,pdata(1,1,1,1,1,1,1),suf,ntp,&
-               time_vals(1),time_bnds(1,1),refvar)
-       else
-          ierr = cmor_write_cff_double_nobnds(var_id,pdata(1,1,1,1,1,1,1),suf,ntp,&
-               time_vals(1),refvar)
-       end if
-    else
-       ierr = cmor_write_cff_double_notime(var_id,pdata(1,1,1,1,1,1,1),suf,ntp,&
-            refvar)
-    endif
-    if (did_malloc.eq.1) then
-       deallocate(mdata)
-    endif
-    nullify(pdata)
-  END FUNCTION cmor_write_7d_d
-
-  FUNCTION cmor_write_1d_i(var_id, data, file_suffix, ntimes_passed,  &
-        time_vals,time_bnds,store_with) RESULT(ierr)
-    implicit none
-    INTEGER, target :: data(:)
-    INTEGER, pointer :: mdata(:)
-    INTEGER, pointer :: pdata(:)
-    INTEGER, INTENT(in) ::var_id
-    CHARACTER(len=*), INTENT(in), OPTIONAL :: file_suffix
-    INTEGER, INTENT(in), OPTIONAL :: ntimes_passed
-    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_vals(:)
-    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_bnds(:,:)
-    INTEGER, INTENT(in), OPTIONAL :: store_with
-    integer refvar,ierr,ntp,did_malloc,vshape(7)
-    character(1024) suf
-    call cmor_get_original_shape_cff(var_id,vshape(1))
-    if (present(ntimes_passed)) then 
-       did_malloc = cmor_ftn_map_data(vshape,pdata,data,mdata,ntimes_passed)
-    else
-       ierr = cmor_ftn_get_tlen_cff(var_id)
-       did_malloc = cmor_ftn_map_data(vshape,pdata,data,mdata,ierr)
-    endif
-    if (present(file_suffix)) then
-       suf = trim(file_suffix)//char(0)
-    else
-       suf = char(0)
-    endif
-
-    if (present(store_with)) then
-       refvar = store_with
-    else
-       refvar = -1 ! means do not pass it
-    end if
-    if (present(ntimes_passed)) then
-       ntp = ntimes_passed
-    else
-       ntp=0
-    endif
-    if (present(time_vals)) then
-       if (ntp==0) ntp = size(time_vals)
-       if (present(time_bnds)) then
-          ierr = cmor_write_cff_int(var_id,pdata(1),suf,ntp,&
-               time_vals(1),time_bnds(1,1),refvar)
-       else
-          ierr = cmor_write_cff_int_nobnds(var_id,pdata(1),suf,ntp,&
-               time_vals(1),refvar)
-       end if
-    else
-       ierr = cmor_write_cff_int_notime(var_id,pdata(1),suf,ntp,&
-            refvar)
-    endif
-    if (did_malloc.eq.1) then
-       deallocate(mdata)
-    endif
-    nullify(pdata)
-       
-  END FUNCTION cmor_write_1d_i
-  FUNCTION cmor_write_2d_i(var_id, data, file_suffix, ntimes_passed,  &
-        time_vals,time_bnds,store_with) RESULT(ierr)
-    implicit none
-    INTEGER,target :: data(:,:)
-    INTEGER,pointer :: mdata(:,:)
-    INTEGER, pointer :: pdata(:,:)
-    INTEGER, INTENT(in) ::var_id
-    CHARACTER(len=*), INTENT(in), OPTIONAL :: file_suffix
-    INTEGER, INTENT(in), OPTIONAL :: ntimes_passed
-    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_vals(:)
-    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_bnds(:,:)
-    INTEGER, INTENT(in), OPTIONAL :: store_with
-    integer refvar,ierr,ntp,did_malloc,vshape(7)
-    character(1024) suf
-    call cmor_get_original_shape_cff(var_id,vshape(1))
-    if (present(ntimes_passed)) then 
-       did_malloc = cmor_ftn_map_data(vshape,pdata,data,mdata,ntimes_passed)
-    else
-       ierr = cmor_ftn_get_tlen_cff(var_id)
-       did_malloc = cmor_ftn_map_data(vshape,pdata,data,mdata,ierr)
-    endif
-    if (present(file_suffix)) then
-       suf = trim(file_suffix)//char(0)
-    else
-       suf = char(0)
-    endif
-
-    if (present(store_with)) then
-       refvar = store_with
-    else
-       refvar = -1 ! means do not pass it
-    end if
-    if (present(ntimes_passed)) then
-       ntp = ntimes_passed
-    else
-       ntp=0
-    endif
-    if (present(time_vals)) then
-       if (ntp==0) ntp = size(time_vals)
-       if (present(time_bnds)) then
-          ierr = cmor_write_cff_int(var_id,data(1,1),suf,ntp,&
-               time_vals(1),time_bnds(1,1),refvar)
-       else
-          ierr = cmor_write_cff_int_nobnds(var_id,data(1,1),suf,ntp,&
-               time_vals(1),refvar)
-       end if
-    else
-       ierr = cmor_write_cff_int_notime(var_id,data(1,1),suf,ntp,&
-            refvar)
-    endif
-    if (did_malloc.eq.1) then
-       deallocate(mdata)
-    endif
-    nullify(pdata)
-    
-  END FUNCTION cmor_write_2d_i
-  FUNCTION cmor_write_3d_i(var_id, data, file_suffix, ntimes_passed,  &
-        time_vals,time_bnds,store_with) RESULT(ierr)
-    implicit none
-    INTEGER, target :: data(:,:,:)
-    INTEGER, pointer :: mdata(:,:,:)
-    INTEGER, pointer :: pdata(:,:,:)
-    INTEGER, INTENT(in) ::var_id
-    CHARACTER(len=*), INTENT(in), OPTIONAL :: file_suffix
-    INTEGER, INTENT(in), OPTIONAL :: ntimes_passed
-    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_vals(:)
-    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_bnds(:,:)
-    INTEGER, INTENT(in), OPTIONAL :: store_with
-    integer refvar,ierr,ntp,did_malloc,vshape(7)
-    character(1024) suf
-    call cmor_get_original_shape_cff(var_id,vshape(1))
-    if (present(ntimes_passed)) then 
-       did_malloc = cmor_ftn_map_data(vshape,pdata,data,mdata,ntimes_passed)
-    else
-       ierr = cmor_ftn_get_tlen_cff(var_id)
-       did_malloc = cmor_ftn_map_data(vshape,pdata,data,mdata,ierr)
-    endif
-    if (present(file_suffix)) then
-       suf = trim(file_suffix)//char(0)
-    else
-       suf = char(0)
-    endif
-
-    if (present(store_with)) then
-       refvar = store_with
-    else
-       refvar = -1 ! means do not pass it
-    end if
-    if (present(ntimes_passed)) then
-       ntp = ntimes_passed
-    else
-       ntp=0
-    endif
-    if (present(time_vals)) then
-       if (ntp==0) ntp = size(time_vals)
-       if (present(time_bnds)) then
-          ierr = cmor_write_cff_int(var_id,pdata(1,1,1),suf,ntp,&
-               time_vals(1),time_bnds(1,1),refvar)
-       else
-          ierr = cmor_write_cff_int_nobnds(var_id,pdata(1,1,1),suf,ntp,&
-               time_vals(1),refvar)
-       end if
-    else
-       ierr = cmor_write_cff_int_notime(var_id,pdata(1,1,1),suf,ntp,&
-            refvar)
-    endif
-    if (did_malloc.eq.1) then
-       deallocate(mdata)
-    endif
-    nullify(pdata)
-   
-  END FUNCTION cmor_write_3d_i
-  FUNCTION cmor_write_4d_i(var_id, data, file_suffix, ntimes_passed,  &
-        time_vals,time_bnds,store_with) RESULT(ierr)
-    implicit none
-    INTEGER, target :: data(:,:,:,:)
-    INTEGER, pointer :: mdata(:,:,:,:)
-    INTEGER, pointer :: pdata(:,:,:,:)
-    INTEGER, INTENT(in) ::var_id
-    CHARACTER(len=*), INTENT(in), OPTIONAL :: file_suffix
-    INTEGER, INTENT(in), OPTIONAL :: ntimes_passed
-    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_vals(:)
-    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_bnds(:,:)
-    INTEGER, INTENT(in), OPTIONAL :: store_with
-    integer refvar,ierr,ntp,did_malloc,vshape(7)
-    character(1024) suf
-    call cmor_get_original_shape_cff(var_id,vshape(1))
-    if (present(ntimes_passed)) then 
-       did_malloc = cmor_ftn_map_data(vshape,pdata,data,mdata,ntimes_passed)
-    else
-       ierr = cmor_ftn_get_tlen_cff(var_id)
-       did_malloc = cmor_ftn_map_data(vshape,pdata,data,mdata,ierr)
-    endif
-    if (present(file_suffix)) then
-       suf = trim(file_suffix)//char(0)
-    else
-       suf = char(0)
-    endif
-
-    if (present(store_with)) then
-       refvar = store_with
-    else
-       refvar = -1 ! means do not pass it
-    end if
-    if (present(ntimes_passed)) then
-       ntp = ntimes_passed
-    else
-       ntp=0
-    endif
-    if (present(time_vals)) then
-       if (ntp==0) ntp = size(time_vals)
-       if (present(time_bnds)) then
-          ierr = cmor_write_cff_int(var_id,pdata(1,1,1,1),suf,ntp,&
-               time_vals(1),time_bnds(1,1),refvar)
-       else
-          ierr = cmor_write_cff_int_nobnds(var_id,pdata(1,1,1,1),suf,ntp,&
-               time_vals(1),refvar)
-       end if
-    else
-       ierr = cmor_write_cff_int_notime(var_id,pdata(1,1,1,1),suf,ntp,&
-            refvar)
-    endif
-    if (did_malloc.eq.1) then
-       deallocate(mdata)
-    endif
-    nullify(pdata)
-   
-  END FUNCTION cmor_write_4d_i
-  FUNCTION cmor_write_5d_i(var_id, data, file_suffix, ntimes_passed,  &
-        time_vals,time_bnds,store_with) RESULT(ierr)
-    implicit none
-    INTEGER , target:: data(:,:,:,:,:)
-    INTEGER , pointer:: mdata(:,:,:,:,:)
-    INTEGER, pointer :: pdata(:,:,:,:,:)
-    INTEGER, INTENT(in) ::var_id
-    CHARACTER(len=*), INTENT(in), OPTIONAL :: file_suffix
-    INTEGER, INTENT(in), OPTIONAL :: ntimes_passed
-    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_vals(:)
-    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_bnds(:,:)
-    INTEGER, INTENT(in), OPTIONAL :: store_with
-    integer refvar,ierr,ntp,did_malloc,vshape(7)
-    character(1024) suf
-    call cmor_get_original_shape_cff(var_id,vshape(1))
-    if (present(ntimes_passed)) then 
-       did_malloc = cmor_ftn_map_data(vshape,pdata,data,mdata,ntimes_passed)
-    else
-       ierr = cmor_ftn_get_tlen_cff(var_id)
-       did_malloc = cmor_ftn_map_data(vshape,pdata,data,mdata,ierr)
-    endif
-    if (present(file_suffix)) then
-       suf = trim(file_suffix)//char(0)
-    else
-       suf = char(0)
-    endif
-
-    if (present(store_with)) then
-       refvar = store_with
-    else
-       refvar = -1 ! means do not pass it
-    end if
-    if (present(ntimes_passed)) then
-       ntp = ntimes_passed
-    else
-       ntp=0
-    endif
-    if (present(time_vals)) then
-       if (ntp==0) ntp = size(time_vals)
-       if (present(time_bnds)) then
-          ierr = cmor_write_cff_int(var_id,pdata(1,1,1,1,1),suf,ntp,&
-               time_vals(1),time_bnds(1,1),refvar)
-       else
-          ierr = cmor_write_cff_int_nobnds(var_id,pdata(1,1,1,1,1),suf,ntp,&
-               time_vals(1),refvar)
-       end if
-    else
-       ierr = cmor_write_cff_int_notime(var_id,pdata(1,1,1,1,1),suf,ntp,&
-            refvar)
-    endif
-    if (did_malloc.eq.1) then
-       deallocate(mdata)
-    endif
-    nullify(pdata)
-  END FUNCTION cmor_write_5d_i
-  FUNCTION cmor_write_6d_i(var_id, data, file_suffix, ntimes_passed,  &
-        time_vals,time_bnds,store_with) RESULT(ierr)
-    implicit none
-    INTEGER,target :: data(:,:,:,:,:,:)
-    INTEGER, pointer :: mdata(:,:,:,:,:,:)
-    INTEGER, pointer :: pdata(:,:,:,:,:,:)
-    INTEGER, INTENT(in) ::var_id
-    CHARACTER(len=*), INTENT(in), OPTIONAL :: file_suffix
-    INTEGER, INTENT(in), OPTIONAL :: ntimes_passed
-    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_vals(:)
-    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_bnds(:,:)
-    INTEGER, INTENT(in), OPTIONAL :: store_with
-    integer refvar,ierr,ntp,did_malloc,vshape(7)
-    character(1024) suf
-    call cmor_get_original_shape_cff(var_id,vshape(1))
-    if (present(ntimes_passed)) then 
-       did_malloc = cmor_ftn_map_data(vshape,pdata,data,mdata,ntimes_passed)
-    else
-       ierr = cmor_ftn_get_tlen_cff(var_id)
-       did_malloc = cmor_ftn_map_data(vshape,pdata,data,mdata,ierr)
-    endif
-    if (present(file_suffix)) then
-       suf = trim(file_suffix)//char(0)
-    else
-       suf = char(0)
-    endif
-
-    if (present(store_with)) then
-       refvar = store_with
-    else
-       refvar = -1 ! means do not pass it
-    end if
-    if (present(ntimes_passed)) then
-       ntp = ntimes_passed
-    else
-       ntp=0
-    endif
-    if (present(time_vals)) then
-       if (ntp==0) ntp = size(time_vals)
-       if (present(time_bnds)) then
-          ierr = cmor_write_cff_int(var_id,pdata(1,1,1,1,1,1),suf,ntp,&
-               time_vals(1),time_bnds(1,1),refvar)
-       else
-          ierr = cmor_write_cff_int_nobnds(var_id,pdata(1,1,1,1,1,1),suf,ntp,&
-               time_vals(1),refvar)
-       end if
-    else
-       ierr = cmor_write_cff_int_notime(var_id,pdata(1,1,1,1,1,1),suf,ntp,&
-            refvar)
-    endif
-    if (did_malloc.eq.1) then
-       deallocate(mdata)
-    end if
-    nullify(pdata)
-       
-  END FUNCTION cmor_write_6d_i
-  FUNCTION cmor_write_7d_i(var_id, data, file_suffix, ntimes_passed,  &
-        time_vals,time_bnds,store_with) RESULT(ierr)
-    implicit none
-    INTEGER, target :: data(:,:,:,:,:,:,:)
-    INTEGER, pointer :: mdata(:,:,:,:,:,:,:)
-    INTEGER, pointer :: pdata(:,:,:,:,:,:,:)
-    INTEGER, INTENT(in) ::var_id
-    CHARACTER(len=*), INTENT(in), OPTIONAL :: file_suffix
-    INTEGER, INTENT(in), OPTIONAL :: ntimes_passed
-    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_vals(:)
-    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_bnds(:,:)
-    INTEGER, INTENT(in), OPTIONAL :: store_with
-    integer refvar,ierr,ntp,did_malloc,vshape(7)
-    character(1024) suf
-    call cmor_get_original_shape_cff(var_id,vshape(1))
-    if (present(ntimes_passed)) then 
-       did_malloc = cmor_ftn_map_data(vshape,pdata,data,mdata,ntimes_passed)
-    else
-       ierr = cmor_ftn_get_tlen_cff(var_id)
-       did_malloc = cmor_ftn_map_data(vshape,pdata,data,mdata,ierr)
-    endif
-    if (present(file_suffix)) then
-       suf = trim(file_suffix)//char(0)
-    else
-       suf = char(0)
-    endif
-
-    if (present(store_with)) then
-       refvar = store_with
-    else
-       refvar = -1 ! means do not pass it
-    end if
-    if (present(ntimes_passed)) then
-       ntp = ntimes_passed
-    else
-       ntp=0
-    endif
-    if (present(time_vals)) then
-       if (ntp==0) ntp = size(time_vals)
-       if (present(time_bnds)) then
-          ierr = cmor_write_cff_int(var_id,pdata(1,1,1,1,1,1,1),suf,ntp,&
-               time_vals(1),time_bnds(1,1),refvar)
-       else
-          ierr = cmor_write_cff_int_nobnds(var_id,pdata(1,1,1,1,1,1,1),suf,ntp,&
-               time_vals(1),refvar)
-       end if
-    else
-       ierr = cmor_write_cff_int_notime(var_id,pdata(1,1,1,1,1,1,1),suf,ntp,&
-            refvar)
-    endif
-    if (did_malloc.eq.1) then
-       deallocate(mdata)
-    endif
-    nullify(pdata)
-
-  END FUNCTION cmor_write_7d_i
-
-!!$  FUNCTION cmor_write_1d_l(var_id, data, file_suffix, ntimes_passed,  &
-!!$        time_vals,time_bnds,store_with) RESULT(ierr)
-!!$    implicit none
-!!$    INTEGER (KIND=8), INTENT(IN) :: data(:)
-!!$    INTEGER, INTENT(in) ::var_id
-!!$    CHARACTER(len=*), INTENT(in), OPTIONAL :: file_suffix
-!!$    INTEGER, INTENT(in), OPTIONAL :: ntimes_passed
-!!$    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_vals(:)
-!!$    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_bnds(:,:)
-!!$    INTEGER, INTENT(in), OPTIONAL :: store_with
-!!$    integer refvar,ierr,n(1),ntp
-!!$    character(1024) suf
-!!$    if (present(file_suffix)) then
-!!$       suf = trim(file_suffix)//char(0)
-!!$    else
-!!$       suf = char(0)
-!!$    endif
-!!$
-!!$    if (present(store_with)) then
-!!$       refvar = store_with
-!!$    else
-!!$       refvar = -1 ! means do not pass it
-!!$    end if
-!!$    if (present(ntimes_passed)) then
-!!$       ntp = ntimes_passed
-!!$    else
-!!$       ntp=0
-!!$    endif
-!!$    if (present(time_vals)) then
-!!$       if (ntp==0) ntp = size(time_vals)
-!!$       if (present(time_bnds)) then
-!!$          ierr = cmor_write_cff_long(var_id,data(1),suf,ntp,&
-!!$               time_vals(1),time_bnds(1,1),refvar)
-!!$       else
-!!$          ierr = cmor_write_cff_long_nobnds(var_id,data(1),suf,ntp,&
-!!$               time_vals(1),refvar)
-!!$       end if
-!!$    else
-!!$       ierr = cmor_write_cff_long_notime(var_id,data(1),suf,ntp,&
-!!$            refvar)
-!!$    endif
-!!$  END FUNCTION cmor_write_1d_l
-!!$  FUNCTION cmor_write_2d_l(var_id, data, file_suffix, ntimes_passed,  &
-!!$        time_vals,time_bnds,store_with) RESULT(ierr)
-!!$    implicit none
-!!$    INTEGER (KIND=8), INTENT(IN) :: data(:,:)
-!!$    INTEGER, INTENT(in) ::var_id
-!!$    CHARACTER(len=*), INTENT(in), OPTIONAL :: file_suffix
-!!$    INTEGER, INTENT(in), OPTIONAL :: ntimes_passed
-!!$    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_vals(:)
-!!$    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_bnds(:,:)
-!!$    INTEGER, INTENT(in), OPTIONAL :: store_with
-!!$    integer refvar,ierr,n(1),ntp
-!!$    character(1024) suf
-!!$    if (present(file_suffix)) then
-!!$       suf = trim(file_suffix)//char(0)
-!!$    else
-!!$       suf = char(0)
-!!$    endif
-!!$
-!!$    if (present(store_with)) then
-!!$       refvar = store_with
-!!$    else
-!!$       refvar = -1 ! means do not pass it
-!!$    end if
-!!$    if (present(ntimes_passed)) then
-!!$       ntp = ntimes_passed
-!!$    else
-!!$       ntp=0
-!!$    endif
-!!$    if (present(time_vals)) then
-!!$       if (ntp==0) ntp = size(time_vals)
-!!$       if (present(time_bnds)) then
-!!$          ierr = cmor_write_cff_long(var_id,data(1,1),suf,ntp,&
-!!$               time_vals(1),time_bnds(1,1),refvar)
-!!$       else
-!!$          ierr = cmor_write_cff_long_nobnds(var_id,data(1,1),suf,ntp,&
-!!$               time_vals(1),refvar)
-!!$       end if
-!!$    else
-!!$       ierr = cmor_write_cff_long_notime(var_id,data(1,1),suf,ntp,&
-!!$            refvar)
-!!$    endif
-!!$  END FUNCTION cmor_write_2d_l
-!!$  FUNCTION cmor_write_3d_l(var_id, data, file_suffix, ntimes_passed,  &
-!!$        time_vals,time_bnds,store_with) RESULT(ierr)
-!!$    implicit none
-!!$    INTEGER (KIND=8), INTENT(IN) :: data(:,:,:)
-!!$    INTEGER, INTENT(in) ::var_id
-!!$    CHARACTER(len=*), INTENT(in), OPTIONAL :: file_suffix
-!!$    INTEGER, INTENT(in), OPTIONAL :: ntimes_passed
-!!$    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_vals(:)
-!!$    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_bnds(:,:)
-!!$    INTEGER, INTENT(in), OPTIONAL :: store_with
-!!$    integer refvar,ierr,n(1),ntp
-!!$    character(1024) suf
-!!$    if (present(file_suffix)) then
-!!$       suf = trim(file_suffix)//char(0)
-!!$    else
-!!$       suf = char(0)
-!!$    endif
-!!$
-!!$    if (present(store_with)) then
-!!$       refvar = store_with
-!!$    else
-!!$       refvar = -1 ! means do not pass it
-!!$    end if
-!!$    if (present(ntimes_passed)) then
-!!$       ntp = ntimes_passed
-!!$    else
-!!$       ntp=0
-!!$    endif
-!!$    if (present(time_vals)) then
-!!$       if (ntp==0) ntp = size(time_vals)
-!!$       if (present(time_bnds)) then
-!!$          ierr = cmor_write_cff_long(var_id,data(1,1,1),suf,ntp,&
-!!$               time_vals(1),time_bnds(1,1),refvar)
-!!$       else
-!!$          ierr = cmor_write_cff_long_nobnds(var_id,data(1,1,1),suf,ntp,&
-!!$               time_vals(1),refvar)
-!!$       end if
-!!$    else
-!!$       ierr = cmor_write_cff_long_notime(var_id,data(1,1,1),suf,ntp,&
-!!$            refvar)
-!!$    endif
-!!$  END FUNCTION cmor_write_3d_l
-!!$  FUNCTION cmor_write_4d_l(var_id, data, file_suffix, ntimes_passed,  &
-!!$        time_vals,time_bnds,store_with) RESULT(ierr)
-!!$    implicit none
-!!$    INTEGER (KIND=8), INTENT(IN) :: data(:,:,:,:)
-!!$    INTEGER, INTENT(in) ::var_id
-!!$    CHARACTER(len=*), INTENT(in), OPTIONAL :: file_suffix
-!!$    INTEGER, INTENT(in), OPTIONAL :: ntimes_passed
-!!$    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_vals(:)
-!!$    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_bnds(:,:)
-!!$    INTEGER, INTENT(in), OPTIONAL :: store_with
-!!$    integer refvar,ierr,n(1),ntp
-!!$    character(1024) suf
-!!$    if (present(file_suffix)) then
-!!$       suf = trim(file_suffix)//char(0)
-!!$    else
-!!$       suf = char(0)
-!!$    endif
-!!$
-!!$    if (present(store_with)) then
-!!$       refvar = store_with
-!!$    else
-!!$       refvar = -1 ! means do not pass it
-!!$    end if
-!!$    if (present(ntimes_passed)) then
-!!$       ntp = ntimes_passed
-!!$    else
-!!$       ntp=0
-!!$    endif
-!!$    if (present(time_vals)) then
-!!$       if (ntp==0) ntp = size(time_vals)
-!!$       if (present(time_bnds)) then
-!!$          ierr = cmor_write_cff_long(var_id,data(1,1,1,1),suf,ntp,&
-!!$               time_vals(1),time_bnds(1,1),refvar)
-!!$       else
-!!$          ierr = cmor_write_cff_long_nobnds(var_id,data(1,1,1,1),suf,ntp,&
-!!$               time_vals(1),refvar)
-!!$       end if
-!!$    else
-!!$       ierr = cmor_write_cff_long_notime(var_id,data(1,1,1,1),suf,ntp,&
-!!$            refvar)
-!!$    endif
-!!$  END FUNCTION cmor_write_4d_l
-!!$  FUNCTION cmor_write_5d_l(var_id, data, file_suffix, ntimes_passed,  &
-!!$        time_vals,time_bnds,store_with) RESULT(ierr)
-!!$    implicit none
-!!$    INTEGER (KIND=8), INTENT(IN) :: data(:,:,:,:,:)
-!!$    INTEGER, INTENT(in) ::var_id
-!!$    CHARACTER(len=*), INTENT(in), OPTIONAL :: file_suffix
-!!$    INTEGER, INTENT(in), OPTIONAL :: ntimes_passed
-!!$    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_vals(:)
-!!$    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_bnds(:,:)
-!!$    INTEGER, INTENT(in), OPTIONAL :: store_with
-!!$    integer refvar,ierr,n(1),ntp
-!!$    character(1024) suf
-!!$    if (present(file_suffix)) then
-!!$       suf = trim(file_suffix)//char(0)
-!!$    else
-!!$       suf = char(0)
-!!$    endif
-!!$
-!!$    if (present(store_with)) then
-!!$       refvar = store_with
-!!$    else
-!!$       refvar = -1 ! means do not pass it
-!!$    end if
-!!$    if (present(ntimes_passed)) then
-!!$       ntp = ntimes_passed
-!!$    else
-!!$       ntp=0
-!!$    endif
-!!$    if (present(time_vals)) then
-!!$       if (ntp==0) ntp = size(time_vals)
-!!$       if (present(time_bnds)) then
-!!$          ierr = cmor_write_cff_long(var_id,data(1,1,1,1,1),suf,ntp,&
-!!$               time_vals(1),time_bnds(1,1),refvar)
-!!$       else
-!!$          ierr = cmor_write_cff_long_nobnds(var_id,data(1,1,1,1,1),suf,ntp,&
-!!$               time_vals(1),refvar)
-!!$       end if
-!!$    else
-!!$       ierr = cmor_write_cff_long_notime(var_id,data(1,1,1,1,1),suf,ntp,&
-!!$            refvar)
-!!$    endif
-!!$  END FUNCTION cmor_write_5d_l
-!!$  FUNCTION cmor_write_6d_l(var_id, data, file_suffix, ntimes_passed,  &
-!!$        time_vals,time_bnds,store_with) RESULT(ierr)
-!!$    implicit none
-!!$    INTEGER (KIND=8), INTENT(IN) :: data(:,:,:,:,:,:)
-!!$    INTEGER, INTENT(in) ::var_id
-!!$    CHARACTER(len=*), INTENT(in), OPTIONAL :: file_suffix
-!!$    INTEGER, INTENT(in), OPTIONAL :: ntimes_passed
-!!$    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_vals(:)
-!!$    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_bnds(:,:)
-!!$    INTEGER, INTENT(in), OPTIONAL :: store_with
-!!$    integer refvar,ierr,n(1),ntp
-!!$    character(1024) suf
-!!$    if (present(file_suffix)) then
-!!$       suf = trim(file_suffix)//char(0)
-!!$    else
-!!$       suf = char(0)
-!!$    endif
-!!$
-!!$    if (present(store_with)) then
-!!$       refvar = store_with
-!!$    else
-!!$       refvar = -1 ! means do not pass it
-!!$    end if
-!!$    if (present(ntimes_passed)) then
-!!$       ntp = ntimes_passed
-!!$    else
-!!$       ntp=0
-!!$    endif
-!!$    if (present(time_vals)) then
-!!$       if (ntp==0) ntp = size(time_vals)
-!!$       if (present(time_bnds)) then
-!!$          ierr = cmor_write_cff_long(var_id,data(1,1,1,1,1,1),suf,ntp,&
-!!$               time_vals(1),time_bnds(1,1),refvar)
-!!$       else
-!!$          ierr = cmor_write_cff_long_nobnds(var_id,data(1,1,1,1,1,1),suf,ntp,&
-!!$               time_vals(1),refvar)
-!!$       end if
-!!$    else
-!!$       ierr = cmor_write_cff_long_notime(var_id,data(1,1,1,1,1,1),suf,ntp,&
-!!$            refvar)
-!!$    endif
-!!$  END FUNCTION cmor_write_6d_l
-!!$  FUNCTION cmor_write_7d_l(var_id, data, file_suffix, ntimes_passed,  &
-!!$        time_vals,time_bnds,store_with) RESULT(ierr)
-!!$    implicit none
-!!$    INTEGER (KIND=8), INTENT(IN) :: data(:,:,:,:,:,:,:)
-!!$    INTEGER, INTENT(in) ::var_id
-!!$    CHARACTER(len=*), INTENT(in), OPTIONAL :: file_suffix
-!!$    INTEGER, INTENT(in), OPTIONAL :: ntimes_passed
-!!$    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_vals(:)
-!!$    DOUBLE PRECISION, INTENT(in), OPTIONAL :: time_bnds(:,:)
-!!$    INTEGER, INTENT(in), OPTIONAL :: store_with
-!!$    integer refvar,ierr,n(1),ntp
-!!$    character(1024) suf
-!!$    if (present(file_suffix)) then
-!!$       suf = trim(file_suffix)//char(0)
-!!$    else
-!!$       suf = char(0)
-!!$    endif
-!!$
-!!$    if (present(store_with)) then
-!!$       refvar = store_with
-!!$    else
-!!$       refvar = -1 ! means do not pass it
-!!$    end if
-!!$    if (present(ntimes_passed)) then
-!!$       ntp = ntimes_passed
-!!$    else
-!!$       ntp=0
-!!$    endif
-!!$    if (present(time_vals)) then
-!!$       if (ntp==0) ntp = size(time_vals)
-!!$       if (present(time_bnds)) then
-!!$          ierr = cmor_write_cff_long(var_id,data(1,1,1,1,1,1,1),suf,ntp,&
-!!$               time_vals(1),time_bnds(1,1),refvar)
-!!$       else
-!!$          ierr = cmor_write_cff_long_nobnds(var_id,data(1,1,1,1,1,1,1),suf,ntp,&
-!!$               time_vals(1),refvar)
-!!$       end if
-!!$    else
-!!$       ierr = cmor_write_cff_long_notime(var_id,data(1,1,1,1,1,1,1),suf,ntp,&
-!!$            refvar)
-!!$    endif
-!!$  END FUNCTION cmor_write_7d_l
-
-  function cmor_variable_double(table,table_entry,units,axis_ids,missing_value,&
-       tolerance,positive,original_name,history,comment) result(ierr)
-    implicit none
-    character(*),optional ::table,positive,original_name,history,comment
-    character(*) table_entry,units
-    integer axis_ids(:),ierr,l,var_id
-    double precision ::  missing_value, tol
-    double precision, optional ::  tolerance
-    character(1024) pos,onm,hist,com,tbl,unit
-    integer i
-    integer, dimension(10) :: axes_ids
-    l = size(axis_ids)
-    do i=1, l
-       axes_ids(i) = axis_ids(l-i+1)
-    enddo
-    unit = trim(units)//char(0)
-    tbl = trim(table_entry)//char(0)
-
-    if (present(table)) then
-       i = cmor_load_table(table)
-    endif
-
-    if (present(tolerance)) then
-       tol = tolerance
-    else
-       tol = 1.e-4
-    end if
-    
-    if (present(positive)) then
-       pos = trim(positive)//char(0)
-    else
-       pos = char(0)
-    end if
-    if (present(original_name)) then
-       onm = trim(original_name)//char(0)
-    else
-       onm = char(0)
-    end if
-
-    if (present(history)) then
-       hist = trim(history)//char(0)
-    else
-       hist = char(0)
-    end if
-    if (present(comment)) then
-       com = trim(comment)//char(0)
-    else
-       com = char(0)
-    end if
-    
-    
-    ierr = cmor_variable_cff_double(var_id,tbl,unit,l,axes_ids(1),missing_value,tol,pos,onm,hist,com)
-
-    if (ierr.eq.0) then
-       ierr = var_id
-    else
-       ierr = -ierr
-    end if
-  end function cmor_variable_double
-  function cmor_variable_real(table,table_entry,units,axis_ids,missing_value,&
-       tolerance,positive,original_name,history,comment) result(ierr)
-    implicit none
-    character(*),optional ::table,positive,original_name,history,comment
-    character(*) table_entry,units
-    integer axis_ids(:),ierr,l,var_id
-    double precision ::  tol
-    real, optional ::  missing_value
-    double precision, optional ::  tolerance
-    character(1024) pos,onm,hist,com,tbl,unit
-    integer i
-    integer, dimension(10) :: axes_ids
-
-    l = size(axis_ids)
-    do i=1, l
-       axes_ids(i) = axis_ids(l-i+1)
-    enddo
-
-    unit = trim(units)//char(0)
-    tbl = trim(table_entry)//char(0)
-
-    if (present(table)) then
-       i = cmor_load_table(table)
-    endif
-
-    if (present(tolerance)) then
-       tol = tolerance
-    else
-       tol = 1.e-4
-    end if
-    
-    if (present(positive)) then
-       pos = trim(positive)//char(0)
-    else
-       pos = char(0)
-    end if
-    if (present(original_name)) then
-       onm = trim(original_name)//char(0)
-    else
-       onm = char(0)
-    end if
-
-    if (present(history)) then
-       hist = trim(history)//char(0)
-    else
-       hist = char(0)
-    end if
-    if (present(comment)) then
-       com = trim(comment)//char(0)
-    else
-       com = char(0)
-    end if
-    
-    l = size(axis_ids)
-    
-    if (present(missing_value)) then
-       ierr = cmor_variable_cff_real(var_id,tbl,unit,l,axes_ids(1),missing_value,tol,pos,onm,hist,com)
-    else 
-       ierr = cmor_variable_cff_nomiss(var_id,tbl,unit,l,axes_ids(1),tol,pos,onm,hist,com)
-    endif
-
-    if (ierr.eq.0) then
-       ierr = var_id
-    else
-       ierr = -ierr
-    end if
-  end function cmor_variable_real
-  function cmor_variable_int(table,table_entry,units,axis_ids,missing_value,&
-       tolerance,positive,original_name,history,comment) result(ierr)
-    implicit none
-    character(*),optional ::table,positive,original_name,history,comment
-    character(*) table_entry,units
-    integer axis_ids(:),ierr,l,var_id
-    double precision ::  tol
-    integer ::  missing_value
-    double precision, optional ::  tolerance
-    character(1024) pos,onm,hist,com,tbl,unit
-    integer i
-    integer, dimension(10) :: axes_ids
-    l = size(axis_ids)
-    do i=1, l
-       axes_ids(i) = axis_ids(l-i+1)
-    enddo
-
-    unit = trim(units)//char(0)
-    tbl = trim(table_entry)//char(0)
-
-    if (present(table)) then
-       i = cmor_load_table(table)
-    endif
-
-    if (present(tolerance)) then
-       tol = tolerance
-    else
-       tol = 1.e-4
-    end if
-    
-    if (present(positive)) then
-       pos = trim(positive)//char(0)
-    else
-       pos = char(0)
-    end if
-    if (present(original_name)) then
-       onm = trim(original_name)//char(0)
-    else
-       onm = char(0)
-    end if
-
-    if (present(history)) then
-       hist = trim(history)//char(0)
-    else
-       hist = char(0)
-    end if
-    if (present(comment)) then
-       com = trim(comment)//char(0)
-    else
-       com = char(0)
-    end if
-    
-    l = size(axis_ids)
-    
-    ierr = cmor_variable_cff_int(var_id,tbl,unit,l,axes_ids(1),missing_value,tol,pos,onm,hist,com)
-
-    if (ierr.eq.0) then
-       ierr = var_id
-    else
-       ierr = -ierr
-    end if
-  end function cmor_variable_int
-!!$  function cmor_variable_long(table,table_entry,units,axis_ids,missing_value,&
-!!$       tolerance,positive,original_name,history,comment) result(ierr)
-!!$    implicit none
-!!$    character(*),optional ::table,positive,original_name,history,comment
-!!$    character(*) table_entry,units
-!!$    integer axis_ids(:),ierr,l,var_id
-!!$    double precision ::  tol
-!!$    integer (kind=8) ::  missing_value
-!!$    double precision, optional ::  tolerance
-!!$    character(1024) pos,onm,hist,com,tbl,unit
-!!$    integer i
-!!$    integer, dimension(10) :: axes_ids
-!!$    l = size(axis_ids)
-!!$    do i=1, l
-!!$       axes_ids(i) = axis_ids(l-i+1)
-!!$    enddo
-!!$
-!!$    unit = trim(units)//char(0)
-!!$    tbl = trim(table_entry)//char(0)
-!!$
-!!$    if (present(table)) then
-!!$       l = cmor_load_table(table)
-!!$    endif
-!!$
-!!$    if (present(tolerance)) then
-!!$       tol = tolerance
-!!$    else
-!!$       tol = 1.e-4
-!!$    end if
-!!$    
-!!$    if (present(positive)) then
-!!$       pos = trim(positive)//char(0)
-!!$    else
-!!$       pos = char(0)
-!!$    end if
-!!$    if (present(original_name)) then
-!!$       onm = trim(original_name)//char(0)
-!!$    else
-!!$       onm = char(0)
-!!$    end if
-!!$
-!!$    if (present(history)) then
-!!$       hist = trim(history)//char(0)
-!!$    else
-!!$       hist = char(0)
-!!$    end if
-!!$    if (present(comment)) then
-!!$       com = trim(comment)//char(0)
-!!$    else
-!!$       com = char(0)
-!!$    end if
-!!$    
-!!$    l = size(axis_ids)
-!!$    
-!!$    ierr = cmor_variable_cff_long(var_id,tbl,unit,l,axes_ids(1),missing_value,tol,pos,onm,hist,com)
-!!$
-!!$    if (ierr.eq.0) then
-!!$       ierr = var_id
-!!$    else
-!!$       ierr = -ierr
-!!$    end if
-!!$  end function cmor_variable_long
-
-  function cmor_zfactor_novals(zaxis_id,zfactor_name,axis_ids,&
-       units) result(ierr)
-    implicit none
-    integer zaxis_id
-    character(*) zfactor_name
-    integer, intent(in) :: axis_ids(:)
-    character(*) , optional :: units
-    integer i,ierr,ndims,zfactor
-    character(1024) unit,zfnm
-    integer, dimension(10) :: axes_ids
-    ndims = size(axis_ids)
-    do i=1, ndims
-       axes_ids(i) = axis_ids(ndims-i+1)
-    enddo
-    
-    zfnm = trim(zfactor_name)//char(0)
-    if (present(units)) then
-       unit = trim(units)//char(0)
-    else 
-       unit=char(0)
-    endif
-    ierr = cmor_zfactor_cff_novals(zfactor,zaxis_id,zfnm,unit,ndims,axes_ids(1))
-    if (ierr.eq.0) then
-       ierr = zfactor
-    else
-       ierr = -ierr
-    end if
-  end function cmor_zfactor_novals
-  function cmor_zfactor_double(zaxis_id,zfactor_name,axis_ids,&
-       units,zfactor_values,zfactor_bounds) result(ierr)
-    implicit none
-    integer zaxis_id
-    character(*) zfactor_name
-    integer, intent(in), optional :: axis_ids(:)
-    character(*) , optional :: units
-    double precision :: zfactor_values(:)
-    double precision, optional :: zfactor_bounds(:)
-    integer ierr,ndims,zfactor
-    character(1024) msg,unit,zfnm
-    integer axes_ids(1)
-    integer error_code
-    
-    zfnm = trim(zfactor_name)//char(0)
-    if (present(axis_ids)) then
-       ndims = size(axis_ids)
-       if (ndims.ne.1) then
-          msg = 'cmor_zfactor (fortran):: you passed ndims greater than 1 and zfactor_values, this '&
-               //'is not acceptable, use cmor_write to write zfactor_values'//char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-       axes_ids(1)=axis_ids(1)
-    else
-       ndims = 0
-       if (size(zfactor_values).ne.1) then
-          msg = 'cmor_zfactor(fortran):: ndims and zfactor_values length do not match'//char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-       axes_ids(1)=0
-    endif
-    if (present(units)) then
-       unit = trim(units)//char(0)
-    else 
-       unit=char(0)
-    endif
-    if (present(zfactor_bounds)) then
-       if (size(zfactor_bounds).ne.size(zfactor_values)+1) then
-          msg = 'cmor_zfactor(fortran) zfactor_bounds length is not zfactor_values + 1 for zfactor:'//zfactor_name//char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-       ierr = cmor_zfactor_cff_double(zfactor,zaxis_id,zfnm,unit,ndims,axes_ids(1),zfactor_values(1),zfactor_bounds(1))
-    else
-       ierr = cmor_zfactor_cff_double_nobnds(zfactor,zaxis_id,zfnm,unit,ndims,axes_ids(1),zfactor_values(1))
-    endif
-    if (ierr.eq.0) then
-       ierr = zfactor
-    else
-       ierr = -ierr
-    end if
-  end function cmor_zfactor_double
-  function cmor_zfactor_double_2dvalues(zaxis_id,zfactor_name,axis_ids,&
-       units,zfactor_values,zfactor_bounds) result(ierr)
-    implicit none
-    integer zaxis_id
-    character(*) zfactor_name
-    integer, intent(in), optional :: axis_ids(:)
-    character(*) , optional :: units
-    double precision :: zfactor_values(:,:)
-    double precision, optional :: zfactor_bounds(:,:)
-    integer ierr,ndims,zfactor
-    character(1024) msg,unit,zfnm
-    integer axes_ids(1)
-    integer error_code
-    
-    zfnm = trim(zfactor_name)//char(0)
-    if (present(axis_ids)) then
-       ndims = size(axis_ids)
-       if (ndims.ne.1) then
-          msg = 'cmor_zfactor (fortran):: you passed ndims greater than 1 and zfactor_values, this '&
-               //'is not acceptable, use cmor_write to write zfactor_values'//char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-       axes_ids(1)=axis_ids(1)
-    else
-       ndims = 0
-       if (size(zfactor_values).ne.1) then
-          msg = 'cmor_zfactor(fortran):: ndims and zfactor_values length do not match'//char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-       axes_ids(1)=0
-    endif
-    if (present(units)) then
-       unit = trim(units)//char(0)
-    else 
-       unit=char(0)
-    endif
-    if (present(zfactor_bounds)) then
-       ierr = cmor_zfactor_cff_double(zfactor,zaxis_id,zfnm,unit,ndims,axes_ids(1),zfactor_values(1,1),zfactor_bounds(1,1))
-    else
-       ierr = cmor_zfactor_cff_double_nobnds(zfactor,zaxis_id,zfnm,unit,ndims,axes_ids(1),zfactor_values(1,1))
-    endif
-    if (ierr.eq.0) then
-       ierr = zfactor
-    else
-       ierr = -ierr
-    end if
-  end function cmor_zfactor_double_2dvalues
-  function cmor_zfactor_double_3dvalues(zaxis_id,zfactor_name,axis_ids,&
-       units,zfactor_values,zfactor_bounds) result(ierr)
-    implicit none
-    integer zaxis_id
-    character(*) zfactor_name
-    integer, intent(in), optional :: axis_ids(:)
-    character(*) , optional :: units
-    double precision :: zfactor_values(:,:,:)
-    double precision, optional :: zfactor_bounds(:,:,:)
-    integer ierr,ndims,zfactor
-    character(1024) msg,unit,zfnm
-    integer axes_ids(1)
-    integer error_code
-    
-    zfnm = trim(zfactor_name)//char(0)
-    if (present(axis_ids)) then
-       ndims = size(axis_ids)
-       if (ndims.ne.1) then
-          msg = 'cmor_zfactor (fortran):: you passed ndims greater than 1 and zfactor_values, this '&
-               //'is not acceptable, use cmor_write to write zfactor_values'//char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-       axes_ids(1)=axis_ids(1)
-    else
-       ndims = 0
-       if (size(zfactor_values).ne.1) then
-          msg = 'cmor_zfactor(fortran):: ndims and zfactor_values length do not match'//char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-       axes_ids(1)=0
-    endif
-    if (present(units)) then
-       unit = trim(units)//char(0)
-    else 
-       unit=char(0)
-    endif
-    if (present(zfactor_bounds)) then
-       ierr = cmor_zfactor_cff_double(zfactor,zaxis_id,zfnm,unit,ndims,axes_ids(1),zfactor_values(1,1,1),zfactor_bounds(1,1,1))
-    else
-       ierr = cmor_zfactor_cff_double_nobnds(zfactor,zaxis_id,zfnm,unit,ndims,axes_ids(1),zfactor_values(1,1,1))
-    endif
-    if (ierr.eq.0) then
-       ierr = zfactor
-    else
-       ierr = -ierr
-    end if
-  end function cmor_zfactor_double_3dvalues
-  function cmor_zfactor_double_4dvalues(zaxis_id,zfactor_name,axis_ids,&
-       units,zfactor_values,zfactor_bounds) result(ierr)
-    implicit none
-    integer zaxis_id
-    character(*) zfactor_name
-    integer, intent(in), optional :: axis_ids(:)
-    character(*) , optional :: units
-    double precision :: zfactor_values(:,:,:,:)
-    double precision, optional :: zfactor_bounds(:,:,:,:)
-    integer ierr,ndims,zfactor
-    character(1024) msg,unit,zfnm
-    integer axes_ids(1)
-    integer error_code
-    
-    zfnm = trim(zfactor_name)//char(0)
-    if (present(axis_ids)) then
-       ndims = size(axis_ids)
-       if (ndims.ne.1) then
-          msg = 'cmor_zfactor (fortran):: you passed ndims greater than 1 and zfactor_values, this '&
-               //'is not acceptable, use cmor_write to write zfactor_values'//char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-       axes_ids(1)=axis_ids(1)
-    else
-       ndims = 0
-       if (size(zfactor_values).ne.1) then
-          msg = 'cmor_zfactor(fortran):: ndims and zfactor_values length do not match'//char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-       axes_ids(1)=0
-    endif
-    if (present(units)) then
-       unit = trim(units)//char(0)
-    else 
-       unit=char(0)
-    endif
-    if (present(zfactor_bounds)) then
-       ierr = cmor_zfactor_cff_double(zfactor,zaxis_id,zfnm,unit,ndims,axes_ids(1),zfactor_values(1,1,1,1),zfactor_bounds(1,1,1,1))
-    else
-       ierr = cmor_zfactor_cff_double_nobnds(zfactor,zaxis_id,zfnm,unit,ndims,axes_ids(1),zfactor_values(1,1,1,1))
-    endif
-    if (ierr.eq.0) then
-       ierr = zfactor
-    else
-       ierr = -ierr
-    end if
-  end function cmor_zfactor_double_4dvalues
-  function cmor_zfactor_double_5dvalues(zaxis_id,zfactor_name,axis_ids,&
-       units,zfactor_values,zfactor_bounds) result(ierr)
-    implicit none
-    integer zaxis_id
-    character(*) zfactor_name
-    integer, intent(in), optional :: axis_ids(:)
-    character(*) , optional :: units
-    double precision :: zfactor_values(:,:,:,:,:)
-    double precision, optional :: zfactor_bounds(:,:,:,:,:)
-    integer ierr,ndims,zfactor
-    character(1024) msg,unit,zfnm
-    integer axes_ids(1)
-    integer error_code
-    
-    zfnm = trim(zfactor_name)//char(0)
-    if (present(axis_ids)) then
-       ndims = size(axis_ids)
-       if (ndims.ne.1) then
-          msg = 'cmor_zfactor (fortran):: you passed ndims greater than 1 and zfactor_values, this '&
-               //'is not acceptable, use cmor_write to write zfactor_values'//char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-       axes_ids(1)=axis_ids(1)
-    else
-       ndims = 0
-       if (size(zfactor_values).ne.1) then
-          msg = 'cmor_zfactor(fortran):: ndims and zfactor_values length do not match'//char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-       axes_ids(1)=0
-    endif
-    if (present(units)) then
-       unit = trim(units)//char(0)
-    else 
-       unit=char(0)
-    endif
-    if (present(zfactor_bounds)) then
-       ierr = cmor_zfactor_cff_double(zfactor,zaxis_id,zfnm,unit,ndims,axes_ids(1),&
-            zfactor_values(1,1,1,1,1),zfactor_bounds(1,1,1,1,1))
-    else
-       ierr = cmor_zfactor_cff_double_nobnds(zfactor,zaxis_id,zfnm,unit,ndims,axes_ids(1),&
-            zfactor_values(1,1,1,1,1))
-    endif
-    if (ierr.eq.0) then
-       ierr = zfactor
-    else
-       ierr = -ierr
-    end if
-  end function cmor_zfactor_double_5dvalues
-  function cmor_zfactor_double_6dvalues(zaxis_id,zfactor_name,axis_ids,&
-       units,zfactor_values,zfactor_bounds) result(ierr)
-    implicit none
-    integer zaxis_id
-    character(*) zfactor_name
-    integer, intent(in), optional :: axis_ids(:)
-    character(*) , optional :: units
-    double precision :: zfactor_values(:,:,:,:,:,:)
-    double precision, optional :: zfactor_bounds(:,:,:,:,:,:)
-    integer ierr,ndims,zfactor
-    character(1024) msg,unit,zfnm
-    integer axes_ids(1)
-    integer error_code
-    
-    zfnm = trim(zfactor_name)//char(0)
-    if (present(axis_ids)) then
-       ndims = size(axis_ids)
-       if (ndims.ne.1) then
-          msg = 'cmor_zfactor (fortran):: you passed ndims greater than 1 and zfactor_values, this '&
-               //'is not acceptable, use cmor_write to write zfactor_values'//char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-       axes_ids(1)=axis_ids(1)
-    else
-       ndims = 0
-       if (size(zfactor_values).ne.1) then
-          msg = 'cmor_zfactor(fortran):: ndims and zfactor_values length do not match'//char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-       axes_ids(1)=0
-    endif
-    if (present(units)) then
-       unit = trim(units)//char(0)
-    else 
-       unit=char(0)
-    endif
-    if (present(zfactor_bounds)) then
-       ierr = cmor_zfactor_cff_double(zfactor,zaxis_id,zfnm,unit,ndims,axes_ids(1),&
-            zfactor_values(1,1,1,1,1,1),zfactor_bounds(1,1,1,1,1,1))
-    else
-       ierr = cmor_zfactor_cff_double_nobnds(zfactor,zaxis_id,zfnm,unit,ndims,axes_ids(1),&
-            zfactor_values(1,1,1,1,1,1))
-    endif
-    if (ierr.eq.0) then
-       ierr = zfactor
-    else
-       ierr = -ierr
-    end if
-  end function cmor_zfactor_double_6dvalues
-  function cmor_zfactor_double_0dvalues(zaxis_id,zfactor_name,axis_ids,&
-       units,zfactor_values,zfactor_bounds) result(ierr)
-    implicit none
-    integer zaxis_id
-    character(*) zfactor_name
-    integer, intent(in), optional :: axis_ids(:)
-    character(*) , optional :: units
-    double precision :: zfactor_values
-    double precision :: zfactor_value(1)
-    double precision, optional :: zfactor_bounds(2)
-    integer ierr,ndims,zfactor
-    character(1024) msg,unit,zfnm
-    integer axes_ids(1)
-    integer error_code
-    
-    zfnm = trim(zfactor_name)//char(0)
-    zfactor_value(1)=zfactor_values
-    if (present(axis_ids)) then
-       ndims = size(axis_ids)
-       if (ndims.ne.1) then
-          msg = 'cmor_zfactor(fortran) you passed ndims greater than 1 and zfactor_values, this '&
-               //'is not acceptable, use cmor_write to write zfactor_values'//char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-       axes_ids(1)=axis_ids(1)
-    else
-       ndims = 0
-       axes_ids(1)=0
-    endif
-    if (present(units)) then
-       unit = trim(units)//char(0)
-    else 
-       unit=char(0)
-    endif
-    if (present(zfactor_bounds)) then
-       ierr = cmor_zfactor_cff_double(zfactor,zaxis_id,zfnm,unit,ndims,axes_ids(1),&
-            zfactor_value(1),zfactor_bounds(1))
-    else
-       ierr = cmor_zfactor_cff_double_nobnds(zfactor,zaxis_id,zfnm,unit,ndims,axes_ids(1),&
-            zfactor_value(1))
-    endif
-    if (ierr.eq.0) then
-       ierr = zfactor
-    else
-       ierr = -ierr
-    end if
-  end function cmor_zfactor_double_0dvalues
-  function cmor_zfactor_real(zaxis_id,zfactor_name,axis_ids,&
-       units,zfactor_values,zfactor_bounds) result(ierr)
-    implicit none
-    integer zaxis_id
-    character(*) zfactor_name
-    integer, intent(in), optional :: axis_ids(:)
-    character(*) , optional :: units
-    real :: zfactor_values(:)
-    real, optional :: zfactor_bounds(:)
-    integer ierr,ndims,zfactor
-    character(1024) msg,unit,zfnm
-    integer axes_ids(1)
-    integer error_code
-    
-    zfnm = trim(zfactor_name)//char(0)
-    if (present(axis_ids)) then
-       ndims = size(axis_ids)
-       if (ndims.ne.1) then
-          msg = 'cmor_zfactor(fortran) you passed ndims greater than 1 and zfactor_values, this '&
-               //'is not acceptable, use cmor_write to write zfactor_values'//char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-       axes_ids(1)=axis_ids(1)
-    else
-       ndims = 0
-       if (size(zfactor_values).ne.1) then
-          msg = 'cmor_zfactor(fortran) :: ndims and zfactor_values length do not match'//char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-       axes_ids(1)=0
-    endif
-    if (present(units)) then
-       unit = trim(units)//char(0)
-    else 
-       unit=char(0)
-    endif
-    if (present(zfactor_bounds)) then
-       if (size(zfactor_bounds).ne.size(zfactor_values)+1) then
-          msg = 'cmor_zfactor(fortran) zfactor_bounds length is not zfactor_values + 1 for zfactor:'//zfactor_name//char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-       ierr = cmor_zfactor_cff_real(zfactor,zaxis_id,zfnm,unit,ndims,axes_ids(1),zfactor_values(1),zfactor_bounds(1))
-    else
-       ierr = cmor_zfactor_cff_real_nobnds(zfactor,zaxis_id,zfnm,unit,ndims,axes_ids(1),zfactor_values(1))
-    endif
-     if (ierr.eq.0) then
-       ierr = zfactor
-    else
-       ierr = -ierr
-    end if
- end function cmor_zfactor_real
-   function cmor_zfactor_real_2dvalues(zaxis_id,zfactor_name,axis_ids,&
-       units,zfactor_values,zfactor_bounds) result(ierr)
-    implicit none
-    integer zaxis_id
-    character(*) zfactor_name
-    integer, intent(in), optional :: axis_ids(:)
-    character(*) , optional :: units
-    real :: zfactor_values(:,:)
-    real, optional :: zfactor_bounds(:,:)
-    integer ierr,ndims,zfactor
-    character(1024) msg,unit,zfnm
-    integer axes_ids(1)
-    integer error_code
-    
-    zfnm = trim(zfactor_name)//char(0)
-    if (present(axis_ids)) then
-       ndims = size(axis_ids)
-       if (ndims.ne.1) then
-          msg = 'cmor_zfactor (fortran):: you passed ndims greater than 1 and zfactor_values, this '&
-               //'is not acceptable, use cmor_write to write zfactor_values'//char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-       axes_ids(1)=axis_ids(1)
-    else
-       ndims = 0
-       if (size(zfactor_values).ne.1) then
-          msg = 'cmor_zfactor(fortran):: ndims and zfactor_values length do not match'//char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-       axes_ids(1)=0
-    endif
-    if (present(units)) then
-       unit = trim(units)//char(0)
-    else 
-       unit=char(0)
-    endif
-    if (present(zfactor_bounds)) then
-       ierr = cmor_zfactor_cff_real(zfactor,zaxis_id,zfnm,unit,ndims,axes_ids(1),&
-            zfactor_values(1,1),zfactor_bounds(1,1))
-    else
-       ierr = cmor_zfactor_cff_real_nobnds(zfactor,zaxis_id,zfnm,unit,ndims,axes_ids(1),&
-            zfactor_values(1,1))
-    endif
-    if (ierr.eq.0) then
-       ierr = zfactor
-    else
-       ierr = -ierr
-    end if
-  end function cmor_zfactor_real_2dvalues
-  function cmor_zfactor_real_3dvalues(zaxis_id,zfactor_name,axis_ids,&
-       units,zfactor_values,zfactor_bounds) result(ierr)
-    implicit none
-    integer zaxis_id
-    character(*) zfactor_name
-    integer, intent(in), optional :: axis_ids(:)
-    character(*) , optional :: units
-    real :: zfactor_values(:,:,:)
-    real, optional :: zfactor_bounds(:,:,:)
-    integer ierr,ndims,zfactor
-    character(1024) msg,unit,zfnm
-    integer axes_ids(1)
-    integer error_code
-    
-    zfnm = trim(zfactor_name)//char(0)
-    if (present(axis_ids)) then
-       ndims = size(axis_ids)
-       if (ndims.ne.1) then
-          msg = 'cmor_zfactor (fortran):: you passed ndims greater than 1 and zfactor_values, this '&
-               //'is not acceptable, use cmor_write to write zfactor_values'//char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-       axes_ids(1)=axis_ids(1)
-    else
-       ndims = 0
-       if (size(zfactor_values).ne.1) then
-          msg = 'cmor_zfactor(fortran):: ndims and zfactor_values length do not match'//char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-       axes_ids(1)=0
-    endif
-    if (present(units)) then
-       unit = trim(units)//char(0)
-    else 
-       unit=char(0)
-    endif
-    if (present(zfactor_bounds)) then
-       ierr = cmor_zfactor_cff_real(zfactor,zaxis_id,zfnm,unit,ndims,axes_ids(1),&
-            zfactor_values(1,1,1),zfactor_bounds(1,1,1))
-    else
-       ierr = cmor_zfactor_cff_real_nobnds(zfactor,zaxis_id,zfnm,unit,ndims,axes_ids(1),&
-            zfactor_values(1,1,1))
-    endif
-    if (ierr.eq.0) then
-       ierr = zfactor
-    else
-       ierr = -ierr
-    end if
-  end function cmor_zfactor_real_3dvalues
-  function cmor_zfactor_real_4dvalues(zaxis_id,zfactor_name,axis_ids,&
-       units,zfactor_values,zfactor_bounds) result(ierr)
-    implicit none
-    integer zaxis_id
-    character(*) zfactor_name
-    integer, intent(in), optional :: axis_ids(:)
-    character(*) , optional :: units
-    real :: zfactor_values(:,:,:,:)
-    real, optional :: zfactor_bounds(:,:,:,:)
-    integer ierr,ndims,zfactor
-    character(1024) msg,unit,zfnm
-    integer axes_ids(1)
-    integer error_code
-    
-    zfnm = trim(zfactor_name)//char(0)
-    if (present(axis_ids)) then
-       ndims = size(axis_ids)
-       if (ndims.ne.1) then
-          msg = 'cmor_zfactor (fortran):: you passed ndims greater than 1 and zfactor_values, this '&
-               //'is not acceptable, use cmor_write to write zfactor_values'//char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-       axes_ids(1)=axis_ids(1)
-    else
-       ndims = 0
-       if (size(zfactor_values).ne.1) then
-          msg = 'cmor_zfactor(fortran):: ndims and zfactor_values length do not match'//char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-       axes_ids(1)=0
-    endif
-    if (present(units)) then
-       unit = trim(units)//char(0)
-    else 
-       unit=char(0)
-    endif
-    if (present(zfactor_bounds)) then
-       ierr = cmor_zfactor_cff_real(zfactor,zaxis_id,zfnm,unit,ndims,axes_ids(1),&
-            zfactor_values(1,1,1,1),zfactor_bounds(1,1,1,1))
-    else
-       ierr = cmor_zfactor_cff_real_nobnds(zfactor,zaxis_id,zfnm,unit,ndims,axes_ids(1),&
-            zfactor_values(1,1,1,1))
-    endif
-    if (ierr.eq.0) then
-       ierr = zfactor
-    else
-       ierr = -ierr
-    end if
-  end function cmor_zfactor_real_4dvalues
-  function cmor_zfactor_real_5dvalues(zaxis_id,zfactor_name,axis_ids,&
-       units,zfactor_values,zfactor_bounds) result(ierr)
-    implicit none
-    integer zaxis_id
-    character(*) zfactor_name
-    integer, intent(in), optional :: axis_ids(:)
-    character(*) , optional :: units
-    real :: zfactor_values(:,:,:,:,:)
-    real, optional :: zfactor_bounds(:,:,:,:,:)
-    integer ierr,ndims,zfactor
-    character(1024) msg,unit,zfnm
-    integer axes_ids(1)
-    integer error_code
-    
-    zfnm = trim(zfactor_name)//char(0)
-    if (present(axis_ids)) then
-       ndims = size(axis_ids)
-       if (ndims.ne.1) then
-          msg = 'cmor_zfactor (fortran):: you passed ndims greater than 1 and zfactor_values, this '&
-               //'is not acceptable, use cmor_write to write zfactor_values'//char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-       axes_ids(1)=axis_ids(1)
-    else
-       ndims = 0
-       if (size(zfactor_values).ne.1) then
-          msg = 'cmor_zfactor(fortran):: ndims and zfactor_values length do not match'//char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-       axes_ids(1)=0
-    endif
-    if (present(units)) then
-       unit = trim(units)//char(0)
-    else 
-       unit=char(0)
-    endif
-    if (present(zfactor_bounds)) then
-       ierr = cmor_zfactor_cff_real(zfactor,zaxis_id,zfnm,unit,ndims,axes_ids(1),&
-            zfactor_values(1,1,1,1,1),zfactor_bounds(1,1,1,1,1))
-    else
-       ierr = cmor_zfactor_cff_real_nobnds(zfactor,zaxis_id,zfnm,unit,ndims,axes_ids(1),&
-            zfactor_values(1,1,1,1,1))
-    endif
-    if (ierr.eq.0) then
-       ierr = zfactor
-    else
-       ierr = -ierr
-    end if
-  end function cmor_zfactor_real_5dvalues
-  function cmor_zfactor_real_6dvalues(zaxis_id,zfactor_name,axis_ids,&
-       units,zfactor_values,zfactor_bounds) result(ierr)
-    implicit none
-    integer zaxis_id
-    character(*) zfactor_name
-    integer, intent(in), optional :: axis_ids(:)
-    character(*) , optional :: units
-    real :: zfactor_values(:,:,:,:,:,:)
-    real, optional :: zfactor_bounds(:,:,:,:,:,:)
-    integer ierr,ndims,zfactor
-    character(1024) msg,unit,zfnm
-    integer axes_ids(1)
-    integer error_code
-    
-    zfnm = trim(zfactor_name)//char(0)
-    if (present(axis_ids)) then
-       ndims = size(axis_ids)
-       if (ndims.ne.1) then
-          msg = 'cmor_zfactor (fortran):: you passed ndims greater than 1 and zfactor_values, this '&
-               //'is not acceptable, use cmor_write to write zfactor_values'//char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-       axes_ids(1)=axis_ids(1)
-    else
-       ndims = 0
-       if (size(zfactor_values).ne.1) then
-          msg = 'cmor_zfactor(fortran):: ndims and zfactor_values length do not match'//char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-       axes_ids(1)=0
-    endif
-    if (present(units)) then
-       unit = trim(units)//char(0)
-    else 
-       unit=char(0)
-    endif
-    if (present(zfactor_bounds)) then
-       ierr = cmor_zfactor_cff_real(zfactor,zaxis_id,zfnm,unit,ndims,axes_ids(1),&
-            zfactor_values(1,1,1,1,1,1),zfactor_bounds(1,1,1,1,1,1))
-    else
-       ierr = cmor_zfactor_cff_real_nobnds(zfactor,zaxis_id,zfnm,unit,ndims,axes_ids(1),&
-            zfactor_values(1,1,1,1,1,1))
-    endif
-    if (ierr.eq.0) then
-       ierr = zfactor
-    else
-       ierr = -ierr
-    end if
-  end function cmor_zfactor_real_6dvalues
- function cmor_zfactor_real_0dvalues(zaxis_id,zfactor_name,axis_ids,&
-       units,zfactor_values,zfactor_bounds) result(ierr)
-    implicit none
-    integer zaxis_id
-    character(*) zfactor_name
-    integer, intent(in), optional :: axis_ids(:)
-    character(*) , optional :: units
-    real :: zfactor_values
-    real :: zfactor_value(1)
-    real, optional :: zfactor_bounds(2)
-    integer ierr,ndims,zfactor
-    character(1024) msg,unit,zfnm
-    integer axes_ids(1)
-    integer error_code
-    
-    zfnm = trim(zfactor_name)//char(0)
-    zfactor_value(1)=zfactor_values
-    if (present(axis_ids)) then
-       ndims = size(axis_ids)
-       if (ndims.ne.1) then
-          msg = 'cmor_zfactor(fortran) you passed ndims greater than 1 and zfactor_values, this '&
-               //'is not acceptable, use cmor_write to write zfactor_values'//char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-       axes_ids(1)=axis_ids(1)
-    else
-       ndims = 0
-       axes_ids(1)=0
-    endif
-    if (present(units)) then
-       unit = trim(units)//char(0)
-    else 
-       unit=char(0)
-    endif
-    if (present(zfactor_bounds)) then
-       ierr = cmor_zfactor_cff_real(zfactor,zaxis_id,zfnm,unit,ndims,axes_ids(1),&
-            zfactor_value(1),zfactor_bounds(1))
-    else
-       ierr = cmor_zfactor_cff_real_nobnds(zfactor,zaxis_id,zfnm,unit,ndims,axes_ids(1),&
-            zfactor_value(1))
-    endif
-     if (ierr.eq.0) then
-       ierr = zfactor
-    else
-       ierr = -ierr
-    end if
- end function cmor_zfactor_real_0dvalues
-  function cmor_zfactor_int(zaxis_id,zfactor_name,axis_ids,&
-       units,zfactor_values,zfactor_bounds) result(ierr)
-    implicit none
-    integer zaxis_id
-    character(*) zfactor_name
-    integer, intent(in), optional :: axis_ids(:)
-    character(*) , optional :: units
-    integer :: zfactor_values(:)
-    integer, optional :: zfactor_bounds(:)
-    integer ierr,ndims,zfactor
-    character(1024) msg,unit,zfnm
-    integer axes_ids(1)
-    integer error_code
-    
-    zfnm = trim(zfactor_name)//char(0)
-    if (present(axis_ids)) then
-       ndims = size(axis_ids)
-       if (ndims.ne.1) then
-          msg = 'cmor_zfactor(fortran) you passed ndims greater than 1 and zfactor_values, this '&
-               //'is not acceptable, use cmor_write to write zfactor_values'//char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-       axes_ids(1)=axis_ids(1)
-    else
-       ndims = 0
-       if (size(zfactor_values).ne.1) then
-          msg = 'cmor_zfactor (fortran) ::ndims and zfactor_values length do not match'//char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-       axes_ids(1)=0
-    endif
-    if (present(units)) then
-       unit = trim(units)//char(0)
-    else 
-       unit=char(0)
-    endif
-    if (present(zfactor_bounds)) then
-       if (size(zfactor_bounds).ne.size(zfactor_values)+1) then
-          msg = 'cmor_zfactor(fortran) zfactor_bounds length is not zfactor_values + 1 for zfactor:'//zfactor_name//char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-       ierr = cmor_zfactor_cff_int(zfactor,zaxis_id,zfnm,unit,ndims,axes_ids(1),zfactor_values(1),zfactor_bounds(1))
-    else
-       ierr = cmor_zfactor_cff_int_nobnds(zfactor,zaxis_id,zfnm,unit,ndims,axes_ids(1),zfactor_values(1))
-    endif
-    if (ierr.eq.0) then
-       ierr = zfactor
-    else
-       ierr = -ierr
-    end if
-  end function cmor_zfactor_int
-   function cmor_zfactor_int_2dvalues(zaxis_id,zfactor_name,axis_ids,&
-       units,zfactor_values,zfactor_bounds) result(ierr)
-    implicit none
-    integer zaxis_id
-    character(*) zfactor_name
-    integer, intent(in), optional :: axis_ids(:)
-    character(*) , optional :: units
-    integer :: zfactor_values(:,:)
-    integer, optional :: zfactor_bounds(:,:)
-    integer ierr,ndims,zfactor
-    character(1024) msg,unit,zfnm
-    integer axes_ids(1)
-    integer error_code
-    
-    zfnm = trim(zfactor_name)//char(0)
-    if (present(axis_ids)) then
-       ndims = size(axis_ids)
-       if (ndims.ne.1) then
-          msg = 'cmor_zfactor (fortran):: you passed ndims greater than 1 and zfactor_values, this '&
-               //'is not acceptable, use cmor_write to write zfactor_values'//char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-       axes_ids(1)=axis_ids(1)
-    else
-       ndims = 0
-       if (size(zfactor_values).ne.1) then
-          msg = 'cmor_zfactor(fortran):: ndims and zfactor_values length do not match'//char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-       axes_ids(1)=0
-    endif
-    if (present(units)) then
-       unit = trim(units)//char(0)
-    else 
-       unit=char(0)
-    endif
-    if (present(zfactor_bounds)) then
-       ierr = cmor_zfactor_cff_int(zfactor,zaxis_id,zfnm,unit,ndims,axes_ids(1),zfactor_values(1,1),zfactor_bounds(1,1))
-    else
-       ierr = cmor_zfactor_cff_int_nobnds(zfactor,zaxis_id,zfnm,unit,ndims,axes_ids(1),zfactor_values(1,1))
-    endif
-    if (ierr.eq.0) then
-       ierr = zfactor
-    else
-       ierr = -ierr
-    end if
-  end function cmor_zfactor_int_2dvalues
-  function cmor_zfactor_int_3dvalues(zaxis_id,zfactor_name,axis_ids,&
-       units,zfactor_values,zfactor_bounds) result(ierr)
-    implicit none
-    integer zaxis_id
-    character(*) zfactor_name
-    integer, intent(in), optional :: axis_ids(:)
-    character(*) , optional :: units
-    integer :: zfactor_values(:,:,:)
-    integer, optional :: zfactor_bounds(:,:,:)
-    integer ierr,ndims,zfactor
-    character(1024) msg,unit,zfnm
-    integer axes_ids(1)
-    integer error_code
-    
-    zfnm = trim(zfactor_name)//char(0)
-    if (present(axis_ids)) then
-       ndims = size(axis_ids)
-       if (ndims.ne.1) then
-          msg = 'cmor_zfactor (fortran):: you passed ndims greater than 1 and zfactor_values, this '&
-               //'is not acceptable, use cmor_write to write zfactor_values'//char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-       axes_ids(1)=axis_ids(1)
-    else
-       ndims = 0
-       if (size(zfactor_values).ne.1) then
-          msg = 'cmor_zfactor(fortran):: ndims and zfactor_values length do not match'//char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-       axes_ids(1)=0
-    endif
-    if (present(units)) then
-       unit = trim(units)//char(0)
-    else 
-       unit=char(0)
-    endif
-    if (present(zfactor_bounds)) then
-       ierr = cmor_zfactor_cff_int(zfactor,zaxis_id,zfnm,unit,ndims,axes_ids(1),zfactor_values(1,1,1),zfactor_bounds(1,1,1))
-    else
-       ierr = cmor_zfactor_cff_int_nobnds(zfactor,zaxis_id,zfnm,unit,ndims,axes_ids(1),zfactor_values(1,1,1))
-    endif
-    if (ierr.eq.0) then
-       ierr = zfactor
-    else
-       ierr = -ierr
-    end if
-  end function cmor_zfactor_int_3dvalues
-  function cmor_zfactor_int_4dvalues(zaxis_id,zfactor_name,axis_ids,&
-       units,zfactor_values,zfactor_bounds) result(ierr)
-    implicit none
-    integer zaxis_id
-    character(*) zfactor_name
-    integer, intent(in), optional :: axis_ids(:)
-    character(*) , optional :: units
-    integer :: zfactor_values(:,:,:,:)
-    integer, optional :: zfactor_bounds(:,:,:,:)
-    integer ierr,ndims,zfactor
-    character(1024) msg,unit,zfnm
-    integer axes_ids(1)
-    integer error_code
-    
-    zfnm = trim(zfactor_name)//char(0)
-    if (present(axis_ids)) then
-       ndims = size(axis_ids)
-       if (ndims.ne.1) then
-          msg = 'cmor_zfactor (fortran):: you passed ndims greater than 1 and zfactor_values, this '&
-               //'is not acceptable, use cmor_write to write zfactor_values'//char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-       axes_ids(1)=axis_ids(1)
-    else
-       ndims = 0
-       if (size(zfactor_values).ne.1) then
-          msg = 'cmor_zfactor(fortran):: ndims and zfactor_values length do not match'//char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-       axes_ids(1)=0
-    endif
-    if (present(units)) then
-       unit = trim(units)//char(0)
-    else 
-       unit=char(0)
-    endif
-    if (present(zfactor_bounds)) then
-       ierr = cmor_zfactor_cff_int(zfactor,zaxis_id,zfnm,unit,ndims,axes_ids(1),zfactor_values(1,1,1,1),zfactor_bounds(1,1,1,1))
-    else
-       ierr = cmor_zfactor_cff_int_nobnds(zfactor,zaxis_id,zfnm,unit,ndims,axes_ids(1),zfactor_values(1,1,1,1))
-    endif
-    if (ierr.eq.0) then
-       ierr = zfactor
-    else
-       ierr = -ierr
-    end if
-  end function cmor_zfactor_int_4dvalues
-  function cmor_zfactor_int_5dvalues(zaxis_id,zfactor_name,axis_ids,&
-       units,zfactor_values,zfactor_bounds) result(ierr)
-    implicit none
-    integer zaxis_id
-    character(*) zfactor_name
-    integer, intent(in), optional :: axis_ids(:)
-    character(*) , optional :: units
-    integer :: zfactor_values(:,:,:,:,:)
-    integer, optional :: zfactor_bounds(:,:,:,:,:)
-    integer ierr,ndims,zfactor
-    character(1024) msg,unit,zfnm
-    integer axes_ids(1)
-    integer error_code
-    
-    zfnm = trim(zfactor_name)//char(0)
-    if (present(axis_ids)) then
-       ndims = size(axis_ids)
-       if (ndims.ne.1) then
-          msg = 'cmor_zfactor (fortran):: you passed ndims greater than 1 and zfactor_values, this '&
-               //'is not acceptable, use cmor_write to write zfactor_values'//char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-       axes_ids(1)=axis_ids(1)
-    else
-       ndims = 0
-       if (size(zfactor_values).ne.1) then
-          msg = 'cmor_zfactor(fortran):: ndims and zfactor_values length do not match'//char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-       axes_ids(1)=0
-    endif
-    if (present(units)) then
-       unit = trim(units)//char(0)
-    else 
-       unit=char(0)
-    endif
-    if (present(zfactor_bounds)) then
-       ierr = cmor_zfactor_cff_int(zfactor,zaxis_id,zfnm,unit,ndims,axes_ids(1),&
-            zfactor_values(1,1,1,1,1),zfactor_bounds(1,1,1,1,1))
-    else
-       ierr = cmor_zfactor_cff_int_nobnds(zfactor,zaxis_id,zfnm,unit,ndims,axes_ids(1),&
-            zfactor_values(1,1,1,1,1))
-    endif
-    if (ierr.eq.0) then
-       ierr = zfactor
-    else
-       ierr = -ierr
-    end if
-  end function cmor_zfactor_int_5dvalues
-  function cmor_zfactor_int_6dvalues(zaxis_id,zfactor_name,axis_ids,&
-       units,zfactor_values,zfactor_bounds) result(ierr)
-    implicit none
-    integer zaxis_id
-    character(*) zfactor_name
-    integer, intent(in), optional :: axis_ids(:)
-    character(*) , optional :: units
-    integer :: zfactor_values(:,:,:,:,:,:)
-    integer, optional :: zfactor_bounds(:,:,:,:,:,:)
-    integer ierr,ndims,zfactor
-    character(1024) msg,unit,zfnm
-    integer axes_ids(1)
-    integer error_code
-    
-    zfnm = trim(zfactor_name)//char(0)
-    if (present(axis_ids)) then
-       ndims = size(axis_ids)
-       if (ndims.ne.1) then
-          msg = 'cmor_zfactor (fortran):: you passed ndims greater than 1 and zfactor_values, this '&
-               //'is not acceptable, use cmor_write to write zfactor_values'//char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-       axes_ids(1)=axis_ids(1)
-    else
-       ndims = 0
-       if (size(zfactor_values).ne.1) then
-          msg = 'cmor_zfactor(fortran):: ndims and zfactor_values length do not match'//char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-       axes_ids(1)=0
-    endif
-    if (present(units)) then
-       unit = trim(units)//char(0)
-    else 
-       unit=char(0)
-    endif
-    if (present(zfactor_bounds)) then
-       ierr = cmor_zfactor_cff_int(zfactor,zaxis_id,zfnm,unit,ndims,axes_ids(1),&
-            zfactor_values(1,1,1,1,1,1),zfactor_bounds(1,1,1,1,1,1))
-    else
-       ierr = cmor_zfactor_cff_int_nobnds(zfactor,zaxis_id,zfnm,unit,ndims,axes_ids(1),&
-            zfactor_values(1,1,1,1,1,1))
-    endif
-    if (ierr.eq.0) then
-       ierr = zfactor
-    else
-       ierr = -ierr
-    end if
-  end function cmor_zfactor_int_6dvalues
-  function cmor_zfactor_int_0dvalues(zaxis_id,zfactor_name,axis_ids,&
-       units,zfactor_values,zfactor_bounds) result(ierr)
-    implicit none
-    integer zaxis_id
-    character(*) zfactor_name
-    integer, intent(in), optional :: axis_ids(:)
-    character(*) , optional :: units
-    integer :: zfactor_values
-    integer :: zfactor_value(1)
-    integer, optional :: zfactor_bounds(2)
-    integer ierr,ndims,zfactor
-    character(1024) msg,unit,zfnm
-    integer axes_ids(1)
-    integer error_code
-    
-    zfnm = trim(zfactor_name)//char(0)
-    zfactor_value(1)=zfactor_values
-    if (present(axis_ids)) then
-       ndims = size(axis_ids)
-       if (ndims.ne.1) then
-          msg = 'cmor_zfactor(fortran) you passed ndims greater than 1 and zfactor_values, this '&
-               //'is not acceptable, use cmor_write to write zfactor_values'//char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       endif
-       axes_ids(1)=axis_ids(1)
-    else
-       ndims = 0
-       axes_ids(1)=0
-    endif
-    if (present(units)) then
-       unit = trim(units)//char(0)
-    else 
-       unit=char(0)
-    endif
-    if (present(zfactor_bounds)) then
-       ierr = cmor_zfactor_cff_int(zfactor,zaxis_id,zfnm,unit,ndims,axes_ids(1),&
-            zfactor_value(1),zfactor_bounds(1))
-    else
-       ierr = cmor_zfactor_cff_int_nobnds(zfactor,zaxis_id,zfnm,unit,ndims,axes_ids(1),&
-            zfactor_value(1))
-    endif
-    if (ierr.eq.0) then
-       ierr = zfactor
-    else
-       ierr = -ierr
-    end if
-  end function cmor_zfactor_int_0dvalues
-!!$  function cmor_zfactor_long(zaxis_id,zfactor_name,axis_ids,&
-!!$       units,zfactor_values,zfactor_bounds) result(ierr)
-!!$    implicit none
-!!$    integer zaxis_id
-!!$    character(*) zfactor_name
-!!$    integer, intent(in), optional :: axis_ids(:)
-!!$    character(*) , optional :: units
-!!$    integer(kind=8) :: zfactor_values(:)
-!!$    integer(kind=8), optional :: zfactor_bounds(:)
-!!$    integer i,ierr,ndims,zfactor
-!!$    character(1024) msg,unit,zfnm
-!!$    integer axes_ids(1)
-!!$    integer error_code
-!!$    
-!!$    zfnm = trim(zfactor_name)//char(0)
-!!$    if (present(axis_ids)) then
-!!$       ndims = size(axis_ids)
-!!$       if (ndims.ne.1) then
-!!$          msg = 'cmor_zfactor(fortran) you passed ndims greater than 1 and zfactor_values, this '&
-!!$               //'is not acceptable, use cmor_write to write zfactor_values'//char(0)
-!!$          error_code = CMOR_CRITICAL
-!!$          call cmor_handle_error(msg,error_code)
-!!$       endif
-!!$       axes_ids(1)=axis_ids(1)
-!!$    else
-!!$       ndims = 0
-!!$       if (size(zfactor_values).ne.1) then
-!!$          msg = 'cmor_zfactor(fortran):: ndims and zfactor_values length do not match'//char(0)
-!!$          error_code = CMOR_CRITICAL
-!!$          call cmor_handle_error(msg,error_code)
-!!$       endif
-!!$       axes_ids(1)=0
-!!$    endif
-!!$    if (present(units)) then
-!!$       unit = trim(units)//char(0)
-!!$    else 
-!!$       unit=char(0)
-!!$    endif
-!!$    if (present(zfactor_bounds)) then
-!!$       if (size(zfactor_bounds).ne.size(zfactor_values)+1) then
-!!$          msg = 'cmor_zfactor(fortran) zfactor_bounds length is not zfactor_values + 1 for zfactor:'//zfactor_name//char(0)
-!!$          error_code = CMOR_CRITICAL
-!!$          call cmor_handle_error(msg,error_code)
-!!$       endif
-!!$       ierr = cmor_zfactor_cff_long(zfactor,zaxis_id,zfnm,unit,ndims,axes_ids(1),zfactor_values(1),zfactor_bounds(1))
-!!$    else
-!!$       ierr = cmor_zfactor_cff_long_nobnds(zfactor,zaxis_id,zfnm,unit,ndims,axes_ids(1),zfactor_values(1))
-!!$    endif
-!!$     if (ierr.eq.0) then
-!!$       ierr = zfactor
-!!$    else
-!!$       ierr = -ierr
-!!$    end if
-!!$ end function cmor_zfactor_long
-!!$  function cmor_zfactor_long_0dvalues(zaxis_id,zfactor_name,axis_ids,&
-!!$       units,zfactor_values,zfactor_bounds) result(ierr)
-!!$    implicit none
-!!$    integer zaxis_id
-!!$    character(*) zfactor_name
-!!$    integer, intent(in), optional :: axis_ids(:)
-!!$    character(*) , optional :: units
-!!$    integer(kind=8) :: zfactor_values
-!!$    integer(kind=8) :: zfactor_value(1)
-!!$    integer(kind=8), optional :: zfactor_bounds(2)
-!!$    integer i,ierr,ndims,zfactor
-!!$    character(1024) msg,unit,zfnm
-!!$    integer axes_ids(1)
-!!$    integer error_code
-!!$    
-!!$    zfnm = trim(zfactor_name)//char(0)
-!!$    zfactor_value(1)=zfactor_values
-!!$    if (present(axis_ids)) then
-!!$       ndims = size(axis_ids)
-!!$       if (ndims.ne.1) then
-!!$          msg = 'cmor_zfactor(fortran) you passed ndims greater than 1 and zfactor_values, this '&
-!!$               //'is not acceptable, use cmor_write to write zfactor_values'//char(0)
-!!$          error_code = CMOR_CRITICAL
-!!$          call cmor_handle_error(msg,error_code)
-!!$       endif
-!!$       axes_ids(1)=axis_ids(1)
-!!$    else
-!!$       ndims = 0
-!!$       axes_ids(1)=0
-!!$    endif
-!!$    if (present(units)) then
-!!$       unit = trim(units)//char(0)
-!!$    else 
-!!$       unit=char(0)
-!!$    endif
-!!$    if (present(zfactor_bounds)) then
-!!$       ierr = cmor_zfactor_cff_long(zfactor,zaxis_id,zfnm,unit,ndims,axes_ids(1),zfactor_value(1),zfactor_bounds(1))
-!!$    else
-!!$       ierr = cmor_zfactor_cff_long_nobnds(zfactor,zaxis_id,zfnm,unit,ndims,axes_ids(1),zfactor_value(1))
-!!$    endif
-!!$    if (ierr.eq.0) then
-!!$       ierr = zfactor
-!!$    else
-!!$       ierr = -ierr
-!!$    end if
-!!$  end function cmor_zfactor_long_0dvalues
-
-  subroutine cmor_set_table(table_id)
-    integer table_id
-    call cmor_set_table_cff(table_id)
-  end subroutine cmor_set_table
-
-  function cmor_load_table(table) result(table_id)
-    integer table_id
-    character(*) table
-    call cmor_load_table_cff(trim(table)//char(0),table_id)
-  end function cmor_load_table
-
-  function cmor_axis_char(table,table_entry,units,length,&
-       coord_vals,interval) result(ierr)
-    implicit none
-    character(*) table_entry,units
-    character(*) :: coord_vals(:)
-    integer, optional :: length
-    character(*) , optional :: interval
-    character(1024) interv,msg
-    integer l,cell_bounds_ndim,i
-    integer ierr,error_code
-    character(*), optional :: table
-    integer axis_id
-
-    if (present(table)) then
-       l = cmor_load_table(table)
-    endif
-    if (present(interval)) then
-       interv = trim(interval)//char(0)
-    else
-       interv = char(0)
-    endif
-    
-    
-    if (.not.present(length)) then
-       l = size(coord_vals)
-    else
-       l= length
-       if (l.gt.size(coord_vals)) then
-          write(msg,*) "cmor_axis (fortran):: you passed legnth=",length,&
-               "but the coord_vals array your are sending is only",size(coord_vals),&
-               "long"//char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       else if (l.lt.size(coord_vals)) then
-          write(msg,*) "cmor_axis (fortran):: you passed legnth=",length,&
-               "but the coord_vals array your are sending is really",size(coord_vals),&
-               "long, check you really don't want to use it in its integrality"//char(0)
-          error_code = CMOR_WARNING
-          call cmor_handle_error(msg,error_code)
-       endif
-    endif
-    cell_bounds_ndim = 0
-    do i=0,l
-       if (len(coord_vals(i)).gt.cell_bounds_ndim) then 
-          cell_bounds_ndim = len(coord_vals(i))
-       endif
-    enddo
-    ierr = cmor_axis_cff_nobnds_char(axis_id,trim(table_entry)//char(0),&
-         trim(units)//char(0),l,coord_vals(1),cell_bounds_ndim,interv)
-
-    if (ierr.eq.0) then 
-       ierr = axis_id
-    else 
-       ierr = -ierr
-    endif
-  end function cmor_axis_char
-  function cmor_axis_double_1(table,table_entry,units,length,coord_vals,&
-       cell_bounds,cell_bounds_ndim,interval) result(ierr)
-    implicit none
-    character(*) table_entry,units
-    double precision, optional :: coord_vals(:),cell_bounds(:)
-    integer, optional :: cell_bounds_ndim,length
-    character(*) , optional :: interval
-    character(1024) interv,msg
-    integer axis_id
-    integer l,ierr
-    character(*), optional :: table
-    integer error_code
-    if (present(table)) then
-       l = cmor_load_table(table)
-    endif
-    ! ok first check we have length if no coords or bounds
-!!$    if (.not.present(length).and. .not. present(coord_vals) .and. .not. present(cell_bounds)) then
-!!$          msg = "cmor_axis (fortran):: you need to pass length to cmor_axis if no bounds nor coords"//char(0)
-!!$          error_code = CMOR_CRITICAL
-!!$          call cmor_handle_error(msg,error_code)
-!!$    endif
-    
-    if (present(interval)) then
-       interv = trim(interval)//char(0)
-    else
-       interv = char(0)
-    endif
-    
-    if (present(cell_bounds).and. .not. present(coord_vals)) then
-       msg = "cmor_axis (fortran):: you need to pass coords to cmor_axis if you pass bounds"//char(0)
-       error_code = CMOR_CRITICAL
-       call cmor_handle_error(msg,error_code)
-    endif
-    
-    l=0
-    if (.not.present(length)) then
-          l = size(coord_vals)
-    else
-       l= length
-       if (present(coord_vals)) then 
-          if (l.gt.size(coord_vals)) then
-             write(msg,*) "cmor_axis (fortran):: you passed legnth=",length,&
-                  "but the coord_vals array your are sending is only",size(coord_vals),&
-                  "long"//char(0)
-             error_code = CMOR_CRITICAL
-             call cmor_handle_error(msg,error_code)
-          else if (l.lt.size(coord_vals)) then
-             write(msg,*) "cmor_axis (fortran):: you passed legnth=",length,&
-                  "but the coord_vals array your are sending is really",size(coord_vals),&
-                  "long, check you really don't want to use it in its integrality"//char(0)
-             error_code = CMOR_WARNING
-             call cmor_handle_error(msg,error_code)
-          endif
-       endif
-    endif
-
-    if (present(cell_bounds)) then
-       ierr = cmor_axis_cff_double(axis_id,trim(table_entry)//char(0),trim(units)//char(0),&
-            l,coord_vals(1),cell_bounds(1),1,interv)
-    else
-       if (present(coord_vals)) then
-          ierr = cmor_axis_cff_nobnds_double(axis_id,trim(table_entry)//char(0),trim(units)//char(0),l,&
-               coord_vals(1),interv)
-       else
-          ierr = cmor_axis_cff_nocoords(axis_id,trim(table_entry)//char(0),trim(units)//char(0),0,interv)
-       endif
-    endif
-    if (ierr.eq.0) then 
-       ierr = axis_id
-    else 
-       ierr = -ierr
-    endif
-  end function cmor_axis_double_1
-  function cmor_axis_double_2(table,table_entry,units,length,coord_vals,cell_bounds,&
-       cell_bounds_ndim,interval) result(ierr)
-    implicit none
-    character(*) table_entry,units
-    double precision :: cell_bounds(:,:)
-    double precision :: coord_vals(:)
-    double precision,allocatable :: bnds(:)
-    integer, optional :: cell_bounds_ndim,length
-    character(*) , optional :: interval
-    character(1024) interv,msg
-    integer axis_id
-    integer l,i,ierr,error_code
-    character(*), optional :: table
-    
-    if (present(table)) then
-       l = cmor_load_table(table)
-    endif
-    
-    if (present(interval)) then
-       interv = trim(interval)//char(0)
-    else
-       interv = char(0)
-    endif
-    
-    
-    if (.not.present(length)) then
-       l = size(coord_vals)
-    else
-       l= length
-       if (l.gt.size(coord_vals)) then
-          write(msg,*) "cmor_axis (fortran):: you passed legnth=",length,&
-               "but the coord_vals array your are sending is only",size(coord_vals),&
-               "long"//char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       else if (l.lt.size(coord_vals)) then
-          write(msg,*) "cmor_axis (fortran):: you passed legnth=",length,&
-               "but the coord_vals array your are sending is really",size(coord_vals),&
-               "long, check you really don't want to use it in its integrality"//char(0)
-          error_code = CMOR_WARNING
-          call cmor_handle_error(msg,error_code)
-       endif
-    endif
-
-    if (size(cell_bounds,1).ne.2) then
-       msg = "cmor_axis (fortran): bounds first dimension length must be 2"//char(0)
-       error_code = CMOR_CRITICAL
-       call cmor_handle_error(msg,error_code)
-    endif
-    allocate(bnds(l*2))
-    do i=1,l
-       bnds(2*i-1) = cell_bounds(1,i)
-       bnds(2*i) = cell_bounds(2,i)
-    enddo
-    ierr = cmor_axis_cff_double(axis_id,trim(table_entry)//char(0),trim(units)//char(0),l,&
-         coord_vals(1),bnds(1),2,interv)
-    deallocate(bnds)
-    if (ierr.eq.0) then 
-       ierr = axis_id
-    else 
-       ierr = -ierr
-    endif
-  end function cmor_axis_double_2
-  function cmor_axis_real_1(table,table_entry,units,length,coord_vals,cell_bounds,&
-       cell_bounds_ndim,interval) result(ierr)
-    implicit none
-    character(*) table_entry,units
-    real, optional :: cell_bounds(:)
-    real :: coord_vals(:)
-    integer, optional :: cell_bounds_ndim,length
-    character(*) , optional :: interval
-    character(1024) interv,msg
-    integer axis_id
-    integer l,ierr,error_code
-    character(*), optional :: table
-    if (present(table)) then
-       l = cmor_load_table(table)
-    endif
-    
-    if (present(interval)) then
-       interv = trim(interval)//char(0)
-    else
-       interv = char(0)
-    endif
-        
-    if (.not.present(length)) then
-       l = size(coord_vals)
-    else
-       l= length
-       if (l.gt.size(coord_vals)) then
-          write(msg,*) "cmor_axis (fortran):: you passed legnth=",length,&
-               "but the coord_vals array your are sending is only",size(coord_vals),&
-               "long"//char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       else if (l.lt.size(coord_vals)) then
-          write(msg,*) "cmor_axis (fortran):: you passed legnth=",length,&
-               "but the coord_vals array your are sending is really",size(coord_vals),&
-               "long, check you really don't want to use it in its integrality"//char(0)
-          error_code = CMOR_WARNING
-          call cmor_handle_error(msg,error_code)
-       endif
-    endif
-
-    if (present(cell_bounds)) then
-       ierr = cmor_axis_cff_real(axis_id,trim(table_entry)//char(0),trim(units)//char(0),l,&
-            coord_vals(1),cell_bounds(1),1,interv)
-    else
-       ierr = cmor_axis_cff_nobnds_real(axis_id,trim(table_entry)//char(0),trim(units)//char(0),&
-            l,coord_vals(1),interv)
-    endif
-     if (ierr.eq.0) then 
-       ierr = axis_id
-    else 
-       ierr = -ierr
-    endif
- end function cmor_axis_real_1
-  function cmor_axis_real_2(table,table_entry,units,length,coord_vals,cell_bounds,&
-       cell_bounds_ndim,interval) result(ierr)
-    implicit none
-    character(*) table_entry,units
-    real :: cell_bounds(:,:)
-    real :: coord_vals(:)
-    real, allocatable :: bnds(:)
-    integer, optional :: cell_bounds_ndim,length
-    character(*) , optional :: interval
-    character(1024) interv,msg
-    integer axis_id
-    integer l,ierr,i,error_code
-    character(*), optional :: table
-    
-   if (present(table)) then
-       l = cmor_load_table(table)
-    endif
-    
-    if (present(interval)) then
-       interv = trim(interval)//char(0)
-    else
-       interv = char(0)
-    endif
-    
-    
-    if (.not.present(length)) then
-       l = size(coord_vals)
-    else
-       l= length
-       if (l.gt.size(coord_vals)) then
-          write(msg,*) "cmor_axis (fortran):: you passed legnth=",length,&
-               "but the coord_vals array your are sending is only",size(coord_vals),&
-               "long"//char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       else if (l.lt.size(coord_vals)) then
-          write(msg,*) "cmor_axis (fortran):: you passed legnth=",length,&
-               "but the coord_vals array your are sending is really",size(coord_vals),&
-               "long, check you really don't want to use it in its integrality"//char(0)
-          error_code = CMOR_WARNING
-          call cmor_handle_error(msg,error_code)
-       endif
-    endif
-
-    if (size(cell_bounds,1).ne.2) then
-       msg = "cmor_axis (fortran): bounds first dimension length must be 2"//char(0)
-       error_code = CMOR_CRITICAL
-       call cmor_handle_error(msg,error_code)
-   endif
-    allocate(bnds(l*2))
-    do i=1,l
-       bnds(2*i-1) = cell_bounds(1,i)
-       bnds(2*i) = cell_bounds(2,i)
-    enddo
-    ierr = cmor_axis_cff_real(axis_id,trim(table_entry)//char(0),trim(units)//char(0),&
-         l,coord_vals(1),bnds(1),2,interv)
-    deallocate(bnds)
-    if (ierr.eq.0) then 
-       ierr = axis_id
-    else 
-       ierr = -ierr
-    endif
-  end function cmor_axis_real_2
-  function cmor_axis_int_1(table,table_entry,units,length,coord_vals,cell_bounds,&
-       cell_bounds_ndim,interval) result(ierr)
-    implicit none
-    character(*) table_entry,units
-    integer, optional :: cell_bounds(:)
-    integer :: coord_vals(:)
-    integer, optional :: cell_bounds_ndim,length
-    character(*) , optional :: interval
-    character(1024) interv,msg
-    integer axis_id
-    integer l,ierr,error_code
-    character(*), optional :: table
-    
-    if (present(table)) then
-       l = cmor_load_table(table)
-    endif
-    
-    if (present(interval)) then
-       interv = trim(interval)//char(0)
-    else
-       interv = char(0)
-    endif
-    
-    
-    if (.not.present(length)) then
-       l = size(coord_vals)
-    else
-       l= length
-       if (l.gt.size(coord_vals)) then
-          write(msg,*) "cmor_axis (fortran):: you passed legnth=",length,&
-               "but the coord_vals array your are sending is only",size(coord_vals),&
-               "long"//char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       else if (l.lt.size(coord_vals)) then
-          write(msg,*) "cmor_axis (fortran):: you passed legnth=",length,&
-               "but the coord_vals array your are sending is really",size(coord_vals),&
-               "long, check you really don't want to use it in its integrality"//char(0)
-          error_code = CMOR_WARNING
-          call cmor_handle_error(msg,error_code)
-       endif
-    endif
-
-    if (present(cell_bounds)) then
-       ierr = cmor_axis_cff_int(axis_id,table_entry//char(0),trim(units)//char(0),&
-            l,coord_vals(1),cell_bounds(1),1,interv)
-    else
-          ierr = cmor_axis_cff_nobnds_int(axis_id,table_entry//char(0),trim(units)//char(0),&
-               l,coord_vals(1),interv)
-    endif
-    if (ierr.eq.0) then 
-       ierr = axis_id
-    else 
-       ierr = -ierr
-    endif
-  end function cmor_axis_int_1
-  function cmor_axis_int_2(table,table_entry,units,length,coord_vals,cell_bounds,&
-       cell_bounds_ndim,interval) result(ierr)
-    implicit none
-    character(*) table_entry,units
-    integer :: cell_bounds(:,:)
-    integer :: coord_vals(:)
-    integer,allocatable :: bnds(:)
-    integer, optional :: cell_bounds_ndim,length
-    character(*) , optional :: interval
-    character(1024) interv,msg
-    integer axis_id
-    integer l,ierr,i,error_code
-    character(*), optional :: table
-
-    if (present(table)) then
-       l = cmor_load_table(table)
-    endif
-    
-    if (present(interval)) then
-       interv = trim(interval)//char(0)
-    else
-       interv = char(0)
-    endif
-    
-    
-    if (.not.present(length)) then
-       l = size(coord_vals)
-    else
-       l= length
-       if (l.gt.size(coord_vals)) then
-          write(msg,*) "cmor_axis (fortran):: you passed legnth=",length,&
-               "but the coord_vals array your are sending is only",size(coord_vals),&
-               "long"//char(0)
-          error_code = CMOR_CRITICAL
-          call cmor_handle_error(msg,error_code)
-       else if (l.lt.size(coord_vals)) then
-          write(msg,*) "cmor_axis (fortran):: you passed legnth=",length,&
-               "but the coord_vals array your are sending is really",size(coord_vals),&
-               "long, check you really don't want to use it in its integrality"//char(0)
-          error_code = CMOR_WARNING
-          call cmor_handle_error(msg,error_code)
-       endif
-    endif
-
-    if (size(cell_bounds,1).ne.2) then
-       msg = "cmor_axis (fortran): bounds first dimension lengthmust be 2"//char(0)
-       error_code = CMOR_CRITICAL
-       call cmor_handle_error(msg,error_code)
-    endif
-    allocate(bnds(l*2))
-    do i=1,l
-       bnds(2*i-1) = cell_bounds(1,i)
-       bnds(2*i) = cell_bounds(2,i)
-    enddo
-    ierr = cmor_axis_cff_int(axis_id,trim(table_entry)//char(0),trim(units)//char(0),l,&
-         coord_vals(1),bnds(1),2,interv)
-    deallocate(bnds)
-    if (ierr.eq.0) then 
-       ierr = axis_id
-    else 
-       ierr = -ierr
-    endif
- end function cmor_axis_int_2
-!!$  function cmor_axis_long_1(table,table_entry,units,length,coord_vals,cell_bounds,&
-!!$       cell_bounds_ndim,interval) result(ierr)
-!!$    implicit none
-!!$    character(*) table_entry,units
-!!$    integer (kind=8), optional :: cell_bounds(:)
-!!$    integer (kind=8) :: coord_vals(:)
-!!$    integer, optional :: cell_bounds_ndim,length
-!!$    character(*) , optional :: interval
-!!$    character(1024) interv
-!!$    integer axis_id
-!!$    integer l,ierr
-!!$    character(*), optional :: table
-!!$    
-!!$  if (present(table)) then
-!!$       l = cmor_load_table(table)
-!!$    endif
-!!$    
-!!$    if (present(interval)) then
-!!$       interv = interval//char(0)
-!!$    else
-!!$       interv = char(0)
-!!$    endif
-!!$    
-!!$    
-!!$    if (.not.present(length)) then
-!!$       l = size(coord_vals)
-!!$    else
-!!$       l= length
-!!$    endif
-!!$
-!!$    if (present(cell_bounds)) then
-!!$       ierr = cmor_axis_cff_long(axis_id,table_entry//char(0),units//char(0),&
-!!$            l,coord_vals(1),cell_bounds(1),1,interv)
-!!$    else
-!!$          ierr = cmor_axis_cff_nobnds_long(axis_id=axis_id,&
-!!$               table_entry=table_entry//char(0),&
-!!$               units=units//char(0),&
-!!$               length=l,coord_vals=coord_vals(1),interval=interv)
-!!$    endif
-!!$    if (ierr.eq.0) then 
-!!$       ierr = axis_id
-!!$    else 
-!!$       ierr = -ierr
-!!$    endif
-!!$  end function cmor_axis_long_1
-!!$  function cmor_axis_long_2(table,table_entry,units,length,coord_vals,cell_bounds,&
-!!$       cell_bounds_ndim,interval) result(ierr)
-!!$    implicit none
-!!$    character(*) table_entry,units
-!!$    integer(kind=8)  :: coord_vals(:),cell_bounds(:,:)
-!!$    integer(kind=8),allocatable :: bnds(:)
-!!$    integer , optional :: cell_bounds_ndim,length
-!!$    character(*) , optional :: interval
-!!$    character(1024) interv,msg
-!!$    integer axis_id
-!!$    integer l,ierr,i,error_code
-!!$    character(*), optional :: table
-!!$    character(10) type
-!!$
-!!$    if (present(table)) then
-!!$       l = cmor_load_table(table)
-!!$    endif
-!!$    
-!!$    if (present(interval)) then
-!!$       interv = interval//char(0)
-!!$    else
-!!$       interv = char(0)
-!!$    endif
-!!$    
-!!$    
-!!$    if (.not.present(length)) then
-!!$       l = size(coord_vals)
-!!$    else
-!!$       l= length
-!!$    endif
-!!$
-!!$    if (size(cell_bounds,1).ne.2) then
-!!$       msg = "cmor_axis (fortran): bounds first dimension lengthmust be 2"//char(0)
-!!$       error_code = CMOR_CRITICAL
-!!$       call cmor_handle_error(msg,error_code)
-!!$    endif
-!!$    allocate(bnds(l*2))
-!!$    do i=1,l
-!!$       bnds(2*i-1) = cell_bounds(1,i)
-!!$       bnds(2*i) = cell_bounds(2,i)
-!!$    enddo
-!!$    ierr = cmor_axis_cff_long(axis_id=axis_id,&
-!!$         table_entry=table_entry//char(0),units=units//char(0),length=l,&
-!!$         coord_vals=coord_vals(1),cell_bounds=bnds(1),&
-!!$         cell_bounds_ndim=2,interval=interv)
-!!$    deallocate(bnds)
-!!$    ierr = -ierr
-!!$  end function cmor_axis_long_2
-     
-
-  subroutine cmor_create_output_path(var_id, path)
-    implicit none
-    character(*), intent(out) :: path
-    integer var_id
-    integer slen
-    call cmor_create_output_path_cff(var_id,path,slen)
-    path = path(1:slen)
-  end subroutine cmor_create_output_path
-
-  function cmor_has_cur_dataset_attribute(value) result (ierr)
-    implicit none
-    character (*), intent (in) :: value
-    integer ierr
-    ierr = cmor_has_cur_dset_attribute_cff(trim(value)//char(0))
-  end function cmor_has_cur_dataset_attribute
-
-  function cmor_get_cur_dataset_attribute(name, value) result (ierr)
-    implicit none
-    character (*), intent (in) :: name
-    character (*), intent (out) :: value
-    integer ierr
-    ierr = cmor_get_cur_dset_attribute_cff(trim(name)//char(0), value)
-  end function cmor_get_cur_dataset_attribute
-
-  function cmor_set_cur_dataset_attribute(name, value) result (ierr)
-    implicit none
-    character (*), intent (in) :: name
-    character (*), intent (in) :: value
-    integer ierr
-    ierr = cmor_set_cur_dset_attribute_cff(trim(name)//char(0), trim(value)//char(0))
-  end function cmor_set_cur_dataset_attribute
-
-  function cmor_setup_ints(inpath,netcdf_file_action, set_verbosity,&
-       exit_control, logfile, create_subdirectories) result(ierr)
-    implicit none
-    integer ierr,nc,verb,mode,crsub
-    integer , optional, intent(in) :: netcdf_file_action
-    integer , optional, intent(in) :: set_verbosity
-    integer , optional, intent(in) :: exit_control
-    character(*) , optional, intent(in) :: inpath
-    character(*) , optional, intent(in) :: logfile
-    integer , optional, intent(in) :: create_subdirectories
-    character(1024) path
-
-
-    if (present(inpath)) then
-       path = inpath
-    else
-       path = "."
-    endif
-    if (present(netcdf_file_action)) then
-       nc = netcdf_file_action
-    else
-       nc = CMOR_PRESERVE
-    endif
-    if(present(set_verbosity)) then
-       verb = set_verbosity
-    else
-       verb = CMOR_NORMAL
-    endif
-    if (present(exit_control)) then
-       mode =exit_control
-    else
-       mode = CMOR_NORMAL
-    endif
-    ! correction code to comply with Karl's old calls
-    if (verb.eq.0 ) then 
-       verb = CMOR_QUIET
-    else if (verb.eq.1) then 
-       verb = CMOR_NORMAL
-    endif
-    if (mode.eq.0) then 
-       mode = CMOR_EXIT_ON_MAJOR
-    else if (mode.eq.1 ) then 
-       mode = CMOR_NORMAL
-    else if (mode.eq.2) then 
-       mode = CMOR_EXIT_ON_WARNING
-    endif
-    if (present(create_subdirectories)) then
-       crsub = create_subdirectories
-    else
-       crsub = 1
-    endif
-    if (present(logfile)) then 
-       ierr = -cmor_setup_cff(trim(path)//char(0),nc,verb,mode,trim(logfile)//char(0),crsub)
-    else
-       ierr = -cmor_setup_cff_nolog(trim(path)//char(0),nc,verb,mode,crsub)
-    endif
-       
-  end function cmor_setup_ints
-
-  FUNCTION similar(str1, str2)
-
-    ! compares two strings after removing leading and trailing blanks and 
-    ! ignoring case.  
-
-    IMPLICIT NONE
-
-    LOGICAL :: similar
-    CHARACTER(len=*), INTENT(IN) :: str1
-    CHARACTER(len=*), INTENT(IN) :: str2
-
-    CHARACTER(len=LEN(str1)) :: low1
-    CHARACTER(len=LEN(str2)) :: low2
-    INTEGER :: len1, i
-
-    low1 = ADJUSTL(str1)
-    low2 = ADJUSTL(str2)
-
-    len1 = LEN_TRIM(low1)
-    similar = .TRUE.
-    IF (len1 /= LEN_TRIM(low2)) THEN
-       similar = .FALSE.
-    ELSE
-       ! convert strings to lower case
-       DO i=1,len1
-          IF ( LGE(low1(i:i),'A') .AND. LLE(low1(i:i),'Z') ) &
-               low1(i:i) = ACHAR( IACHAR(low1(i:i)) + 32 )
-          IF ( LGE(low2(i:i),'A') .AND. LLE(low2(i:i),'Z') ) &
-               low2(i:i) = ACHAR( IACHAR(low2(i:i)) + 32 )
-       END DO
-
-       IF (TRIM(low1) /= TRIM(low2)) similar=.FALSE.
-    END IF
-
-    RETURN
-  END FUNCTION similar
-
-
-  function cmor_setup_nc_char(inpath,netcdf_file_action, set_verbosity,&
-       exit_control, logfile, create_subdirectories) result(ierr)
-    implicit none
-    integer ierr,nc,verb,mode,crsub
-    integer , optional, intent(in) :: set_verbosity
-    integer , optional, intent(in) :: exit_control
-    character(*), optional, intent(in) ::  inpath
-    character(*) , intent(in) :: netcdf_file_action
-    character(*) , optional, intent(in) :: logfile
-    integer , optional, intent(in) :: create_subdirectories
-    character(1024) path
-
-    if (present(inpath)) then
-       path = trim(inpath)//char(0)
-    else
-       path = "."
-    endif
-    if (similar(netcdf_file_action,"preserve") ) then
-       nc = CMOR_PRESERVE
-    else if (similar(netcdf_file_action,"append") ) then
-       nc = CMOR_APPEND
-    else if (similar(netcdf_file_action,"replace") ) then
-       nc = CMOR_REPLACE
-    else if (similar(netcdf_file_action,"preserve_3") ) then
-       nc = CMOR_PRESERVE_3
-    else if (similar(netcdf_file_action,"append_3") ) then
-       nc = CMOR_APPEND_3
-    else if (similar(netcdf_file_action,"replace_3") ) then
-       nc = CMOR_REPLACE_3
-    else !dummy value to generate error from C
-       nc =1000
-    endif
-
-    if (present(create_subdirectories)) then
-       crsub = create_subdirectories
-    else
-       crsub = 1
-    endif
-
-    if(present(set_verbosity)) then
-       verb = set_verbosity
-    else
-       verb = CMOR_NORMAL
-    endif
-    if (present(exit_control)) then
-       mode =exit_control
-    else
-       mode = CMOR_NORMAL
-    endif
-    ! correction code to comply withh Karl's old calls
-    if (verb.eq.0 ) then 
-       verb = CMOR_QUIET
-    else if (verb.eq.1) then 
-       verb = CMOR_NORMAL
-    endif
-    if (mode.eq.0) then 
-       mode =CMOR_EXIT_ON_MAJOR
-    else if (mode.eq.1 ) then
-       mode = CMOR_NORMAL
-    else if (mode.eq.2) then
-       mode = CMOR_EXIT_ON_WARNING
-    endif
-    if (present(logfile)) then 
-       ierr = -cmor_setup_cff(trim(path)//char(0),nc,verb,mode,trim(logfile)//char(0),crsub)
-    else
-       ierr = -cmor_setup_cff_nolog(trim(path)//char(0),nc,verb,mode,crsub)
-    endif
-  end function cmor_setup_nc_char
-
-  function cmor_dataset(outpath,experiment_id,institution,source,calendar,&
-       realization,&
-       contact,history,comment,references,&
-       leap_year,leap_month,month_lengths,model_id,forcing, &
-       initialization_method,physics_version,institute_id,parent_experiment_id,branch_time) result (ierr)
-    implicit none
-    character(*), INTENT(in) :: outpath,experiment_id,institution,source,calendar
-    character(*), optional, intent(in) :: model_id,forcing
-    character(*), optional, intent(in) :: contact,history,comment,references,institute_id
-    character(*), optional, intent(in) :: parent_experiment_id
-    integer, optional,intent(in) :: leap_year,leap_month,month_lengths(12)
-    integer r,ly,lm,im,pv
-    integer, optional, intent(in) :: realization,initialization_method,physics_version
-    character(1024) cntct,hist,comt,ref,mnm,fnm,instid,peid
-    integer ierr
-    double precision, optional, intent(in) :: branch_time
-
-    if (present(realization)) then
-       r = realization
-    else
-       r = 1
-    endif
-    if (present(initialization_method)) then
-       im = initialization_method
-    else
-       im = 0
-    endif
-    if (present(physics_version)) then
-       pv = physics_version
-    else
-       pv = 0
-    endif
-    if (present(leap_year)) then
-       ly = leap_year
-    else
-       ly =0
-    endif
-    if (present(leap_month)) then
-       lm = leap_month
-    else
-       lm =0
-    endif
-    if (present(contact)) then
-       cntct = trim(contact)//char(0)
-    else
-       cntct = char(0)
-    endif
-    if (present(history)) then
-       hist = trim(history)//char(0)
-    else
-       hist = char(0)
-    endif
-    if (present(comment)) then
-       comt = trim(comment)//char(0)
-    else
-       comt = char(0)
-    endif
-    if (present(references)) then
-       ref = trim(references)//char(0)
-    else
-       ref = char(0)
-    endif
-    if (present(model_id)) then
-       mnm = trim(model_id)//char(0)
-    else
-       mnm  = char(0)
-    endif
-    if (present(forcing)) then
-       fnm = trim(forcing)//char(0)
-    else
-       fnm  = char(0)
-    endif
-    if (present(institute_id)) then
-       instid = trim(institute_id)//char(0)
-    else
-       instid= char(0)
-    endif
-    if (present(parent_experiment_id)) then
-       peid = trim(parent_experiment_id)//char(0)
-    else
-       peid= char(0)
-    endif
-    if (present(month_lengths)) then
-       if (present(branch_time)) then
-          ierr = cmor_dataset_cff(trim(outpath)//char(0),trim(experiment_id)//char(0),&
-               trim(institution)//char(0),trim(source)//char(0),trim(calendar)//char(0),r,&
-               cntct,hist,comt,ref,&
-               ly,lm,month_lengths(1),mnm,fnm,im,pv,instid,peid,branch_time)
-       else
-          ierr = cmor_dataset_cff_nobrch(trim(outpath)//char(0),trim(experiment_id)//char(0),&
-               trim(institution)//char(0),trim(source)//char(0),trim(calendar)//char(0),r,&
-               cntct,hist,comt,ref,&
-               ly,lm,month_lengths(1),mnm,fnm,im,pv,instid,peid)
-       endif
-    else
-       if (present(branch_time)) then
-          ierr = cmor_dataset_cff_null(trim(outpath)//char(0),trim(experiment_id)//char(0),&
-               trim(institution)//char(0),trim(source)//char(0),trim(calendar)//char(0),r,&
-               cntct,hist,comt,ref,&
-               ly,lm,mnm,fnm,im,pv,instid,peid,branch_time)
-       else
-          ierr = cmor_dataset_cff_null_nobrch(trim(outpath)//char(0),trim(experiment_id)//char(0),&
-               trim(institution)//char(0),trim(source)//char(0),trim(calendar)//char(0),r,&
-               cntct,hist,comt,ref,&
-               ly,lm,mnm,fnm,im,pv,instid,peid)
-       endif
-    endif
-    ierr = -ierr
-  end function cmor_dataset
-end module cmor_users_functions
diff --git a/Src/cmor_grids.c b/Src/cmor_grids.c
deleted file mode 100644
index b799ddc..0000000
--- a/Src/cmor_grids.c
+++ /dev/null
@@ -1,733 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include "cmor.h"
-#include <udunits2.h>
-
-/* functions prototyping */
-extern int CMOR_TABLE;
-
-void cmor_init_grid_mapping(cmor_mappings_t *mapping,char *id)
-{
-  int n;
-  cmor_add_traceback("cmor_init_grid_mapping");
-  cmor_is_setup();
-  mapping->nattributes=0;
-  for(n=0;n<CMOR_MAX_GRID_ATTRIBUTES;n++) mapping->attributes_names[n][0]='\0';
-  strcpy(mapping->coordinates,"");
-  strncpy(mapping->id,id,CMOR_MAX_STRING);
-  cmor_pop_traceback();
-  return;
-}
-
-int cmor_copy_data(double **dest1, void *data, char type, int nelts) {
-  int i;
-  char msg[CMOR_MAX_STRING];
-  double *dest;
-
-  cmor_add_traceback("cmor_copy_data");
-  dest = *dest1;
-  /* First free the dest if already allocated */
-  if (dest !=NULL) {
-    free(dest);
-  }
-  /* allocate space */
-  dest = malloc(nelts*sizeof(double));
-  /* and copy elements */
-  for (i=0;i<nelts;i++) {
-    if (type=='f') dest[i] = (double)((float *)data)[i];
-    else if (type=='i') dest[i] = (double)((int *)data)[i];
-    else if (type=='l') dest[i] = (double)((long *)data)[i];
-    else if (type=='d') dest[i] = (double)((double *)data)[i];
-    else {
-      snprintf(msg,CMOR_MAX_STRING,"wrong data type: %c",type);
-      cmor_handle_error(msg,CMOR_CRITICAL);
-    }
-  }
-  *dest1=dest;
-  cmor_pop_traceback();
-  return 0;
-}
-
-int cmor_has_grid_attribute(int gid, char *name) {
-  int i;
-  int grid_id;
-  grid_id=-gid-10;
-  for (i=0;i<cmor_grids[grid_id].nattributes;i++) {
-    if (strcmp(name,cmor_grids[grid_id].attributes_names[i])==0) return 0;
-  }
-  return 1;
-}
-
-int cmor_get_grid_attribute(int gid, char *name, double *value) {
-  int i,j;
-  int grid_id;
-  grid_id=-gid-10;
-  j=-1;
-  for (i=0;i<cmor_grids[grid_id].nattributes;i++) {
-    if (strcmp(name,cmor_grids[grid_id].attributes_names[i])==0) j=i;
-  }
-  if (j!=-1) {
-    *value = cmor_grids[grid_id].attributes_values[j];
-    return 0;
-  }
-  return 1;
-}
-void cmor_convert_value(char *units,char *ctmp,double *tmp){
-  ut_unit *user_units=NULL, *cmor_units=NULL;
-  cv_converter *ut_cmor_converter=NULL;
-  double value;
-  char msg[CMOR_MAX_STRING];
-
-
-  cmor_add_traceback("cmor_convert_value");
-
-  value = *tmp;
-  if (units[0]!='\0') {
-    cmor_prep_units(ctmp,units,&cmor_units,&user_units,&ut_cmor_converter);
-    *tmp = cv_convert_double(ut_cmor_converter,value);
-    if (ut_get_status() != UT_SUCCESS) {
-      snprintf(msg,CMOR_MAX_STRING,"Udunits: Error converting units from %s to %s",units,ctmp);
-      cmor_handle_error(msg,CMOR_CRITICAL);
-    }
-
-    cv_free(ut_cmor_converter);
-    if (ut_get_status() != UT_SUCCESS) {
-      snprintf(msg,CMOR_MAX_STRING,"Udunits: Error freeing converter");
-      cmor_handle_error(msg,CMOR_CRITICAL);
-    }
-    ut_free(cmor_units);
-    if (ut_get_status() != UT_SUCCESS) {
-      snprintf(msg,CMOR_MAX_STRING,"Udunits: Error freeing units");
-      cmor_handle_error(msg,CMOR_CRITICAL);
-    }
-    ut_free(user_units);
-    if (ut_get_status() != UT_SUCCESS) {
-      snprintf(msg,CMOR_MAX_STRING,"Udunits: Error freeing units");
-      cmor_handle_error(msg,CMOR_CRITICAL);
-    }
-  }
-  else *tmp=value;
-  cmor_pop_traceback();
-  return;
-}
-
-int cmor_set_grid_attribute(int gid, char *name, double *value, char *units) {
-  int i,j,iatt;
-  int grid_id;
-  char ctmp[CMOR_MAX_STRING];
-  char msg[CMOR_MAX_STRING];
-  double tmp;
-
-  cmor_add_traceback("cmor_set_grid_attribute");
-  grid_id=-gid-10;
-  iatt = cmor_grids[grid_id].nattributes;
-  tmp = *value;
-
-  /* locate attribute index */
-  for (i=0;i<cmor_grids[grid_id].nattributes;i++) {
-    if (strcmp(name,cmor_grids[grid_id].attributes_names[i])==0) iatt=i;
-  }
-
-  if (iatt==cmor_grids[grid_id].nattributes) cmor_grids[grid_id].nattributes++;
-
-  /* loop thru attributes */
-  if (strcmp(name,"false_easting")==0) {
-    j=-1;
-    for (i=0;i<cmor_grids[grid_id].ndims;i++) {
-      cmor_get_axis_attribute(cmor_grids[grid_id].axes_ids[i],"standard_name",'c',&ctmp[0]);
-      if (strcmp(ctmp,"projection_x_coordinate")==0) j=i;
-    }
-    if (j==-1) {
-      snprintf(ctmp,CMOR_MAX_STRING,"grid mapping attribute: 'false easting' must be set in conjunction with ut_cmor_a 'projection_x_coordinate' axis, I could not find such an axis on your grid, we will not set this attribute");
-      cmor_handle_error(ctmp,CMOR_NORMAL);
-      cmor_pop_traceback();
-      return 1;
-    }
-    cmor_get_axis_attribute(cmor_grids[grid_id].axes_ids[j],"units",'c',&ctmp[0]);
-    cmor_convert_value(units,ctmp,&tmp);
-  }
-  else if (strcmp(name,"false_northing")==0) {
-    j=-1;
-    for (i=0;i<cmor_grids[grid_id].ndims;i++) {
-      cmor_get_axis_attribute(cmor_grids[grid_id].axes_ids[i],"standard_name",'c',&ctmp[0]);
-      if (strcmp(ctmp,"projection_y_coordinate")==0) j=i;
-    }
-    if (j==-1) {
-      snprintf(ctmp,CMOR_MAX_STRING,"grid mapping attribute: 'false easting' must be set in conjunction with a 'projection_x_coordinate' axis, I could not find such an axis on your grid, we will not set this attribute");
-      cmor_handle_error(ctmp,CMOR_NORMAL);
-      cmor_pop_traceback();
-      return 1;
-    }
-    cmor_get_axis_attribute(cmor_grids[grid_id].axes_ids[j],"units",'c',&ctmp[0]);
-    cmor_convert_value(units,ctmp,&tmp);
-  }
-  else if (strcmp(name,"grid_north_pole_latitude")==0 || strcmp(name,"latitude_of_projection_origin")==0 || strcmp(name,"standard_parallel")==0 || strcmp(name,"standard_parallel1")==0 || strcmp(name,"standard_parallel2")==0 ) {
-    strcpy(ctmp,"degrees_north");
-    cmor_convert_value(units,ctmp,&tmp);
-    if ((tmp<-90) || (tmp>90.)) {
-      snprintf(msg,CMOR_MAX_STRING,"%s parameter must be between -90 and 90 %s, will not be set",name,ctmp);
-      cmor_handle_error(msg,CMOR_NORMAL);
-      cmor_pop_traceback();
-      return 1;
-    }
-  }
-  else if (strcmp(name,"grid_north_pole_longitude")==0 || strcmp(name,"longitude_of_prime_meridian")==0 || strcmp(name,"longitude_of_central_meridian")==0 || strcmp(name,"longitude_of_projection_origin")==0 || strcmp(name,"north_pole_grid_longitude")==0 || strcmp(name,"straight_vertical_longitude_from_pole")==0) {
-    strcpy(ctmp,"degrees_east");
-    cmor_convert_value(units,ctmp,&tmp);
-    if ((tmp<-180) || (tmp>180.)) {
-      snprintf(msg,CMOR_MAX_STRING,"%s parameter must be between -180 and 180 %s, will not be set",name,ctmp);
-      cmor_handle_error(msg,CMOR_NORMAL);
-      cmor_pop_traceback();
-      return 1;
-    }
-  }
-  else if (strcmp(name,"perspective_point_height")==0 || strcmp(name,"semi_major_axis")==0 || strcmp(name,"semi_minor_axis")==0 ) {
-    strcpy(ctmp,"m");
-    cmor_convert_value(units,ctmp,&tmp);
-  }
-  else if (strcmp(name,"scale_factor_at_central_meridian")==0 || strcmp(name,"scale_factor_at_projection_origin")==0 ) {
-    strcpy(ctmp,"m");
-    cmor_convert_value(units,ctmp,&tmp);
-    if (tmp<0) {
-      snprintf(msg,CMOR_MAX_STRING,"%s parameter must be between positive, will not be set",name);
-      cmor_handle_error(msg,CMOR_NORMAL);
-      cmor_pop_traceback();
-      return 1;
-    }
-  }
-  /*printf("setting: %s to %lf (orig: %lf)\n",name,tmp,value);*/
-  strncpy(cmor_grids[grid_id].attributes_names[iatt],name,CMOR_MAX_STRING);
-  cmor_grids[grid_id].attributes_values[iatt] = tmp;
-  cmor_pop_traceback();
-  return 0;
-}
-
-int cmor_attribute_in_list(char *name, int n, char (*atts)[CMOR_MAX_STRING]) {
-  int i,found=1;
-
-  for (i=0;i<n;i++) {
-    if (strcmp(name,atts[i])==0) found=0;
-  }
-  return found;
-}
-
-int cmor_grid_valid_mapping_attribute_names(char *name, int *natt, char (*att)[CMOR_MAX_STRING],int *ndims, char (*dims)[CMOR_MAX_STRING]){
-  int i,j;
-
-  *natt = -1; /* -1 means mapping name not found */
-  *ndims=0;
-/*   printf("mapping name: %s\n",name); */
-  if (strcmp(name,"albers_conical_equal_area")==0) {
-    *natt = 5;
-    strcpy(att[0],"standard_parallel"); 
-    strcpy(att[1],"longitude_of_central_meridian"); 
-    strcpy(att[2],"latitude_of_projection_origin"); 
-    strcpy(att[3],"false_easting"); 
-    strcpy(att[4],"false_northing"); 
-    *ndims=2;
-    strcpy(dims[0],"projection_y_coordinate");
-    strcpy(dims[1],"projection_x_coordinate");
-  }
-  else if (strcmp(name,"azimuthal_equidistant")==0) {
-    *natt = 4;
-    strcpy(att[0],"longitude_of_projection_origin");
-    strcpy(att[1],"latitude_of_projection_origin");
-    strcpy(att[2],"false_easting"); 
-    strcpy(att[3],"false_northing"); 
-    *ndims=2;
-    strcpy(dims[0],"projection_y_coordinate");
-    strcpy(dims[1],"projection_x_coordinate");
-  }
-  else if (strcmp(name,"lambert_azimuthal_equal_area")==0) {
-    *natt = 4;
-    strcpy(att[0],"longitude_of_projection_origin");
-    strcpy(att[1],"latitude_of_projection_origin");
-    strcpy(att[2],"false_easting"); 
-    strcpy(att[3],"false_northing"); 
-    *ndims=2;
-    strcpy(dims[0],"projection_y_coordinate");
-    strcpy(dims[1],"projection_x_coordinate");
-  }
-  else if (strcmp(name,"lambert_conformal_conic")==0) {
-    *natt = 5;
-    strcpy(att[0],"standard_parallel"); 
-    strcpy(att[1],"longitude_of_central_meridian"); 
-    strcpy(att[2],"latitude_of_projection_origin"); 
-    strcpy(att[3],"false_easting"); 
-    strcpy(att[4],"false_northing"); 
-    *ndims=2;
-    strcpy(dims[0],"projection_y_coordinate");
-    strcpy(dims[1],"projection_x_coordinate");
-  }
-  else if (strcmp(name,"lambert_cylindrical_equal_area")==0) {
-    *natt = 5;
-    strcpy(att[0],"standard_parallel"); 
-    strcpy(att[1],"longitude_of_central_meridian"); 
-    strcpy(att[2],"scale_factor_at_projection_origin"); 
-    strcpy(att[3],"false_easting"); 
-    strcpy(att[4],"false_northing"); 
-    *ndims=2;
-    strcpy(dims[0],"projection_y_coordinate");
-    strcpy(dims[1],"projection_x_coordinate");
-  }
-  else if (strcmp(name,"latitude_longitude")==0) {
-    *natt=0;
-    *ndims=0;
-  }
-  else if (strcmp(name,"mercator")==0) {
-    *natt = 5;
-    strcpy(att[0],"standard_parallel"); 
-    strcpy(att[1],"longitude_of_projection_origin"); 
-    strcpy(att[2],"scale_factor_at_projection_origin"); 
-    strcpy(att[3],"false_easting"); 
-    strcpy(att[4],"false_northing"); 
-    *ndims=2;
-    strcpy(dims[0],"projection_y_coordinate");
-    strcpy(dims[1],"projection_x_coordinate");
-  }
-  else if (strcmp(name,"orthographic")==0) {
-    *natt = 4;
-    strcpy(att[0],"longitude_of_projection_origin"); 
-    strcpy(att[1],"latitude_of_projection_origin"); 
-    strcpy(att[2],"scale_factor_at_projection_origin"); 
-    strcpy(att[3],"false_easting"); 
-    strcpy(att[4],"false_northing"); 
-    *ndims=2;
-    strcpy(dims[0],"projection_x_coordinate");
-    strcpy(dims[1],"projection_y_coordinate");
-  }
-  else if (strcmp(name,"polar_stereographic")==0) {
-    *natt=6;
-    strcpy(att[0],"straight_vertical_longitude_from_pole"); 
-    strcpy(att[1],"latitude_of_projection_origin");
-    strcpy(att[2],"standard_parallel"); 
-    strcpy(att[3],"scale_factor_at_projection_origin"); 
-    strcpy(att[4],"false_easting"); 
-    strcpy(att[5],"false_northing"); 
-    *ndims=2;
-    strcpy(dims[0],"projection_y_coordinate");
-    strcpy(dims[1],"projection_x_coordinate");
-  }
-  else if (strcmp(name,"rotated_latitude_longitude")==0) {
-    *natt=3;
-    strcpy(att[0],"grid_north_pole_latitude"); 
-    strcpy(att[1],"grid_north_pole_longitude"); 
-    strcpy(att[2],"north_pole_grid_longitude"); 
-    *ndims=2;
-    strcpy(dims[0],"grid_latitude");
-    strcpy(dims[1],"grid_longitude");
-  }
-  else if (strcmp(name,"stereographic")==0) {
-    *natt=5;
-    strcpy(att[0],"longitude_of_projection_origin");
-    strcpy(att[1],"latitude_of_projection_origin");
-    strcpy(att[2],"scale_factor_at_projection_origin"); 
-    strcpy(att[3],"false_easting"); 
-    strcpy(att[4],"false_northing"); 
-    *ndims=2;
-    strcpy(dims[0],"projection_y_coordinate");
-    strcpy(dims[1],"projection_x_coordinate");
-  }
-  else if (strcmp(name,"transverse_mercator")==0) {
-    *natt=5;
-    strcpy(att[0],"scale_factor_at_central_meridian"); 
-    strcpy(att[1],"longitude_of_central_meridian"); 
-    strcpy(att[2],"latitude_of_projection_origin"); 
-    strcpy(att[3],"false_easting"); 
-    strcpy(att[4],"false_northing"); 
-    *ndims=2;
-    strcpy(dims[0],"projection_y_coordinate");
-    strcpy(dims[1],"projection_x_coordinate");
-  }
-  else if (strcmp(name,"vertical_perspective")==0) {
-    *natt=5;
-    strcpy(att[0],"longitude_of_projection_origin");
-    strcpy(att[1],"latitude_of_projection_origin");
-    strcpy(att[2],"perspective_height_point"); 
-    strcpy(att[3],"false_easting"); 
-    strcpy(att[4],"false_northing"); 
-    *ndims=2;
-    strcpy(dims[0],"projection_y_coordinate");
-    strcpy(dims[1],"projection_x_coordinate");
-  }
-
-  /* Now looks up in table */
-  for (i=0;i<cmor_tables[CMOR_TABLE].nmappings;i++) {
-    if (strcmp(name,cmor_tables[CMOR_TABLE].mappings[i].id)==0) { /* ok that is the mapping */
-      *natt = cmor_tables[CMOR_TABLE].mappings[i].nattributes;
-      for (j=0;j<cmor_tables[CMOR_TABLE].mappings[i].nattributes;j++) {
-	strcpy(att[j],cmor_tables[CMOR_TABLE].mappings[i].attributes_names[j]);
-      }
-    }
-  }
-
-  if (*natt!=-1) {
-    strcpy(att[*natt+0],"earth_radius");
-    strcpy(att[*natt+1],"inverse_flattening");
-    strcpy(att[*natt+2],"longitude_of_prime_meridian");
-    strcpy(att[*natt+3],"perspective_point_height");
-    strcpy(att[*natt+4],"semi_major_axis");
-    strcpy(att[*natt+5],"semi_minor_axis");
-    *natt = *natt+6;
-  }
-  return 0;
-}
-
-void cmor_set_mapping_attribute(cmor_mappings_t *mapping,char att[CMOR_MAX_STRING],char val[CMOR_MAX_STRING] )
-{
-  int i,n;
-  char msg[CMOR_MAX_STRING];
-
-  cmor_add_traceback("cmor_set_mapping_attribute");
-  if (strcmp(att,"coordinates")==0) {
-    strncpy(mapping->coordinates,val,CMOR_MAX_STRING);
-  }
-  else if (strcmp(att,"parameter")==0) {
-    n=-1;
-    for (i=0;i<mapping->nattributes;i++) {
-      if (strcmp(mapping->attributes_names[i],val)==0) {
-	n=i;
-	break;
-      }
-    }
-    if (n==-1) {
-      n = mapping->nattributes;
-      mapping->nattributes++;
-    }
-    strncpy(mapping->attributes_names[n],val,CMOR_MAX_STRING);
-  }
-  else {
-    snprintf(msg,CMOR_MAX_STRING,"Unknown attribute: '%s' for mapping '%s' (value was: '%s')",att,mapping->id,val);
-    cmor_handle_error(msg,CMOR_WARNING);
-  }
-  cmor_pop_traceback();
-}
-
-int cmor_set_grid_mapping(int gid, char *name, int nparam, char **attributes_names, int lparams, double attributes_values[CMOR_MAX_GRID_ATTRIBUTES], char **units, int lnunits ){
-  int grid_id, nattributes,ndims;
-  int i,j,k,l;
-  char *achar,*bchar;
-  char lattributes_names[CMOR_MAX_GRID_ATTRIBUTES][CMOR_MAX_STRING];
-  char lunits[CMOR_MAX_GRID_ATTRIBUTES][CMOR_MAX_STRING];
-  char grid_attributes[CMOR_MAX_GRID_ATTRIBUTES][CMOR_MAX_STRING];
-  char msg[CMOR_MAX_STRING];
-  char msg2[CMOR_MAX_STRING];
-  char grid_dimensions[CMOR_MAX_DIMENSIONS][CMOR_MAX_STRING];
-
-  cmor_add_traceback("cmor_set_grid_mapping");
-  if (nparam>=CMOR_MAX_GRID_ATTRIBUTES) {
-    snprintf(msg,CMOR_MAX_STRING,"CMOR allows only %i grid parameters too be defined , you are trying to define %i parameters, if you really need that many recompile cmor changing the value of parameter: CMOR_MAX_GRID_ATTRIBUTES",CMOR_MAX_GRID_ATTRIBUTES,nparam);
-    cmor_handle_error(msg,CMOR_CRITICAL);
-  }
-  achar = (char *)attributes_names;
-  bchar = (char *)units;
-  for(i=0;i<nparam;i++) {
-    strncpy(lattributes_names[i],achar,CMOR_MAX_STRING);
-    strncpy(lunits[i],bchar,CMOR_MAX_STRING);
-    achar += lparams;
-    bchar += lnunits;
-  }
-/*   for(i=0;i<nparam;i++) printf("ok paramter: %i is: %s, with value %lf and units '%s'\n",i,lattributes_names[i],attributes_values[i],lunits[i]); */
-  grid_id =  -gid-10;
-
-  /* reads in grid definitions */
-  cmor_grid_valid_mapping_attribute_names(name, &nattributes, grid_attributes,&ndims,grid_dimensions);
-
-/*   printf("coming back we haver set %i atts\n",nattributes); */
-/*   for (i=0;i<nattributes;i++) {printf("%i, %s, %s, %s\n",i,grid_attributes[i],grid_dimensions[0],grid_dimensions[1]);} */
-
-  if (ndims!=cmor_grids[grid_id].ndims) {
-    snprintf(msg,CMOR_MAX_STRING,"you defined your grid with %i axes but grid_mapping '%s' requires exactly %i axes",cmor_grids[grid_id].ndims,name,ndims);
-    cmor_handle_error(msg,CMOR_CRITICAL);
-  }
-
-  /* first of all depending on some grid names we need to make sure we have the right axes set in the right order */
-  k=0;
-  for(i=0;i<ndims;i++){
-    for(j=0;j<cmor_grids[grid_id].ndims;j++) {
-      cmor_get_axis_attribute(cmor_grids[grid_id].original_axes_ids[j],"standard_name",'c',&msg);
-      if (strcmp(grid_dimensions[i],msg)==0) {
-	cmor_grids[grid_id].axes_ids[i]=cmor_grids[grid_id].original_axes_ids[j];
-	/* Now we probably need to alter the lat/lon,etc.. associated variables as well ! */
-	for (l=0;l<4;l++) {
-	  if (cmor_vars[cmor_grids[cmor_ngrids].associated_variables[l]].ndims!=0) {
-	    cmor_vars[cmor_grids[cmor_ngrids].associated_variables[l]].axes_ids[i]=cmor_grids[grid_id].original_axes_ids[j];
-	  }
-	}
-	k++;
-      }
-    }
-  }
-
-
-  if (k!=ndims) {
-    snprintf(msg,CMOR_MAX_STRING,"setting grid mapping to '%s' we could not find all the required axes, required axes are:",name);
-    for (i=0;i<ndims;i++) {snprintf(msg2,CMOR_MAX_STRING," %s",grid_dimensions[i]);strncat(msg,msg2,CMOR_MAX_STRING-strlen(msg) );}
-    cmor_handle_error(msg,CMOR_CRITICAL);
-  }
-
-  
-  for (i=0;i<nparam;i++) {
-    if (cmor_attribute_in_list(lattributes_names[i],nattributes, &grid_attributes[0])==1) {
-      if ((strcmp(lattributes_names[i],"standard_parallel1")==0 || strcmp(lattributes_names[i],"standard_parallel2")==0) && ( strcmp(name,"lambert_conformal_conic")==0)) {/* ok do nothing it is just that we need 2 values for this parameter */
-	cmor_set_grid_attribute(gid,lattributes_names[i],&attributes_values[i],lunits[i]);
-     }
-      else {
-	snprintf(msg,CMOR_MAX_STRING,"in grid_mapping, attribute '%s' (with value: %lf) is not a known attribute for grid mapping: '%s'",lattributes_names[i],attributes_values[i],name);
-	cmor_handle_error(msg,CMOR_WARNING);
-      }
-    }
-    else {
-      cmor_set_grid_attribute(gid,lattributes_names[i],&attributes_values[i],lunits[i]);
-    }
-  }
-  /* checks all paramter (but last 6 which are optional) have been set */
-  for (i=0;i<nattributes-6;i++) {
-    if (cmor_has_grid_attribute(gid,grid_attributes[i])==1) {
-      snprintf(msg,CMOR_MAX_STRING,"Grid mapping attribute %s has not been set, you should consider setting it",grid_attributes[i]);
-      cmor_handle_error(msg,CMOR_WARNING);
-    }
-  }
-  /* ok finally we need to copy the name to the grid struct */
-  strncpy(cmor_grids[grid_id].mapping,name,CMOR_MAX_STRING);
-  cmor_pop_traceback();
-  return 0;
-}
-
-
-int cmor_time_varying_grid_coordinate(int *coord_grid_id, int  grid_id, char *table_entry, char *units, char type, void *missing, int *coordinate_type) {
-  int ierr=0,j;
-  int axes[2];
-  char msg[CMOR_MAX_STRING];
-  int ctype=-1;
-  double *dummy_values;
-  int nvertices=cmor_grids[-grid_id-10].nvertices;
-
-  axes[0]=grid_id;
-
-  cmor_add_traceback("cmor_time_varying_grid_coordinate");
-  cmor_is_setup();
-
-  strcpy(msg,"not found");
-  if (coordinate_type == NULL) {
-    for (j=0;j<cmor_tables[cmor_axes[cmor_grids[-grid_id-10].axes_ids[0]].ref_table_id].nvars;j++) {
-      if (strcmp(cmor_tables[cmor_axes[cmor_grids[-grid_id-10].axes_ids[0]].ref_table_id].vars[j].id,table_entry)==0) {
-	strncpy(msg,cmor_tables[cmor_axes[cmor_grids[-grid_id-10].axes_ids[0]].ref_table_id].vars[j].standard_name,CMOR_MAX_STRING);
-	break;
-      }
-    }
-    if (strcmp(msg,"latitude")==0) ctype = 0;
-    if (strcmp(msg,"longitude")==0) ctype = 1;
-    if (strcmp(msg,"vertices_latitude")==0) ctype = 2;
-    if (strcmp(msg,"vertices_longitude")==0) ctype = 3;
-  }
-  else {
-    ctype = *coordinate_type;
-  }
-  switch (ctype) {
-  case (0) :
-    ierr = cmor_variable(coord_grid_id,table_entry,units,1,axes,type,missing,NULL,NULL,NULL,NULL,NULL);
-    cmor_grids[cmor_vars[*coord_grid_id].grid_id].associated_variables[0] = *coord_grid_id;
-    /* ??? additional attributes to add to this variable ? */
-    break;
-  case (1) :
-    ierr = cmor_variable(coord_grid_id,table_entry,units,1,axes,type,missing,NULL,NULL,NULL,NULL,NULL);
-    cmor_grids[cmor_vars[*coord_grid_id].grid_id].associated_variables[1] = *coord_grid_id;
-    /* ??? additional attributes to add to this variable ? */
-    break;
-  case (2) :
-    if (nvertices == 0 ) {
-      sprintf(msg,"your definnig a vertices dependent variable (%s) associated wth grid %i, but you declared this grid as having 0 vertices",table_entry,grid_id);
-      cmor_handle_error(msg,CMOR_CRITICAL);
-    }
-    if (cmor_grids[cmor_vars[*coord_grid_id].grid_id].associated_variables[3] == -1) {
-      dummy_values=malloc(sizeof(double)*nvertices);
-      for (j=0;j<nvertices;j++) dummy_values[j]=(double)j;
-      cmor_axis(&axes[1],"vertices","1",nvertices,dummy_values,'d',NULL,0,NULL);
-      free(dummy_values);
-      cmor_grids[-grid_id-10].nvertices = axes[1];
-    }
-    else {
-      axes[1] = cmor_grids[-grid_id-10].nvertices;
-    }
-    ierr = cmor_variable(coord_grid_id,table_entry,units,2,axes,type,missing,NULL,NULL,NULL,NULL,NULL);
-    cmor_grids[cmor_vars[*coord_grid_id].grid_id].associated_variables[2] = *coord_grid_id;
-    /* adds the bounds attribute */
-    if (cmor_has_variable_attribute(cmor_grids[cmor_vars[*coord_grid_id].grid_id].associated_variables[0],"bounds")==0) {
-      cmor_get_variable_attribute(cmor_grids[cmor_vars[*coord_grid_id].grid_id].associated_variables[0],"bounds",&msg);
-      strncat(msg," ",CMOR_MAX_STRING-strlen(msg) );
-      strncat(msg,cmor_vars[*coord_grid_id].id,CMOR_MAX_STRING-strlen(msg) );
-    }
-    else {
-      strncpy(msg,cmor_vars[*coord_grid_id].id,CMOR_MAX_STRING);
-    }
-    cmor_set_variable_attribute(cmor_grids[cmor_vars[*coord_grid_id].grid_id].associated_variables[0],"bounds",'c',msg);
-    break;
-  case (3) :
-    if (nvertices == 0 ) {
-      sprintf(msg,"your definnig a vertices dependent variable (%s) associated wth grid %i, but you declared this grid as having 0 vertices",table_entry,grid_id);
-      cmor_handle_error(msg,CMOR_CRITICAL);
-    }
-    if (cmor_grids[cmor_vars[*coord_grid_id].grid_id].associated_variables[2] == -1) {
-      dummy_values=malloc(sizeof(double)*nvertices);
-      for (j=0;j<nvertices;j++) dummy_values[j]=(double)j;
-      cmor_axis(&axes[1],"vertices","1",nvertices,dummy_values,'d',NULL,0,NULL);
-      free(dummy_values);
-      cmor_grids[-grid_id-10].nvertices = axes[1];
-    }
-    else {
-      axes[1] = cmor_grids[-grid_id-10].nvertices;
-    }
-    ierr = cmor_variable(coord_grid_id,table_entry,units,2,axes,type,missing,NULL,NULL,NULL,NULL,NULL);
-    cmor_grids[cmor_vars[*coord_grid_id].grid_id].associated_variables[3] = *coord_grid_id;
-    /* adds the bounds attribute */
-    if (cmor_has_variable_attribute(cmor_grids[cmor_vars[*coord_grid_id].grid_id].associated_variables[1],"bounds")==0) {
-      cmor_get_variable_attribute(cmor_grids[cmor_vars[*coord_grid_id].grid_id].associated_variables[1],"bounds",&msg);
-      strncat(msg," ",CMOR_MAX_STRING-strlen(msg) );
-      strncat(msg,cmor_vars[*coord_grid_id].id,CMOR_MAX_STRING-strlen(msg) );
-    }
-    else {
-      strncpy(msg,cmor_vars[*coord_grid_id].id,CMOR_MAX_STRING);
-    }
-    cmor_set_variable_attribute(cmor_grids[cmor_vars[*coord_grid_id].grid_id].associated_variables[1],"bounds",'c',msg);
-    break;
-  default:
-    sprintf(msg,"unknown coord type: %i",ctype);
-    cmor_handle_error(msg,CMOR_CRITICAL);
-    break;
-  }
-  cmor_vars[*coord_grid_id].needsinit=0;
-
-  cmor_pop_traceback();
-  return ierr;
-}
-
-int cmor_grid(int *grid_id, int ndims, int *axes_ids, char type, void *lat, void *lon, int nvertices, void *blat, void *blon) {
-  int i,j,n,did_vertices=0;
-  char msg[CMOR_MAX_STRING];
-  int axes[2];
-  double *dummy_values;
-
-  cmor_add_traceback("cmor_grid");
-  if ((axes_ids==NULL) || (ndims==0)) {
-    snprintf(msg,CMOR_MAX_STRING,"You need to define the grid axes first");
-    cmor_handle_error(msg,CMOR_CRITICAL);
-  }
-  cmor_ngrids+=1;
-  if (cmor_ngrids>=CMOR_MAX_GRIDS) {
-    snprintf(msg,CMOR_MAX_STRING,"Too many grids defined, maximum possible grids is currently set to %i", CMOR_MAX_GRIDS);
-    cmor_handle_error(msg,CMOR_CRITICAL);
-  }
-  n=1;
-  for (i=0;i<ndims;i++) {
-    if (axes_ids[i]>cmor_naxes) {
-      snprintf(msg,CMOR_MAX_STRING,"Defining grid, Axis %i not defined yet",axes_ids[i]);
-      cmor_handle_error(msg,CMOR_CRITICAL);
-    }
-    if (cmor_tables[cmor_axes[axes_ids[i]].ref_table_id].axes[cmor_axes[axes_ids[i]].ref_axis_id].axis=='T') {
-      cmor_grids[cmor_ngrids].istimevarying = 1;
-/*       snprintf(msg,CMOR_MAX_STRING,"defining grid: axis: %s is time axis, grids are not allowed to be time-varying at the moment",cmor_axes[axes_ids[i]].id); */
-/*       cmor_handle_error(msg,CMOR_CRITICAL); */
-    }
-    cmor_grids[cmor_ngrids].original_axes_ids[i]=axes_ids[i];
-    cmor_grids[cmor_ngrids].axes_ids[i]=axes_ids[i];
-    cmor_axes[axes_ids[i]].isgridaxis=1;
-    n*=cmor_axes[axes_ids[i]].length;
-  }
-  cmor_grids[cmor_ngrids].ndims = ndims;
-  cmor_grids[cmor_ngrids].nvertices = nvertices;
-  if (lat==NULL) {
-    if (cmor_grids[cmor_ngrids].istimevarying != 1) {
-      snprintf(msg,CMOR_MAX_STRING,"you need to pass the latitude values when defining a grid");
-      cmor_handle_error(msg,CMOR_CRITICAL);
-    }
-  }
-  else {
-    axes[0]=-cmor_ngrids-10;
-    if (cmor_grids[cmor_ngrids].istimevarying != 1) {
-      cmor_copy_data(&cmor_grids[cmor_ngrids].lats,lat,type,n);
-      cmor_variable(&cmor_grids[cmor_ngrids].associated_variables[0],"latitude","degrees_north",1,&axes[0],'d',NULL,NULL,NULL,NULL,NULL,NULL);
-      cmor_vars[cmor_grids[cmor_ngrids].associated_variables[0]].needsinit=0;
-      /*     for (i=0;i<5;i++) { */
-      /*       printf("%i:  %lf\n",i,cmor_grids[cmor_ngrids].lats[i]); */
-      /*     } */
-    }
-  }
-  if (lon==NULL) {
-    if (cmor_grids[cmor_ngrids].istimevarying != 1) {
-      snprintf(msg,CMOR_MAX_STRING,"you need to pass the longitude values when defining a grid");
-      cmor_handle_error(msg,CMOR_CRITICAL);
-    }
-  }
-  else {
-    cmor_copy_data(&cmor_grids[cmor_ngrids].lons,lon,type,n);
-    axes[0]=-cmor_ngrids-10;
-    /*     for (i=0;i<5;i++) printf("%i:  %lf\n",i,cmor_grids[cmor_ngrids].lons[i]); */
-    cmor_variable(&cmor_grids[cmor_ngrids].associated_variables[1],"longitude","degrees_east",1,&axes[0],'d',NULL,NULL,NULL,NULL,NULL,NULL);
-    cmor_vars[cmor_grids[cmor_ngrids].associated_variables[1]].needsinit=0;
-  }
-  if (blat==NULL) {
-    if (cmor_grids[cmor_ngrids].istimevarying != 1) {
-      snprintf(msg,CMOR_MAX_STRING,"it is recommended you pass the latitude bounds values when defining a grid");
-      cmor_handle_error(msg,CMOR_WARNING);
-    }
-  }
-  else {
-    cmor_copy_data(&cmor_grids[cmor_ngrids].blats,blat,type,n*nvertices);
-    dummy_values=malloc(sizeof(double)*nvertices);
-    for (j=0;j<nvertices;j++) dummy_values[j]=(double)j;
-    cmor_axis(&axes[1],"vertices","1",nvertices,dummy_values,'d',NULL,0,NULL);
-    free(dummy_values);
-    did_vertices=1;
-    cmor_variable(&cmor_grids[cmor_ngrids].associated_variables[2],"vertices_latitude","degrees_north",2,&axes[0],'d',NULL,NULL,NULL,NULL,NULL,NULL);
-    cmor_vars[cmor_grids[cmor_ngrids].associated_variables[2]].needsinit=0;
-    if (cmor_has_variable_attribute(cmor_grids[cmor_ngrids].associated_variables[0],"bounds")==0) {
-      cmor_get_variable_attribute(cmor_grids[cmor_ngrids].associated_variables[0],"bounds",&msg);
-      strncat(msg," ",CMOR_MAX_STRING-strlen(msg) );
-      strncat(msg,cmor_vars[cmor_grids[cmor_ngrids].associated_variables[2]].id,CMOR_MAX_STRING-strlen(msg) );
-    }
-    else {
-      strncpy(msg,cmor_vars[cmor_grids[cmor_ngrids].associated_variables[2]].id,CMOR_MAX_STRING);
-    }
-    cmor_set_variable_attribute(cmor_grids[cmor_ngrids].associated_variables[0],"bounds",'c',msg);
-  }
-  if (blon==NULL) {
-    if (cmor_grids[cmor_ngrids].istimevarying != 1) {
-      snprintf(msg,CMOR_MAX_STRING,"it is recommended you pass the longitude bounds values when defining a grid");
-      cmor_handle_error(msg,CMOR_WARNING);
-    }
-  }
-  else {
-    cmor_copy_data(&cmor_grids[cmor_ngrids].blons,blon,type,n*nvertices);
-    if (did_vertices == 0 ) {
-      dummy_values=malloc(sizeof(double)*nvertices);
-      for (j=0;j<nvertices;j++) dummy_values[j]=(double)j;
-      cmor_axis(&axes[1],"vertices","1",nvertices,dummy_values,'d',NULL,0,NULL);
-      free(dummy_values);
-    }
-    cmor_variable(&cmor_grids[cmor_ngrids].associated_variables[3],"vertices_longitude","degrees_east",2,&axes[0],'d',NULL,NULL,NULL,NULL,NULL,NULL);
-    cmor_vars[cmor_grids[cmor_ngrids].associated_variables[3]].needsinit=0;
-    if (cmor_has_variable_attribute(cmor_grids[cmor_ngrids].associated_variables[1],"bounds")==0) {
-      cmor_get_variable_attribute(cmor_grids[cmor_ngrids].associated_variables[1],"bounds",&msg);
-      strncat(msg," ",CMOR_MAX_STRING-strlen(msg) );
-      strncat(msg,cmor_vars[cmor_grids[cmor_ngrids].associated_variables[3]].id,CMOR_MAX_STRING-strlen(msg) );
-    }
-    else {
-      strncpy(msg,cmor_vars[cmor_grids[cmor_ngrids].associated_variables[3]].id,CMOR_MAX_STRING);
-    }
-    cmor_set_variable_attribute(cmor_grids[cmor_ngrids].associated_variables[1],"bounds",'c',msg);
-  }
-  /*   if (area==NULL) { */
-  /*     snprintf(msg,CMOR_MAX_STRING,"it is recommended you pass the area values when defining a grid"); */
-  /*     cmor_handle_error(msg,CMOR_WARNING); */
-  /*   } */
-  /*   else { */
-  /*     cmor_copy_data(&cmor_grids[cmor_ngrids].area,area,type,n); */
-  /*     cmor_variable(&cmor_grids[cmor_ngrids].associated_variables[4],"area","m2",1,&axes[0],'d',NULL,NULL,NULL,NULL,NULL,NULL); */
-  /*     cmor_vars[cmor_grids[cmor_ngrids].associated_variables[4]].needsinit=0; */
-  /*   } */
-  *grid_id = -cmor_ngrids-10;
-  cmor_pop_traceback();
-  return 0;
-}
diff --git a/Src/cmor_md5.c b/Src/cmor_md5.c
deleted file mode 100644
index a0d8bd3..0000000
--- a/Src/cmor_md5.c
+++ /dev/null
@@ -1,309 +0,0 @@
-/*
- * This code implements the MD5 message-digest algorithm.
- * The algorithm is due to Ron Rivest.  This code was
- * written by Colin Plumb in 1993, no copyright is claimed.
- * This code is in the public domain; do with it what you wish.
- *
- * Equivalent code is available from RSA Data Security, Inc.
- * This code has been tested against that, and is equivalent,
- * except that you don't need to include two pages of legalese
- * with every copy.
- *
- * To compute the message digest of a chunk of bytes, declare an
- * MD5Context structure, pass it to MD5Init, call MD5Update as
- * needed on buffers full of bytes, and then call MD5Final, which
- * will fill a supplied 16-byte array with the digest.
- */
-
-/* This code was modified in 1997 by Jim Kingdon of Cyclic Software to
-   not require an integer type which is exactly 32 bits.  This work
-   draws on the changes for the same purpose by Tatu Ylonen
-   <ylo at cs.hut.fi> as part of SSH, but since I didn't actually use
-   that code, there is no copyright issue.  I hereby disclaim
-   copyright in any changes I have made; this code remains in the
-   public domain.  */
-
-/* Note regarding cvs_* namespace: this avoids potential conflicts
-   with libraries such as some versions of Kerberos.  No particular
-   need to worry about whether the system supplies an MD5 library, as
-   this file is only about 3k of object code.  */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <string.h>	/* for memcpy() and memset() */
-
-/* Add prototype support.  */
-#ifndef PROTO
-#if defined (USE_PROTOTYPES) ? USE_PROTOTYPES : defined (__STDC__)
-#define PROTO(ARGS) ARGS
-#else
-#define PROTO(ARGS) ()
-#endif
-#endif
-
-#include "cmor_md5.h"
-
-/* Little-endian byte-swapping routines.  Note that these do not
-   depend on the size of datatypes such as cvs_uint32, nor do they require
-   us to detect the endianness of the machine we are running on.  It
-   is possible they should be macros for speed, but I would be
-   surprised if they were a performance bottleneck for MD5.  */
-
-static cvs_uint32
-getu32 (const unsigned char * addr)
-{
-	return (((((unsigned long)addr[3] << 8) | addr[2]) << 8)
-		| addr[1]) << 8 | addr[0];
-}
-
-static void
-putu32 (cvs_uint32 data, unsigned char *addr)
-{
-	addr[0] = (unsigned char)data;
-	addr[1] = (unsigned char)(data >> 8);
-	addr[2] = (unsigned char)(data >> 16);
-	addr[3] = (unsigned char)(data >> 24);
-}
-
-/*
- * Start MD5 accumulation.  Set bit count to 0 and buffer to mysterious
- * initialization constants.
- */
-void
-cvs_MD5Init (struct cvs_MD5Context *ctx)
-{
-	ctx->buf[0] = 0x67452301;
-	ctx->buf[1] = 0xefcdab89;
-	ctx->buf[2] = 0x98badcfe;
-	ctx->buf[3] = 0x10325476;
-
-	ctx->bits[0] = 0;
-	ctx->bits[1] = 0;
-}
-
-/*
- * Update context to reflect the concatenation of another buffer full
- * of bytes.
- */
-void
-cvs_MD5Update (struct cvs_MD5Context *ctx, unsigned char const *buf, unsigned len)
-{
-	cvs_uint32 t;
-
-	/* Update bitcount */
-
-	t = ctx->bits[0];
-	if ((ctx->bits[0] = (t + ((cvs_uint32)len << 3)) & 0xffffffff) < t)
-		ctx->bits[1]++;	/* Carry from low to high */
-	ctx->bits[1] += len >> 29;
-
-	t = (t >> 3) & 0x3f;	/* Bytes already in shsInfo->data */
-
-	/* Handle any leading odd-sized chunks */
-
-	if ( t ) {
-		unsigned char *p = ctx->in + t;
-
-		t = 64-t;
-		if (len < t) {
-			memcpy(p, buf, len);
-			return;
-		}
-		memcpy(p, buf, t);
-		cvs_MD5Transform (ctx->buf, ctx->in);
-		buf += t;
-		len -= t;
-	}
-
-	/* Process data in 64-byte chunks */
-
-	while (len >= 64) {
-		memcpy(ctx->in, buf, 64);
-		cvs_MD5Transform (ctx->buf, ctx->in);
-		buf += 64;
-		len -= 64;
-	}
-
-	/* Handle any remaining bytes of data. */
-
-	memcpy(ctx->in, buf, len);
-}
-
-/*
- * Final wrapup - pad to 64-byte boundary with the bit pattern 
- * 1 0* (64-bit count of bits processed, MSB-first)
- */
-void
-cvs_MD5Final (unsigned char digest[16], struct cvs_MD5Context *ctx)
-{
-	unsigned count;
-	unsigned char *p;
-
-	/* Compute number of bytes mod 64 */
-	count = (ctx->bits[0] >> 3) & 0x3F;
-
-	/* Set the first char of padding to 0x80.  This is safe since there is
-	   always at least one byte free */
-	p = ctx->in + count;
-	*p++ = 0x80;
-
-	/* Bytes of padding needed to make 64 bytes */
-	count = 64 - 1 - count;
-
-	/* Pad out to 56 mod 64 */
-	if (count < 8) {
-		/* Two lots of padding:  Pad the first block to 64 bytes */
-		memset(p, 0, count);
-		cvs_MD5Transform (ctx->buf, ctx->in);
-
-		/* Now fill the next block with 56 bytes */
-		memset(ctx->in, 0, 56);
-	} else {
-		/* Pad block to 56 bytes */
-		memset(p, 0, count-8);
-	}
-
-	/* Append length in bits and transform */
-	putu32(ctx->bits[0], ctx->in + 56);
-	putu32(ctx->bits[1], ctx->in + 60);
-
-	cvs_MD5Transform (ctx->buf, ctx->in);
-	putu32(ctx->buf[0], digest);
-	putu32(ctx->buf[1], digest + 4);
-	putu32(ctx->buf[2], digest + 8);
-	putu32(ctx->buf[3], digest + 12);
-	memset(ctx, 0, sizeof(ctx));	/* In case it's sensitive */
-}
-
-#ifndef ASM_MD5
-
-/* The four core functions - F1 is optimized somewhat */
-
-/* #define F1(x, y, z) (x & y | ~x & z) */
-#define F1(x, y, z) (z ^ (x & (y ^ z)))
-#define F2(x, y, z) F1(z, x, y)
-#define F3(x, y, z) (x ^ y ^ z)
-#define F4(x, y, z) (y ^ (x | ~z))
-
-/* This is the central step in the MD5 algorithm. */
-#define MD5STEP(f, w, x, y, z, data, s) \
-	( w += f(x, y, z) + data, w &= 0xffffffff, w = w<<s | w>>(32-s), w += x )
-
-/*
- * The core of the MD5 algorithm, this alters an existing MD5 hash to
- * reflect the addition of 16 longwords of new data.  MD5Update blocks
- * the data and converts bytes into longwords for this routine.
- */
-void
-cvs_MD5Transform (cvs_uint32 buf[4], const unsigned char inraw[64])
-{
-	register cvs_uint32 a, b, c, d;
-	cvs_uint32 in[16];
-	int i;
-
-	for (i = 0; i < 16; ++i)
-		in[i] = getu32 (inraw + 4 * i);
-
-	a = buf[0];
-	b = buf[1];
-	c = buf[2];
-	d = buf[3];
-
-	MD5STEP(F1, a, b, c, d, in[ 0]+0xd76aa478,  7);
-	MD5STEP(F1, d, a, b, c, in[ 1]+0xe8c7b756, 12);
-	MD5STEP(F1, c, d, a, b, in[ 2]+0x242070db, 17);
-	MD5STEP(F1, b, c, d, a, in[ 3]+0xc1bdceee, 22);
-	MD5STEP(F1, a, b, c, d, in[ 4]+0xf57c0faf,  7);
-	MD5STEP(F1, d, a, b, c, in[ 5]+0x4787c62a, 12);
-	MD5STEP(F1, c, d, a, b, in[ 6]+0xa8304613, 17);
-	MD5STEP(F1, b, c, d, a, in[ 7]+0xfd469501, 22);
-	MD5STEP(F1, a, b, c, d, in[ 8]+0x698098d8,  7);
-	MD5STEP(F1, d, a, b, c, in[ 9]+0x8b44f7af, 12);
-	MD5STEP(F1, c, d, a, b, in[10]+0xffff5bb1, 17);
-	MD5STEP(F1, b, c, d, a, in[11]+0x895cd7be, 22);
-	MD5STEP(F1, a, b, c, d, in[12]+0x6b901122,  7);
-	MD5STEP(F1, d, a, b, c, in[13]+0xfd987193, 12);
-	MD5STEP(F1, c, d, a, b, in[14]+0xa679438e, 17);
-	MD5STEP(F1, b, c, d, a, in[15]+0x49b40821, 22);
-
-	MD5STEP(F2, a, b, c, d, in[ 1]+0xf61e2562,  5);
-	MD5STEP(F2, d, a, b, c, in[ 6]+0xc040b340,  9);
-	MD5STEP(F2, c, d, a, b, in[11]+0x265e5a51, 14);
-	MD5STEP(F2, b, c, d, a, in[ 0]+0xe9b6c7aa, 20);
-	MD5STEP(F2, a, b, c, d, in[ 5]+0xd62f105d,  5);
-	MD5STEP(F2, d, a, b, c, in[10]+0x02441453,  9);
-	MD5STEP(F2, c, d, a, b, in[15]+0xd8a1e681, 14);
-	MD5STEP(F2, b, c, d, a, in[ 4]+0xe7d3fbc8, 20);
-	MD5STEP(F2, a, b, c, d, in[ 9]+0x21e1cde6,  5);
-	MD5STEP(F2, d, a, b, c, in[14]+0xc33707d6,  9);
-	MD5STEP(F2, c, d, a, b, in[ 3]+0xf4d50d87, 14);
-	MD5STEP(F2, b, c, d, a, in[ 8]+0x455a14ed, 20);
-	MD5STEP(F2, a, b, c, d, in[13]+0xa9e3e905,  5);
-	MD5STEP(F2, d, a, b, c, in[ 2]+0xfcefa3f8,  9);
-	MD5STEP(F2, c, d, a, b, in[ 7]+0x676f02d9, 14);
-	MD5STEP(F2, b, c, d, a, in[12]+0x8d2a4c8a, 20);
-
-	MD5STEP(F3, a, b, c, d, in[ 5]+0xfffa3942,  4);
-	MD5STEP(F3, d, a, b, c, in[ 8]+0x8771f681, 11);
-	MD5STEP(F3, c, d, a, b, in[11]+0x6d9d6122, 16);
-	MD5STEP(F3, b, c, d, a, in[14]+0xfde5380c, 23);
-	MD5STEP(F3, a, b, c, d, in[ 1]+0xa4beea44,  4);
-	MD5STEP(F3, d, a, b, c, in[ 4]+0x4bdecfa9, 11);
-	MD5STEP(F3, c, d, a, b, in[ 7]+0xf6bb4b60, 16);
-	MD5STEP(F3, b, c, d, a, in[10]+0xbebfbc70, 23);
-	MD5STEP(F3, a, b, c, d, in[13]+0x289b7ec6,  4);
-	MD5STEP(F3, d, a, b, c, in[ 0]+0xeaa127fa, 11);
-	MD5STEP(F3, c, d, a, b, in[ 3]+0xd4ef3085, 16);
-	MD5STEP(F3, b, c, d, a, in[ 6]+0x04881d05, 23);
-	MD5STEP(F3, a, b, c, d, in[ 9]+0xd9d4d039,  4);
-	MD5STEP(F3, d, a, b, c, in[12]+0xe6db99e5, 11);
-	MD5STEP(F3, c, d, a, b, in[15]+0x1fa27cf8, 16);
-	MD5STEP(F3, b, c, d, a, in[ 2]+0xc4ac5665, 23);
-
-	MD5STEP(F4, a, b, c, d, in[ 0]+0xf4292244,  6);
-	MD5STEP(F4, d, a, b, c, in[ 7]+0x432aff97, 10);
-	MD5STEP(F4, c, d, a, b, in[14]+0xab9423a7, 15);
-	MD5STEP(F4, b, c, d, a, in[ 5]+0xfc93a039, 21);
-	MD5STEP(F4, a, b, c, d, in[12]+0x655b59c3,  6);
-	MD5STEP(F4, d, a, b, c, in[ 3]+0x8f0ccc92, 10);
-	MD5STEP(F4, c, d, a, b, in[10]+0xffeff47d, 15);
-	MD5STEP(F4, b, c, d, a, in[ 1]+0x85845dd1, 21);
-	MD5STEP(F4, a, b, c, d, in[ 8]+0x6fa87e4f,  6);
-	MD5STEP(F4, d, a, b, c, in[15]+0xfe2ce6e0, 10);
-	MD5STEP(F4, c, d, a, b, in[ 6]+0xa3014314, 15);
-	MD5STEP(F4, b, c, d, a, in[13]+0x4e0811a1, 21);
-	MD5STEP(F4, a, b, c, d, in[ 4]+0xf7537e82,  6);
-	MD5STEP(F4, d, a, b, c, in[11]+0xbd3af235, 10);
-	MD5STEP(F4, c, d, a, b, in[ 2]+0x2ad7d2bb, 15);
-	MD5STEP(F4, b, c, d, a, in[ 9]+0xeb86d391, 21);
-
-	buf[0] += a;
-	buf[1] += b;
-	buf[2] += c;
-	buf[3] += d;
-}
-#endif
-
-/* Simple test program.  Can use it to manually run the tests from
-   RFC1321 for example.  */
-#include <stdio.h>
-
-void cmor_md5 (FILE *inputfile,unsigned char checksum[16])
-{
-  struct cvs_MD5Context context;
-  char c,d;
-  
-  cvs_MD5Init (&context);
-  c= fgetc(inputfile);
-  d=EOF;
-  while (c!=d) {
-    cvs_MD5Update (&context, (unsigned char *)&c, 1);
-    c= fgetc(inputfile);
-  } 
-  rewind(inputfile); 
-  cvs_MD5Final (checksum, &context);
-
-  return;
-}
diff --git a/Src/cmor_tables.c b/Src/cmor_tables.c
deleted file mode 100644
index 6a9732a..0000000
--- a/Src/cmor_tables.c
+++ /dev/null
@@ -1,409 +0,0 @@
-#include <stdio.h>
-#include <string.h>
-#include "cmor.h"
-#include "cmor_func_def.h"
-#include <netcdf.h>
-#include <udunits2.h>
-#include <stdlib.h>
-
-int wfgetc(FILE *afile) {
-  int i = fgetc(afile);
-  while (i=='\r') {
-    i=fgetc(afile);
-  }
-  return i;
-}
-
-void cmor_init_table(cmor_table_t *table, int id)
-{
-  int i;
-  cmor_add_traceback("cmor_init_table");
-  cmor_is_setup();
-  /* init the table */
-  table->id=id;
-  table->nvars=-1;
-  table->naxes=-1;
-  table->nexps=-1;
-  table->nmappings=-1;
-  table->cf_version=1.4;
-  table->cmor_version=2.0;
-  table->project_id[0]='\0';
-  table->table_id[0]='\0';
-  strcpy(table->realm,"REALM");
-  table->date[0]='\0';
-  table->missing_value=1.e20;
-  table->interval=0.;
-  table->URL[0]='\0';
-  strcpy(table->product,"output");
-  table->path[0]='\0';
-  table->required_gbl_att[0]='\0';
-  table->frequency[0]='\0';
-  table->nforcings=0;
-  for (i=0;i<CMOR_MAX_ELEMENTS;i++) {
-    table->expt_ids[i][0]='\0';
-    table->sht_expt_ids[i][0]='\0';
-  }
-
-  cmor_pop_traceback();
-}
-
-int cmor_set_dataset_att(cmor_table_t *table, char att[CMOR_MAX_STRING],char val[CMOR_MAX_STRING] ){
-  int n,i,j;
-  float d,d2;
-  char value[CMOR_MAX_STRING];
-  char value2[CMOR_MAX_STRING];
-  extern int cmor_ntables;
-  char **bstr;
-
-  cmor_add_traceback("cmor_set_dataset_att");
-  cmor_is_setup();
-
-  strncpy(value,val,CMOR_MAX_STRING);
-
-  if (strcmp(att,"cmor_version")==0) {
-    d2 = CMOR_VERSION_MAJOR;
-    d = CMOR_VERSION_MINOR;
-    while(d>1.) d/=10.;
-    d2+=d;
-    sscanf(value,"%f",&d);
-    if (d>d2) {
-      snprintf(value2,CMOR_MAX_STRING,"Table is defined for cmor_version %f, this library verson is: %i.%i.%i, %f",d,CMOR_VERSION_MAJOR,CMOR_VERSION_MINOR,CMOR_VERSION_PATCH,d2);
-      cmor_handle_error(value2,CMOR_CRITICAL);
-      cmor_ntables--;
-      cmor_pop_traceback();
-      return 1;
-    }
-    table->cmor_version=d;
-  }
-  else if (strcmp(att,"cf_version")==0) {
-    d = atof(value);
-    table->cf_version=d;
-  }
-  else if (strcmp(att,"required_global_attributes")==0) {
-    strncpy(table->required_gbl_att,val,CMOR_MAX_STRING);
-  }
-  else if (strcmp(att,"project_id")==0) {
-    strncpy(table->project_id,value,CMOR_MAX_STRING);
-  }
-  else if (strcmp(att,"modeling_realm")==0) {
-    strncpy(table->realm,value,CMOR_MAX_STRING);
-  }
-  else if (strcmp(att,"table_date")==0) {
-    strncpy(table->date,value,CMOR_MAX_STRING);
-  }
-  else if (strcmp(att,"baseURL")==0) {
-    strncpy(table->URL,value,CMOR_MAX_STRING);
-  }
-  else if (strcmp(att,"forcings")==0) {
-    cmor_convert_string_to_list(value,'c',(void **)&table->forcings,&table->nforcings);
-  }
-  else if (strcmp(att,"product")==0) {
-    strncpy(table->product,value,CMOR_MAX_STRING);
-  }
-  else if (strcmp(att,"frequency")==0) {
-    strncpy(table->frequency,value,CMOR_MAX_STRING);
-  }
-  else if (strcmp(att,"table_id")==0) {
-    for (n=0;n==cmor_ntables;n++) {
-     if (strcmp(cmor_tables[n].table_id,value)==0) {
-	cmor_handle_error("Table already defined",CMOR_CRITICAL);
-	cmor_ntables--;
-	cmor_pop_traceback();
-	return 1;
-      }
-    }
-    n = strlen(value);
-    for (i=n-1;i>0;i--) {
-      if (value[i]==' ') break;
-    }
-    if (value[i]==' ') i++;
-
-    for (j=i;j<n;j++) value2[j-i]=value[j];
-    value2[n-i]='\0';
-
-    strcpy(table->table_id,value2);
-  }
-  else if (strcmp(att,"expt_id_ok")==0) {
-    table->nexps++;
-    if (table->nexps>CMOR_MAX_ELEMENTS) {
-      cmor_handle_error("Too many experiments defined",CMOR_CRITICAL);
-      cmor_ntables--;
-      cmor_pop_traceback();
-      return 1;
-    }
-    if (value[0]=='\'') for (n=0;n<strlen(value)-1;n++) value[n]=value[n+1] ; /* removes leading "'" */
-    n=strlen(value);
-    if (value[n-2]=='\'') value[n-2]='\0'; /*removes trailing "'" */
-    /* ok here we look for a ' which means there is a short name associated with it */
-    n=-1;
-    for(j=0;j<strlen(value);j++) {
-      if (value[j]=='\'') {
-	n=j;
-	break;
-      }
-    }
-    if (n==-1) {
-      strncpy(table->expt_ids[table->nexps],value,CMOR_MAX_STRING);
-      strcpy(table->sht_expt_ids[table->nexps],"");
-    }
-    else {
-      /* ok looks like we have a short name let clook for the next ' */
-      i=-1;
-      for (j=n+1;j<strlen(value);j++) {
-	if (value[j]=='\'') i=j;
-      }
-      if (i==-1) {/* ok we must have a ' in our exp_id_ok */
-	strncpy(table->expt_ids[table->nexps],value,CMOR_MAX_STRING);
-	strcpy(table->sht_expt_ids[table->nexps],"");
-      }
-      else {
-	for (j=i+1;j<strlen(value);j++) {
-	  value2[j-i-1]=value[j];
-	  value2[j-i]='\0';
-	}
-	strncpy(table->sht_expt_ids[table->nexps],value2,CMOR_MAX_STRING);
-	value[n]='\0';
-	strncpy(table->expt_ids[table->nexps],value,CMOR_MAX_STRING);
-      }
-    }
-  }
-  else if (strcmp(att,"approx_interval")==0) {
-    sscanf(value,"%lf",&table->interval);
-  }
-  else if (strcmp(att,"missing_value")==0) {
-    sscanf(value,"%f",&table->missing_value);
-  }
-  else if (strcmp(att,"magic_number")==0) {
-    /* Never actually implemented supposed to control table has not been altered */
-  }
-  else {
-    snprintf(value,CMOR_MAX_STRING,"unknown keyword for dataset: %s (%s)",att,value);
-    cmor_handle_error(value,CMOR_WARNING);
-  }
-  cmor_pop_traceback();
-  return 0;
-}
-
-int cmor_set_table(int table) {
-  extern int CMOR_TABLE;
-  char msg[CMOR_MAX_STRING];
-  cmor_add_traceback("cmor_set_table");
-  cmor_is_setup();
-  if (table>cmor_ntables) {
-    snprintf(msg,CMOR_MAX_STRING,"Invalid table number: %i",table);
-    cmor_handle_error(msg,CMOR_CRITICAL);
-  }
-  if (cmor_tables[table].table_id=='\0') cmor_handle_error("Invalid table , not loaded yet!",CMOR_CRITICAL);
-  CMOR_TABLE = table;
-  cmor_pop_traceback();
-  return 0;
-}
-
-int cmor_load_table(char table[CMOR_MAX_STRING], int *table_id) {
-  FILE *table_file;
-  char word[CMOR_MAX_STRING],word2[CMOR_MAX_STRING];
-  int i,n;
-  int do_var=0,do_axis=0,do_dataset=1,do_mapping=0;
-  extern int CMOR_TABLE,cmor_ntables;
-  extern char cmor_input_path[CMOR_MAX_STRING] ;
-  char msg[CMOR_MAX_STRING];
-
-  cmor_add_traceback("cmor_load_table");
-  cmor_is_setup();
-  
-/*   printf("loading table: %s\n",table); */
-  for (i=0;i<cmor_ntables+1;i++) {
-    if (strcmp(cmor_tables[i].path,table)==0) {
-      CMOR_TABLE = i;
-      *table_id = i;
-/*       printf("table %s was already loaded, no need to do that again\n",table); */
-      cmor_pop_traceback();
-      return 0;
-    }
-  }
-  cmor_ntables+=1;
-  cmor_init_table(&cmor_tables[cmor_ntables],cmor_ntables);
-  table_file=fopen(table,"r");
-  if (table_file == NULL) {
-    if (table[0]!='/') {
-      snprintf(word,CMOR_MAX_STRING,"%s/%s",cmor_input_path,table);
-      table_file=fopen(word,"r");
-    }
-    if (table_file == NULL) {
-      snprintf(word,CMOR_MAX_STRING,"Could not find table: %s",table);
-      cmor_handle_error(word,CMOR_NORMAL);
-      cmor_ntables-=1;
-      cmor_pop_traceback();
-      return 1;
-    }
-  }
-
-  /* ok now we need to store the md5 */
-  cmor_md5(table_file,cmor_tables[cmor_ntables].md5);
-  i = wfgetc(table_file);
-  while (i != EOF ) {
-    /* skip blanks and returns */
-    while((i=='\n') || i==' ' || i=='\t') i = wfgetc(table_file);
-    /* skip comment lines */
-    /*printf("looking at first line charcter:--%c--\n",i);*/
-    while (i=='!') {
-      i = wfgetc(table_file);
-      if (i==EOF) break;
-      /*printf("ok it is comment line, second char is --%c--\n");*/
-      if (i=='=') { /* we found the head of a definition section */
-	while(i!='\n') i = wfgetc(table_file);
-	i = wfgetc(table_file);
-	if (i==EOF) break;
-	/* now read the word from the definition */
-	n=0;
-	while(i!=':') {
-	  word[n] = i;
-	  i = wfgetc(table_file);
-	  n+=1;
-	}
-	word[n]='\0';
-	/* now figures out the name of the entry */
-	i = wfgetc(table_file);
-	while (i==' ' || i=='\t') i = wfgetc(table_file);
-	n=0;
-	while((i!='\n') && i!=' ' && i!='\t') {
-	  word2[n]=i;
-	  i = wfgetc(table_file);
-	  n+=1;
-	}
-	word2[n]='\0';
-	/* finishes the line */
-	while (i!='\n') i = wfgetc(table_file);
-	i = wfgetc(table_file);
-	/*skip the next line */
-	while (i!='\n') i = wfgetc(table_file);
-	i = wfgetc(table_file);
-	/*printf("entry %s, name: %s\n",word,word2);*/
-	/* Now let's see what we found */
-	if (strcmp(word,"axis_entry")==0) {
-	  do_dataset=0;
-	  do_var=0;
-	  do_axis=1;
-	  do_mapping=0;
-	  cmor_tables[cmor_ntables].naxes++;
-	  if (cmor_tables[cmor_ntables].naxes>=CMOR_MAX_ELEMENTS) {
-	    cmor_handle_error("Too many axes defined for table",CMOR_CRITICAL);
-	    cmor_ntables--;
-	    cmor_pop_traceback();
-	    return 1;
-	  }
-	  /* init the axis def */
-/* 	  printf("initializing axis: %s\n",word2); */
-	  cmor_init_axis_def(&cmor_tables[cmor_ntables].axes[cmor_tables[cmor_ntables].naxes],cmor_ntables);
-	  cmor_set_axis_def_att(&cmor_tables[cmor_ntables].axes[cmor_tables[cmor_ntables].naxes],"id",word2);
-	}
-	else if (strcmp(word,"variable_entry")==0) {
-	  do_dataset=0;
-	  do_var=1;
-	  do_axis=0;
-	  do_mapping=0;
-	  cmor_tables[cmor_ntables].nvars++;
-	  if (cmor_tables[cmor_ntables].nvars>=CMOR_MAX_ELEMENTS) {
-	    cmor_handle_error("Too many variables defined for table",CMOR_CRITICAL);
-	    cmor_ntables--;
-	    cmor_pop_traceback();
-	    return 1;
-	  }
-	  /* init the variable def */
-	  cmor_init_var_def(&cmor_tables[cmor_ntables].vars[cmor_tables[cmor_ntables].nvars],cmor_ntables);
-	  cmor_set_var_def_att(&cmor_tables[cmor_ntables].vars[cmor_tables[cmor_ntables].nvars],"id",word2);
-
-	}
-	else if (strcmp(word,"mapping_entry")==0) {
-	  do_dataset=0;
-	  do_var=0;
-	  do_axis=0;
-	  do_mapping=1;
-	  cmor_tables[cmor_ntables].nmappings++;
-	  if (cmor_tables[cmor_ntables].nmappings>=CMOR_MAX_ELEMENTS) {
-	    cmor_handle_error("Too many mappings defined for table",CMOR_CRITICAL);
-	    cmor_ntables--;
-	    cmor_pop_traceback();
-	    return 1;
-	  }
-	  for(n=0;n<cmor_tables[cmor_ntables].nmappings-1;n++) if (strcmp(cmor_tables[cmor_ntables].mappings[cmor_tables[cmor_ntables].nmappings].id,cmor_tables[cmor_ntables].mappings[n].id)==0) {
-	      snprintf(msg,CMOR_MAX_STRING,"mapping: %s already defined within this table",cmor_tables[cmor_ntables].mappings[n].id);
-	      cmor_handle_error(msg,CMOR_CRITICAL);
-	    };
-
-	  /* init the variable def */
-	  cmor_init_grid_mapping(&cmor_tables[cmor_ntables].mappings[cmor_tables[cmor_ntables].nmappings],word2);
-	}
-	else { /* nothing knwon we will not be setting any attributes! */
-	  snprintf(msg,CMOR_MAX_STRING,"unknown section: %s",word);
-	  cmor_handle_error(msg,CMOR_WARNING);
-	  do_dataset=0;
-	  do_var=0;
-	  do_axis=0;
-	  do_mapping=0;
-	}
-	/*printf("ok now i is: --%c--\n",i);*/
-    }
-      else { /* just a commented out line, let's skip it */
-	/*printf("all right skiping line\n");*/
-	while(i!='\n') i = wfgetc(table_file);
-	i = wfgetc(table_file);
-	while((i==' ') || (i=='\n') || (i=='\t')) i = wfgetc(table_file);
-	/*printf("ok now i is: --%c--\n",i);*/
-      }
-    }
-    if (i==EOF) break;
-    /* ok here we must have a word then, let's read it and it's value */
-    n=0;
-    while(i!=':'){
-      word[n]=i;
-      i = wfgetc(table_file);
-      n+=1;
-    }
-    i = wfgetc(table_file);
-    word[n]='\0';
-    while (i==' ' || i=='\t') i = wfgetc(table_file);
-    n=0;
-    while((i!='\n') && (i!='!')) {
-      word2[n]=i;
-      i = wfgetc(table_file);
-      n+=1;
-    }
-    word2[n]='\0';
-    n=strlen(word2);
-    for (n=strlen(word2)-1;n>-1;n--) {
-      if (word2[n]==' ' || word2[n]=='\t' ) word2[n]='\0';
-      else break;
-    }
-    /* finishes the line */
-    while (i!='\n' && i!=EOF) i = wfgetc(table_file);
-    /*printf("got entry: %s with value %s, var: %i, axis: %i, dat: %i\n",word,word2,do_var,do_axis,do_dataset);*/
-    /* First check for table/dataset mode values */
-    if (do_dataset==1) {
-      if (cmor_set_dataset_att(&cmor_tables[cmor_ntables],word,word2)==1) {
-	cmor_pop_traceback();
-	return 1; /* sometihng bad might happen */
-      }
-    }
-    else if (do_var==1) {
-      cmor_set_var_def_att(&cmor_tables[cmor_ntables].vars[cmor_tables[cmor_ntables].nvars],word,word2);
-    }
-    else if (do_axis ==1){
-      cmor_set_axis_def_att(&cmor_tables[cmor_ntables].axes[cmor_tables[cmor_ntables].naxes],word,word2);
-    }
-    else if (do_mapping==1) {
-      cmor_set_mapping_attribute(&cmor_tables[cmor_ntables].mappings[cmor_tables[cmor_ntables].nmappings],word,word2);
-    }
-    else {
-      snprintf(msg,CMOR_MAX_STRING,"attribute for unknown section: %s,%s",word,word2);
-      cmor_handle_error(msg,CMOR_WARNING);
-      /*printf("attribute for unknown section\n");*/
-    }
-  }
-  fclose(table_file);
-  *table_id = cmor_ntables;
-  strcpy(cmor_tables[cmor_ntables].path,table);
-  CMOR_TABLE = cmor_ntables;
-  cmor_pop_traceback();
-  return 0;
-}
diff --git a/Src/cmor_variables.c b/Src/cmor_variables.c
deleted file mode 100644
index 79c406e..0000000
--- a/Src/cmor_variables.c
+++ /dev/null
@@ -1,1658 +0,0 @@
-#include <time.h>
-#include <stdio.h>
-#include <string.h>
-#include "cmor.h"
-#include <netcdf.h>
-#include <udunits2.h>
-#include <stdlib.h>
-#include <math.h>
-
-
-int cmor_is_required_variable_attribute(cmor_var_def_t var, char *attribute_name) 
-{
-  
-  char astr[CMOR_MAX_STRING];
-  int i,j;
-  if (var.required[0]=='\0') {
-    return 1;
-  }
-
-  i=0;
-  astr[0]='\0';
-  j=0;
-  while(var.required[i]!='\0') {
-    while((var.required[i]!=' ') && (var.required[i]!='\0')) {
-      astr[j]=var.required[i];
-      i+=1;
-      j+=1;
-    }
-    astr[j]='\0';
-    if (strncmp(astr,attribute_name,CMOR_MAX_STRING)==0) return 0;
-    j=0;
-    astr[0]='\0';
-    while(var.required[i]==' ') i+=1;
- }
-  return 1;
-}
-
-int cmor_has_required_variable_attributes(int var_id) 
-{
-  extern cmor_var_t cmor_vars[];
-  char astr[CMOR_MAX_STRING];
-  char msg[CMOR_MAX_STRING];
-  int i,j;
-  cmor_var_def_t var;
-  cmor_add_traceback("cmor_has_required_variable_attributes");
-  var = cmor_tables[cmor_vars[var_id].ref_table_id].vars[cmor_vars[var_id].ref_var_id];
-  
-  if (var.required[0]=='\0') {
-    cmor_pop_traceback();
-    return 0;
-  }
-  i=0;
-  astr[0]='\0';
-  j=0;
-  while(var.required[i]!='\0') {
-    while((var.required[i]!=' ') && (var.required[i]!='\0')) {
-      astr[j]=var.required[i];
-      i+=1;
-      j+=1;
-    }
-    astr[j]='\0';
-    if (cmor_has_variable_attribute(var_id,astr)!=0) {
-      snprintf(msg,CMOR_MAX_STRING,"variable %s does not have required attribute: %s",cmor_vars[var_id].id,astr);
-      cmor_handle_error(msg,CMOR_CRITICAL);
-    }
-    j=0;
-    astr[0]='\0';
-    while(var.required[i]==' ') i+=1;
-  }
-  cmor_pop_traceback();
-  return 0;
-
-  
-}
-int cmor_set_variable_attribute(int id, char *attribute_name, char type, void *value)
-{
-  extern cmor_var_t cmor_vars[];
-  int i,index;
-  char msg[CMOR_MAX_STRING];
-  cmor_add_traceback("cmor_set_variable_attribute");
-  cmor_is_setup();
-  index=-1;
-  cmor_trim_string(attribute_name,msg);
-  for (i=0;i<cmor_vars[id].nattributes;i++) {
-    if (strcmp(cmor_vars[id].attributes[i],msg)==0) {index=i;break;} /* we found it */
-  }
-  if (index==-1) {index=cmor_vars[id].nattributes; cmor_vars[id].nattributes+=1;}
-  strncpy(cmor_vars[id].attributes[index],msg,CMOR_MAX_STRING); /*stores the name */
-  cmor_vars[id].attributes_type[i]=type;
-  if (type=='c')  {
-    if (strlen(value)>0) {
-      strncpytrim(cmor_vars[id].attributes_values_char[index],value,CMOR_MAX_STRING);
-    }
-    else {
-      strcpy(cmor_vars[id].attributes[index],"");
-    }
-  }
-  else if (type=='f')  cmor_vars[id].attributes_values_num[index] = (double)*(float*)value;
-  else if (type=='i')  cmor_vars[id].attributes_values_num[index] = (double)*(int*)value;
-  else if (type=='d') cmor_vars[id].attributes_values_num[index] = (double)*(double*)value;
-  else if (type=='l') cmor_vars[id].attributes_values_num[index] = (double)*(long*)value;
-  else {
-    snprintf(msg,CMOR_MAX_STRING,"unknown type %c allowed types are c,i,l,f,d",type);
-    cmor_handle_error(msg,CMOR_NORMAL);
-    cmor_pop_traceback();
-    return 1;
-  }
-  cmor_pop_traceback();
-  return 0;
-}
-int cmor_get_variable_attribute(int id, char *attribute_name, void *value)
-{
-  extern cmor_var_t cmor_vars[];
-  int i,index;
-  char msg[CMOR_MAX_STRING];
-  char type;
-  cmor_add_traceback("cmor_get_variable_attribute");
-  cmor_is_setup();
-  index=-1;
-  for (i=0;i<cmor_vars[id].nattributes;i++) {
-    if (strcmp(cmor_vars[id].attributes[i],attribute_name)==0) {index=i;break;} /* we found it */
-  }
-  if (index==-1) {
-    snprintf(msg,CMOR_MAX_STRING,"Attribute %s could not be found for variable %i",attribute_name,id);
-    cmor_handle_error(msg,CMOR_NORMAL);
-    cmor_pop_traceback();
-    return 1;
-  }
-  type = cmor_vars[id].attributes_type[i];
-  if (type=='c')  strncpy(value,cmor_vars[id].attributes_values_char[index],CMOR_MAX_STRING);
-  else if (type=='f') value = (float *)&cmor_vars[id].attributes_values_num[index];
-  else if (type=='i')  value = (int *)&cmor_vars[id].attributes_values_num[index];
-  else if (type=='l') value = (long *)&cmor_vars[id].attributes_values_num[index];
-  else  value = (double *)&cmor_vars[id].attributes_values_num[index];
-  cmor_pop_traceback();
-  return 0;
-}
-int cmor_has_variable_attribute(int id, char *attribute_name)
-{
-  extern cmor_var_t cmor_vars[];
-  int i,index;
-  cmor_add_traceback("cmor_has_variable_attribute");
-  cmor_is_setup();
-  index=-1;
-  for (i=0;i<cmor_vars[id].nattributes;i++) {
-    if (strcmp(cmor_vars[id].attributes[i],attribute_name)==0) {index=i;break;} /* we found it */
-  }
-  if (index==-1) {
-   cmor_pop_traceback();
-    return 1;
-  }
-  cmor_pop_traceback();
-  return 0;
-}
-
-int cmor_get_variable_attribute_names(int id, int *nattributes,char attributes_names[][CMOR_MAX_STRING])
-{
-  extern cmor_var_t cmor_vars[];
-  int i;
-  cmor_add_traceback("cmor_get_variable_attribute_names");
-  cmor_is_setup();
-  *nattributes = cmor_vars[id].nattributes;
-  for (i=0;i<cmor_vars[id].nattributes;i++) {
-    strncpy(attributes_names[i],cmor_vars[id].attributes[i],CMOR_MAX_STRING);
-  }
-  cmor_pop_traceback();
-  return 0;
-}
-
-int cmor_get_variable_attribute_type(int id, char *attribute_name, char *type)
-{
-  extern cmor_var_t cmor_vars[];
-  int i,index;
-  char msg[CMOR_MAX_STRING];
-  cmor_add_traceback("cmor_get_variable_attribute_type");
-  cmor_is_setup();
-  index=-1;
-  for (i=0;i<cmor_vars[id].nattributes;i++) {
-    if (strcmp(cmor_vars[id].attributes[i],attribute_name)==0) {index=i;break;} /* we found it */
-  }
-  if (index==-1) {
-    snprintf(msg,CMOR_MAX_STRING,"Attribute %s could not be found for variable %i",attribute_name,id);
-    cmor_handle_error(msg,CMOR_NORMAL);
-    cmor_pop_traceback();
-    return 1;
-  }
-  *type = cmor_vars[id].attributes_type[i];
-  cmor_pop_traceback();
-  return 0;
-}
-
-int cmor_zfactor (int *zvar_id,int axis_id, char *name, char *units, int ndims, int axes_ids[], char type, void *values, void *bounds)
-{
-  extern int cmor_nvars;
-  extern cmor_var_t cmor_vars[];
-
-  int i,j,k;
-  int n,gid;
-  int var_id;
-
-  char msg[CMOR_MAX_STRING];
-  extern ut_system *ut_read;
-  ut_unit *user_units, *cmor_units;
-  cv_converter *ut_cmor_converter;
-  char local_unit[CMOR_MAX_STRING];
-  double tmp;
-
-  cmor_add_traceback("cmor_zfactor");
-  cmor_is_setup();
-
-  /* first check if we need to convert values */
-  /* printf("in zf:%s, %s, %i, %i\n",name,cmor_axes[axis_id].id,ndims,axes_ids[0]); */
-  /* printf("in zf:%s, %s, %i, %i\n",name,cmor_axes[axis_id].id,cmor_axes[axis_id].hybrid_out,cmor_axes[axis_id].hybrid_in); */
-  if (cmor_axes[axis_id].hybrid_out==cmor_axes[axis_id].hybrid_in) { /* no it's a normal hybrid, no conv */
-    i = cmor_variable(&var_id,name,units,ndims,axes_ids,type,NULL,NULL,NULL,NULL,NULL,NULL);
-    cmor_vars[var_id].needsinit=0;
-    cmor_vars[var_id].zaxis=axis_id;
-    if (values != NULL) {
-      n=1;
-      for (i=0;i<ndims;i++) {
-	if (axes_ids[i]>-1) {
-	  n*=cmor_axes[axes_ids[i]].length;
-	}
-	else {
-	  /* ok irregular grid */
-	  gid = -axes_ids[i]-10;
-	  for (j=0;j<cmor_grids[gid].ndims;j++) {
-	    n*=cmor_axes[cmor_grids[gid].axes_ids[j]].length;
-	  }
-	}
-      }
-      cmor_vars[var_id].values = malloc(n*sizeof(double));
-      if (cmor_vars[var_id].values == NULL) {
-	snprintf(msg,CMOR_MAX_STRING,"cmor_zfactor: cannot allocate memory for %i double elts %s var '%s'",n,cmor_vars[*zvar_id].id,cmor_vars[var_id].id);
-	cmor_handle_error(msg,CMOR_CRITICAL);
-      }
-      for (i=0;i<n;i++) {
-	if (type=='d')  cmor_vars[var_id].values[i] = (double)((double *)values)[i];
-	else if (type=='f')  cmor_vars[var_id].values[i] = (double)((float *)values)[i];
-	else if (type=='l')  cmor_vars[var_id].values[i] = (double)((long *)values)[i];
-	else if (type=='i')  cmor_vars[var_id].values[i] = (double)((int *)values)[i];
-      }
-
-      /* ok we may need to convert to some decent untis */
-      strncpy(local_unit,cmor_vars[var_id].ounits,CMOR_MAX_STRING);
-      cmor_units = ut_parse(ut_read, local_unit,UT_ASCII);
-      if (ut_get_status() != UT_SUCCESS) {
-	snprintf(msg,CMOR_MAX_STRING,"Udunits: Error parsing units: %s",local_unit);
-	cmor_handle_error(msg,CMOR_CRITICAL);
-      }
-      strncpy(local_unit,units,CMOR_MAX_STRING);
-      ut_trim(local_unit,UT_ASCII);
-      user_units = ut_parse(ut_read, local_unit, UT_ASCII);
-      if (ut_get_status() != UT_SUCCESS) {
-	snprintf(msg,CMOR_MAX_STRING,"Udunits: Error parsing units: %s",local_unit);
-	cmor_handle_error(msg,CMOR_CRITICAL);
-      }
-      ut_cmor_converter=ut_get_converter(user_units,cmor_units);
-      if (ut_get_status() != UT_SUCCESS) {
-	snprintf(msg,CMOR_MAX_STRING,"Udunits: Error getting converter from %s to %s",units,cmor_vars[var_id].ounits);
-	cmor_handle_error(msg,CMOR_CRITICAL);
-      }
-      cv_convert_doubles(ut_cmor_converter,&cmor_vars[var_id].values[0],n,&cmor_vars[var_id].values[0]);
-      if (ut_get_status() != UT_SUCCESS) {
-	snprintf(msg,CMOR_MAX_STRING,"Udunits: Error converting units");
-	cmor_handle_error(msg,CMOR_CRITICAL);
-      }
-      cv_free(ut_cmor_converter);
-      if (ut_get_status() != UT_SUCCESS) {
-	snprintf(msg,CMOR_MAX_STRING,"Udunits: Error freeing converter");
-	cmor_handle_error(msg,CMOR_CRITICAL);
-      }
-      ut_free(cmor_units);
-      if (ut_get_status() != UT_SUCCESS) {
-	snprintf(msg,CMOR_MAX_STRING,"Udunits: Error freeing units");
-	cmor_handle_error(msg,CMOR_CRITICAL);
-      }
-      ut_free(user_units);
-      if (ut_get_status() != UT_SUCCESS) {
-	snprintf(msg,CMOR_MAX_STRING,"Udunits: Error freeing units");
-	cmor_handle_error(msg,CMOR_CRITICAL);
-      }
-
-      cmor_vars[var_id].itype='d';
-      *zvar_id= var_id; 
-    }
-    else {
-      /* Ok let's check to make sure it has a time axis! */
-      int k=0; 
-      for (i=0;i<ndims;i++) {
-	if (axes_ids[i]>-1) {
-	  if (cmor_axes[axes_ids[i]].axis=='T') {
-	    k=1;
-	    break;
-	  }
-	}
-	else {
-	  /* ok irregular grid */
-	  gid = -axes_ids[i]-10;
-	  for (j=0;j<cmor_grids[gid].ndims;j++) {
-	    if (cmor_axes[cmor_grids[gid].axes_ids[j]].axis=='T') {
-	      k=1;
-	      break;
-	    }
-	  }
-	}
-      }
-      if (k==0) {
-	snprintf(msg,CMOR_MAX_STRING,"zfactor: %s, is not time dependent and you did not provide any values",name);
-	cmor_handle_error(msg,CMOR_CRITICAL);
-      }
-      *zvar_id = var_id;
-    }
-    if (bounds != NULL) {
-      if (ndims!=1) {
-	snprintf(msg,CMOR_MAX_STRING,"zfactor %s: you passed bounds values but you also declared %i dimensions, we will ignore you bounds",name,ndims);
-	cmor_handle_error(msg,CMOR_WARNING);
-      }
-      else {
-	strncpy(msg,name,CMOR_MAX_STRING);
-	strncat(msg,"_bnds",CMOR_MAX_STRING-strlen(msg));
-	i = cmor_variable(&var_id,msg,units,ndims,axes_ids,'d',NULL,NULL,NULL,NULL,NULL,NULL);
-	cmor_vars[var_id].zaxis=axis_id;
-	cmor_vars[var_id].needsinit=0;
-/* 	printf("setting Zaxis to:%i for var: %i (%s) \n",axis_id,var_id,cmor_vars[var_id].id); */
-	n = cmor_axes[axes_ids[0]].length;
-	cmor_vars[var_id].values = malloc(2*n*sizeof(double));
-	if ( cmor_vars[var_id].values == NULL)  {
-	  snprintf(msg,CMOR_MAX_STRING,"cmor_zfactor: cannot allocate memory for %i double bounds elts %s var '%s'",2*n,cmor_vars[*zvar_id].id,cmor_vars[var_id].id);
-	  cmor_handle_error(msg,CMOR_CRITICAL);
-	}
-	cmor_vars[var_id].isbounds=1;
-	for (i=0;i<n;i++) {
-	  if (type=='d')  { cmor_vars[var_id].values[2*i] = (double)((double *)bounds)[i];cmor_vars[var_id].values[2*i+1] = (double)((double *)bounds)[i+1];}
-	  else if (type=='f')  { cmor_vars[var_id].values[2*i] = (double)((float *)bounds)[i];cmor_vars[var_id].values[2*i+1] = (double)((float *)bounds)[i+1];}
-	  else if (type=='l')  { cmor_vars[var_id].values[2*i] = (double)((long *)bounds)[i];cmor_vars[var_id].values[2*i+1] = (double)((long *)bounds)[i+1];}
-	  else if (type=='i')  { cmor_vars[var_id].values[2*i] = (double)((int *)bounds)[i];cmor_vars[var_id].values[2*i+1] = (double)((int *)bounds)[i+1];}
-	}
-	/* ok we may need to convert to some decent untis */
-	strncpy(local_unit,cmor_vars[var_id].ounits,CMOR_MAX_STRING);
-	cmor_units = ut_parse(ut_read, local_unit,UT_ASCII);
-	if (ut_get_status() != UT_SUCCESS) {
-	  snprintf(msg,CMOR_MAX_STRING,"Udunits: Error parsing units: %s",local_unit);
-	  cmor_handle_error(msg,CMOR_CRITICAL);
-	}
-	strncpy(local_unit,units,CMOR_MAX_STRING);
-	ut_trim(local_unit,UT_ASCII);
-	user_units = ut_parse(ut_read, local_unit, UT_ASCII);
-	if (ut_get_status() != UT_SUCCESS) {
-	  snprintf(msg,CMOR_MAX_STRING,"Udunits: Error parsing units: %s",local_unit);
-	  cmor_handle_error(msg,CMOR_CRITICAL);
-	}
-	ut_cmor_converter=ut_get_converter(user_units,cmor_units);
-	if (ut_get_status() != UT_SUCCESS) {
-	  snprintf(msg,CMOR_MAX_STRING,"Udunits: Error getting converter from %s to %s",units,cmor_vars[var_id].ounits);
-	  cmor_handle_error(msg,CMOR_CRITICAL);
-	}
-	cv_convert_doubles(ut_cmor_converter,&cmor_vars[var_id].values[0],2*n,&cmor_vars[var_id].values[0]);
-	if (ut_get_status() != UT_SUCCESS) {
-	  snprintf(msg,CMOR_MAX_STRING,"Udunits: Error converting units");
-	  cmor_handle_error(msg,CMOR_CRITICAL);
-	}
-	cv_free(ut_cmor_converter);
-	if (ut_get_status() != UT_SUCCESS) {
-	  snprintf(msg,CMOR_MAX_STRING,"Udunits: Error freeing converter");
-	  cmor_handle_error(msg,CMOR_CRITICAL);
-	}
-
-	ut_free(cmor_units);
-	if (ut_get_status() != UT_SUCCESS) {
-	  snprintf(msg,CMOR_MAX_STRING,"Udunits: Error freeing units");
-	  cmor_handle_error(msg,CMOR_CRITICAL);
-	}
-	ut_free(user_units);
-	if (ut_get_status() != UT_SUCCESS) {
-	  snprintf(msg,CMOR_MAX_STRING,"Udunits: Error freeing units");
-	  cmor_handle_error(msg,CMOR_CRITICAL);
-	}
-
-      }
-    }
-  }
-  else {
-    /* first prepare the conversion thing */
-    
-    /* stores the original hybrid_in to put back later */
-    i = cmor_axes[axis_id].hybrid_in;
-    cmor_axes[axis_id].hybrid_in = cmor_axes[axis_id].hybrid_out;
-/*     printf("input type was: %i\n",i); */
-    /* ok we now have 3 possible case */
-    if (i==1) {
-      n = cmor_zfactor(zvar_id,axis_id,name,units,ndims,axes_ids,type,values,bounds);
-    }
-    else if (i == 2) { /* case alternate hybrid sigma */
-      if (strcmp(name,"ap")==0) {
-	/* creates the p0 */
-	tmp = (double)1.e5;
-	j = cmor_zfactor(zvar_id,axis_id,"p0","Pa",0,NULL,'d',&tmp,NULL);
-	/* creates the "a" */
-	n = cmor_zfactor(zvar_id,axis_id,"a","",ndims,axes_ids,type,values,bounds); /* ok redefined it as a "a" factor */
-	/* ok we need to change the values now */
-	/* first convert p0 to user units */
-	cmor_units = ut_parse(ut_read, "Pa",UT_ASCII);
-	strncpy(local_unit,units,CMOR_MAX_STRING);
-	ut_trim(local_unit,UT_ASCII);
-	user_units = ut_parse(ut_read, local_unit, UT_ASCII);
-	if (ut_get_status() != UT_SUCCESS) {
-	  snprintf(msg,CMOR_MAX_STRING,"Udunits: Error parsing units from user: %s",local_unit);
-	  cmor_handle_error(msg,CMOR_CRITICAL);
-	}
-	if (ut_are_convertible(cmor_units,user_units)==0 ) {
-	  snprintf(msg,CMOR_MAX_STRING,"Udunuits: Pa and user units (%s) are incompatible",units);
-	  cmor_handle_error(msg,CMOR_CRITICAL);
-	  cmor_pop_traceback();
-	  return 1;
-	}
-	ut_cmor_converter=ut_get_converter(cmor_units,user_units);
-	if (ut_get_status() != UT_SUCCESS) {
-	  snprintf(msg,CMOR_MAX_STRING,"Udunits: Error getting converter from Pa to %s",units);
-	  cmor_handle_error(msg,CMOR_CRITICAL);
-	}
-	tmp = (double) 1.e5;
-	tmp = cv_convert_double(ut_cmor_converter,tmp);
-	/* free units thing */
-	if (ut_get_status() != UT_SUCCESS) {
-	  snprintf(msg,CMOR_MAX_STRING,"Udunits: Error converting units");
-	  cmor_handle_error(msg,CMOR_CRITICAL);
-	}
-	cv_free(ut_cmor_converter);
-	if (ut_get_status() != UT_SUCCESS) {
-	  snprintf(msg,CMOR_MAX_STRING,"Udunits: Error freeing converter");
-	  cmor_handle_error(msg,CMOR_CRITICAL);
-	}
-
-	ut_free(cmor_units);
-	if (ut_get_status() != UT_SUCCESS) {
-	  snprintf(msg,CMOR_MAX_STRING,"Udunits: Error freeing units");
-	  cmor_handle_error(msg,CMOR_CRITICAL);
-	}
-	ut_free(user_units);
-	if (ut_get_status() != UT_SUCCESS) {
-	  snprintf(msg,CMOR_MAX_STRING,"Udunits: Error freeing units");
-	  cmor_handle_error(msg,CMOR_CRITICAL);
-	}
-
-	if (values!=NULL) {
-	  n = cmor_axes[axes_ids[0]].length;
-	  for (j=0;j<n;j++)  cmor_vars[*zvar_id].values[j] /= tmp;
-	}
-	if (bounds!=NULL) {
-	  k=-1;
-	  for (n=0;n<=cmor_nvars;n++) if ((strcmp(cmor_vars[n].id,"a_bnds")==0) && (cmor_vars[n].zaxis==axis_id)) {k=n;break;}
-	  n = cmor_axes[axes_ids[0]].length;
-	  for (j=0;j<2*n;j++) cmor_vars[k].values[j] /= tmp;
-	}
-      }
-      else n = cmor_zfactor(zvar_id,axis_id,name,units,ndims,axes_ids,type,values,bounds); 
-    }
-    else if (i==3) { /* atmosphere_sigma_coordinates case */
-      if (strcmp(name,"sigma")==0) {
-	/*ok first we need to make sure we crated the ptop */
-	j=-1;
-	for (n=0;n<=cmor_nvars;n++) if ((strcmp(cmor_vars[n].id,"ptop")==0) && (cmor_vars[n].zaxis==axis_id)) {j=n;break;}
-	if (j==-1) { /* we did not find the ztop! */
-	  snprintf(msg,CMOR_MAX_STRING,"zfactor variable \"ptop\" for zfactor axis: %i is not defined when creating zfactor %s, please define ptop first",axis_id,name);
-	  cmor_handle_error(msg,CMOR_CRITICAL);
-	}
-	tmp = (double) 1.e5;
-	/* creates the p0 */
-	n = cmor_zfactor(zvar_id,axis_id,"p0","Pa",0,NULL,'d',&tmp,NULL);
-	tmp = cmor_vars[j].values[0]; /* stores ptop (in Pa) */
-	/* creates the "a" */
-	n = cmor_zfactor(zvar_id,axis_id,"a","",ndims,axes_ids,type,values,bounds); /* ok redefined it as a "a" factor */
-	if (values!=NULL) {
-	  n = cmor_axes[axes_ids[0]].length;
-	  for (j=0;j<n;j++) cmor_vars[*zvar_id].values[j] = (1.-cmor_vars[*zvar_id].values[j])*tmp/1.e5;
-	}
-	if (bounds!=NULL) {
-	  k=-1;
-	  for (n=0;n<=cmor_nvars;n++) if ((strcmp(cmor_vars[n].id,"a_bnds")==0) && (cmor_vars[n].zaxis==axis_id)) {k=n;break;}
-	  n = cmor_axes[axes_ids[0]].length;
-	  for (j=0;j<2*n;j++) cmor_vars[k].values[j] /= tmp;
-	}
-	/* creates the "b" */
-	n = cmor_zfactor(zvar_id,axis_id,"b","",ndims,axes_ids,type,values,bounds); /* ok redefined it as a "a" factor */
-      }
-      else n = cmor_zfactor(zvar_id,axis_id,name,units,ndims,axes_ids,type,values,bounds); 
-    }
-
-    /* put back input type */
-    cmor_axes[axis_id].hybrid_in = i;
-
-  }
-  cmor_pop_traceback();
-  return 0;
-}
-
-int cmor_update_history(int var_id,char *add){
-  struct tm *ptr;
-  time_t lt;
-  char date[CMOR_MAX_STRING];
-  char tmp[CMOR_MAX_STRING];
-  char tmp2[CMOR_MAX_STRING];
-
-  /* first figures out time */
-  cmor_add_traceback("cmor_update_history");
-  lt = time(NULL);
-  ptr = gmtime(&lt);
-  snprintf(date,CMOR_MAX_STRING,"%.4i-%.2i-%.2iT%.2i:%.2i:%.2iZ",ptr->tm_year+1900,ptr->tm_mon+1,ptr->tm_mday,ptr->tm_hour,ptr->tm_min,ptr->tm_sec);
-  if (cmor_has_variable_attribute(var_id,"history")==0) {
-    cmor_get_variable_attribute(var_id,"history",&tmp[0]);
-  }
-  else {
-    tmp[0]='\0';
-  }
-  snprintf(tmp2,CMOR_MAX_STRING,"%s %s altered by CMOR: %s.",tmp,date,add);
-  cmor_set_variable_attribute(var_id,"history",'c',tmp2);
-  cmor_pop_traceback();
-  return 0;
-}
-
-int cmor_variable(int *var_id, char *name, char *units, int ndims, int axes_ids[], char type, void *missing, double *tolerance, char *positive, char*original_name, char *history, char *comment) 
-{
-  extern int cmor_nvars,cmor_naxes;
-  extern int CMOR_TABLE;
-  extern cmor_var_t cmor_vars[];
-  int i,iref,j,k,ierr,l;
-  char msg[CMOR_MAX_STRING];
-  char ctmp[CMOR_MAX_STRING];
-  cmor_var_def_t refvar;
-  int laxes_ids[CMOR_MAX_DIMENSIONS];
-  int grid_id=1000;
-  int lndims,olndims;
-  float afloat;
-  int aint;
-  long along;
-  int did_grid_reorder=0;
-  int vrid;
-
-  cmor_add_traceback("cmor_variable");
-  cmor_is_setup();
-
-  if (CMOR_TABLE==-1) {
-    cmor_handle_error("You did not define a table yet!",CMOR_CRITICAL);
-  }
-
-  if (cmor_nvars==CMOR_MAX_VARIABLES-1) { 
-    cmor_handle_error("Too many variables defined",CMOR_CRITICAL);
-    cmor_pop_traceback();
-    return 1;
-  }
-
-
-
-  /* ok now look which variable is corresponding in table if not found then error */
-  iref=-1;
-  cmor_trim_string(name,ctmp);
-  for (i=0;i<cmor_tables[CMOR_TABLE].nvars+1;i++) {
-    if (strcmp(cmor_tables[CMOR_TABLE].vars[i].id,ctmp)==0) { iref=i;break;}
-  }
-  if (iref==-1) {
-    snprintf(msg,CMOR_MAX_STRING,"Could not find a matching variable for name: '%s'",ctmp);
-    cmor_handle_error(msg,CMOR_CRITICAL);
-  }
-  /*printf("ok your variable is actually variable %i in table %i\n",iref,CMOR_TABLE);*/
-  refvar=cmor_tables[CMOR_TABLE].vars[iref];
-  for (i=0;i<CMOR_MAX_VARIABLES;i++) {
-    if (cmor_vars[i].self==-1) {
-      vrid=i;
-      break;
-    }
-  }
-
-  if (vrid>cmor_nvars) cmor_nvars=vrid;
-  //vrid = cmor_nvars;
-
-  cmor_vars[vrid].ref_table_id=CMOR_TABLE;
-  cmor_vars[vrid].ref_var_id=iref;
-
-  /* init some things */
-  strcpy(cmor_vars[vrid].suffix,"");
-  strcpy(cmor_vars[vrid].base_path,"");
-  strcpy(cmor_vars[vrid].current_path,"");
-  cmor_vars[vrid].suffix_has_date=0;
-
-  /*output missing value */
-  cmor_vars[vrid].omissing = (double) cmor_tables[CMOR_TABLE].missing_value;
-
-  /* copying over values from ref var */
-  cmor_vars[vrid].valid_min = refvar.valid_min;
-  cmor_vars[vrid].valid_max = refvar.valid_max;
-  cmor_vars[vrid].ok_min_mean_abs = refvar.ok_min_mean_abs;
-  cmor_vars[vrid].ok_max_mean_abs = refvar.ok_max_mean_abs;
-  cmor_vars[vrid].shuffle = refvar.shuffle;
-  cmor_vars[vrid].deflate = refvar.deflate;
-  cmor_vars[vrid].deflate_level = refvar.deflate_level;
-  /*printf("going in vrid is: %i\n",vrid);*/
-  if (refvar.out_name[0]=='\0') {
-    strncpy(cmor_vars[vrid].id,name,CMOR_MAX_STRING);
-  }
-  else {
-    strncpy(cmor_vars[vrid].id,refvar.out_name,CMOR_MAX_STRING);
-  }
-
-  cmor_set_variable_attribute(vrid,"standard_name",'c',refvar.standard_name);
-  cmor_set_variable_attribute(vrid,"long_name",'c',refvar.long_name);
-  if ((refvar.flag_values!=NULL) && (refvar.flag_values[0]!='\0')) {
-    cmor_set_variable_attribute(vrid,"flag_values",'c',refvar.flag_values);
-  }
-  if ((refvar.flag_meanings!=NULL) && (refvar.flag_meanings[0]!='\0')) {
-    cmor_set_variable_attribute(vrid,"flag_meanings",'c',refvar.flag_meanings);
-  }
-/*   cmor_set_variable_attribute(vrid,"realm",'c',refvar.realm); */
-  cmor_set_variable_attribute(vrid,"comment",'c',refvar.comment);
-  if (strcmp(refvar.units,"?")==0) {
-    strncpy(cmor_vars[vrid].ounits,units,CMOR_MAX_STRING);
-  }
-  else {
-    strncpy(cmor_vars[vrid].ounits,refvar.units,CMOR_MAX_STRING);
-  }
-  cmor_set_variable_attribute(vrid,"units",'c',cmor_vars[vrid].ounits);
-  strncpy(cmor_vars[vrid].iunits,units,CMOR_MAX_STRING);
-  if ((original_name!=NULL) && (original_name[0]!='\0')) cmor_set_variable_attribute(vrid,"original_name",'c',original_name);
-  if ((history!=NULL) && (history[0]!='\0')) cmor_set_variable_attribute(vrid,"history",'c',history);
-  if ((comment!=NULL) && (comment[0]!='\0')) {
-    if (cmor_has_variable_attribute(vrid,"comment")==0) {
-      
-      strncpy(msg,comment,CMOR_MAX_STRING);
-      strncat(msg,", ",CMOR_MAX_STRING-strlen(msg));
-      strncat(msg,cmor_tables[cmor_vars[vrid].ref_table_id].project_id,CMOR_MAX_STRING-strlen(msg));
-      strncat(msg,"_table_comment: ",CMOR_MAX_STRING-strlen(msg));
-      strncat(msg,refvar.comment,CMOR_MAX_STRING-strlen(msg));
-    }
-    else {
-      strncpy(msg,comment,CMOR_MAX_STRING);
-    }
-    cmor_set_variable_attribute(vrid,"comment",'c',msg);
-  }
-  if (strcmp(units,refvar.units)!=0) {
-    cmor_set_variable_attribute(vrid,"original_units",'c',units);
-    snprintf(msg,CMOR_MAX_STRING,"Converted units from '%s' to '%s'",units,refvar.units);
-    cmor_update_history(vrid,msg);
-  }
-  cmor_set_variable_attribute(vrid,"cell_methods",'c',refvar.cell_methods);
-  cmor_set_variable_attribute(vrid,"cell_measures",'c',refvar.cell_measures);
-  /*if ((refvar.positive!='\0') && (positive!=NULL) && (positive[0]!=refvar.positive)) cmor_vars[vrid].sign=-1;*/
-  if ((positive!=NULL) && (positive[0]!='\0')) {
-    if ((positive[0]!='d') && positive[0]!='u') {
-      snprintf(msg,CMOR_MAX_STRING,"variable '%s': unknown value for positive : %s (only first character is considered, which was: %c)",cmor_vars[vrid].id,positive,positive[0]);
-      cmor_handle_error(msg,CMOR_CRITICAL);
-    }
-    if (refvar.positive=='u') {
-      if (cmor_is_required_variable_attribute(refvar,"positive")==0) cmor_set_variable_attribute(vrid,"positive",'c',"up");
-      if (positive[0]!='u') {
-	cmor_vars[vrid].sign=-1;
-	cmor_update_history(vrid,"Changed sign");
-      }
-    }
-    else if (refvar.positive=='d') {
-      if (cmor_is_required_variable_attribute(refvar,"positive")==0) cmor_set_variable_attribute(vrid,"positive",'c',"down");
-      if (positive[0]!='d') {
-	cmor_vars[vrid].sign=-1;
-	cmor_update_history(vrid,"Changed sign");
-      }
-    }
-    else { 
-      snprintf(msg,CMOR_MAX_STRING,"variable '%s' you passed positive value:%s, but table does not mention it, will be ignored, if you really want this in your variable output use cmor_set_variable_attribute function",cmor_vars[vrid].id,positive); 
-      cmor_handle_error(msg,CMOR_WARNING);
-    }
-  }
-  else {
-    if (cmor_is_required_variable_attribute(refvar,"positive")==0) {
-	snprintf(msg,CMOR_MAX_STRING,"you need to provide the 'positive' argument for variable: %s",cmor_vars[vrid].id);
-	cmor_handle_error(msg,CMOR_CRITICAL);
-      }
-    if (refvar.positive!='\0') {
-      if (refvar.positive=='u') {
-	if (cmor_is_required_variable_attribute(refvar,"positive")==0) cmor_set_variable_attribute(vrid,"positive",'c',"up");
-	snprintf(msg,CMOR_MAX_STRING,"you did not provide the 'positive' argument for variable: %s",cmor_vars[vrid].id);
-      }
-      else if (refvar.positive=='d') {
-	if (cmor_is_required_variable_attribute(refvar,"positive")==0) cmor_set_variable_attribute(vrid,"positive",'c',"down");
-	snprintf(msg,CMOR_MAX_STRING,"you did not provide the 'positive' argument for variable: %s",cmor_vars[vrid].id);
-      }
-      cmor_handle_error(msg,CMOR_CRITICAL);
-    }
-  }
-  /* before anything we copy axes_ids into laxes_ids */
-  for (i=0;i<ndims;i++) {
-    laxes_ids[i] = axes_ids[i];
-    /* printf("%s: axes[%i] = %i\n",cmor_vars[vrid].id,i,laxes_ids[i]); */
-  }
-  lndims=ndims;
-  aint=0; /* just to know if we deal with  a grid */
-  /* ok we need to replace grids definitions with the grid axes */
-  for (i=0;i<ndims;i++) {
-    if (laxes_ids[i]<-9) { /* grid definition */
-      grid_id = -laxes_ids[i]-10;
-      /* here we need to know if the refvar has been defined with lat/lon or in the grid space */
-      k=0;
-      for (j=0;j<refvar.ndims;j++) {
-	if (strcmp(cmor_tables[refvar.table_id].axes[refvar.dimensions[j]].id,"longitude")==0) k++;
-	if (strcmp(cmor_tables[refvar.table_id].axes[refvar.dimensions[j]].id,"latitude")==0) k++;
-	if (refvar.dimensions[j]==-10) k++;
-      }
-      if (k==2) { 
-	aint = cmor_grids[grid_id].ndims-2; /* basically replaces the lat/lon with the number of dims in our grid */
-      }
-      cmor_vars[vrid].grid_id = grid_id;
-      k = cmor_grids[grid_id].ndims-1;
-      /* first move everything to the right */
-      for (j=lndims-1;j>=i;j--) laxes_ids[j+k] = laxes_ids[j];
-      /* ok now we need to insert the grid dimensions */
-      lndims +=k;
-      for (j=0;j<cmor_grids[grid_id].ndims;j++) {
-	/* printf("adding axis: %i at pos: %i\n",cmor_grids[grid_id].original_axes_ids[j],i+j); */
-	laxes_ids[i+j] = cmor_grids[grid_id].original_axes_ids[j];
-      }
-    }
-  }
-  /* for(i=0;i<refvar.ndims;i++) fprintf(stderr,"after the grid id section: %i, id: %i\n",i,laxes_ids[i]); */
-  olndims = lndims;
-  if (refvar.ndims+aint!=lndims) {
-    lndims=0;
-    /* ok before we panic we check if there is a "dummy" dim */
-    j=refvar.ndims-ndims+aint;
-    for (i=0;i<refvar.ndims;i++) {
-/*       printf("ok none matchng # of dims, i: %d, id: %s, value: %lf, lndims is: %d\n",i,cmor_tables[CMOR_TABLE].axes[refvar.dimensions[i]].id,cmor_tables[CMOR_TABLE].axes[refvar.dimensions[i]].value,olndims); */
-      if (cmor_tables[CMOR_TABLE].axes[refvar.dimensions[i]].value!=1.e20) {
-	/* ok it could be a dummy but we need to check if the user already defined this dummy dimension or not */
-	l=-1;
-	for (k=0;k<olndims;k++) {
-	  if (cmor_has_axis_attribute(laxes_ids[k],"standard_name")==0) {
-	      cmor_get_axis_attribute(laxes_ids[k],"standard_name",'c',&msg);
-	    }
-	    else {
-	      strcpy(msg,"nope");
-	    }
-	  /* printf("k: %d, axes_id: %d, stdnm: %s, ref stdnm: %s\n",k,laxes_ids[k],msg,cmor_tables[CMOR_TABLE].axes[refvar.dimensions[i]].standard_name); */
-	  if (strcmp(msg,cmor_tables[CMOR_TABLE].axes[refvar.dimensions[i]].standard_name)==0) {
-	    /* ok user did define this one on its own */
-	    l=k;
-	    break;
-	  }
-	}
-	if (l==-1) { /* ok it is a singleton dimension */
-	  j-=1;
-	  /* ok then we create a dummy axis that we will add at the end of the axes */
-	  if (cmor_tables[CMOR_TABLE].axes[refvar.dimensions[i]].bounds_value[0]!=1.e20) {
-	    ierr = cmor_axis(&k,cmor_tables[CMOR_TABLE].axes[refvar.dimensions[i]].id,cmor_tables[CMOR_TABLE].axes[refvar.dimensions[i]].units,1,&cmor_tables[CMOR_TABLE].axes[refvar.dimensions[i]].value,'d',&cmor_tables[CMOR_TABLE].axes[refvar.dimensions[i]].bounds_value[0],2,"");
-	  }
-	  else {
-	    ierr = cmor_axis(&k,cmor_tables[CMOR_TABLE].axes[refvar.dimensions[i]].id,cmor_tables[CMOR_TABLE].axes[refvar.dimensions[i]].units,1,&cmor_tables[CMOR_TABLE].axes[refvar.dimensions[i]].value,'d',NULL,0,"");
-	  }
-	  laxes_ids[ndims+lndims]=k;
-	  lndims+=1;
-	}
-      }
-    }
-    if (j!=0) {
-      snprintf(msg,CMOR_MAX_STRING,"You are defining variable '%s' with %i dimensions, when it should have %i",name,ndims,refvar.ndims);
-      cmor_handle_error(msg,CMOR_CRITICAL);
-      cmor_pop_traceback();
-      return 1;
-    }
-    else {
-      lndims += ndims;
-    }
-  }
-  /* At that point we need to check that the dims we passed match what's in the refvar */
-  k=-1;
-  for (i=0;i<lndims;i++) {
-    for (j=0;j<refvar.ndims;j++) {
-      if ((strcmp(cmor_tables[cmor_axes[laxes_ids[i]].ref_table_id].axes[cmor_axes[laxes_ids[i]].ref_axis_id].id,cmor_tables[CMOR_TABLE].axes[refvar.dimensions[j]].id)==0) ||((cmor_tables[cmor_axes[laxes_ids[i]].ref_table_id].axes[cmor_axes[laxes_ids[i]].ref_axis_id].axis=='Z') && (refvar.dimensions[j]==-2))){ 
-/* || ((cmor_tables[cmor_axes[laxes_ids[i]].ref_table_id].axes[cmor_axes[laxes_ids[i]].ref_axis_id].axis==cmor_tables[CMOR_TABLE].axes[refvar.dimensions[j]].axis) && cmor_tables[cmor_axes[laxes_ids[i]].ref_table_id].axes[cmor_axes[laxes_ids[i]].ref_axis_id].axis!='\0'))  { */
-	k++;
-      }
-    }
-    if (k!=i) {
-      /* ok we didn't find it, but there is still a slight chance it is a grid axis! */
-      for (j=0;j<cmor_grids[grid_id].ndims;j++) {
-	if (laxes_ids[i]==cmor_grids[grid_id].original_axes_ids[j]) k++;
-      }
-    }
-    if (k!=i) {
-      snprintf(msg,CMOR_MAX_STRING,"You defined variable '%s' with axis id '%s' which is not part of this variable according to your table, it says: ( ",refvar.id,cmor_tables[cmor_axes[laxes_ids[i]].ref_table_id].axes[cmor_axes[laxes_ids[i]].ref_axis_id].id);
-      for (i=0;i<refvar.ndims;i++) {
-	strcat(msg,cmor_tables[CMOR_TABLE].axes[refvar.dimensions[i]].id);
-	strcat(msg," ");
-      }
-      strcat(msg,")");
-      cmor_handle_error(msg,CMOR_CRITICAL);
-    }
-  }
-  k=0;
-  /* ok now loop thru axes */    
-/*   printf("lndims is: %i\n",lndims); */
-  for (i=0;i<lndims;i++) { 
-    if (laxes_ids[i]>cmor_naxes) {
-      snprintf(msg,CMOR_MAX_STRING,"Axis %i not defined",axes_ids[i]);
-      cmor_handle_error(msg,CMOR_CRITICAL);
-      cmor_pop_traceback();
-      return 1;
-    }
-    if (cmor_axes[laxes_ids[i]].ref_table_id!=CMOR_TABLE && cmor_axes[laxes_ids[i]].isgridaxis!=1) {
-      snprintf(msg,CMOR_MAX_STRING,"You are passing axis %i (named %s) which has been defined using table %i (%s) but the current table is %i (%s) (and isgridaxis says: %i)",laxes_ids[i],cmor_axes[laxes_ids[i]].id,cmor_axes[laxes_ids[i]].ref_table_id,cmor_tables[cmor_axes[laxes_ids[i]].ref_table_id].table_id,CMOR_TABLE,cmor_tables[CMOR_TABLE].table_id,cmor_axes[laxes_ids[i]].isgridaxis);
-      cmor_handle_error(msg,CMOR_CRITICAL);
-    }
-    if (cmor_tables[cmor_axes[laxes_ids[i]].ref_table_id].axes[cmor_axes[laxes_ids[i]].ref_axis_id].value != 1.e20) {
-      /*singleton dim */
-      snprintf(msg,CMOR_MAX_STRING,"Treated scalar dimension: '%s'",cmor_axes[laxes_ids[i]].id);
-      cmor_update_history(vrid,msg);
-      cmor_vars[vrid].singleton_ids[i-k]=laxes_ids[i];
-      if (cmor_has_variable_attribute(vrid,"coordinates")==0) {
-	cmor_get_variable_attribute(vrid,"coordinates",&msg[0]);
-      }
-      else {
-	strncpy(msg,"",CMOR_MAX_STRING);
-      }
-      if (cmor_tables[cmor_axes[laxes_ids[i]].ref_table_id].axes[cmor_axes[laxes_ids[i]].ref_axis_id].out_name[0]=='\0') {
-	snprintf(ctmp,CMOR_MAX_STRING,"%s %s",msg,cmor_tables[cmor_axes[laxes_ids[i]].ref_table_id].axes[cmor_axes[laxes_ids[i]].ref_axis_id].id);
-      }
-      else {
-	snprintf(ctmp,CMOR_MAX_STRING,"%s %s",msg,cmor_tables[cmor_axes[laxes_ids[i]].ref_table_id].axes[cmor_axes[laxes_ids[i]].ref_axis_id].out_name);
-      }
-      cmor_set_variable_attribute(vrid,"coordinates",'c',&ctmp[0]);
-    }
-    else {
-      cmor_vars[vrid].original_order[k]=laxes_ids[i];
-      k++;
-    }
-  }
-  /* Now figures out the real order... */
-  k=0;
-
-
-  for (i=0;i<lndims;i++) { 
-    if (((strcmp(cmor_tables[refvar.table_id].axes[refvar.dimensions[i]].id,"latitude")==0) ||
-	 (strcmp(cmor_tables[refvar.table_id].axes[refvar.dimensions[i]].id,"longitude")==0) ) &&
-	(grid_id!=1000) ) {
-      /* ok we are  dealing with a "grid" type of data */
-      if (did_grid_reorder !=0 ) continue;
-      for (j=0;j<cmor_grids[grid_id].ndims;j++) {
-	cmor_vars[vrid].axes_ids[k]=cmor_grids[grid_id].axes_ids[j];
-	k++;
-      }
-      did_grid_reorder = 1;
-    }
-    else if ((refvar.dimensions[i]==-2) || (cmor_tables[CMOR_TABLE].axes[refvar.dimensions[i]].value == 1.e20)) { /* not a singleton dim */
-      iref=-1;
-      for (j=0;j<lndims;j++) {
-	if (refvar.dimensions[i]==cmor_axes[laxes_ids[j]].ref_axis_id) {
-	  cmor_vars[vrid].axes_ids[k]=laxes_ids[j];
-	}
-	/* -2 means it is a zaxis */
-	if (refvar.dimensions[i]==-2) {
-	  /* printf("i: %i, j: %i, axid: %i, laxesid: %i, axes_ids: %i\n",i,j,cmor_vars[vrid].axes_ids[i],laxes_ids[j],axes_ids[j]); */
-	  if (cmor_axes[laxes_ids[j]].axis=='Z') cmor_vars[vrid].axes_ids[i]=laxes_ids[j];
-	}
-      }
-      k++;
-    }
-    else if (refvar.dimensions[i]==-10) {
-      /* ok this is either a lat/lon */
-      for(j=0;j<ndims;j++) if (axes_ids[j]<-9) break;
-      l=j;
-      for (j=0;j<cmor_grids[grid_id].ndims;j++) {
-	cmor_vars[vrid].axes_ids[k]=cmor_grids[grid_id].axes_ids[j];
-	k++;
-	i++;
-      }
-      i--; /* one too many i adds */
-    }
-  }
-
-  cmor_vars[vrid].ndims=k;
-  cmor_vars[vrid].itype=type;
-  k=0;
-
-  for (i=0;i<cmor_vars[vrid].ndims;i++) if (cmor_vars[vrid].original_order[i]!=cmor_vars[vrid].axes_ids[i]) k=-1;
-  if (k==-1) {
-    /* printf("reordered: "); */
-    strncpy(msg,"Reordered dimensions, original order:",CMOR_MAX_STRING);
-    for (i=0;i<cmor_vars[vrid].ndims;i++) {
-      snprintf(ctmp,CMOR_MAX_STRING," %s",cmor_axes[cmor_vars[vrid].original_order[i]].id);
-      /* printf(" %s",cmor_axes[cmor_vars[vrid].original_order[i]].id); */
-      strncat(msg,ctmp,CMOR_MAX_STRING-strlen(ctmp));
-    }
-    /* printf("\n"); */
-    cmor_update_history(vrid,msg);
-  }
-/*   printf("Original/Final order: "); */
-/*   for (i=0;i<cmor_vars[vrid].ndims;i++) { */
-/*     printf(" %s/%s",cmor_axes[cmor_vars[vrid].original_order[i]].id,cmor_axes[cmor_vars[vrid].axes_ids[i]].id); */
-/*   } */
-/*   printf("\n"); */
-  if (refvar.type=='\0') cmor_vars[vrid].type='f';
-  else cmor_vars[vrid].type=refvar.type;
-  if (missing != NULL) {
-    cmor_vars[vrid].nomissing = 0;/*printf("ok missing was not NULL pointer\n");}*/
-    if (type=='i') cmor_vars[vrid].missing = (double)*(int *)missing;
-    if (type=='l') cmor_vars[vrid].missing = (double)*(long *)missing;
-    if (type=='f') cmor_vars[vrid].missing = (double)*(float *)missing;
-    if (type=='d') cmor_vars[vrid].missing = (double)*(double *)missing;
-    if (cmor_vars[vrid].missing!=cmor_vars[vrid].omissing) {
-      snprintf(msg,CMOR_MAX_STRING,"replaced missing value flag (%g) with standard missing value (%g)",cmor_vars[vrid].missing,cmor_vars[vrid].omissing);
-      cmor_update_history(vrid,msg);
-    }
-    if (refvar.type=='d') {
-      cmor_set_variable_attribute(vrid,"missing_value",'d',&cmor_vars[vrid].omissing);
-      cmor_set_variable_attribute(vrid,"_FillValue",'d',&cmor_vars[vrid].omissing);
-    }
-    else if (refvar.type=='f') {
-      afloat = (float)cmor_vars[vrid].omissing;
-      cmor_set_variable_attribute(vrid,"missing_value",'f',&afloat);
-      cmor_set_variable_attribute(vrid,"_FillValue",'f',&afloat);
-    }
-    else if (refvar.type=='l') {
-      along = (long)cmor_vars[vrid].omissing;
-      cmor_set_variable_attribute(vrid,"missing_value",'l',&along);
-      cmor_set_variable_attribute(vrid,"_FillValue",'l',&along);
-    }
-    else if (refvar.type=='i') {
-      aint = (int)cmor_vars[vrid].omissing;
-      cmor_set_variable_attribute(vrid,"missing_value",'i',&aint);
-      cmor_set_variable_attribute(vrid,"_FillValue",'i',&aint);
-    }
-  }
-
-  /*printf("assiging %i to na\n",vrid);*/
-  cmor_vars[vrid].tolerance = 1.e-4;
-  cmor_vars[vrid].self=vrid;
-  if (tolerance!=NULL) cmor_vars[vrid].tolerance = (double)*(double *)tolerance;
-  *var_id=vrid;
-  cmor_pop_traceback();
-  return 0;
-};
-
-void cmor_init_var_def(cmor_var_def_t *var, int table_id)
-{
-  int n;
-  cmor_is_setup();
-  var->table_id=table_id;
-  var->standard_name[0]='\0';
-  var->units[0]='\0';
-  var->cell_methods[0]='\0';
-  var->cell_measures[0]='\0';
-  var->positive='\0';
-  var->long_name[0]='\0';
-  var->comment[0]='\0';
-  var->realm[0]='\0';
-  var->frequency[0]='\0';
-  var->out_name[0]='\0';
-  var->ndims=0;
-  var->flag_values[0]='\0';
-  var->flag_meanings[0]='\0';
-  for(n=0;n<CMOR_MAX_DIMENSIONS;n++) var->dimensions[n]=-1;
-  var->type='f';
-  var->valid_min=1.e20; /* means no check */
-  var->valid_max=1.e20;
-  var->ok_min_mean_abs=1.e20;
-  var->ok_max_mean_abs=1.e20;
-  var->shuffle=0;
-  var->deflate=1;
-  var->deflate_level=1;
-}
-
-int cmor_set_var_def_att(cmor_var_def_t *var,char att[CMOR_MAX_STRING],char val[CMOR_MAX_STRING] ){
-  int i,n,j,n0;
-  char dim[CMOR_MAX_STRING];
-  char msg[CMOR_MAX_STRING];
-
-  cmor_add_traceback("cmor_set_var_def_att");
-  cmor_is_setup();
-  if (strcmp(att,"required")==0) {
-    strncpy(var->required,val,CMOR_MAX_STRING);
-  }
-  else if (strcmp(att,"id")==0) {
-    strncpy(var->id,val,CMOR_MAX_STRING);
-  }
-  else if (strcmp(att,"standard_name")==0) {
-    strncpy(var->standard_name,val,CMOR_MAX_STRING);
-  }
-  else if (strcmp(att,"long_name")==0) {
-    strncpy(var->long_name,val,CMOR_MAX_STRING);
-  }
-  else if (strcmp(att,"comment")==0) {
-    strncpy(var->comment,val,CMOR_MAX_STRING);
-  }
-  else if (strcmp(att,"dimensions")==0) {
-    n0=strlen(val);
-    for (i=0;i<n0;i++) {
-      j=0;
-      while((i<n0)&&((val[i]!=' ')&&val[i]!='\0')) { dim[j]=val[i] ; j++ ; i++ ;}
-      dim[j]='\0';
-      if (var->ndims > CMOR_MAX_DIMENSIONS) {
-	snprintf(msg,CMOR_MAX_STRING,"Too many dimensions (%i) defined for variable (%s), max is: %i",var->ndims,var->id,CMOR_MAX_DIMENSIONS);
-	cmor_handle_error(msg,CMOR_CRITICAL);
-      }
-      /* check that the dimension as been defined in the table */
-      n=-1; /* not found yet */
-      for (j=0;j<=cmor_tables[var->table_id].naxes;j++) {
-	if (strcmp(dim,cmor_tables[var->table_id].axes[j].id)==0) {n=j;break;}
-      }
-      if (n==-1) {
-	if ((strcmp("zlevel",dim)==0)||(strcmp("olevel",dim)==0)||(strcmp("alevel",dim)==0)) {
-	  /* printf("ignoring zlevel for now\n");*/
-	  var->dimensions[var->ndims]=-2;
-	}
-	else {
-	  if ((strcmp(dim,"longitude")!=0) && strcmp(dim,"latitude")!=0) { /* do not raise a warning if the axis is "longitude" / "latitude" it is probably a grid variable */
-	  snprintf(msg,CMOR_MAX_STRING,"Reading table: axis name: '%s' for variable: '%s' is not defined in table. Table defines dimensions: '%s' for this variable",dim,var->id,val);cmor_handle_error(msg,CMOR_CRITICAL);
-	  }
-	  else {
-	    var->dimensions[var->ndims]=-10;
-	  }
-	}
-      }
-      else {
-	var->dimensions[var->ndims]=n;
-      }
-      var->ndims++;
-    }
-    /* revert to put in C order */
-    for (i=0;i<var->ndims/2;i++) {
-      n=var->dimensions[i];
-      var->dimensions[i]=var->dimensions[var->ndims-1-i];
-      var->dimensions[var->ndims-1-i]=n;
-    }
-    /*for (i=0;i<var->ndims;i++) printf("%s dimension %i: %s\n",var->id,i,cmor_tables[var->table_id].axes[var->dimensions[i]].id);*/
-  }
-  else if (strcmp(att,"units")==0) {
-    strncpy(var->units,val,CMOR_MAX_STRING);
-  }
-  else if (strcmp(att,"cell_methods")==0) {
-    strncpy(var->cell_methods,val,CMOR_MAX_STRING);
-  }
-  else if (strcmp(att,"cell_measures")==0) {
-    strncpy(var->cell_measures,val,CMOR_MAX_STRING);
-  }
-  else if (strcmp(att,"positive")==0) {
-    var->positive=val[0];
-  }
-  else if (strcmp(att,"type")==0) {
-    if (strcmp(val,"real")==0) var->type='f';
-    else if (strcmp(val,"double")==0) var->type='d';
-    else if (strcmp(val,"integer")==0) var->type='i';
-    else if (strcmp(val,"long")==0) var->type='l';
-  }
-  else if (strcmp(att,"valid_min")==0) {
-    var->valid_min = atof(val);
-  }
-  else if (strcmp(att,"valid_max")==0) {
-    var->valid_max = atof(val);
-  }
-  else if (strcmp(att,"ok_min_mean_abs")==0) {
-    var->ok_min_mean_abs=atof(val);
-  }
-  else if (strcmp(att,"ok_max_mean_abs")==0) {
-    var->ok_max_mean_abs = atof(val);
-  }
-  else if (strcmp(att,"shuffle")==0) {
-    var->shuffle = atoi(val);
-    if (atoi(val)!=0) {
-      if (USE_NETCDF_4 == 0) {
-	sprintf(msg,"Reading a table that calls for NetCDF4 features, you are using NetCDF3 library");
-	cmor_handle_error(msg,CMOR_WARNING);
-      }
-      else if ( (CMOR_NETCDF_MODE == CMOR_APPEND_3) ||
-		(CMOR_NETCDF_MODE == CMOR_REPLACE_3) ||
-		(CMOR_NETCDF_MODE == CMOR_PRESERVE_3)) {
-	sprintf(msg,"Reading a table that calls for NetCDF4 features, you asked for NetCDF3 features");
-	cmor_handle_error(msg,CMOR_WARNING);
-      }
-    }
-  }
-  else if (strcmp(att,"deflate")==0) {
-    var->deflate = atoi(val);
-    if (atoi(val)!=0) {
-      if (USE_NETCDF_4 == 0) {
-	sprintf(msg,"Reading a table that calls for NetCDF4 features, you are using NetCDF3 library");
-	cmor_handle_error(msg,CMOR_WARNING);
-      }
-      else if ( (CMOR_NETCDF_MODE == CMOR_APPEND_3) ||
-		(CMOR_NETCDF_MODE == CMOR_REPLACE_3) ||
-		(CMOR_NETCDF_MODE == CMOR_PRESERVE_3)) {
-	sprintf(msg,"Reading a table that calls for NetCDF4 features, you asked for NetCDF3 features");
-	cmor_handle_error(msg,CMOR_WARNING);
-      }
-    }
-  }
-  else if (strcmp(att,"deflate_level")==0) {
-    var->deflate_level = atoi(val);
-  }
-  else if (strcmp(att,"modeling_realm")==0) {
-    strncpy(var->realm,val,CMOR_MAX_STRING);
-  }
-  else if (strcmp(att,"frequency")==0) {
-    strncpy(var->frequency,val,CMOR_MAX_STRING);
-  }
-  else if (strcmp(att,"flag_values")==0) {
-    strncpy(var->flag_values,val,CMOR_MAX_STRING);
-  }
-  else if (strcmp(att,"flag_meanings")==0) {
-    strncpy(var->flag_meanings,val,CMOR_MAX_STRING);
-  }
-  else if (strcmp(att,"out_name")==0) {
-    strncpy(var->out_name,val,CMOR_MAX_STRING);
-  }
-  else {
-    snprintf(msg,CMOR_MAX_STRING,"unknown variable attribute: >>>>%s<<<< value: (%s)",att,val);
-    cmor_handle_error(msg,CMOR_WARNING);
-  }
-  cmor_pop_traceback();
-  return 0;
-}
-
-int cmor_get_variable_time_length(int *var_id, int *length) {
-  cmor_var_t avar;
-  int i;
-
-  *length=0;
-  avar = cmor_vars[*var_id];
-  for (i=0;i<avar.ndims;i++) {
-    if (cmor_axes[avar.original_order[i]].axis=='T') *length=cmor_axes[avar.original_order[i]].length;
-  }
-
-/*   if (*length == -1) { */
-/*     snprintf(msg,CMOR_MAX_STRING,"trying to retrieve length of time axis for variable %s but this variable does not have a time axis",avar.id); */
-/*     cmor_handle_error(msg,CMOR_CRITICAL); */
-/*   } */
-  return 0;
-}
-    
-
-int cmor_get_original_shape(int *var_id, int *shape_array, int *rank, int blank_time) {
-  int i;
-  cmor_var_t avar;
-  char msg[CMOR_MAX_STRING];
-  cmor_add_traceback("cmor_get_original_shape");
-  avar = cmor_vars[*var_id];
-  for(i=0;i<*rank;i++) shape_array[i]=-1; /* init array */
-
-  if (*rank<avar.ndims) {
-	  snprintf(msg,CMOR_MAX_STRING,"trying to retrieve shape of variable %s into a %id array but this variable is %id",avar.id,*rank,avar.ndims);
-	  cmor_handle_error(msg,CMOR_CRITICAL);
-  }
-  for (i=0;i<avar.ndims;i++) {
-    if ((blank_time==1) && (cmor_axes[avar.original_order[i]].axis=='T')) {
-      shape_array[i]=0;
-    }
-    else {
-      shape_array[i]=cmor_axes[avar.original_order[i]].length;
-    }
-  }
-  
-  /*   for(i=0;i<avar.ndims;i++) printf("var order: %i, %i\n",i,cmor_axes[avar.original_order[i]].length); */
-  /*   for(i=0;i<*rank;i++) printf("returning: %i, %i\n",i,shape_array[i]); */
-  cmor_pop_traceback();
-  return 0;
-}
-
-int cmor_write_var_to_file(int ncid,cmor_var_t *avar,void *data,char itype, int ntimes_passed, double *time_vals, double *time_bounds){
-  size_t counts[CMOR_MAX_DIMENSIONS];
-  size_t counts2[CMOR_MAX_DIMENSIONS];
-  int counter[CMOR_MAX_DIMENSIONS];
-  int counter_orig[CMOR_MAX_DIMENSIONS];
-  int counter_orig2[CMOR_MAX_DIMENSIONS];
-  int counter2[CMOR_MAX_DIMENSIONS];
-  size_t starts[CMOR_MAX_DIMENSIONS];
-  int nelements,loc,add,nelts;
-  double *data_tmp=NULL, tmp=0., tmp2,amean;
-  int *idata_tmp=NULL;
-  long *ldata_tmp=NULL;
-  float *fdata_tmp=NULL;
-  char mtype;
-  int i,j,ierr=0,dounits=1;
-  char msg[CMOR_MAX_STRING];
-  char msg2[CMOR_MAX_STRING];
-  double *tmp_vals;
-  ut_unit *user_units=NULL, *cmor_units=NULL;
-  cv_converter *ut_cmor_converter=NULL;
-  char local_unit[CMOR_MAX_STRING];
-  int n_lower_min=0,n_greater_max=0;
-  char msg_min[CMOR_MAX_STRING];
-  char msg_max[CMOR_MAX_STRING];
-  extern ut_system *ut_read;  
-
-  cmor_add_traceback("cmor_write_var_to_file");
-  cmor_is_setup();
-
-/*   type = avar->itype; /\* stores input type for variable *\/ */
-
-  if (strcmp(avar->ounits,avar->iunits)==0) dounits=0;
-  mtype = avar->type;
-  /* This counts how many elements there is in each dimension and the total number of elements written at this time */
-  /* This needs to be passed to NetCDF */
-  /* do we have times ? */
-  if (ntimes_passed!=0) {
-    counts[0]=ntimes_passed;
-    if (cmor_axes[avar->axes_ids[0]].axis!='T') {     
-      snprintf(msg,CMOR_MAX_STRING,"you are passing %i time steps for a static variable (no time dimension), please pass 0 (zero) as the number of times", ntimes_passed);
-      cmor_handle_error(msg,CMOR_CRITICAL);
-    }
-  }
-  else {
-    /* need to determine if it is a static variable */
-    if (avar->ndims>0) counts[0] = cmor_axes[avar->axes_ids[0]].length;
-    else counts[0]=1;
-  }
-  nelements = counts[0];
-  for (i=1;i<avar->ndims;i++) {
-    counts[i]=cmor_axes[avar->axes_ids[i]].length;
-    nelements = nelements*counts[i];
-  }
-  if (avar->isbounds==1) nelements*=2;
-/*   printf("we detected: %i elts over %i dims\n",nelements,avar->ndims); */
-  /* This section counts how many elements are needed before you increase the index in each dimension */
-  counter[avar->ndims]=1; /* dummy */
-  counter_orig[avar->ndims]=1; /*dummy */
-  for (i=avar->ndims-1;i>=0;i--) {
-    /* we need to do this for the order in which we will write and the order the user defined its variable */
-    if (cmor_axes[avar->axes_ids[i]].axis!='T') counter[i]=cmor_axes[avar->axes_ids[i]].length*counter[i+1];
-    else counter[i]=counts[0]*counter[i+1];
-    if (cmor_axes[avar->original_order[i]].axis!='T') counter_orig[i]=cmor_axes[avar->original_order[i]].length*counter_orig[i+1];
-    else counter_orig[i]=counts[0]*counter_orig[i+1];
-  }
-  /* Now we need to map, i.e going ahead by 2 eleemnts of final array eq going ahaead of n elements originally */
-  for (i=0;i<avar->ndims;i++) {
-    for (j=0;j<avar->ndims;j++) {
-      if (avar->axes_ids[i]==avar->original_order[j]) counter_orig2[i]=counter_orig[j+1];
-    }
-  }
-/*   for (i=0;i<avar->ndims;i++) {printf("i: %d, id: %s, length: %d, counter: %d, counter_orig: %d, counter_orig2: %d\n",i,cmor_axes[avar->axes_ids[i]].id,cmor_axes[avar->axes_ids[i]].length,counter[i],counter_orig[i],counter_orig2[i]);} */
-
-
-  /* Allocates the memory to store data to be written after reordering and scaling/offsetting */
-  /* needs to figure out if we need to touch the variable... */
-  if (mtype=='i') {
-    idata_tmp = malloc(sizeof(int)*nelements);
-    if (idata_tmp == NULL )  {
-	snprintf(msg,CMOR_MAX_STRING,"cmor_write_var_to_file: cannot allocate memory for %i int tmp elts var '%s'",nelements,avar->id);
-	cmor_handle_error(msg,CMOR_CRITICAL);
-      }
-  }
-  else if (mtype=='l') {
-    ldata_tmp = malloc(sizeof(long)*nelements);
-    if (ldata_tmp == NULL)   {
-	snprintf(msg,CMOR_MAX_STRING,"cmor_write_var_to_file: cannot allocate memory for %i long tmp elts var '%s'",nelements,avar->id);
-	cmor_handle_error(msg,CMOR_CRITICAL);
-      }
-  }
-  else if (mtype=='d') {
-   data_tmp = malloc(sizeof(double)*nelements);
-    if (data_tmp == NULL)   {
-	snprintf(msg,CMOR_MAX_STRING,"cmor_write_var_to_file: cannot allocate memory for %i double tmp elts var '%s'",nelements,avar->id);
-	cmor_handle_error(msg,CMOR_CRITICAL);
-      }
-  }
-  else {
-    fdata_tmp = malloc(sizeof(float)*nelements);
-    if (fdata_tmp == NULL)   {
-	snprintf(msg,CMOR_MAX_STRING,"cmor_write_var_to_file: cannot allocate memory for %i float tmp elts var '%s'",nelements,avar->id);
-	cmor_handle_error(msg,CMOR_CRITICAL);
-      }
-  }
-
-  /* Reorder data, applies scaling, etc... */
-  if (dounits==1) {
-    strncpy(local_unit,avar->ounits,CMOR_MAX_STRING);
-    ut_trim(local_unit,UT_ASCII);
-    cmor_units = ut_parse(ut_read, local_unit,UT_ASCII);
-    if (ut_get_status() != UT_SUCCESS ) {
-      snprintf(msg,CMOR_MAX_STRING,"in udunits analyzing units from cmor table (%s)",local_unit );
-      cmor_handle_error(msg,CMOR_CRITICAL);
-      cmor_pop_traceback();
-      return 1;
-    }
-    strncpy(local_unit,avar->iunits,CMOR_MAX_STRING);
-    ut_trim(local_unit,UT_ASCII);
-    user_units = ut_parse(ut_read, local_unit, UT_ASCII);
-    if (ut_get_status() != UT_SUCCESS ) {
-      snprintf(msg,CMOR_MAX_STRING," in udunits analyzing units from user (%s)",local_unit);
-      cmor_handle_error(msg,CMOR_CRITICAL);
-      cmor_pop_traceback();
-      return 1;
-    }
-    if (ut_are_convertible(cmor_units,user_units)==0 ) {
-      snprintf(msg,CMOR_MAX_STRING,"variable: %s, cmor and user units are incompatible: %s and %s",avar->id,avar->ounits,avar->iunits);
-      cmor_handle_error(msg,CMOR_CRITICAL);
-      cmor_pop_traceback();
-      return 1;
-    }
-    ut_cmor_converter=ut_get_converter(user_units,cmor_units);
-    if (ut_get_status() != UT_SUCCESS ) {
-      snprintf(msg,CMOR_MAX_STRING," in udunits, getting converter");
-      cmor_handle_error(msg,CMOR_CRITICAL);
-      cmor_pop_traceback();
-      return 1;
-    }
-  }
-  amean = 0.;
-  nelts = 0;
-  for (i=0;i<nelements;i++) {
-    loc = i;
-/*     printf("i: %i (",i); */
-    /* first figures out the coeff in final order */
-    /* puts the result in counter2 */
-    for (j=0;j<avar->ndims;j++) {
-      counter2[j] = (int)loc/(int)counter[j+1];
-      /* this is the reverse part */
-      /* doing it this way to avoid if test */
-      loc = loc - counter2[j]*counter[j+1];
-/*       printf(" %i: %i,",j,counter2[j]); */
-    }
-/*     printf(")\n"); */
-    /* now figures out what these indices meant in the original order */
-    loc = 0;
-    for (j=0;j<avar->ndims;j++) {
-      /* revert and offsetting done automatically */
-      /* next 2 commented out lines are for no reverse no modulo */
-/*       add = counter2[j]; */
-/*       loc = loc + add*counter_orig2[j]; */
-      if (cmor_axes[avar->axes_ids[j]].axis!='T') {
-/* 	printf("J: %i, counter2[j]: %i, counter_orig2[j]: %i , avar->axes_ids[j]: %i, id: %s, revert: %i, len: %i\n",j,counter2[j],counter_orig2[j],avar->axes_ids[j],cmor_axes[avar->axes_ids[j]].id,cmor_axes[avar->axes_ids[j]].revert,cmor_axes[avar->axes_ids[j]].length); */
-	add = counter2[j]*cmor_axes[avar->axes_ids[j]].revert + (cmor_axes[avar->axes_ids[j]].length-1)*(1-cmor_axes[avar->axes_ids[j]].revert)/2;
-	loc = loc + (int)fmod(add+cmor_axes[avar->axes_ids[j]].offset,cmor_axes[avar->axes_ids[j]].length)*counter_orig2[j];
-      }
-      else {
-/* 	printf("time one\n"); */
-/* 	printf("J: %i, counter2[j]: %i, counter_orig2[j]: %i , avar->axes_ids[j]: %i, id: %s, revert: %i, len: %i\n",j,counter2[j],counter_orig2[j],avar->axes_ids[j],cmor_axes[avar->axes_ids[j]].id,cmor_axes[avar->axes_ids[j]].revert,counts[0]); */
-	add = counter2[j]*cmor_axes[avar->axes_ids[j]].revert + (counts[0]-1)*(1-cmor_axes[avar->axes_ids[j]].revert)/2;
-	loc = loc + (int)fmod(add+cmor_axes[avar->axes_ids[j]].offset,counts[0])*counter_orig2[j];
-      }
-/*       printf("add,loc are: %i, %i\n",add,loc); */
-    }
-
-    /* Copy from user's data into our data */
-/*     printf("i,loc: %d, %d\n",i,loc); */
-
-    if (itype=='d') tmp = (double)((double *)data)[loc];
-    else if (itype=='f') tmp = (double)((float *)data)[loc];
-    else if (itype=='i') tmp = (double)((int *)data)[loc];
-    else if (itype=='l') tmp = (double)((long *)data)[loc];
-    if (avar->isbounds) {
-      /* ok here's the code for filipping the code if necessary */
-      if (cmor_axes[avar->axes_ids[0]].revert==-1) {
-	loc = nelements - i -1;
-      }
-      else {
-	loc=i;
-      }
-      tmp = (double)((double *)data)[loc];
-    }
-/*     printf("data read as: i: %lf\n",(double)((int *)data)[loc]); */
-/*     printf("data read as: l: %lf\n",(double)((long *)data)[loc]); */
-/*     printf("data read as: f: %lf\n",(double)((float *)data)[loc]); */
-/*     printf("data read as: d: %lf\n",(double)((double *)data)[loc]); */
-/*     printf("type is: %c, tmp is: %lf\n",itype,tmp); */
-/*     printf("missing is: %lf\n",avar->missing); */
-    tmp2 = (double)fabs(tmp-avar->missing);
-    if ((avar->nomissing==0) && (tmp2<=avar->tolerance*(double)fabs(tmp))) {
-      tmp = avar->omissing;
-    }
-    else {
-      if (dounits==1) {
-	tmp = cv_convert_double(ut_cmor_converter,tmp);
-	if (ut_get_status() != UT_SUCCESS ) {
-	  snprintf(msg,CMOR_MAX_STRING," in udunits, converting values");
-	  cmor_handle_error(msg,CMOR_CRITICAL);
-	  cmor_pop_traceback();
-	  return 1;
-	}
-      }
-      tmp = tmp*avar->sign; /* do we need to change the sign ? */
-      amean += fabs(tmp);
-      nelts+=1;
-      if ((avar->valid_min!=(float)1.e20) && (tmp<avar->valid_min)) {
-	n_lower_min+=1;
-	if (n_lower_min==1) { /*first time */
-	  snprintf(msg_min,CMOR_MAX_STRING, "Invalid value(s) detected for variable '%s': %%i values were lower than minimum valid value (%.4g). First encountered bad value (%.5g) was at indices:" , avar->id, avar->valid_min,tmp);
-	  for (j=0;j<avar->ndims;j++) {
-	    snprintf(msg2, CMOR_MAX_STRING, " %s: %i" , cmor_axes[avar->axes_ids[j]].id,counter2[j]);
-	    strncat(msg_min,msg2,CMOR_MAX_STRING-strlen(msg));
-	  }
-	}
-      }
-      if ((avar->valid_max!=(float)1.e20) && (tmp>avar->valid_max)) {
-	n_greater_max+=1;
-	if (n_greater_max==1) {
-	  snprintf(msg_max,CMOR_MAX_STRING, "Invalid value(s) detected for variable '%s': %%i values were greater than maximum valid value (%.4g). First encountered bad value (%.5g) is at indices:" , avar->id, avar->valid_max,tmp);
-	  for (j=0;j<avar->ndims;j++) {
-	    snprintf(msg2, CMOR_MAX_STRING, " %s: %i" , cmor_axes[avar->axes_ids[j]].id,counter2[j]);
-	    strncat(msg_max,msg2,CMOR_MAX_STRING-strlen(msg));
-	  }
-	}
-      }
-    }
-
-    /*printf("mtype: %c\n",mtype);*/
-    if (mtype=='i') idata_tmp[i]=(int)tmp;
-    else if (mtype=='l') ldata_tmp[i]=(long)tmp;
-    else if (mtype=='f') fdata_tmp[i]=(float)tmp;
-    else if (mtype=='d') data_tmp[i]=(double)tmp;
-  }
-  if (n_lower_min!=0) {
-    snprintf(msg,CMOR_MAX_STRING,msg_min,n_lower_min);
-    cmor_handle_error(msg,CMOR_NORMAL);
-  }
-  if (n_greater_max!=0) {
-    snprintf(msg,CMOR_MAX_STRING,msg_max,n_greater_max);
-    cmor_handle_error(msg,CMOR_NORMAL);
-  }
-  if (avar->ok_min_mean_abs!=(float)1.e20) {
-    if (amean/nelts<.1*avar->ok_min_mean_abs) {
-      snprintf(msg,CMOR_MAX_STRING, "Invalid Absolute Mean for variable '%s' (%.5g) is lower by more than an order of magnitude than minimum allowed: %.4g" , avar->id, amean/nelts, avar->ok_min_mean_abs);
-      cmor_handle_error(msg,CMOR_CRITICAL);
-    }
-    if (amean/nelts<avar->ok_min_mean_abs) {
-      snprintf(msg,CMOR_MAX_STRING, "Invalid Absolute Mean for variable '%s' (%.5g) is lower than minimum allowed: %.4g" , avar->id, amean/nelts, avar->ok_min_mean_abs);
-      cmor_handle_error(msg,CMOR_NORMAL);
-    }
-  }
-  if (avar->ok_max_mean_abs!=(float)1.e20) {
-    if  (amean/nelts>10.*avar->ok_max_mean_abs) {
-      snprintf(msg,CMOR_MAX_STRING, "Invalid Absolute Mean for variable '%s' (%.5g) is greater by more than an order of magnitude than maximum allowed: %.4g" , avar->id, amean/nelts, avar->ok_max_mean_abs);
-    cmor_handle_error(msg,CMOR_CRITICAL);
-    }
-    if  (amean/nelts>avar->ok_max_mean_abs) {
-      snprintf(msg,CMOR_MAX_STRING, "Invalid Absolute Mean for variable '%s' (%.5g) is greater than maximum allowed: %.4g" , avar->id, amean/nelts, avar->ok_max_mean_abs);
-    cmor_handle_error(msg,CMOR_NORMAL);
-    }
-  }
-  if (dounits==1) {
-    cv_free(ut_cmor_converter);
-    if (ut_get_status() != UT_SUCCESS) {
-      snprintf(msg,CMOR_MAX_STRING,"Udunits: Error freeing converter");
-      cmor_handle_error(msg,CMOR_CRITICAL);
-    }
-    
-    ut_free(cmor_units);
-    if (ut_get_status() != UT_SUCCESS) {
-      snprintf(msg,CMOR_MAX_STRING,"Udunits: Error freeing units");
-      cmor_handle_error(msg,CMOR_CRITICAL);
-    }
-    ut_free(user_units);
-    if (ut_get_status() != UT_SUCCESS) {
-      snprintf(msg,CMOR_MAX_STRING,"Udunits: Error freeing units");
-      cmor_handle_error(msg,CMOR_CRITICAL);
-    }
-  }
-  /* Initialize the start index in each dimensions */
-  for (i=0;i<avar->ndims;i++) starts[i]=0;
-  starts[0]=avar->ntimes_written;
-
-  /* Write the times passed by user */
-  if (ntimes_passed!=0){
-    if (time_vals!=NULL) {
-      if (cmor_axes[avar->axes_ids[0]].values!=NULL) {
-	snprintf(msg,CMOR_MAX_STRING,"in cmor_write: variable '%s' you are passing time values but you already defined them via cmor_axis, this is not allowed",avar->id);
-	cmor_handle_error(msg,CMOR_CRITICAL);
-      }
-      
-      if (time_bounds!=NULL) {
-	
-	counts2[0]=counts[0];
-	counts2[1]=2;
-	cmor_get_axis_attribute(avar->axes_ids[0],"units",'c',&msg);
-	cmor_get_cur_dataset_attribute("calendar",msg2);
-	
-	
-	
-	/* 	else { */
-	/* 	  /\* checking manually that time is within bounds *\/ */
-	/* 	  if ((time_vals[0]<time_bounds[0]) || (time_vals[0]>time_bounds[1])) { */
-	/* 	    snprintf(msg,CMOR_MAX_STRING, "Time point: %lf is not within the bounds you passed: [%lf, %lf]\n",time_vals[0],time_bounds[0],time_bounds[1]); */
-	/* 	    cmor_handle_error(msg,CMOR_CRITICAL); */
-	/* 	  } */
-	/* 	} */
-	tmp_vals = malloc(ntimes_passed*2*sizeof(double));
-	if (tmp_vals == NULL) {
-	  snprintf(msg,CMOR_MAX_STRING,"cmor_write: cannot malloc %i tmp bounds time vals for variable '%s'",ntimes_passed*2,avar->id);
-	  cmor_handle_error(msg,CMOR_CRITICAL);
-	}
-	
-	ierr = cmor_convert_time_values(time_vals,'d',ntimes_passed,&tmp_vals[0],cmor_axes[avar->axes_ids[0]].iunits,msg,msg2,msg2);
-	ierr = cmor_check_monotonic(&tmp_vals[0],ntimes_passed,"time",0,avar->axes_ids[0]);
-	
-	ierr = cmor_convert_time_values(time_bounds,'d',ntimes_passed*2,&tmp_vals[0],cmor_axes[avar->axes_ids[0]].iunits,msg,msg2,msg2);
-	ierr = cmor_check_monotonic(&tmp_vals[0],ntimes_passed*2,"time",1,avar->axes_ids[0]);
-	ierr = cmor_check_values_inside_bounds(&time_vals[0],&time_bounds[0], ntimes_passed, "time");
-	ierr = nc_put_vara_double(ncid,avar->time_bnds_nc_id,starts,counts2,tmp_vals);
-	if (ierr != NC_NOERR) {snprintf(msg,CMOR_MAX_STRING,"NetCDF error (%i) writing time bounds for variable '%s', already written in file: %i",ierr,avar->id,avar->ntimes_written);cmor_handle_error(msg,CMOR_CRITICAL);}
-	/* /\* ok first time around the we need to store bounds *\/ */
-	/* if (avar->ntimes_written == 0) { */
-	/*   /\* ok first time we're putting data  in *\/ */
-	/*   avar->first_bound = tmp_vals[0]; */
-	/* } */
-	/* avar->last_bound = tmp_vals[ntimes_passed*2-1]; */
-	
-	
-	/* ok since we have bounds we need to set time in the middle */
-	/* but only do this in case of none climato */
-	if (cmor_tables[cmor_axes[avar->axes_ids[0]].ref_table_id].axes[cmor_axes[avar->axes_ids[0]].ref_axis_id].climatology==0) {
-	  for (i=0;i<ntimes_passed;i++) {
-	    tmp_vals[i]=(tmp_vals[2*i]+tmp_vals[2*i+1])/2.;
-	  }
-	}
-	else { /* we need to put into tmp_vals the right things */
-	  tmp_vals[ntimes_passed-2]=tmp_vals[0] ; /*store for later */
-	  ierr = cmor_convert_time_values(time_vals,'d',ntimes_passed,&tmp_vals[0],cmor_axes[avar->axes_ids[0]].iunits,msg,msg2,msg2);
-	}
-	
-	
-	ierr = nc_put_vara_double(ncid,avar->time_nc_id,starts,counts,&tmp_vals[0]);
-	if (ierr != NC_NOERR) {snprintf(msg,CMOR_MAX_STRING,"NetCDF error (%i) writing time values for variable '%s'",ierr,avar->id);cmor_handle_error(msg,CMOR_CRITICAL);}
-	
-	if (cmor_tables[cmor_axes[avar->axes_ids[0]].ref_table_id].axes[cmor_axes[avar->axes_ids[0]].ref_axis_id].climatology==0) {
-	  /* all good in that case */
-	}
-	else {
-	  tmp_vals[0] = tmp_vals[ntimes_passed*2-2];
-	  tmp_vals[ntimes_passed-1]=tmp_vals[ntimes_passed*2-1];
-	}	/* ok now we need to store first and last stuff */
-	if (avar->ntimes_written == 0) {
-	  /* ok first time we're putting data  in */
-	  avar->first_time = tmp_vals[0];
-	}
-	else {
-	  if (tmp_vals[0]<avar->last_time) {
-	    snprintf(msg,CMOR_MAX_STRING, "Time point: %lf ( %lf in output units) is not monotonic last time was: %lf (in output units)\n",time_vals[0],tmp_vals[0],avar->last_time);
-	    cmor_handle_error(msg,CMOR_CRITICAL);
-	  }
-	}
-	/* 	printf("setting last time to: %lf\n",tmp_vals[ntimes_passed-1]); */
-	avar->last_time = tmp_vals[ntimes_passed-1];
-	
-	free(tmp_vals);
-      }
-      else {
-	/* checks wether you need bounds or not */
-	if (cmor_tables[cmor_axes[avar->axes_ids[0]].ref_table_id].axes[cmor_axes[avar->axes_ids[0]].ref_axis_id].must_have_bounds==1) {
-	  snprintf(msg,CMOR_MAX_STRING,"in cmor_write, time axis must have bounds, please pass them to cmor_write along with time values");
-	  cmor_handle_error(msg,CMOR_CRITICAL);
-	}
-	/* avar->first_bound=1.e20; */
-	/* avar->last_bound=1.e20; */
-	cmor_get_axis_attribute(avar->axes_ids[0],"units",'c',&msg);
-	cmor_get_cur_dataset_attribute("calendar",msg2);
-	tmp_vals = malloc(ntimes_passed*sizeof(double));
-	if (tmp_vals == NULL)  {
-	  snprintf(msg,CMOR_MAX_STRING,"cmor_write: cannot malloc %i  time vals for variable '%s'",ntimes_passed,avar->id);
-	  cmor_handle_error(msg,CMOR_CRITICAL);
-	}
-	ierr = cmor_convert_time_values(time_vals,'d',ntimes_passed,&tmp_vals[0],cmor_axes[avar->axes_ids[0]].iunits,msg,msg2,msg2);
-	ierr = nc_put_vara_double(ncid,avar->time_nc_id,starts,counts,tmp_vals);
-	/* 	printf("setting last time to (4): %lf\n",tmp_vals[ntimes_passed-1]); */
-	if (avar->ntimes_written == 0) {
-	  /* ok first time we're putting data  in */
-	  avar->first_time = tmp_vals[0];
-	}
-	avar->last_time = tmp_vals[ntimes_passed-1];
-	/* 	printf("setting last time to: %f\n",avar->last_time); */
-	free(tmp_vals);
-	if (ierr != NC_NOERR) {snprintf(msg,CMOR_MAX_STRING,"NetCDF error (%i) writing times for variable '%s', already written in file: %i",ierr,avar->id,avar->ntimes_written);cmor_handle_error(msg,CMOR_CRITICAL);}
-      }
-    }
-    else { /* ok we did not pass time values therefore it means they were defined via the axis */
-      if (cmor_axes[avar->axes_ids[0]].values==NULL) {
-	snprintf(msg,CMOR_MAX_STRING,"in cmor_write: variable '%s' you are passing %i times but no values and you did not define them via cmor_axis",avar->id,ntimes_passed);
-	cmor_handle_error(msg,CMOR_CRITICAL);
-      }
-      if (cmor_axes[avar->axes_ids[0]].bounds!=NULL) {
-	/* ok at that stage the recentering must already be done so we just need to write the bounds */
-	counts2[0]=counts[0];
-	counts2[1]=2;
-	ierr = nc_put_vara_double(ncid,avar->time_bnds_nc_id,starts,counts2,&cmor_axes[avar->axes_ids[0]].bounds[starts[0]*2]);
-	if (ierr != NC_NOERR) {snprintf(msg,CMOR_MAX_STRING,"NCError (%i) writting time bounds values for variable '%s'",ierr,avar->id);cmor_handle_error(msg,CMOR_CRITICAL);}
-	/* /\* ok we need to store first and last bounds *\/ */
-	/* if (avar->ntimes_written==0) { */
-	/*   avar->first_bound=cmor_axes[avar->axes_ids[0]].bounds[starts[0]*2]; */
-	/* } */
-	/* avar->last_bound=cmor_axes[avar->axes_ids[0]].bounds[(starts[0]+counts[0])*2]; */
-      }
-      else {
-	/* checks wether you need bounds or not */
-	if (cmor_tables[cmor_axes[avar->axes_ids[0]].ref_table_id].axes[cmor_axes[avar->axes_ids[0]].ref_axis_id].must_have_bounds==1) {
-	  snprintf(msg,CMOR_MAX_STRING,"in cmor_write, time axis must have bounds, you defined it w/o");
-	  cmor_handle_error(msg,CMOR_CRITICAL);
-	}
-	/* avar->first_bound=1.e20; */
-	/* avar->last_bound=1.e20; */
-      }
-      ierr = nc_put_vara_double(ncid,avar->time_nc_id,starts,counts,&cmor_axes[avar->axes_ids[0]].values[starts[0]]);
-      if (ierr != NC_NOERR) {snprintf(msg,CMOR_MAX_STRING,"NCError (%i) writting time values for variable '%s'",ierr,avar->id);cmor_handle_error(msg,CMOR_CRITICAL);}
-      /* ok now we need to stroe first and last stuff */
-      if (avar->ntimes_written==0) {
-	avar->first_time = cmor_axes[avar->axes_ids[0]].values[starts[0]];
-      }
-      /*       printf("setting last time (2) to: %lf\n",cmor_axes[avar->axes_ids[0]].values[starts[0]+counts[0]-1]); */
-      avar->last_time = cmor_axes[avar->axes_ids[0]].values[starts[0]+counts[0]-1];
-    }
-  }
-  else { /* ok we did not pass time values therefore it means they were defined via the axis */
-    ierr = -1;
-    /* look for time dimension */
-    for (i = 0;i<avar->ndims;i++) {
-      if (cmor_axes[avar->axes_ids[0]].axis=='T') {
-	ierr = i;
-	break;
-      }
-    }
-    if (ierr!=-1) {
-      if (cmor_axes[avar->axes_ids[ierr]].values==NULL) {
-	snprintf(msg,CMOR_MAX_STRING,"in cmor_write: variable '%s' you are passing %i times but no values and you did not define them via cmor_axis",avar->id,ntimes_passed);
-	cmor_handle_error(msg,CMOR_CRITICAL);
-      }
-      /* avar->first_bound=1.e20; */
-      /* avar->last_bound=1.e20; */
-      if (cmor_axes[avar->axes_ids[ierr]].bounds!=NULL) {
-	/* ok at that stage the recentering must already be done so we just need to write the bounds */
-	counts2[0]=counts[0];
-	counts2[1]=2;
-	starts[0]=0;
-	starts[1]=0;
-	ierr = nc_put_vara_double(ncid,avar->time_bnds_nc_id,starts,counts2,&cmor_axes[avar->axes_ids[0]].bounds[starts[0]*2]);
-	if (ierr != NC_NOERR) {snprintf(msg,CMOR_MAX_STRING,"NCError (%i) writting time bounds values for variable '%s'",ierr,avar->id);cmor_handle_error(msg,CMOR_CRITICAL);}
-	/* avar->first_bound=cmor_axes[avar->axes_ids[0]].bounds[0]; */
-	/* avar->last_bound=cmor_axes[avar->axes_ids[0]].bounds[counts[0]*2]; */
-      }
-      ierr = nc_put_vara_double(ncid,avar->time_nc_id,starts,counts,&cmor_axes[avar->axes_ids[0]].values[starts[0]]);
-      if (ierr != NC_NOERR) {snprintf(msg,CMOR_MAX_STRING,"NCError (%i) writting time values for variable '%s'",ierr,avar->id);cmor_handle_error(msg,CMOR_CRITICAL);}
-      /* ok now we need to stroe first and last stuff */
-      avar->first_time = cmor_axes[avar->axes_ids[0]].values[0];
-/*       printf("setting last time (3) to: %lf\n",cmor_axes[avar->axes_ids[0]].values[starts[0]+counts[0]-1]); */
-      avar->last_time = cmor_axes[avar->axes_ids[0]].values[starts[0]+counts[0]-1];
-    }
-  }
-  
-  if (avar->isbounds) {counts[avar->ndims]=2;starts[avar->ndims]=0;}
-  /* printf("writing: %s with: \n",avar->id); */
-  /* for (i=0;i<avar->ndims;i++) { */
-  /*   printf("dim: %i, starts: %i, counts: %i\n",i,starts[i],counts[i]); */
-  /* } */
-  if (mtype=='d') ierr = nc_put_vara_double(ncid,avar->nc_var_id,starts,counts,data_tmp);
-  else if (mtype=='f') ierr = nc_put_vara_float(ncid,avar->nc_var_id,starts,counts,fdata_tmp);
-  else if (mtype=='l') ierr = nc_put_vara_long(ncid,avar->nc_var_id,starts,counts,ldata_tmp);
-  else if (mtype=='i') ierr = nc_put_vara_int(ncid,avar->nc_var_id,starts,counts,idata_tmp);
-
-  if (ierr != NC_NOERR) {snprintf(msg,CMOR_MAX_STRING,"NetCDF Error (%i), writing variable '%s' to file",ierr,avar->id);cmor_handle_error(msg,CMOR_CRITICAL);}
-  avar->ntimes_written+=ntimes_passed;
-  if (mtype=='d') free(data_tmp);
-  else if (mtype=='f') free(fdata_tmp);
-  else if (mtype=='l') free(ldata_tmp);
-  else if (mtype=='i') free(idata_tmp);
-  cmor_pop_traceback();
-  return 0;
-}
diff --git a/Test/3D_txy.input b/Test/3D_txy.input
deleted file mode 100644
index a28b89a..0000000
--- a/Test/3D_txy.input
+++ /dev/null
@@ -1 +0,0 @@
-Test/tas_mytest_reorder.asc
diff --git a/Test/3D_txy_split_lon.input b/Test/3D_txy_split_lon.input
deleted file mode 100644
index 3fbc567..0000000
--- a/Test/3D_txy_split_lon.input
+++ /dev/null
@@ -1 +0,0 @@
-Test/tas_mytest_reorder_split_lon.asc
diff --git a/Test/3D_xty_split_lon.input b/Test/3D_xty_split_lon.input
deleted file mode 100644
index c1ccd19..0000000
--- a/Test/3D_xty_split_lon.input
+++ /dev/null
@@ -1 +0,0 @@
-Test/tas_3D_xty_-180_180.asc
diff --git a/Test/CMIP5_Amon_YYYYMMDDHH b/Test/CMIP5_Amon_YYYYMMDDHH
deleted file mode 100644
index 0b7d8c3..0000000
--- a/Test/CMIP5_Amon_YYYYMMDDHH
+++ /dev/null
@@ -1,2080 +0,0 @@
-table_id: Table Amon
-modeling_realm: atmos
-
-frequency: mon
-
-cmor_version: 2.0         ! version of CMOR that can read this table
-cf_version:   1.4         ! version of CF that output conforms to
-project_id:   CMIP5  ! project id
-table_date:   05 March 2010 ! date this table was constructed
-
-missing_value: 1.e20      ! value used to indicate a missing value
-                          !   in arrays output by netCDF as 32-bit IEEE 
-                          !   floating-point numbers (float or real)
-
-baseURL: http://cmip-pcmdi.llnl.gov/CMIP5/dataLocation 
-product: output
-
-required_global_attributes: creation_date tracking_id forcing model_id ! space separated required global attribute parent_experiment_id branch_time
-
-expt_id_ok: '10- or 30-year run initialzed at YYYYMMDDHH' 'mytestYYYYMMDDHH'
-
-
-approx_interval:  30.000000     ! approximate spacing between successive time
-                          !   samples (in units of the output time 
-                          !   coordinate.
-
-!============
-axis_entry: longitude
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-standard_name:    longitude
-units:            degrees_east
-axis:             X             ! X, Y, Z, T (default: undeclared)
-long_name:        longitude
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         lon
-valid_min:        0         
-valid_max:        360 
-stored_direction: increasing
-type:             double
-must_have_bounds: yes
-!----------------------------------
-!
-
-
-!============
-axis_entry: latitude
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-standard_name:    latitude
-units:            degrees_north
-axis:             Y             ! X, Y, Z, T (default: undeclared)
-long_name:        latitude
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         lat
-valid_min:        -90         
-valid_max:        90 
-stored_direction: increasing
-type:             double
-must_have_bounds: yes
-!----------------------------------
-!
-
-
-!============
-axis_entry: plevs
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-standard_name:    air_pressure
-units:            Pa
-axis:             Z             ! X, Y, Z, T (default: undeclared)
-positive:         down         ! up or down (default: undeclared)
-long_name:        pressure
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         plev
-stored_direction: decreasing
-tolerance:        0.001
-
-type:             double
-requested:        100000. 92500. 85000. 70000. 60000. 50000. 40000. 30000. 25000. 20000. 15000. 10000. 7000. 5000. 3000. 2000. 1000.        ! space-separated list of requested coordinates 
-must_have_bounds: no
-!----------------------------------
-!
-
-
-!============
-axis_entry: alevbnds
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-axis:             Z             ! X, Y, Z, T (default: undeclared)
-long_name:        atmospheric model half-level
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         lev
-stored_direction: increasing
-type:             double
-must_have_bounds: no
-index_only:       ok
-!----------------------------------
-!
-
-
-!============
-axis_entry: time
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-standard_name:    time
-units:            days since ?
-axis:             T             ! X, Y, Z, T (default: undeclared)
-long_name:        time
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         time
-stored_direction: increasing
-type:             double
-must_have_bounds: yes
-!----------------------------------
-!
-
-
-!============
-axis_entry: time2
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-standard_name:    time
-units:            days since ?
-axis:             T             ! X, Y, Z, T (default: undeclared)
-long_name:        time
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         time
-stored_direction: increasing
-type:             double
-must_have_bounds: yes
-climatology:      yes
-!----------------------------------
-!
-
-
-!============
-axis_entry: height2m
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-standard_name:    height
-units:            m
-axis:             Z             ! X, Y, Z, T (default: undeclared)
-positive:         up         ! up or down (default: undeclared)
-long_name:        height
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         height
-valid_min:        1         
-valid_max:        10 
-stored_direction: increasing
-type:             double
-value:            2.            ! of scalar (singleton) dimension 
-must_have_bounds: no
-!----------------------------------
-!
-
-
-!============
-axis_entry: height10m
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-standard_name:    height
-units:            m
-axis:             Z             ! X, Y, Z, T (default: undeclared)
-positive:         up         ! up or down (default: undeclared)
-long_name:        height
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         height
-valid_min:        1         
-valid_max:        30 
-stored_direction: increasing
-type:             double
-value:            10.            ! of scalar (singleton) dimension 
-must_have_bounds: no
-!----------------------------------
-!
-
-!============
-axis_entry: smooth_level
-!============
-!
-! This coordinate is a hybrid height coordinate with units of meters (m).
-!  It increases upward.
-!  The values of a(k)*ztop, which appear in the formula below, should be stored as smooth_level. 
-!  Note that in the netCDF file the variable will be named "lev", not smooth_level.
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    atmosphere_sleve_coordinate
-units:            m
-axis:             Z
-positive:	      up
-long_name:        atmosphere smooth level vertical (SLEVE) coordinate
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lev
-must_have_bounds: yes
-stored_direction: increasing
-valid_min:        -200.
-valid_max:        800000.
-formula:          z(n,k,j,i) = a(k)*ztop + b1(k)*zsurf1(n,j,i) + b2(k)*zsurf2(n,j,i)
-z_factors:        a: a b1: b1 b2: b2 ztop: ztop zsurf1: zsurf1 zsurf2: zsurf2
-z_bounds_factors: a: a_bnds b1: b1_bnds b2: b2_bnds ztop: ztop zsurf1: zsurf1 zsurf2: zsurf2
-!----------------------------------	
-!
-!============
-axis_entry: natural_log_pressure
-!============
-!
-!This coordinate is dimensionless and varies from near 0 at the surface and increases upward.
-!  The values of lev(k), which appears in the formula below, should be stored as natural_log_pressure.  
-!  Note that in the netCDF file the variable will be named "lev", not natural_log_pressure.
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    atmosphere_ln_pressure_coordinate
-axis:             Z
-long_name:        atmosphere natural log pressure coordinate
-positive:	      down
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lev
-must_have_bounds: yes
-stored_direction: decreasing
-valid_min:        -1.
-valid_max:        20.
-formula:          p(k) = p0 * exp(-lev(k))
-z_factors:        p0: p0 lev: lev
-z_bounds_factors: p0: p0 lev: lev_bnds
-!----------------------------------	
-!
-!============
-axis_entry: standard_sigma
-!============
-!
-! This coordinate is dimensionless and varies from 0 at the model top to 1.0 at the surface.
-!  The values of sigma(k), which appears in the formula below, should be stored as standard_sigma.  
-!  Note that in the netCDF file the variable will be named "lev", not standard_sigma.
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    atmosphere_sigma_coordinate
-axis:             Z
-positive:         down
-long_name:        sigma coordinate
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lev
-must_have_bounds: yes
-stored_direction: decreasing
-valid_min:        0.0
-valid_max:        1.0
-formula:          p(n,k,j,i) = ptop + sigma(k)*(ps(n,j,i) - ptop)
-z_factors:        ptop: ptop sigma: lev ps: ps
-z_bounds_factors: ptop: ptop sigma: lev_bnds ps: ps
-!----------------------------------	
-!
-!
-!============
-axis_entry:  standard_hybrid_sigma
-!============
-!
-! This coordinate is dimensionless and varies from a small value at the model top to 1.0 at the surface.
-!  The values of a(k)+ b(k), which appear in the formula below, should be stored as standard_hybrid_sigma.  
-!  Note that in the netCDF file the variable will be named "lev", not standard_hybrid_sigma.
-!
-!---------------------------------
-! Axis attributes:
-!----------------------------------	
-standard_name:    atmosphere_hybrid_sigma_pressure_coordinate
-units:            1
-axis:             Z 
-positive:         down
-long_name:        hybrid sigma pressure coordinate
-!----------------------------------
-! Additional axis information:
-!----------------------------------	
-out_name:         lev
-must_have_bounds: yes
-stored_direction: decreasing
-valid_min:        0.0
-valid_max:        1.0
-formula:          p(n,k,j,i) = a(k)*p0 + b(k)*ps(n,j,i)
-z_factors:        p0: p0 a: a b: b ps: ps
-z_bounds_factors: p0: p0 a: a_bnds b: b_bnds ps: ps
-!----------------------------------		
-!
-!
-!============
-axis_entry:  alternate_hybrid_sigma
-!============
-!
-! This coordinate is dimensionless and varies from a small value at the model top to 1.0 at the surface.
-!  The values of ap(k)/p0 + b(k), which appear in the formula below, should be stored as alternate_hybrid_sigma.  
-!  Note that in the netCDF file the variable will be named "lev", not alternate_hybrid_sigma.
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    atmosphere_hybrid_sigma_pressure_coordinate
-units:            1
-axis:             Z
-positive:         down
-long_name:        hybrid sigma pressure coordinate
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lev
-must_have_bounds: yes
-stored_direction: decreasing
-valid_min:        0.0
-valid_max:        1.0
-formula:          p(n,k,j,i) = ap(k) + b(k)*ps(n,j,i)
-z_factors:        p0: p0 ap: ap b: b ps: ps
-z_bounds_factors: p0 ap: ap_bnds b: b_bnds ps: ps
-!----------------------------------		
-!
-!
-!============
-axis_entry:  hybrid_height
-!============
-!
-! This coordinate has dimension of meters (m) and increases upward.
-!  The values of a(k) which appear in the formula below, should be stored as hybrid_height.  
-!  Note that in the netCDF file the variable will be named "lev", not hybrid_height.
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    atmosphere_hybrid_height_coordinate
-units:            m
-axis:             Z 
-positive:         up
-long_name:        hybrid height coordinate
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lev
-must_have_bounds: yes
-stored_direction: increasing
-valid_min:        0.0
-formula:          z(k,j,i) = a(k) + b(k)*orog(j,i)
-z_factors:        a: lev b: b orog: orog
-z_bounds_factors: a: lev_bnds b: b_bnds orog: orog
-!----------------------------------		
-!
-! ***************************************************************
-!
-! Vertical coordinate formula terms:
-!
-! ***************************************************************
-!
-!
-!============
-variable_entry:    orog
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_altitude
-units:             m
-long_name:         Surface Altitude
-comment:           height above the geoid; as defined here, ""the geoid"" is a surface of constant geopotential that, if the ocean were at rest, would coincide with mean sea level. Under this definition, the geoid changes as the mean volume of the ocean changes (e.g., due to glacial melt, or global warming of the ocean).  Report here the height above the present-day geoid.  Over ocean, report as 0.0
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude
-out_name:          orog
-type:              real
-valid_min:         -700
-valid_max:         1.00E+04
-!----------------------------------
-!
-!
-!============
-variable_entry: p0
-!============
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:       vertical coordinate formula term: reference pressure 
-units:           Pa
-!----------------------------------	
-!
-!
-!============
-variable_entry: ptop
-!============
-!
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:       pressure at top of model 
-units:           Pa
-!----------------------------------	
-!
-!
-!
-!============
-variable_entry: a
-!============
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   vertical coordinate formula term: a(k)
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         alevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: b
-!============
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   vertical coordinate formula term: b(k)
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         alevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: a_bnds
-!============
-!
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   vertical coordinate formula term: a(k+1/2)
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         alevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: b_bnds
-!============
-!
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   vertical coordinate formula term: b(k+1/2)
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         alevel
-type:               double
-!----------------------------------
-!
-!
-!============
-variable_entry: ap
-!============
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   vertical coordinate formula term: ap(k)
-units:           Pa
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         alevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: ap_bnds
-!============
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   vertical coordinate formula term: ap(k+1/2)
-units:           Pa
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         alevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: ztop
-!============
-!
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:       height of top of model 
-units:           m
-!----------------------------------	
-!
-!
-!
-
-!============
-variable_entry:    tas
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     air_temperature
-units:             K
-cell_methods:      time: mean
-long_name:         Near-Surface Air Temperature
-comment:           near-surface (usually, 2 meter) air temperature.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time height2m
-out_name:          tas
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    ts
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_temperature
-units:             K
-cell_methods:      time: mean
-long_name:         Surface Temperature
-comment:           ""skin"" temperature (i.e., SST for open ocean)
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          ts
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tasmin
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     air_temperature
-units:             K
-cell_methods:      time: minimum within days time: mean over time
-long_name:         Daily Minimum Near-Surface Air Temperature
-comment:           monthly mean of the daily-minimum near-surface (usually, 2 meter) air temperature.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time height2m
-out_name:          tasmin
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tasmax
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     air_temperature
-units:             K
-cell_methods:      time: maximum within days time: mean over time
-long_name:         Daily Maximum Near-Surface Air Temperature
-comment:           monthly mean of the daily-maximum near-surface (usually, 2 meter) air temperature.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time height2m
-out_name:          tasmax
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    psl
-!============
-modeling_realm:    atmos
-
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     air_pressure_at_sea_level
-units:             Pa
-cell_methods:      time: mean
-long_name:         Sea Level Pressure
-comment:           not, in general, the same as surface pressure
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          psl
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    ps
-!============
-modeling_realm:    atmos
-
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_air_pressure
-units:             Pa
-cell_methods:      time: mean
-long_name:         Surface Air Pressure
-comment:           not, in general, the same as mean sea-level pressure
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          ps
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    uas
-!============
-modeling_realm:    atmos
-
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     eastward_wind
-units:             m s-1
-cell_methods:      time: mean
-long_name:         Eastward Near-Surface Wind Speed
-comment:           near-surface (usually, 10 meters) eastward component of wind.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time height10m
-out_name:          uas
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    vas
-!============
-modeling_realm:    atmos
-
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     northward_wind
-units:             m s-1
-cell_methods:      time: mean
-long_name:         Northward Near-Surface Wind Speed
-comment:           near-surface (usually, 10 meters) northward component of wind.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time height10m
-out_name:          vas
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    sfcWind
-!============
-modeling_realm:    atmos
-
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     wind_speed
-units:             m s-1
-cell_methods:      time: mean
-long_name:         Near-Surface Wind Speed
-comment:           near-surface (usually, 10 meters) wind speed.  This is the mean of the speed, not the speed computed from the mean u and v components of wind
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time height10m
-out_name:          sfcWind
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    hurs
-!============
-modeling_realm:    atmos
-
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     relative_humidity
-units:             %
-cell_methods:      time: mean
-long_name:         Near-Surface Relative Humidity
-comment:           near-surface (usually, 2meters) relative humidity expressed as a percentage.  This is the relative humidity with respect to liquid water for T> 0 C, and with respect to ice for T<0 C.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time height2m
-out_name:          hurs
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    huss
-!============
-modeling_realm:    atmos
-
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     specific_humidity
-units:             1
-cell_methods:      time: mean
-long_name:         Near-Surface Specific Humidity
-comment:           near-surface (usually, 2 meters) specific humidity.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time height2m
-out_name:          huss
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    pr
-!============
-modeling_realm:    atmos
-
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     precipitation_flux
-units:             kg m-2 s-1
-cell_methods:      time: mean
-long_name:         Precipitation
-comment:           at surface; includes both liquid and solid phases from all types of clouds (both large-scale and convective)
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          pr
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    prsn
-!============
-modeling_realm:    atmos
-
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     snowfall_flux
-units:             kg m-2 s-1
-cell_methods:      time: mean
-long_name:         Snowfall Flux
-comment:           at surface; includes precipitation of all forms of water in the solid phase
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          prsn
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    prc
-!============
-modeling_realm:    atmos
-
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     convective_precipitation_flux
-units:             kg m-2 s-1
-cell_methods:      time: mean
-long_name:         Convective Precipitation
-comment:           at surface; includes both liquid and solid phases.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          prc
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    evspsbl
-!============
-modeling_realm:    atmos
-
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     water_evaporation_flux
-units:             kg m-2 s-1
-cell_methods:      time: mean
-long_name:         Evaporation
-comment:           at surface; flux of water into the atmosphere due to conversion of both liquid and solid phases to vapor (from underlying surface and vegetation)
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          evspsbl
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    sbl
-!============
-modeling_realm:    atmos
-
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     water_sublimation_flux
-units:             kg m-2 s-1
-cell_methods:      time: mean
-long_name:         Surface Snow and Ice Sublimation Flux
-comment:           The snow and ice sublimation flux is the loss of snow and ice mass from the surface resulting from their conversion to water vapor that enters the atmosphere.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          sbl
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tauu
-!============
-modeling_realm:    atmos
-
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_downward_eastward_stress
-units:             Pa
-cell_methods:      time: mean
-long_name:         Surface Downward Eastward Wind Stress
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          tauu
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    tauv
-!============
-modeling_realm:    atmos
-
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_downward_northward_stress
-units:             Pa
-cell_methods:      time: mean
-long_name:         Surface Downward Northward Wind Stress
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          tauv
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls
-!============
-modeling_realm:    atmos
-
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          hfls
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfss
-!============
-modeling_realm:    atmos
-
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_sensible_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Sensible Heat Flux
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          hfss
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    rlds
-!============
-modeling_realm:    atmos
-
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_downwelling_longwave_flux_in_air
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Downwelling Longwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rlds
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    rlus
-!============
-modeling_realm:    atmos
-
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upwelling_longwave_flux_in_air
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upwelling Longwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rlus
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    rsds
-!============
-modeling_realm:    atmos
-
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_downwelling_shortwave_flux_in_air
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Downwelling Shortwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rsds
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    rsus
-!============
-modeling_realm:    atmos
-
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upwelling_shortwave_flux_in_air
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upwelling Shortwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rsus
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    rsdscs
-!============
-modeling_realm:    atmos
-
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_downwelling_shortwave_flux_in_air_assuming_clear_sky
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Downwelling Clear-Sky Shortwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rsdscs
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    rsuscs
-!============
-modeling_realm:    atmos
-
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upwelling_shortwave_flux_in_air_assuming_clear_sky
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upwelling Clear-Sky Shortwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rsuscs
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    rldscs
-!============
-modeling_realm:    atmos
-
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_downwelling_longwave_flux_in_air_assuming_clear_sky
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Downwelling Clear-Sky Longwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rldscs
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    rsdt
-!============
-modeling_realm:    atmos
-
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     toa_incoming_shortwave_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         TOA Incident Shortwave Radiation
-comment:           incident shortwave at the top of the atmosphere
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rsdt
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    rsut
-!============
-modeling_realm:    atmos
-
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     toa_outgoing_shortwave_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         TOA Outgoing Shortwave Radiation
-comment:           at the top of the atmosphere
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rsut
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    rlut
-!============
-modeling_realm:    atmos
-
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     toa_outgoing_longwave_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         TOA Outgoing Longwave Radiation
-comment:           at the top of the atmosphere (to be compared with satellite measurements)
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rlut
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    rlutcs
-!============
-modeling_realm:    atmos
-
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     toa_outgoing_longwave_flux_assuming_clear_sky
-units:             W m-2
-cell_methods:      time: mean
-long_name:         TOA Outgoing Clear-Sky Longwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rlutcs
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    rsutcs
-!============
-modeling_realm:    atmos
-
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     toa_outgoing_shortwave_flux_assuming_clear_sky
-units:             W m-2
-cell_methods:      time: mean
-long_name:         TOA Outgoing Clear-Sky Shortwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rsutcs
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    prw
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     atmosphere_water_vapor_content
-units:             kg m-2
-cell_methods:      time: mean
-long_name:         Water Vapor Path
-comment:           vertically integrated through the atmospheric column
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          prw
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    clt
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     cloud_area_fraction
-units:             %
-cell_methods:      time: mean
-long_name:         Total Cloud Fraction
-comment:           for the whole atmospheric column, as seen from the surface or the top of the atmosphere. Include both large-scale and convective cloud.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          clt
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    clwvi
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     atmosphere_cloud_condensed_water_content
-units:             kg m-2
-cell_methods:      time: mean
-long_name:         Condensed Water Path
-comment:           calculate mass of condensed (liquid + ice) water in the column divided by the area of the column (not just the area of the cloudy portion of the column). Include precipitating hydrometeors ONLY if the precipitating hydrometeor affects the calculation of radiative transfer in model.  
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          clwvi
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    clivi
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     atmosphere_cloud_ice_content
-units:             kg m-2
-cell_methods:      time: mean
-long_name:         Ice Water Path
-comment:           calculate mass of ice water in the column divided by the area of the column (not just the area of the cloudy portion of the column). Include precipitating frozen hydrometeors ONLY if the precipitating hydrometeor affects the calculation of radiative transfer in model.  
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          clivi
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    rtmt
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     net_downward_radiative_flux_at_top_of_atmosphere_model
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Net Downward Flux at Top of Model
-comment:           i.e., at the top of that portion of the atmosphere where dynamics are explicitly treated by the model. Report only if this differs from the net downward radiative flux at the top of the atmosphere.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rtmt
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    ccb
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     air_pressure_at_convective_cloud_base
-units:             Pa
-cell_methods:      time: mean
-long_name:         Air Pressure at Convective Cloud Base
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          ccb
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    cct
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     air_pressure_at_convective_cloud_top
-units:             Pa
-cell_methods:      time: mean
-long_name:         Air Pressure at Convective Cloud Top
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          cct
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    ci 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-units:             1
-cell_methods:      time: mean
-long_name:         Fraction of Time Convection Occurs
-comment:           Fraction of time that convection occurs in the grid cell .
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          ci 
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    sci
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-units:             1
-cell_methods:      time: mean
-long_name:         Fraction of Time Shallow Convection Occurs
-comment:           Fraction of time that shallow convection occurs in the grid cell. ( For models with a distinct shallow convection scheme only)
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          sci
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    fco2antt
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-units:             kg C m-2 s-1
-cell_methods:      time: mean
-long_name:         Total Anthropogenic CO2 Flux (All Emissions)
-comment:           This is requested only for the emission-driven coupled carbon climate model runs.  Do not include natural fire sources, but include all anthropogenic sources, including fossil fuel use, cement production, agricultural burning, and all sources associated with anthropogenic land use change.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          fco2antt
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    fco2fos
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-units:             kg C m-2 s-1
-cell_methods:      time: mean
-long_name:         Fossil Fuel Anthropogenic CO2 Flux (Fossil Fuel Emissions)
-comment:           This is requested only for the emission-driven coupled carbon climate model runs.  Report the prescribed anthropogenic CO2 flux from fossil fuel use.  
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          fco2fos
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    fco2nat
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-units:             kg C m-2 s-1
-cell_methods:      time: mean
-long_name:         Natural Net Surface Flux of CO2 into The Atmosphere
-comment:           Report from all simulations (both emission-driven and concentration-driven) performed by models with fully interactive and responsive carbon cycles.  This is what the atmosphere sees (on its own grid).  This field should be equivalent to the combined natural fluxes of carbon (requested in the L_mon and O_mon tables) that account for natural exchanges between the atmosphere and land or ocean reservoirs (i.e., ""net biospheric productivity"", for land, and ""air to sea C [...]
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          fco2nat
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    cl
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     cloud_area_fraction_in_atmosphere_layer
-units:             %
-cell_methods:      time: mean
-long_name:         Cloud Area Fraction
-comment:           Report on model layers (not standard pressures).  Include both large-scale and convective cloud.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          cl
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    clw
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mass_fraction_of_cloud_liquid_water_in_air
-units:             1
-cell_methods:      time: mean
-long_name:         Mass Fraction of Cloud Liquid Water
-comment:           Report on model layers (not standard pressures).  Include both large-scale and convective cloud.  Calculate as the mass of cloud liquid water in the grid cell divided by the mass of air (including the water in all phases) in the grid cells. Include precipitating hydrometeors ONLY if the precipitating hydrometeor affects the calculation of radiative transfer in model.  
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          clw
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    cli
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mass_fraction_of_cloud_ice_in_air
-units:             1
-cell_methods:      time: mean
-long_name:         Mass Fraction of Cloud Ice
-comment:           Report on model layers (not standard pressures).  Include both large-scale and convective cloud.  Calculate as the mass of cloud ice in the grid cell divided by the mass of air (including the water in all phases) in the grid cell. Include precipitating hydrometeors ONLY if the precipitating hydrometeor affects the calculation of radiative transfer in model.  
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          cli
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    mc
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     atmosphere_convective_mass_flux
-units:             kg m-2 s-1
-cell_methods:      time: mean
-long_name:         Convective Mass Flux
-comment:           Report on model half-levels (i.e., model layer bounds and not standard pressures).  The atmosphere convective mass flux is the vertical transport of mass for a field of cumulus clouds or thermals, given by the product of air density and vertical velocity.  The flux is computed as the mass divided by the area of the grid cell.  
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevbnds time
-out_name:          mc
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    ta
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     air_temperature
-units:             K
-cell_methods:      time: mean
-long_name:         Air Temperature
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude plevs time
-out_name:          ta
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    ua
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     eastward_wind
-units:             m s-1
-cell_methods:      time: mean
-long_name:         Eastward Wind
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude plevs time
-out_name:          ua
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    va
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     northward_wind
-units:             m s-1
-cell_methods:      time: mean
-long_name:         Northward Wind
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude plevs time
-out_name:          va
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    hus
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     specific_humidity
-units:             1
-cell_methods:      time: mean
-long_name:         Specific Humidity
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude plevs time
-out_name:          hus
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    hur
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     relative_humidity
-units:             %
-cell_methods:      time: mean
-long_name:         Relative Humidity
-comment:           This is the relative humidity with respect to liquid water for T> 0 C, and with respect to ice for T<0 C.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude plevs time
-out_name:          hur
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    wap
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     lagrangian_tendency_of_air_pressure
-units:             Pa s-1
-cell_methods:      time: mean
-long_name:         omega (=dp/dt)
-comment:           commonly referred to as ""omega"", this represents the vertical component of velocity in pressure coordinates (positive down)
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude plevs time
-out_name:          wap
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    zg
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     geopotential_height
-units:             m
-cell_methods:      time: mean
-long_name:         Geopotential Height
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude plevs time
-out_name:          zg
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tro3
-!============
-modeling_realm:    atmos atmosChem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_fraction_of_ozone_in_air
-units:             1e-9
-cell_methods:      time: mean
-long_name:         Mole Fraction of O3
-comment:           If this does not change over time (except possibly to vary identically over each annual cycle), report instead the variable described in the next table entry. 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude plevs time
-out_name:          tro3
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tro3Clim
-!============
-modeling_realm:    atmos atmosChem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_fraction_of_ozone_in_air
-units:             1e-9
-cell_methods:      time: mean within years time: mean over years
-long_name:         Mole Fraction of O3
-comment:           If O3 does not vary from one year to the next, report 12 months, starting with January.   (Note: include all 12 months even if the values don't vary seasonally.)  When calling CMOR, identify this variable as tro3Clim, not tro3. If the O3 varies from one year to the next,  then report instead the field described in the previous table entry.  
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude plevs time2
-out_name:          tro3
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    co2
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_fraction_of_carbon_dioxide_in_air
-units:             1e-6
-cell_methods:      time: mean
-long_name:         Mole Fraction of CO2
-comment:           For some simulations (e.g., prescribed concentration pi-control run), this will not vary from one year to the next, and so report instead the variable described in the next table entry.  If spatially uniform, omit this field, but report Total Atmospheric Mass of CO2 (see the table entry after the next one). 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude plevs time
-out_name:          co2
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    co2Clim
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_fraction_of_carbon_dioxide_in_air
-units:             1e-6
-cell_methods:      time: mean within years time: mean over years
-long_name:         Mole Fraction of CO2
-comment:           Report only for simulations (e.g., prescribed concentration pi-control run), in which the CO2 does not vary from one year to the next. Report 12 monthly values, starting with January, even if the values don't vary seasonally.  When calling CMOR, identify this variable as co2Clim, not co2.   If  CO2 is spatially uniform, omit this field, but report Total Atmospheric Mass of CO2 (see the table entry after the next).
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude plevs time2
-out_name:          co2
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    co2mass
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-units:             kg
-cell_methods:      time: mean
-long_name:         Total Atmospheric Mass of CO2
-comment:           For some simulations (e.g., prescribed concentration pi-control run), this will not vary from one year to the next, and so report instead the variable described in the next table entry.  If CO2 is spatially nonuniform, omit this field, but report Mole Fraction of CO2 (see the table entry before the previous one). 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        time
-out_name:          co2mass
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    co2massClim
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-units:             kg
-cell_methods:      time: mean within years time: mean over years
-long_name:         Total Atmospheric Mass of CO2
-comment:           Report only for simulations (e.g., prescribed concentration pi-control run), in which the CO2 does not vary from one year to the next. Report 12 monthly values, starting with January, even if the values don't vary seasonally.  When calling CMOR, identify this variable as co2massClim, not co2mass.  If CO2 is spatially nonuniform, omit this field, but report Mole Fraction of CO2 (see the table entry before the previous one). 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        time2
-out_name:          co2mass
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    ch4
-!============
-modeling_realm:    atmos atmosChem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_fraction_of_methane_in_air
-units:             1e-9
-cell_methods:      time: mean
-long_name:         Mole Fraction of CH4
-comment:           For some simulations (e.g., prescribed concentration pi-control run), this will not vary from one year to the next, and so report instead the variable described in the next table entry.  If CH4 is spatially uniform, omit this field, but report Global Mean Mole Fraction of CH4 (see the table entry after the next one). 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude plevs time
-out_name:          ch4
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    ch4
-!============
-modeling_realm:    atmos atmosChem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_fraction_of_methane_in_air
-units:             1e-9
-cell_methods:      time: mean within years time: mean over years
-long_name:         Mole Fraction of CH4
-comment:           Report only for simulations (e.g., prescribed concentration pi-control run), in which the CH4 does not vary from one year to the next. Report 12 monthly values, starting with January, even if the values don't vary seasonally.  When calling CMOR, identify this variable as ch4global, not ch4.   If  CH4 is spatially uniform, omit this field, but report Global Mean Mole Fraction of CH4 (see the table entry after the next).
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude plevs time2
-out_name:          ch4
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    ch4global
-!============
-modeling_realm:    atmos atmosChem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_fraction_of_methane_in_air
-units:             1e-9
-cell_methods:      time: mean
-long_name:         Global Mean Mole Fraction of CH4
-comment:           For some simulations (e.g., prescribed concentration pi-control run), this will not vary from one year to the next, and so report instead the variable described in the next table entry.  If CH4 is spatially nonuniform, omit this field, but report Mole Fraction of CH4 (see the table entry before the previous one). 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        time
-out_name:          ch4global
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    ch4globalClim
-!============
-modeling_realm:    atmos atmosChem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_fraction_of_methane_in_air
-units:             1e-9
-cell_methods:      time: mean within years time: mean over years
-long_name:         Global Mean Mole Fraction of CH4
-comment:           Report only for simulations (e.g., prescribed concentration pi-control run), in which the CH4 does not vary from one year to the next. Report 12 monthly values, starting with January, even if the values don't vary seasonally.  When calling CMOR, identify this variable as ch4globalClim, not ch4global.  If CH4 is spatially nonuniform, omit this field, but report Global Mean Mole Fraction of CH4 (see the table entry before the previous one). 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        time2
-out_name:          ch4global
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    n2o
-!============
-modeling_realm:    atmos atmosChem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_fraction_of_nitrous_oxide_in_air
-units:             1e-9
-cell_methods:      time: mean
-long_name:         Mole Fraction of N2O
-comment:           For some simulations (e.g., prescribed concentration pi-control run), this will not vary from one year to the next, and so report instead the variable described in the next table entry.  If N2O is spatially uniform, omit this field, but report Global Mean Mole Fraction of N2O (see the table entry after the next one). 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude plevs time
-out_name:          n2o
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    n2oClim
-!============
-modeling_realm:    atmos atmosChem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_fraction_of_nitrous_oxide_in_air
-units:             1e-9
-cell_methods:      time: mean within years time: mean over years
-long_name:         Mole Fraction of N2O
-comment:           Report only for simulations (e.g., prescribed concentration pi-control run), in which the N2O does not vary from one year to the next. Report 12 monthly values, starting with January, even if the values don't vary seasonally.  When calling CMOR, identify this variable as n2oglobal, not n2o.   If  N2O is spatially uniform, omit this field, but report Global Mean Mole Fraction of N2O (see the table entry after the next).
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude plevs time2
-out_name:          n2o
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    n2oglobal
-!============
-modeling_realm:    atmos atmosChem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_fraction_of_nitrous_oxide_in_air
-units:             1e-9
-cell_methods:      time: mean
-long_name:         Global Mean Mole Fraction of N2O
-comment:           For some simulations (e.g., prescribed concentration pi-control run), this will not vary from one year to the next, and so report instead the variable described in the next table entry.  If N2O is spatially nonuniform, omit this field, but report Mole Fraction of N2O (see the table entry before the previous one). 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        time
-out_name:          n2oglobal
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    n2oglobalClim
-!============
-modeling_realm:    atmos atmosChem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_fraction_of_nitrous_oxide_in_air
-units:             1e-9
-cell_methods:      time: mean within years time: mean over years
-long_name:         Global Mean Mole Fraction of N2O
-comment:           Report only for simulations (e.g., prescribed concentration pi-control run), in which the N2O does not vary from one year to the next. Report 12 monthly values, starting with January, even if the values don't vary seasonally.  When calling CMOR, identify this variable as ch4globalClim, not ch4global.  If N2O is spatially nonuniform, omit this field, but report Global Mean Mole Fraction of N2O (see the table entry before the previous one). 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        time2
-out_name:          n2oglobal
-type:              real
-!----------------------------------
-!
-
-
-!============
-variable_entry:    pfull
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     air_pressure
-units:             Pa
-cell_methods:      time: mean within years time: mean over years
-long_name:         Pressure on Model Levels
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time2
-out_name:          pfull
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    phalf
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     air_pressure
-units:             Pa
-cell_methods:      time: mean within years time: mean over years
-long_name:         Pressure on Model Half-Levels
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevbnds time2
-out_name:          phalf
-type:              real
-!----------------------------------
-!
-
diff --git a/Test/CMIP5_Amons b/Test/CMIP5_Amons
deleted file mode 100644
index e3df49a..0000000
--- a/Test/CMIP5_Amons
+++ /dev/null
@@ -1,10929 +0,0 @@
-table_id: Table Amon
-modeling_realm: atmos
-
-frequency: mon
-
-cmor_version: 2.0         ! version of CMOR that can read this table
-cf_version:   1.4         ! version of CF that output conforms to
-project_id:   CMIP5  ! project id
-table_date:   30 March 2010 ! date this table was constructed
-
-missing_value: 1.e20      ! value used to indicate a missing value
-                          !   in arrays output by netCDF as 32-bit IEEE 
-                          !   floating-point numbers (float or real)
-
-baseURL: http://cmip-pcmdi.llnl.gov/CMIP5/dataLocation 
-product: output
-
-required_global_attributes: creation_date tracking_id forcing model_id parent_experiment_id branch_time contact ! space separated required global attribute 
-
-forcings:   N/A Nat Ant GHG SD SI SA TO SO Oz LU Sl Vl SS Ds BC MD OC AA
-
-expt_id_ok: '10- or 30-year run initialized in year XXXX' 'decadalXXXX'
-expt_id_ok: 'volcano-free hindcasts XXXX' 'noVolcXXXX'
-expt_id_ok: 'prediction with 2010 volcano' 'volcIn2010'
-expt_id_ok: 'pre-industrial control' 'piControl'
-expt_id_ok: 'Historical' 'historical'
-expt_id_ok: 'mid-Holocene' 'midHolocene'
-expt_id_ok: 'last glacial maximum' 'lgm'
-expt_id_ok: 'last millennium' 'past1000'
-expt_id_ok: 'RCP4.5' 'rcp45'
-expt_id_ok: 'RCP8.5' 'rcp85'
-expt_id_ok: 'RCP2.6' 'rcp26'
-expt_id_ok: 'RCP6' 'rcp60'
-expt_id_ok: 'ESM pre-industrial control' 'esmControl'
-expt_id_ok: 'ESM historical' 'esmHistorical'
-expt_id_ok: 'ESM RCP8.5' 'esmrcp85'
-expt_id_ok: 'ESM fixed climate 1' 'esmFixClim1'
-expt_id_ok: 'ESM fixed climate 2' 'esmFixClim2'
-expt_id_ok: 'ESM feedback 1' 'esmFdbk1'
-expt_id_ok: 'ESM feedback 2' 'esmFdbk2'
-expt_id_ok: '1 percent per year CO2' '1pctCO2'
-expt_id_ok: 'abrupt 4XCO2' 'abrupt4xCO2'
-expt_id_ok: 'natural-only' 'historicalNat'
-expt_id_ok: 'GHG-only' 'historicalGHG'
-expt_id_ok: 'anthropogenic-only' 'historicalAnt'
-expt_id_ok: 'anthropogenic sulfate aerosol direct effect only' 'historicalSD'
-expt_id_ok: 'anthropogenic sulfate aerosol indirect effect only' 'historicalSI'
-expt_id_ok: 'anthropogenic sulfate aerosol only' 'historicalSA'
-expt_id_ok: 'tropospheric ozone only' 'historicalTO'
-expt_id_ok: 'stratospheric ozone' 'historicalSO'
-expt_id_ok: 'ozone only' 'historicalOz'
-expt_id_ok: 'land-use change only' 'historicalLU'
-expt_id_ok: 'solar irradiance only' 'historicalSl'
-expt_id_ok: 'volcanic aerosol only' 'historicalVl'
-expt_id_ok: 'sea salt only' 'historicalSS'
-expt_id_ok: 'dust' 'historicalDs'
-expt_id_ok: 'black carbon only' 'historicalBC'
-expt_id_ok: 'mineral dust only' 'historicalMD'
-expt_id_ok: 'organic carbon only' 'historicalOC'
-expt_id_ok: 'anthropogenic aerosols only' 'historicalAA'
-expt_id_ok: 'AMIP' 'amip'
-expt_id_ok: '2030 time-slice' 'sst2030'
-expt_id_ok: 'control SST climatology' 'sstClim'
-expt_id_ok: 'CO2 forcing' 'sstClim4xCO2'
-expt_id_ok: 'all aerosol forcing' 'sstClimAerosol'
-expt_id_ok: 'sulfate aerosol forcing' 'sstClimSulfate'
-expt_id_ok: '4xCO2 AMIP' 'amip4xCO2'
-expt_id_ok: 'AMIP plus patterned anomaly' 'amipFuture'
-expt_id_ok: 'aqua planet control' 'aquaControl'
-expt_id_ok: '4xCO2 aqua planet' 'aqua4xCO2'
-expt_id_ok: 'aqua planet plus 4K anomaly' 'aqua4K'
-expt_id_ok: 'AMIP plus 4K anomaly' 'amip4K'
-
-
-approx_interval:  30.000000     ! approximate spacing between successive time
-                          !   samples (in units of the output time 
-                          !   coordinate.
-
-!============
-axis_entry: longitude
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-standard_name:    longitude
-units:            degrees_east
-axis:             X             ! X, Y, Z, T (default: undeclared)
-long_name:        longitude
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         lon
-valid_min:        0         
-valid_max:        360 
-stored_direction: increasing
-type:             double
-must_have_bounds: yes
-!----------------------------------
-!
-
-
-!============
-axis_entry: latitude
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-standard_name:    latitude
-units:            degrees_north
-axis:             Y             ! X, Y, Z, T (default: undeclared)
-long_name:        latitude
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         lat
-valid_min:        -90         
-valid_max:        90 
-stored_direction: increasing
-type:             double
-must_have_bounds: yes
-!----------------------------------
-!
-
-
-!============
-axis_entry: plevs
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-standard_name:    air_pressure
-units:            Pa
-axis:             Z             ! X, Y, Z, T (default: undeclared)
-positive:         down         ! up or down (default: undeclared)
-long_name:        pressure
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         plev
-stored_direction: decreasing
-tolerance:        0.001
-
-type:             double
-requested:        100000. 92500. 85000. 70000. 60000. 50000. 40000. 30000. 25000. 20000. 15000. 10000. 7000. 5000. 3000. 2000. 1000.        ! space-separated list of requested coordinates 
-must_have_bounds: no
-!----------------------------------
-!
-
-
-!============
-axis_entry: alevhalf
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-axis:             Z             ! X, Y, Z, T (default: undeclared)
-positive:         up         ! up or down (default: undeclared)
-long_name:        atmospheric model half-level
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         lev
-type:             double
-must_have_bounds: no
-index_only:       ok
-!----------------------------------
-!
-
-
-!============
-axis_entry: time
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-standard_name:    time
-units:            days since ?
-axis:             T             ! X, Y, Z, T (default: undeclared)
-long_name:        time
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         time
-stored_direction: increasing
-type:             double
-must_have_bounds: yes
-!----------------------------------
-!
-
-
-!============
-axis_entry: time2
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-standard_name:    time
-units:            days since ?
-axis:             T             ! X, Y, Z, T (default: undeclared)
-long_name:        time
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         time
-stored_direction: increasing
-type:             double
-must_have_bounds: yes
-climatology:      yes
-!----------------------------------
-!
-
-
-!============
-axis_entry: height2m
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-standard_name:    height
-units:            m
-axis:             Z             ! X, Y, Z, T (default: undeclared)
-positive:         up         ! up or down (default: undeclared)
-long_name:        height
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         height
-valid_min:        1         
-valid_max:        10 
-stored_direction: increasing
-type:             double
-value:            2.            ! of scalar (singleton) dimension 
-must_have_bounds: no
-!----------------------------------
-!
-
-
-!============
-axis_entry: height10m
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-standard_name:    height
-units:            m
-axis:             Z             ! X, Y, Z, T (default: undeclared)
-positive:         up         ! up or down (default: undeclared)
-long_name:        height
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         height
-valid_min:        1         
-valid_max:        30 
-stored_direction: increasing
-type:             double
-value:            10.            ! of scalar (singleton) dimension 
-must_have_bounds: no
-!----------------------------------
-!
-
-!============
-axis_entry: smooth_level
-!============
-!
-! This coordinate is a hybrid height coordinate with units of meters (m).
-!  It increases upward.
-!  The values of a(k)*ztop, which appear in the formula below, should be stored as smooth_level. 
-!  Note that in the netCDF file the variable will be named "lev", not smooth_level.
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    atmosphere_sleve_coordinate
-units:            m
-axis:             Z
-positive:	      up
-long_name:        atmosphere smooth level vertical (SLEVE) coordinate
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lev
-must_have_bounds: yes
-stored_direction: increasing
-valid_min:        -200.
-valid_max:        800000.
-formula:          z(n,k,j,i) = a(k)*ztop + b1(k)*zsurf1(n,j,i) + b2(k)*zsurf2(n,j,i)
-z_factors:        a: a b1: b1 b2: b2 ztop: ztop zsurf1: zsurf1 zsurf2: zsurf2
-z_bounds_factors: a: a_bnds b1: b1_bnds b2: b2_bnds ztop: ztop zsurf1: zsurf1 zsurf2: zsurf2
-!----------------------------------	
-!
-!============
-axis_entry: natural_log_pressure
-!============
-!
-!This coordinate is dimensionless and varies from near 0 at the surface and increases upward.
-!  The values of lev(k), which appears in the formula below, should be stored as natural_log_pressure.  
-!  Note that in the netCDF file the variable will be named "lev", not natural_log_pressure.
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    atmosphere_ln_pressure_coordinate
-axis:             Z
-long_name:        atmosphere natural log pressure coordinate
-positive:	      down
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lev
-must_have_bounds: yes
-stored_direction: decreasing
-valid_min:        -1.
-valid_max:        20.
-formula:          p(k) = p0 * exp(-lev(k))
-z_factors:        p0: p0 lev: lev
-z_bounds_factors: p0: p0 lev: lev_bnds
-!----------------------------------	
-!
-!============
-axis_entry: standard_sigma
-!============
-!
-! This coordinate is dimensionless and varies from 0 at the model top to 1.0 at the surface.
-!  The values of sigma(k), which appears in the formula below, should be stored as standard_sigma.  
-!  Note that in the netCDF file the variable will be named "lev", not standard_sigma.
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    atmosphere_sigma_coordinate
-axis:             Z
-positive:         down
-long_name:        sigma coordinate
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lev
-must_have_bounds: yes
-stored_direction: decreasing
-valid_min:        0.0
-valid_max:        1.0
-formula:          p(n,k,j,i) = ptop + sigma(k)*(ps(n,j,i) - ptop)
-z_factors:        ptop: ptop sigma: lev ps: ps
-z_bounds_factors: ptop: ptop sigma: lev_bnds ps: ps
-!----------------------------------	
-!
-!
-!============
-axis_entry:  standard_hybrid_sigma
-!============
-!
-! This coordinate is dimensionless and varies from a small value at the model top to 1.0 at the surface.
-!  The values of a(k)+ b(k), which appear in the formula below, should be stored as standard_hybrid_sigma.  
-!  Note that in the netCDF file the variable will be named "lev", not standard_hybrid_sigma.
-!
-!---------------------------------
-! Axis attributes:
-!----------------------------------	
-standard_name:    atmosphere_hybrid_sigma_pressure_coordinate
-units:            1
-axis:             Z 
-positive:         down
-long_name:        hybrid sigma pressure coordinate
-!----------------------------------
-! Additional axis information:
-!----------------------------------	
-out_name:         lev
-must_have_bounds: yes
-stored_direction: decreasing
-valid_min:        0.0
-valid_max:        1.0
-formula:          p(n,k,j,i) = a(k)*p0 + b(k)*ps(n,j,i)
-z_factors:        p0: p0 a: a b: b ps: ps
-z_bounds_factors: p0: p0 a: a_bnds b: b_bnds ps: ps
-!----------------------------------		
-!
-!
-!============
-axis_entry:  alternate_hybrid_sigma
-!============
-!
-! This coordinate is dimensionless and varies from a small value at the model top to 1.0 at the surface.
-!  The values of ap(k)/p0 + b(k), which appear in the formula below, should be stored as alternate_hybrid_sigma.  
-!  Note that in the netCDF file the variable will be named "lev", not alternate_hybrid_sigma.
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    atmosphere_hybrid_sigma_pressure_coordinate
-units:            1
-axis:             Z
-positive:         down
-long_name:        hybrid sigma pressure coordinate
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lev
-must_have_bounds: yes
-stored_direction: decreasing
-valid_min:        0.0
-valid_max:        1.0
-formula:          p(n,k,j,i) = ap(k) + b(k)*ps(n,j,i)
-z_factors:        ap: ap b: b ps: ps
-z_bounds_factors: ap: ap_bnds b: b_bnds ps: ps
-!----------------------------------		
-!
-!
-!============
-axis_entry:  hybrid_height
-!============
-!
-! This coordinate has dimension of meters (m) and increases upward.
-!  The values of a(k) which appear in the formula below, should be stored as hybrid_height.  
-!  Note that in the netCDF file the variable will be named "lev", not hybrid_height.
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    atmosphere_hybrid_height_coordinate
-units:            m
-axis:             Z 
-positive:         up
-long_name:        hybrid height coordinate
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lev
-must_have_bounds: yes
-stored_direction: increasing
-valid_min:        0.0
-formula:          z(k,j,i) = a(k) + b(k)*orog(j,i)
-z_factors:        a: lev b: b orog: orog
-z_bounds_factors: a: lev_bnds b: b_bnds orog: orog
-!----------------------------------		
-!
-! ***************************************************************
-!
-! Vertical coordinate formula terms:
-!
-! ***************************************************************
-!
-!
-!============
-variable_entry:    orog
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_altitude
-units:             m
-long_name:         Surface Altitude
-comment:           height above the geoid; as defined here, ""the geoid"" is a surface of constant geopotential that, if the ocean were at rest, would coincide with mean sea level. Under this definition, the geoid changes as the mean volume of the ocean changes (e.g., due to glacial melt, or global warming of the ocean).  Report here the height above the present-day geoid.  Over ocean, report as 0.0
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude
-out_name:          orog
-type:              real
-valid_min:         -700
-valid_max:         1.00E+04
-!----------------------------------
-!
-!
-!============
-variable_entry: p0
-!============
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:       vertical coordinate formula term: reference pressure 
-units:           Pa
-!----------------------------------	
-!
-!
-!============
-variable_entry: ptop
-!============
-!
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:       pressure at top of model 
-units:           Pa
-!----------------------------------	
-!
-!
-!
-!============
-variable_entry: a
-!============
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   vertical coordinate formula term: a(k)
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         alevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: b
-!============
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   vertical coordinate formula term: b(k)
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         alevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: a_bnds
-!============
-!
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   vertical coordinate formula term: a(k+1/2)
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         alevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: b_bnds
-!============
-!
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   vertical coordinate formula term: b(k+1/2)
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         alevel
-type:               double
-!----------------------------------
-!
-!
-!============
-variable_entry: ap
-!============
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   vertical coordinate formula term: ap(k)
-units:           Pa
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         alevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: ap_bnds
-!============
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   vertical coordinate formula term: ap(k+1/2)
-units:           Pa
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         alevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: ztop
-!============
-!
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:       height of top of model 
-units:           m
-!----------------------------------	
-!
-!
-!
-
-!============
-variable_entry:    tas
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     air_temperature
-units:             K
-cell_methods:      time: mean
-cell_measures:      area: areacello volume: volcello
-long_name:         Near-Surface Air Temperature
-comment:           near-surface (usually, 2 meter) air temperature.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time height2m
-out_name:          tas
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    ts
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_temperature
-units:             K
-cell_methods:      time: mean
-cell_measures:      area: areacello volume: volcello
-long_name:         Surface Temperature
-comment:           ""skin"" temperature (i.e., SST for open ocean)
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          ts
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tasmin
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     air_temperature
-units:             K
-cell_methods:      time: minimum within days time: mean over days
-long_name:         Daily Minimum Near-Surface Air Temperature
-comment:           monthly mean of the daily-minimum near-surface (usually, 2 meter) air temperature.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time height2m
-out_name:          tasmin
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tasmax
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     air_temperature
-units:             K
-cell_methods:      time: maximum within days time: mean over days
-long_name:         Daily Maximum Near-Surface Air Temperature
-comment:           monthly mean of the daily-maximum near-surface (usually, 2 meter) air temperature.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time height2m
-out_name:          tasmax
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    psl
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     air_pressure_at_sea_level
-units:             Pa
-cell_methods:      time: mean
-long_name:         Sea Level Pressure
-comment:           not, in general, the same as surface pressure
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          psl
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    ps
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_air_pressure
-units:             Pa
-cell_methods:      time: mean
-long_name:         Surface Air Pressure
-comment:           not, in general, the same as mean sea-level pressure
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          ps
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    uas
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     eastward_wind
-units:             m s-1
-cell_methods:      time: mean
-long_name:         Eastward Near-Surface Wind Speed
-comment:           near-surface (usually, 10 meters) eastward component of wind.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time height10m
-out_name:          uas
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    vas
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     northward_wind
-units:             m s-1
-cell_methods:      time: mean
-long_name:         Northward Near-Surface Wind Speed
-comment:           near-surface (usually, 10 meters) northward component of wind.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time height10m
-out_name:          vas
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    sfcWind
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     wind_speed
-units:             m s-1
-cell_methods:      time: mean
-long_name:         Near-Surface Wind Speed
-comment:           near-surface (usually, 10 meters) wind speed.  This is the mean of the speed, not the speed computed from the mean u and v components of wind
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time height10m
-out_name:          sfcWind
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    hurs
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     relative_humidity
-units:             %
-cell_methods:      time: mean
-long_name:         Near-Surface Relative Humidity
-comment:           near-surface (usually, 2meters) relative humidity expressed as a percentage.  This is the relative humidity with respect to liquid water for T> 0 C, and with respect to ice for T<0 C.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time height2m
-out_name:          hurs
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    huss
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     specific_humidity
-units:             1
-cell_methods:      time: mean
-long_name:         Near-Surface Specific Humidity
-comment:           near-surface (usually, 2 meters) specific humidity.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time height2m
-out_name:          huss
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    pr
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     precipitation_flux
-units:             kg m-2 s-1
-cell_methods:      time: mean
-long_name:         Precipitation
-comment:           at surface; includes both liquid and solid phases from all types of clouds (both large-scale and convective)
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          pr
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    prsn
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     snowfall_flux
-units:             kg m-2 s-1
-cell_methods:      time: mean
-long_name:         Snowfall Flux
-comment:           at surface; includes precipitation of all forms of water in the solid phase
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          prsn
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    prc
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     convective_precipitation_flux
-units:             kg m-2 s-1
-cell_methods:      time: mean
-long_name:         Convective Precipitation
-comment:           at surface; includes both liquid and solid phases.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          prc
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    evspsbl
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     water_evaporation_flux
-units:             kg m-2 s-1
-cell_methods:      time: mean
-long_name:         Evaporation
-comment:           at surface; flux of water into the atmosphere due to conversion of both liquid and solid phases to vapor (from underlying surface and vegetation)
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          evspsbl
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    sbl
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     water_sublimation_flux
-units:             kg m-2 s-1
-cell_methods:      time: mean
-long_name:         Surface Snow and Ice Sublimation Flux
-comment:           The snow and ice sublimation flux is the loss of snow and ice mass from the surface resulting from their conversion to water vapor that enters the atmosphere.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          sbl
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tauu
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_downward_eastward_stress
-units:             Pa
-cell_methods:      time: mean
-long_name:         Surface Downward Eastward Wind Stress
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          tauu
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    tauv
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_downward_northward_stress
-units:             Pa
-cell_methods:      time: mean
-long_name:         Surface Downward Northward Wind Stress
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          tauv
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          hfls
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfss
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_sensible_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Sensible Heat Flux
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          hfss
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    rlds
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_downwelling_longwave_flux_in_air
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Downwelling Longwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rlds
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    rlus
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upwelling_longwave_flux_in_air
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upwelling Longwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rlus
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    rsds
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_downwelling_shortwave_flux_in_air
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Downwelling Shortwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rsds
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    rsus
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upwelling_shortwave_flux_in_air
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upwelling Shortwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rsus
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    rsdscs
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_downwelling_shortwave_flux_in_air_assuming_clear_sky
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Downwelling Clear-Sky Shortwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rsdscs
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    rsuscs
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upwelling_shortwave_flux_in_air_assuming_clear_sky
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upwelling Clear-Sky Shortwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rsuscs
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    rldscs
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_downwelling_longwave_flux_in_air_assuming_clear_sky
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Downwelling Clear-Sky Longwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rldscs
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    rsdt
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     toa_incoming_shortwave_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         TOA Incident Shortwave Radiation
-comment:           incident shortwave at the top of the atmosphere
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rsdt
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    rsut
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     toa_outgoing_shortwave_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         TOA Outgoing Shortwave Radiation
-comment:           at the top of the atmosphere
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rsut
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    rlut
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     toa_outgoing_longwave_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         TOA Outgoing Longwave Radiation
-comment:           at the top of the atmosphere (to be compared with satellite measurements)
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rlut
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    rlutcs
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     toa_outgoing_longwave_flux_assuming_clear_sky
-units:             W m-2
-cell_methods:      time: mean
-long_name:         TOA Outgoing Clear-Sky Longwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rlutcs
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    rsutcs
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     toa_outgoing_shortwave_flux_assuming_clear_sky
-units:             W m-2
-cell_methods:      time: mean
-long_name:         TOA Outgoing Clear-Sky Shortwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rsutcs
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    prw
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     atmosphere_water_vapor_content
-units:             kg m-2
-cell_methods:      time: mean
-long_name:         Water Vapor Path
-comment:           vertically integrated through the atmospheric column
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          prw
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    clt
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     cloud_area_fraction
-units:             %
-cell_methods:      time: mean
-long_name:         Total Cloud Fraction
-comment:           for the whole atmospheric column, as seen from the surface or the top of the atmosphere. Include both large-scale and convective cloud.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          clt
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    clwvi
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     atmosphere_cloud_condensed_water_content
-units:             kg m-2
-cell_methods:      time: mean
-long_name:         Condensed Water Path
-comment:           calculate mass of condensed (liquid + ice) water in the column divided by the area of the column (not just the area of the cloudy portion of the column). Include precipitating hydrometeors ONLY if the precipitating hydrometeor affects the calculation of radiative transfer in model.  
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          clwvi
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    clivi
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     atmosphere_cloud_ice_content
-units:             kg m-2
-cell_methods:      time: mean
-long_name:         Ice Water Path
-comment:           calculate mass of ice water in the column divided by the area of the column (not just the area of the cloudy portion of the column). Include precipitating frozen hydrometeors ONLY if the precipitating hydrometeor affects the calculation of radiative transfer in model.  
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          clivi
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    rtmt
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     net_downward_radiative_flux_at_top_of_atmosphere_model
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Net Downward Flux at Top of Model
-comment:           i.e., at the top of that portion of the atmosphere where dynamics are explicitly treated by the model. Report only if this differs from the net downward radiative flux at the top of the atmosphere.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rtmt
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    ccb
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     air_pressure_at_convective_cloud_base
-units:             Pa
-cell_methods:      time: mean
-long_name:         Air Pressure at Convective Cloud Base
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          ccb
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    cct
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     air_pressure_at_convective_cloud_top
-units:             Pa
-cell_methods:      time: mean
-long_name:         Air Pressure at Convective Cloud Top
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          cct
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    ci 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-units:             1
-cell_methods:      time: mean
-long_name:         Fraction of Time Convection Occurs
-comment:           Fraction of time that convection occurs in the grid cell .
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          ci 
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    sci
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-units:             1
-cell_methods:      time: mean
-long_name:         Fraction of Time Shallow Convection Occurs
-comment:           Fraction of time that shallow convection occurs in the grid cell. ( For models with a distinct shallow convection scheme only)
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          sci
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    fco2antt
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-units:             kg  m-2 s-1
-cell_methods:      time: mean
-long_name:         Carbon Mass Flux into Atmosphere Due to All Anthropogenic Emissions of CO2
-comment:           This is requested only for the emission-driven coupled carbon climate model runs.  Do not include natural fire sources, but include all anthropogenic sources, including fossil fuel use, cement production, agricultural burning, and sources associated with anthropogenic land use change excluding forest regrowth.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          fco2antt
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    fco2fos
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-units:             kg m-2 s-1
-cell_methods:      time: mean
-long_name:         Carbon Mass Flux into Atmosphere Due to Fossil Fuel Emissions of CO2
-comment:           This is requested only for the emission-driven coupled carbon climate model runs.  Report the prescribed anthropogenic CO2 flux from fossil fuel use, including cement production, and flaring (but not from land-use changes, agricultural burning, forest regrowth, etc.)
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          fco2fos
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    fco2nat
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-units:             kg m-2 s-1
-cell_methods:      time: mean
-long_name:         Surface Carbon Mass Flux into the Atmosphere Due to Natural Sources
-comment:           Report from all simulations (both emission-driven and concentration-driven) performed by models with fully interactive and responsive carbon cycles.  This is what the atmosphere sees (on its own grid).  This field should be equivalent to the combined natural fluxes of carbon (requested in the L_mon and O_mon tables) that account for natural exchanges between the atmosphere and land or ocean reservoirs (i.e., ""net ecosystem biospheric productivity"", for land, and ""ai [...]
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          fco2nat
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    cl
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     cloud_area_fraction_in_atmosphere_layer
-units:             %
-cell_methods:      time: mean
-cell_measures:      area: areacella
-long_name:         Cloud Area Fraction
-comment:           Report on model layers (not standard pressures).  Include both large-scale and convective cloud.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          cl
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    clw
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mass_fraction_of_cloud_liquid_water_in_air
-units:             1
-cell_methods:      time: mean
-cell_measures:      area: areacella
-long_name:         Mass Fraction of Cloud Liquid Water
-comment:           Report on model layers (not standard pressures).  Include both large-scale and convective cloud.  Calculate as the mass of cloud liquid water in the grid cell divided by the mass of air (including the water in all phases) in the grid cells. Include precipitating hydrometeors ONLY if the precipitating hydrometeor affects the calculation of radiative transfer in model.  
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          clw
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    cli
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mass_fraction_of_cloud_ice_in_air
-units:             1
-cell_methods:      time: mean
-cell_measures:      area: areacella
-long_name:         Mass Fraction of Cloud Ice
-comment:           Report on model layers (not standard pressures).  Include both large-scale and convective cloud.  Calculate as the mass of cloud ice in the grid cell divided by the mass of air (including the water in all phases) in the grid cell. Include precipitating hydrometeors ONLY if the precipitating hydrometeor affects the calculation of radiative transfer in model.  
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          cli
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    mc
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     atmosphere_net_upward_convective_mass_flux
-units:             kg m-2 s-1
-cell_methods:      time: mean
-cell_measures:      area: areacella
-long_name:         Convective Mass Flux
-comment:           Report on model half-levels (i.e., model layer bounds and not standard pressures).  The net mass flux should represent the difference between the updraft and downdraft components.  The flux is computed as the mass divided by the area of the grid cell.  
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevhalf time
-out_name:          mc
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    ta
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     air_temperature
-units:             K
-cell_methods:      time: mean
-cell_measures:      area: areacella
-long_name:         Air Temperature
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude plevs time
-out_name:          ta
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    ua
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     eastward_wind
-units:             m s-1
-cell_methods:      time: mean
-cell_measures:      area: areacella
-long_name:         Eastward Wind
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude plevs time
-out_name:          ua
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    va
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     northward_wind
-units:             m s-1
-cell_methods:      time: mean
-cell_measures:      area: areacella
-long_name:         Northward Wind
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude plevs time
-out_name:          va
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    hus
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     specific_humidity
-units:             1
-cell_methods:      time: mean
-cell_measures:      area: areacella
-long_name:         Specific Humidity
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude plevs time
-out_name:          hus
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    hur
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     relative_humidity
-units:             %
-cell_methods:      time: mean
-cell_measures:      area: areacella
-long_name:         Relative Humidity
-comment:           This is the relative humidity with respect to liquid water for T> 0 C, and with respect to ice for T<0 C.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude plevs time
-out_name:          hur
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    wap
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     lagrangian_tendency_of_air_pressure
-units:             Pa s-1
-cell_methods:      time: mean
-cell_measures:      area: areacella
-long_name:         omega (=dp/dt)
-comment:           commonly referred to as ""omega"", this represents the vertical component of velocity in pressure coordinates (positive down)
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude plevs time
-out_name:          wap
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    zg
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     geopotential_height
-units:             m
-cell_methods:      time: mean
-cell_measures:      area: areacella
-long_name:         Geopotential Height
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude plevs time
-out_name:          zg
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tro3
-!============
-modeling_realm:    atmos atmosChem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_fraction_of_ozone_in_air
-units:             1e-9
-cell_methods:      time: mean
-cell_measures:      area: areacella
-long_name:         Mole Fraction of O3
-comment:           If this does not change over time (except possibly to vary identically over each annual cycle), report instead the variable described in the next table entry. 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude plevs time
-out_name:          tro3
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tro3Clim
-!============
-modeling_realm:    atmos atmosChem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_fraction_of_ozone_in_air
-units:             1e-9
-cell_methods:      time: mean within years time: mean over years
-cell_measures:      area: areacella
-long_name:         Mole Fraction of O3
-comment:           If O3 does not vary from one year to the next, report 12 months, starting with January.   (Note: include all 12 months even if the values don't vary seasonally.)  When calling CMOR, identify this variable as tro3Clim, not tro3. If the O3 varies from one year to the next,  then report instead the field described in the previous table entry.  
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude plevs time2
-out_name:          tro3
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    co2
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_fraction_of_carbon_dioxide_in_air
-units:             1e-6
-cell_methods:      time: mean
-cell_measures:      area: areacella
-long_name:         Mole Fraction of CO2
-comment:           For some simulations (e.g., prescribed concentration pi-control run), this will not vary from one year to the next, and so report instead the variable described in the next table entry.  If spatially uniform, omit this field, but report Total Atmospheric Mass of CO2 (see the table entry after the next one). 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude plevs time
-out_name:          co2
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    co2Clim
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_fraction_of_carbon_dioxide_in_air
-units:             1e-6
-cell_methods:      time: mean within years time: mean over years
-cell_measures:      area: areacella
-long_name:         Mole Fraction of CO2
-comment:           Report only for simulations (e.g., prescribed concentration pi-control run), in which the CO2 does not vary from one year to the next. Report 12 monthly values, starting with January, even if the values don't vary seasonally.  When calling CMOR, identify this variable as co2Clim, not co2.   If  CO2 is spatially uniform, omit this field, but report Total Atmospheric Mass of CO2 (see the table entry after the next).
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude plevs time2
-out_name:          co2
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    co2mass
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-units:             kg
-cell_methods:      time: mean
-long_name:         Total Atmospheric Mass of CO2
-comment:           For some simulations (e.g., prescribed concentration pi-control run), this will not vary from one year to the next, and so report instead the variable described in the next table entry.  If CO2 is spatially nonuniform, omit this field, but report Mole Fraction of CO2 (see the table entry before the previous one). 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        time
-out_name:          co2mass
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    co2massClim
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-units:             kg
-cell_methods:      time: mean within years time: mean over years
-long_name:         Total Atmospheric Mass of CO2
-comment:           Report only for simulations (e.g., prescribed concentration pi-control run), in which the CO2 does not vary from one year to the next. Report 12 monthly values, starting with January, even if the values don't vary seasonally.  When calling CMOR, identify this variable as co2massClim, not co2mass.  If CO2 is spatially nonuniform, omit this field, but report Mole Fraction of CO2 (see the table entry before the previous one). 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        time2
-out_name:          co2mass
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    ch4
-!============
-modeling_realm:    atmos atmosChem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_fraction_of_methane_in_air
-units:             1e-9
-cell_methods:      time: mean
-cell_measures:      area: areacella
-long_name:         Mole Fraction of CH4
-comment:           For some simulations (e.g., prescribed concentration pi-control run), this will not vary from one year to the next, and so report instead the variable described in the next table entry.  If CH4 is spatially uniform, omit this field, but report Global Mean Mole Fraction of CH4 (see the table entry after the next one). 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude plevs time
-out_name:          ch4
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    ch4
-!============
-modeling_realm:    atmos atmosChem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_fraction_of_methane_in_air
-units:             1e-9
-cell_methods:      time: mean within years time: mean over years
-cell_measures:      area: areacella
-long_name:         Mole Fraction of CH4
-comment:           Report only for simulations (e.g., prescribed concentration pi-control run), in which the CH4 does not vary from one year to the next. Report 12 monthly values, starting with January, even if the values don't vary seasonally.  When calling CMOR, identify this variable as ch4global, not ch4.   If  CH4 is spatially uniform, omit this field, but report Global Mean Mole Fraction of CH4 (see the table entry after the next).
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude plevs time2
-out_name:          ch4
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    ch4global
-!============
-modeling_realm:    atmos atmosChem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_fraction_of_methane_in_air
-units:             1e-9
-cell_methods:      time: mean
-long_name:         Global Mean Mole Fraction of CH4
-comment:           For some simulations (e.g., prescribed concentration pi-control run), this will not vary from one year to the next, and so report instead the variable described in the next table entry.  If CH4 is spatially nonuniform, omit this field, but report Mole Fraction of CH4 (see the table entry before the previous one). 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        time
-out_name:          ch4global
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    ch4globalClim
-!============
-modeling_realm:    atmos atmosChem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_fraction_of_methane_in_air
-units:             1e-9
-cell_methods:      time: mean within years time: mean over years
-long_name:         Global Mean Mole Fraction of CH4
-comment:           Report only for simulations (e.g., prescribed concentration pi-control run), in which the CH4 does not vary from one year to the next. Report 12 monthly values, starting with January, even if the values don't vary seasonally.  When calling CMOR, identify this variable as ch4globalClim, not ch4global.  If CH4 is spatially nonuniform, omit this field, but report Global Mean Mole Fraction of CH4 (see the table entry before the previous one). 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        time2
-out_name:          ch4global
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    n2o
-!============
-modeling_realm:    atmos atmosChem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_fraction_of_nitrous_oxide_in_air
-units:             1e-9
-cell_methods:      time: mean
-cell_measures:      area: areacella
-long_name:         Mole Fraction of N2O
-comment:           For some simulations (e.g., prescribed concentration pi-control run), this will not vary from one year to the next, and so report instead the variable described in the next table entry.  If N2O is spatially uniform, omit this field, but report Global Mean Mole Fraction of N2O (see the table entry after the next one). 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude plevs time
-out_name:          n2o
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    n2oClim
-!============
-modeling_realm:    atmos atmosChem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_fraction_of_nitrous_oxide_in_air
-units:             1e-9
-cell_methods:      time: mean within years time: mean over years
-cell_measures:      area: areacella
-long_name:         Mole Fraction of N2O
-comment:           Report only for simulations (e.g., prescribed concentration pi-control run), in which the N2O does not vary from one year to the next. Report 12 monthly values, starting with January, even if the values don't vary seasonally.  When calling CMOR, identify this variable as n2oglobal, not n2o.   If  N2O is spatially uniform, omit this field, but report Global Mean Mole Fraction of N2O (see the table entry after the next).
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude plevs time2
-out_name:          n2o
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    n2oglobal
-!============
-modeling_realm:    atmos atmosChem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_fraction_of_nitrous_oxide_in_air
-units:             1e-9
-cell_methods:      time: mean
-long_name:         Global Mean Mole Fraction of N2O
-comment:           For some simulations (e.g., prescribed concentration pi-control run), this will not vary from one year to the next, and so report instead the variable described in the next table entry.  If N2O is spatially nonuniform, omit this field, but report Mole Fraction of N2O (see the table entry before the previous one). 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        time
-out_name:          n2oglobal
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    n2oglobalClim
-!============
-modeling_realm:    atmos atmosChem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_fraction_of_nitrous_oxide_in_air
-units:             1e-9
-cell_methods:      time: mean within years time: mean over years
-long_name:         Global Mean Mole Fraction of N2O
-comment:           Report only for simulations (e.g., prescribed concentration pi-control run), in which the N2O does not vary from one year to the next. Report 12 monthly values, starting with January, even if the values don't vary seasonally.  When calling CMOR, identify this variable as ch4globalClim, not ch4global.  If N2O is spatially nonuniform, omit this field, but report Global Mean Mole Fraction of N2O (see the table entry before the previous one). 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        time2
-out_name:          n2oglobal
-type:              real
-!----------------------------------
-!
-
-
-!============
-variable_entry:    pfull
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     air_pressure
-units:             Pa
-cell_methods:      time: mean within years time: mean over years
-cell_measures:      area: areacella
-long_name:         Pressure on Model Levels
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time2
-out_name:          pfull
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    phalf
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     air_pressure
-units:             Pa
-cell_methods:      time: mean within years time: mean over years
-cell_measures:      area: areacella
-long_name:         Pressure on Model Half-Levels
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevhalf time2
-out_name:          phalf
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls0 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls0 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls1 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls1 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls2 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls2 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls3 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls3 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls4 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls4 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls5 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls5 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls6 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls6 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls7 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls7 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls8 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls8 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls9 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls9 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls10 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls10 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls11 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls11 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls12 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls12 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls13 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls13 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls14 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls14 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls15 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls15 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls16 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls16 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls17 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls17 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls18 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls18 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls19 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls19 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls20 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls20 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls21 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls21 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls22 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls22 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls23 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls23 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls24 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls24 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls25 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls25 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls26 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls26 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls27 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls27 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls28 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls28 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls29 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls29 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls30 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls30 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls31 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls31 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls32 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls32 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls33 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls33 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls34 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls34 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls35 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls35 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls36 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls36 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls37 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls37 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls38 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls38 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls39 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls39 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls40 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls40 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls41 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls41 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls42 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls42 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls43 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls43 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls44 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls44 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls45 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls45 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls46 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls46 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls47 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls47 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls48 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls48 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls49 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls49 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls50 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls50 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls51 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls51 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls52 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls52 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls53 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls53 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls54 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls54 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls55 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls55 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls56 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls56 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls57 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls57 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls58 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls58 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls59 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls59 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls60 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls60 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls61 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls61 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls62 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls62 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls63 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls63 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls64 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls64 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls65 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls65 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls66 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls66 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls67 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls67 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls68 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls68 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls69 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls69 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls70 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls70 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls71 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls71 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls72 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls72 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls73 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls73 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls74 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls74 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls75 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls75 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls76 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls76 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls77 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls77 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls78 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls78 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls79 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls79 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls80 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls80 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls81 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls81 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls82 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls82 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls83 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls83 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls84 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls84 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls85 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls85 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls86 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls86 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls87 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls87 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls88 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls88 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls89 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls89 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls90 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls90 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls91 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls91 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls92 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls92 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls93 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls93 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls94 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls94 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls95 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls95 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls96 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls96 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls97 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls97 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls98 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls98 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls99 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls99 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls100 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls100 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls101 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls101 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls102 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls102 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls103 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls103 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls104 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls104 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls105 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls105 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls106 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls106 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls107 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls107 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls108 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls108 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls109 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls109 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls110 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls110 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls111 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls111 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls112 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls112 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls113 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls113 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls114 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls114 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls115 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls115 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls116 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls116 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls117 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls117 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls118 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls118 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls119 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls119 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls120 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls120 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls121 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls121 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls122 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls122 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls123 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls123 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls124 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls124 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls125 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls125 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls126 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls126 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls127 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls127 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls128 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls128 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls129 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls129 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls130 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls130 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls131 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls131 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls132 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls132 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls133 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls133 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls134 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls134 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls135 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls135 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls136 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls136 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls137 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls137 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls138 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls138 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls139 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls139 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls140 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls140 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls141 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls141 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls142 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls142 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls143 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls143 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls144 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls144 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls145 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls145 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls146 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls146 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls147 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls147 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls148 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls148 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls149 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls149 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls150 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls150 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls151 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls151 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls152 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls152 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls153 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls153 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls154 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls154 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls155 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls155 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls156 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls156 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls157 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls157 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls158 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls158 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls159 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls159 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls160 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls160 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls161 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls161 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls162 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls162 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls163 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls163 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls164 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls164 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls165 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls165 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls166 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls166 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls167 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls167 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls168 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls168 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls169 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls169 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls170 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls170 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls171 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls171 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls172 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls172 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls173 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls173 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls174 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls174 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls175 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls175 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls176 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls176 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls177 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls177 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls178 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls178 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls179 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls179 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls180 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls180 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls181 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls181 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls182 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls182 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls183 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls183 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls184 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls184 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls185 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls185 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls186 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls186 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls187 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls187 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls188 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls188 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls189 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls189 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls190 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls190 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls191 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls191 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls192 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls192 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls193 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls193 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls194 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls194 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls195 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls195 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls196 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls196 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls197 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls197 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls198 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls198 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls199 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls199 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls200 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls200 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls201 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls201 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls202 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls202 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls203 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls203 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls204 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls204 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls205 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls205 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls206 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls206 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls207 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls207 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls208 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls208 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls209 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls209 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls210 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls210 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls211 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls211 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls212 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls212 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls213 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls213 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls214 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls214 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls215 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls215 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls216 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls216 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls217 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls217 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls218 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls218 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls219 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls219 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls220 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls220 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls221 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls221 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls222 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls222 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls223 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls223 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls224 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls224 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls225 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls225 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls226 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls226 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls227 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls227 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls228 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls228 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls229 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls229 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls230 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls230 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls231 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls231 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls232 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls232 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls233 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls233 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls234 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls234 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls235 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls235 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls236 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls236 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls237 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls237 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls238 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls238 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls239 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls239 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls240 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls240 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls241 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls241 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls242 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls242 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls243 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls243 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls244 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls244 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls245 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls245 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls246 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls246 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls247 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls247 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls248 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls248 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls249 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls249 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls250 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls250 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls251 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls251 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls252 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls252 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls253 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls253 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls254 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls254 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls255 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls255 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls256 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls256 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls257 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls257 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls258 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls258 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls259 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls259 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls260 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls260 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls261 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls261 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls262 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls262 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls263 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls263 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls264 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls264 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls265 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls265 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls266 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls266 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls267 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls267 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls268 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls268 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls269 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls269 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls270 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls270 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls271 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls271 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls272 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls272 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls273 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls273 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls274 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls274 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls275 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls275 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls276 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls276 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls277 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls277 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls278 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls278 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls279 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls279 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls280 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls280 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls281 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls281 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls282 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls282 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls283 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls283 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls284 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls284 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls285 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls285 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls286 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls286 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls287 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls287 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls288 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls288 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls289 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls289 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls290 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls290 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls291 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls291 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls292 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls292 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls293 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls293 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls294 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls294 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls295 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls295 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls296 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls296 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls297 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls297 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls298 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls298 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls299 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls299 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls300 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls300 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls301 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls301 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls302 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls302 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls303 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls303 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls304 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls304 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls305 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls305 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls306 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls306 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls307 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls307 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls308 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls308 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls309 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls309 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls310 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls310 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls311 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls311 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls312 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls312 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls313 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls313 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls314 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls314 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls315 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls315 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls316 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls316 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls317 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls317 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls318 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls318 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls319 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls319 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls320 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls320 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls321 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls321 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls322 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls322 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls323 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls323 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls324 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls324 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls325 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls325 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls326 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls326 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls327 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls327 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls328 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls328 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls329 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls329 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls330 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls330 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls331 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls331 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls332 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls332 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls333 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls333 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls334 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls334 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls335 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls335 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls336 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls336 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls337 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls337 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls338 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls338 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls339 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls339 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls340 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls340 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls341 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls341 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls342 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls342 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls343 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls343 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls344 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls344 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls345 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls345 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls346 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls346 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls347 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls347 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls348 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls348 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls349 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls349 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls350 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls350 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls351 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls351 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls352 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls352 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls353 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls353 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls354 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls354 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls355 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls355 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls356 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls356 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls357 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls357 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls358 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls358 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls359 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls359 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls360 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls360 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls361 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls361 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls362 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls362 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls363 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls363 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls364 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls364 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls365 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls365 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls366 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls366 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls367 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls367 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls368 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls368 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls369 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls369 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls370 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls370 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls371 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls371 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls372 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls372 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls373 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls373 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls374 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls374 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls375 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls375 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls376 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls376 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls377 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls377 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls378 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls378 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls379 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls379 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls380 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls380 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls381 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls381 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls382 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls382 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls383 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls383 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls384 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls384 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls385 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls385 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls386 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls386 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls387 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls387 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls388 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls388 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls389 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls389 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls390 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls390 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls391 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls391 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls392 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls392 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls393 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls393 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls394 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls394 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls395 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls395 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls396 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls396 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls397 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls397 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls398 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls398 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls399 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:           hfls399 
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
diff --git a/Test/CMIP5_cf3hr.txt b/Test/CMIP5_cf3hr.txt
deleted file mode 100644
index 0d9f43b..0000000
--- a/Test/CMIP5_cf3hr.txt
+++ /dev/null
@@ -1,230 +0,0 @@
-table_id: Table cf3hr
-modeling_realm: atmos
-
-cmor_version: 2.0         ! version of CMOR that can read this table
-cf_version:   1.4         ! version of CF that output conforms to
-project_id:   CMIP5  ! project id
-table_date:   23 June 2009 ! date this table was constructed
-
-missing_value: 1.e20      ! value used to indicate a missing value
-                          !   in arrays output by netCDF as 32-bit IEEE 
-                          !   floating-point numbers (float or real)
-
-required_global_attributes: creation_date tracking_id forcing model_id ! space separated required global attribute
-
-expt_id_ok: '10-and 30-year predictions XXXX' 'decadal-XXXX'
-expt_id_ok: 'volcano-free hindcasts' 'no-volcano'
-expt_id_ok: 'prediction with 2010 volcano' 'volcano-2010'
-expt_id_ok: 'chemistry-focused runs XXXX' 'decadal-chem-XXXX'
-expt_id_ok: 'pre-industrial control' 'pi-control'
-expt_id_ok: 'Historical' 'historical'
-expt_id_ok: 'mid-Holocene' 'mid-holocene'
-expt_id_ok: 'last glacial maximum' 'lgm'
-expt_id_ok: 'last millennium' 'past-1000'
-expt_id_ok: 'RCP4.5' 'rcp45'
-expt_id_ok: 'RCP8.5' 'rcp85'
-expt_id_ok: 'RCP2.X' 'rcp2x'
-expt_id_ok: 'RCP6' 'rcp6'
-expt_id_ok: 'ESM pre-industrial control' 'esm-control'
-expt_id_ok: 'ESM historical' 'esm-historical'
-expt_id_ok: 'ESM RCP8.5' 'esm-rcp85'
-expt_id_ok: 'ESM fixed climate 1' 'esm-fixclim1'
-expt_id_ok: 'ESM fixed climate 2' 'esm-fixclim2'
-expt_id_ok: 'ESM feedback 1' 'esm-fdbk1'
-expt_id_ok: 'ESM feedback 2' 'esm-fdbk2'
-expt_id_ok: '1 percent per year CO2' '1pct-co2'
-expt_id_ok: 'abrupt 4XCO2' 'abrupt-4xco2'
-expt_id_ok: 'natural-only' 'historical-nat???'
-expt_id_ok: 'GHG-only' 'historical-ghg???'
-expt_id_ok: 'other-only' 'historical-???'
-expt_id_ok: 'AMIP' 'amip'
-expt_id_ok: '2030 time-slice' 'sst-2030'
-expt_id_ok: 'control SST climatology' 'sstclim'
-expt_id_ok: 'CO2 forcing' 'sstclim-4xco2'
-expt_id_ok: 'aerosol forcing' 'sstclim-aerosol'
-expt_id_ok: '4xCO2 AMIP' 'amip-4xco2'
-expt_id_ok: 'AMIP plus patterned anomaly' 'amip-future'
-expt_id_ok: 'aqua planet control' 'aqua-control'
-expt_id_ok: '4xCO2 aqua planet' 'aqua-4xco2'
-expt_id_ok: 'aqua planet plus 4K anomaly' 'aqua-4k'
-expt_id_ok: 'AMIP plus 4K anomaly' 'amip-4k'
-
-
-approx_interval:  1.000000     ! approximate spacing between successive time
-                          !   samples (in units of the output time 
-                          !   coordinate.
-
-
-!============
-axis_entry: height40
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-standard_name:    altitude
-units:            m
-axis:             Z             ! X, Y, Z, T (default: undeclared)
-positive:         up         ! up or down (default: undeclared)
-long_name:        altitude
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         height40
-!stored_direction: increasing
-tolerance:        0.001
-
-type:             double
-! requested:        240. 720. 1200. 1680. 2160. 2640. 3120. 3600. 4080. 4560. 5040. 5520. 6000. 6480. 6960. 7440. 7920. 8400. 8880. 9360. 9840. 10320. 10800. 11280. 11760. 12240. 12720. 13200. 13680. 14160. 14640. 15120. 15600. 16080. 16560. 17040. 17520. 18000. 18480. 18960.        ! space-separated list of requested coordinates 
-! requested_bounds: . 0. 480. 480. 960. 960. 1440. 1440. 1920. 1920. 2400. 2400. 2880. 2880. 3360. 3360. 3840. 3840. 4320. 4320. 4800. 4800. 5280. 5280. 5760. 5760. 6240. 6240. 6720. 6720. 7200. 7200. 7680. 7680. 8160. 8160. 8640. 8640. 9120. 9120. 9600. 9600. 10080. 10080. 10560. 10560. 11040. 11040. 11520. 11520. 12000. 12000. 12480. 12480. 12960. 12960. 13440. 13440. 13920. 13920. 14400. 14400. 14880. 14880. 15360. 15360. 15840. 15840. 16320. 16320. 16800. 16800. 17280. 17280. 17760.  [...]
-must_have_bounds: yes
-!----------------------------------
-!
-
-!============
-axis_entry: location
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-standard_name:    profile_id
-units:            1
-long_name:        location index
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         loc
-stored_direction: increasing
-type:             double
-must_have_bounds: no
-index_only:       ok
-!----------------------------------
-!
-
-!============
-axis_entry: section
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-standard_name:    section_id
-units:            days since ?
-axis:             T             ! X, Y, Z, T (default: undeclared)
-long_name:        section
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         section
-stored_direction: increasing
-type:             double
-must_have_bounds: no
-!----------------------------------
-!
-!============
-axis_entry: vertices
-!============
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    vertices
-units:            1
-long_name:        vertices
-!
-!============
-variable_entry: longitude
-!============
-modeling_realm:  atmos
-
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:  longitude 
-units:         degrees_east
-long_name:          Longitude
-comment:      function of time
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:      location section
-out_name:  lon
-type:      real
-!----------------------------------
-!
-!============
-variable_entry: latitude 
-!============
-modeling_realm:  atmos
-
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:  latitude
-units:         degrees_north
-long_name:          Latitude
-comment:      function of time
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:      location section
-out_name:  lat
-type:      real
-!----------------------------------
-!
-!============
-variable_entry: vertices_longitude
-!============
-!----------------------------------	
-standard_name:    vertices_longitude
-units:            degrees_east
-long_name:        longitude vertices coordinate 
-dimensions:	  vertices location section
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         vertices_lon
-valid_min:        0.        
-valid_max:        360.       
-!----------------------------------	
-!
-!
-!============
-variable_entry: vertices_latitude
-!============
-!----------------------------------	
-standard_name:    vertices_latitude
-units:            degrees_north
-long_name:        latitude vertices coordinate
-dimensions:	  vertices location section
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         vertices_lat
-valid_min:        -90.        
-valid_max:        90.
-!----------------------------------	
-!
-!
-
-!============
-variable_entry: curtain
-!============
-modeling_realm:  atmos
-
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-units:         1
-long_name:     curtain
-comment:      Test of curtain format with grid
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:      height40 location section
-out_name:  curtain
-type:      real
-!----------------------------------
-!
-
diff --git a/Test/CMIP5_cf3hr_0.txt b/Test/CMIP5_cf3hr_0.txt
deleted file mode 100644
index 34b0dbe..0000000
--- a/Test/CMIP5_cf3hr_0.txt
+++ /dev/null
@@ -1,185 +0,0 @@
-table_id: Table cf3hr
-modeling_realm: atmos
-
-cmor_version: 2.0         ! version of CMOR that can read this table
-cf_version:   1.4         ! version of CF that output conforms to
-project_id:   CMIP5  ! project id
-table_date:   23 June 2009 ! date this table was constructed
-
-missing_value: 1.e20      ! value used to indicate a missing value
-                          !   in arrays output by netCDF as 32-bit IEEE 
-                          !   floating-point numbers (float or real)
-
-required_global_attributes: creation_date tracking_id forcing model_id ! space separated required global attribute
-
-expt_id_ok: '10-and 30-year predictions XXXX' 'decadal-XXXX'
-expt_id_ok: 'volcano-free hindcasts' 'no-volcano'
-expt_id_ok: 'prediction with 2010 volcano' 'volcano-2010'
-expt_id_ok: 'chemistry-focused runs XXXX' 'decadal-chem-XXXX'
-expt_id_ok: 'pre-industrial control' 'pi-control'
-expt_id_ok: 'Historical' 'historical'
-expt_id_ok: 'mid-Holocene' 'mid-holocene'
-expt_id_ok: 'last glacial maximum' 'lgm'
-expt_id_ok: 'last millennium' 'past-1000'
-expt_id_ok: 'RCP4.5' 'rcp45'
-expt_id_ok: 'RCP8.5' 'rcp85'
-expt_id_ok: 'RCP2.X' 'rcp2x'
-expt_id_ok: 'RCP6' 'rcp6'
-expt_id_ok: 'ESM pre-industrial control' 'esm-control'
-expt_id_ok: 'ESM historical' 'esm-historical'
-expt_id_ok: 'ESM RCP8.5' 'esm-rcp85'
-expt_id_ok: 'ESM fixed climate 1' 'esm-fixclim1'
-expt_id_ok: 'ESM fixed climate 2' 'esm-fixclim2'
-expt_id_ok: 'ESM feedback 1' 'esm-fdbk1'
-expt_id_ok: 'ESM feedback 2' 'esm-fdbk2'
-expt_id_ok: '1 percent per year CO2' '1pct-co2'
-expt_id_ok: 'abrupt 4XCO2' 'abrupt-4xco2'
-expt_id_ok: 'natural-only' 'historical-nat???'
-expt_id_ok: 'GHG-only' 'historical-ghg???'
-expt_id_ok: 'other-only' 'historical-???'
-expt_id_ok: 'AMIP' 'amip'
-expt_id_ok: '2030 time-slice' 'sst-2030'
-expt_id_ok: 'control SST climatology' 'sstclim'
-expt_id_ok: 'CO2 forcing' 'sstclim-4xco2'
-expt_id_ok: 'aerosol forcing' 'sstclim-aerosol'
-expt_id_ok: '4xCO2 AMIP' 'amip-4xco2'
-expt_id_ok: 'AMIP plus patterned anomaly' 'amip-future'
-expt_id_ok: 'aqua planet control' 'aqua-control'
-expt_id_ok: '4xCO2 aqua planet' 'aqua-4xco2'
-expt_id_ok: 'aqua planet plus 4K anomaly' 'aqua-4k'
-expt_id_ok: 'AMIP plus 4K anomaly' 'amip-4k'
-
-
-approx_interval:  1.000000     ! approximate spacing between successive time
-                          !   samples (in units of the output time 
-                          !   coordinate.
-
-
-!============
-axis_entry: height40
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-standard_name:    altitude
-units:            m
-axis:             Z             ! X, Y, Z, T (default: undeclared)
-positive:         up         ! up or down (default: undeclared)
-long_name:        altitude
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         height40
-!stored_direction: increasing
-tolerance:        0.001
-
-type:             double
-! requested:        240. 720. 1200. 1680. 2160. 2640. 3120. 3600. 4080. 4560. 5040. 5520. 6000. 6480. 6960. 7440. 7920. 8400. 8880. 9360. 9840. 10320. 10800. 11280. 11760. 12240. 12720. 13200. 13680. 14160. 14640. 15120. 15600. 16080. 16560. 17040. 17520. 18000. 18480. 18960.        ! space-separated list of requested coordinates 
-! requested_bounds: . 0. 480. 480. 960. 960. 1440. 1440. 1920. 1920. 2400. 2400. 2880. 2880. 3360. 3360. 3840. 3840. 4320. 4320. 4800. 4800. 5280. 5280. 5760. 5760. 6240. 6240. 6720. 6720. 7200. 7200. 7680. 7680. 8160. 8160. 8640. 8640. 9120. 9120. 9600. 9600. 10080. 10080. 10560. 10560. 11040. 11040. 11520. 11520. 12000. 12000. 12480. 12480. 12960. 12960. 13440. 13440. 13920. 13920. 14400. 14400. 14880. 14880. 15360. 15360. 15840. 15840. 16320. 16320. 16800. 16800. 17280. 17280. 17760.  [...]
-must_have_bounds: yes
-!----------------------------------
-!
-
-!============
-axis_entry: location
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-standard_name:    profile_id
-units:            1
-long_name:        location index
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         loc
-stored_direction: increasing
-type:             double
-must_have_bounds: no
-index_only:       ok
-!----------------------------------
-!
-
-!============
-axis_entry: section
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-standard_name:    section_id
-units:            1
-long_name:        section
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         section
-stored_direction: increasing
-type:             double
-must_have_bounds: no
-index_only:       ok
-!----------------------------------
-!
-
-
-!============
-variable_entry: longitude
-!============
-modeling_realm:  atmos
-
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:  longitude
-units:         degrees_east
-long_name:          Longitude
-comment:      function of time
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:      location
-out_name:  lon
-type:      real
-!----------------------------------
-!
-
-!============
-variable_entry: latitude
-!============
-modeling_realm:  atmos
-
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:  latitude
-units:         degrees_north
-long_name:          Latitude
-comment:      function of time
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:      location
-out_name:  lat
-type:      real
-!----------------------------------
-!
-
-!============
-variable_entry: curtain
-!============
-modeling_realm:  atmos
-
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-units:         1
-long_name:     curtain
-comment:      Test of curtain format with grid
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:      location section height40
-out_name:  curtain
-type:      real
-!----------------------------------
-!
-
diff --git a/Test/CMIP5_cf3hr_1.txt b/Test/CMIP5_cf3hr_1.txt
deleted file mode 100644
index 49161c9..0000000
--- a/Test/CMIP5_cf3hr_1.txt
+++ /dev/null
@@ -1,185 +0,0 @@
-table_id: Table cf3hr
-modeling_realm: atmos
-
-cmor_version: 2.0         ! version of CMOR that can read this table
-cf_version:   1.4         ! version of CF that output conforms to
-project_id:   CMIP5  ! project id
-table_date:   23 June 2009 ! date this table was constructed
-
-missing_value: 1.e20      ! value used to indicate a missing value
-                          !   in arrays output by netCDF as 32-bit IEEE 
-                          !   floating-point numbers (float or real)
-
-required_global_attributes: creation_date tracking_id forcing model_id ! space separated required global attribute
-
-expt_id_ok: '10-and 30-year predictions XXXX' 'decadal-XXXX'
-expt_id_ok: 'volcano-free hindcasts' 'no-volcano'
-expt_id_ok: 'prediction with 2010 volcano' 'volcano-2010'
-expt_id_ok: 'chemistry-focused runs XXXX' 'decadal-chem-XXXX'
-expt_id_ok: 'pre-industrial control' 'pi-control'
-expt_id_ok: 'Historical' 'historical'
-expt_id_ok: 'mid-Holocene' 'mid-holocene'
-expt_id_ok: 'last glacial maximum' 'lgm'
-expt_id_ok: 'last millennium' 'past-1000'
-expt_id_ok: 'RCP4.5' 'rcp45'
-expt_id_ok: 'RCP8.5' 'rcp85'
-expt_id_ok: 'RCP2.X' 'rcp2x'
-expt_id_ok: 'RCP6' 'rcp6'
-expt_id_ok: 'ESM pre-industrial control' 'esm-control'
-expt_id_ok: 'ESM historical' 'esm-historical'
-expt_id_ok: 'ESM RCP8.5' 'esm-rcp85'
-expt_id_ok: 'ESM fixed climate 1' 'esm-fixclim1'
-expt_id_ok: 'ESM fixed climate 2' 'esm-fixclim2'
-expt_id_ok: 'ESM feedback 1' 'esm-fdbk1'
-expt_id_ok: 'ESM feedback 2' 'esm-fdbk2'
-expt_id_ok: '1 percent per year CO2' '1pct-co2'
-expt_id_ok: 'abrupt 4XCO2' 'abrupt-4xco2'
-expt_id_ok: 'natural-only' 'historical-nat???'
-expt_id_ok: 'GHG-only' 'historical-ghg???'
-expt_id_ok: 'other-only' 'historical-???'
-expt_id_ok: 'AMIP' 'amip'
-expt_id_ok: '2030 time-slice' 'sst-2030'
-expt_id_ok: 'control SST climatology' 'sstclim'
-expt_id_ok: 'CO2 forcing' 'sstclim-4xco2'
-expt_id_ok: 'aerosol forcing' 'sstclim-aerosol'
-expt_id_ok: '4xCO2 AMIP' 'amip-4xco2'
-expt_id_ok: 'AMIP plus patterned anomaly' 'amip-future'
-expt_id_ok: 'aqua planet control' 'aqua-control'
-expt_id_ok: '4xCO2 aqua planet' 'aqua-4xco2'
-expt_id_ok: 'aqua planet plus 4K anomaly' 'aqua-4k'
-expt_id_ok: 'AMIP plus 4K anomaly' 'amip-4k'
-
-
-approx_interval:  1.000000     ! approximate spacing between successive time
-                          !   samples (in units of the output time 
-                          !   coordinate.
-
-
-!============
-axis_entry: height40
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-standard_name:    altitude
-units:            m
-axis:             Z             ! X, Y, Z, T (default: undeclared)
-positive:         up         ! up or down (default: undeclared)
-long_name:        altitude
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         height40
-!stored_direction: increasing
-tolerance:        0.001
-
-type:             double
-! requested:        240. 720. 1200. 1680. 2160. 2640. 3120. 3600. 4080. 4560. 5040. 5520. 6000. 6480. 6960. 7440. 7920. 8400. 8880. 9360. 9840. 10320. 10800. 11280. 11760. 12240. 12720. 13200. 13680. 14160. 14640. 15120. 15600. 16080. 16560. 17040. 17520. 18000. 18480. 18960.        ! space-separated list of requested coordinates 
-! requested_bounds: . 0. 480. 480. 960. 960. 1440. 1440. 1920. 1920. 2400. 2400. 2880. 2880. 3360. 3360. 3840. 3840. 4320. 4320. 4800. 4800. 5280. 5280. 5760. 5760. 6240. 6240. 6720. 6720. 7200. 7200. 7680. 7680. 8160. 8160. 8640. 8640. 9120. 9120. 9600. 9600. 10080. 10080. 10560. 10560. 11040. 11040. 11520. 11520. 12000. 12000. 12480. 12480. 12960. 12960. 13440. 13440. 13920. 13920. 14400. 14400. 14880. 14880. 15360. 15360. 15840. 15840. 16320. 16320. 16800. 16800. 17280. 17280. 17760.  [...]
-must_have_bounds: yes
-!----------------------------------
-!
-
-!============
-axis_entry: location
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-standard_name:    profile_id
-units:            1
-long_name:        location index
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         loc
-stored_direction: increasing
-type:             double
-must_have_bounds: no
-index_only:       ok
-!----------------------------------
-!
-
-!============
-axis_entry: section
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-standard_name:    section_id
-units:            days since ?
-axis:             T             ! X, Y, Z, T (default: undeclared)
-long_name:        section
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         section
-stored_direction: increasing
-type:             double
-must_have_bounds: no
-!----------------------------------
-!
-
-
-!============
-variable_entry: longitude
-!============
-modeling_realm:  atmos
-
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:  longitude
-units:         degrees_east
-long_name:          Longitude
-comment:      function of time
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:      location
-out_name:  lon
-type:      real
-!----------------------------------
-!
-
-!============
-variable_entry: latitude
-!============
-modeling_realm:  atmos
-
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:  latitude
-units:         degrees_north
-long_name:          Latitude
-comment:      function of time
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:      location
-out_name:  lat
-type:      real
-!----------------------------------
-!
-
-!============
-variable_entry: curtain
-!============
-modeling_realm:  atmos
-
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-units:         1
-long_name:     curtain
-comment:      Test of curtain format with grid
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:      location section height40
-out_name:  curtain
-type:      real
-!----------------------------------
-!
-
diff --git a/Test/CMOR_SAMPLE_TABLE b/Test/CMOR_SAMPLE_TABLE
deleted file mode 100644
index 0dc32ed..0000000
--- a/Test/CMOR_SAMPLE_TABLE
+++ /dev/null
@@ -1,860 +0,0 @@
-cmor_version: 1.0         ! version of CMOR that can read this table
-cf_version:   1.3         ! version of CF that output conforms to
-project_id:   IPCC        ! project id
-table_id:     Table 2     ! table id
-table_date:   22 October 2008 ! date this table was last updated
-
-modeling_realm: 	      atm 
-
-expt_id_ok:   'committed climate change experiment'  'ccce' ! official name(s) of 
-expt_id_ok:   'SRES A2 experiment'                   !  project's experiments
-expt_id_ok:   'control experiment (for committed climate change experiment)'
-expt_id_ok:   '720 ppm stabilization experiment (SRES A1B)'    
-expt_id_ok:   '550 ppm stabilization experiment (SRES B1)'
-expt_id_ok:   '1%/year CO2 increase experiment (to doubling)'
-expt_id_ok:   '1%/year CO2 increase experiment (to quadrupling)'
-expt_id_ok:   'control experiment (for 1%/year CO2 run)'
-expt_id_ok:   '2xCO2 equilibrium experiment' '2xco2'
-expt_id_ok:   'control experiment (for 2xCO2 run)'
-
-required_global_attributes: creation_date tracking_id model_id forcing
-
-
-magic_number: -1          ! used to check whether this file has been 
-                          !   altered from the official version.
-                          !   should be set to number of non-blank 
-                          !   characters in file. 
-approx_interval:  30.     ! approximate spacing between successive time
-                          !   samples (in units of the output time 
-                          !   coordinate.
-missing_value: 1.e20      ! value used to indicate a missing value
-                          !   in arrays output by netCDF as 32-bit IEEE 
-                          !   floating-point numbers (float or real)
-
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-! SUBROUTINE ARGUMENT DEFAULT INFORMATION
-!
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-!  set default specifications for subroutine arguments to:
-!     required/indeterminate/optional/ignored/forbidden
-!    (indeterminate may or may not be required information, but is not always
-!     required as an argument of the function call)
-!
-!
-!============
-subroutine_entry: cmor_axis
-!============
-!
-required: table axis_name units length coord_vals cell_bounds
-ignored: interval
-!
-!============
-subroutine_entry: cmor_variable
-!============
-!
-required: table table_entry units axis_ids
-indeterminate: missing_value
-optional: tolerance original_name history comment
-ignored: positive
-!
-!============
-subroutine_entry: cmor_write
-!============
-!
-required:  var_id data 
-indeterminate: ntimes_passed time_vals time_bnds store_with
-optional: file_suffix
-!
-!
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-! AXIS INFORMATION
-!
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-! ??? what about climatology???
-! ??? what about model level data???
-!
-!
-!  TEMPLATE FOR AXES
-!
-!============
-!axis_entry:               ! (required)
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-!    acceptable arguments include units length coord_vals cell_bounds interval
-!required:                  ! (default: table axis_name units length
-!                                        coord_vals cell_bounds)
-!indeterminate:
-!optional:
-!ignored:                   ! (default: interval)
-!forbidden:
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-!standard_name:             ! (required)
-!units:                     ! (required)
-!axis:                      ! X, Y, Z, T (default: undeclared)
-!positive:                  ! up or down (default: undeclared)
-!long_name:                 ! (default: undeclared)
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-!out_name:                ! (default: same as axis_entry) 
-!type:                    ! double (default), real, character, integer
-!stored_direction:        ! increasing (default) or decreasing
-!valid_min:               ! type: double precision (default: no check performed
-!valid_max:               ! type: double precision (default: no check performed
-!requested:               ! space-separated list of requested coordinates 
-                          !       (default: undeclared)
-!requested_bounds:        ! space-separated list of requested coordinate bounds
-                          !       (default: undeclared)
-!tol_on_requests:         ! fractional tolerance for meeting request
-                          !  (default=1.e-3, which is used in the formula:
-                          !     eps =  MIN(( tol*interval between grid-points)
-                          !          and (1.e-3*tol*coordinate value)))
-!value:                   ! of scalar (singleton) dimension 
-!bounds_values:           ! of scalar (singleton) dimension bounds
-!----------------------------------	
-!
-!
-!  TEMPLATE FOR VARIABLES
-!
-!
-!============
-!variable_entry:                ! (required)
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!        acceptable arguments include  file_suffix missing_value tolerance 
-!                               original_name history comment positive
-!required:                   ! (default: table table_entry units axis_ids)
-!indeterminate:              ! (default: file_suffix missing_value)
-!optional:                   ! (default: original_name history comment)
-!ignored:                    ! (default: positive)
-!forbidden:
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-!standard_name:              ! (required)
-!units:                      ! (required)
-!cell_methods:               ! (default: undeclared)
-!long_name:                  ! (default: undeclared)
-!comment:                    ! (default: undeclared)
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-!dimensions:                 ! (required)  (scalar dimension(s) should appear
-                             !      last in list)
-!out_name:                   ! (default: variable_entry)
-!type:                       ! real (default), double, integer 
-!positive:                   ! up or down (default: undeclared)
-!valid_min:                  ! type: real (default: no check performed)
-!valid_max:                  ! type: real (default: no check performed)
-!ok_min_mean_abs:            ! type: real (default: no check performed)
-!ok_max_mean_abs:            ! type: real (default: no check performed)
-!----------------------------------	
-! 
-
-!
-!============
-axis_entry: longitude
-!============
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    longitude
-units:            degrees_east
-axis:             X
-long_name:        longitude
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lon
-valid_min:        0.           ! CMOR will add n*360 to input values
-                               ! (where n is an integer) to ensure 
-                               !  longitudes are in proper range.  The
-                               !  data will also be rearranged 
-                               !  appropriately.
-valid_max:        360.         !  see above comment.
-!----------------------------------	
-!
-!
-!=============
-axis_entry: latitude
-!=============
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    latitude
-units:            degrees_north
-axis:             Y
-long_name:        latitude
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lat
-valid_min:        -90.
-valid_max:        90.
-!----------------------------------	
-!
-!
-
-! ??? What about climatological data???
-!
-
-!============
-axis_entry: time
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-!required: interval
-optional: interval
-indeterminate: coord_vals cell_bounds
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    time
-units:            days since 1979-1-1
-axis:             T
-long_name:        time
-!----------------------------------	
-!
-!
-!============
-axis_entry: pressure
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-ignored: cell_bounds
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    air_pressure
-units:            Pa 
-axis:             Z
-positive:         down
-long_name:        pressure
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         plev
-valid_min:        0.
-valid_max:        110000.
-requested:        10000. 20000. 30000. 40000. 50000.
-!----------------------------------	
-!
-!
-!============
-axis_entry: region
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-ignored: units cell_bounds
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    region
-long_name:        region
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-type:             character
-requested:        atlantic_ocean indian_ocean pacific_ocean global_ocean
-!----------------------------------	
-!
-!
-!============
-axis_entry: height1
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-ignored: cell_bounds
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    height
-units:            m
-axis:             Z
-positive:         up
-long_name:        height
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         height
-valid_min:        0.
-valid_max:        10.
-value:            2.
-!----------------------------------	
-!
-!
-!============
-axis_entry: height2
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-ignored: cell_bounds
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    height
-units:            m
-axis:             Z
-positive:         up
-long_name:        height
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         height
-valid_min:        0.
-valid_max:        30.
-value:            10.
-!----------------------------------	
-!
-!============
-axis_entry: depth1
-!============
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    depth
-units:            m
-axis:             Z
-positive:         down
-long_name:         depth
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         depth
-valid_min:        0.0
-valid_max:        1.0
-value:            0.05
-bounds_values:    0.0 0.1
-!----------------------------------
-!
-!
-!============
-axis_entry: standard_sigma
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-optional: units
-ignored:  coord_vals
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    atmosphere_sigma_coordinate
-axis:             Z
-positive:         down
-long_name:        sigma coordinate
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lev
-valid_min:        0.0
-valid_max:        1.0
-formula:          p(n,k,j,i) = ptop + sigma(k)*(ps(n,j,i) - ptop)
-convert_to:       standard_hybrid_sigma
-z_factors:        ptop sigma ps
-z_bounds_factors: ptop sigma_bnds ps
-!----------------------------------	
-!
-!
-!============
-axis_entry:  standard_hybrid_sigma
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-optional: units
-!     ignored:  coord_vals
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    atmosphere_hybrid_sigma_pressure_coordinate
-units:            1
-axis:             Z 
-positive:         down
-long_name:        hybrid sigma pressure coordinate
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         eta
-valid_min:        0.0
-valid_max:        1.0
-formula:          p(n,k,j,i) = a(k)*p0 + b(k)*ps(n,j,i)
-z_factors:        p0 a b ps
-z_bounds_factors: p0 a_bnds b_bnds ps
-!----------------------------------		
-!
-!
-!============
-axis_entry:  alternate_hybrid_sigma
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-optional: units
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    atmosphere_hybrid_sigma_pressure_coordinate
-units:            1
-axis:             Z
-positive:         down
-long_name:        hybrid sigma pressure coordinate
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lev
-valid_min:        0.0
-valid_max:        1.0
-formula:          p(n,k,j,i) = ap(k) + b(k)*ps(n,j,i)
-convert_to:       standard_hybrid_sigma
-z_factors:        p0 ap b ps
-z_bounds_factors: p0 ap_bnds b_bnds ps
-!----------------------------------		
-!
-!
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-! VARIABLE INFORMATION
-!
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-!============
-variable_entry: tas
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:   air_temperature     
-units:           K
-cell_methods:    time: mean
-long_name:       Surface Air Temperature
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time height1
-valid_min:        190.
-valid_max:        340.
-ok_min_mean_abs:  270.
-ok_max_mean_abs:  300.
-shuffle:          1
-deflate:          1
-deflate_level:    9
-!----------------------------------	
-! 
-!
-!============
-variable_entry: hfls
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: upward_surface_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-shuffle:          1
-deflate:          1
-deflate_level:    9
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  20.
-ok_max_mean_abs:  150.
-!----------------------------------	
-! 
-!
-!============
-variable_entry: mrsos
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: moisture_content_of_soil_layer
-units:         kg m-2
-cell_methods:  time: mean
-long_name:     Moisture in Upper 0.1 m of Soil Column
-comment:         includes subsurface frozen water but not surface snow and ice 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time depth1
-!----------------------------------	 
-!
-!
-!============
-variable_entry: ua
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: eastward_wind
-units:         m s-1
-cell_methods:  time: mean
-long_name:     Zonal Wind Component
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude pressure time
-valid_min:        -200.
-valid_max:        300.
-ok_min_mean_abs:  0.1
-ok_max_mean_abs:  100.
-!----------------------------------	
-!
-!
-!============
-variable_entry: ta
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: air_temperature
-units:         K
-cell_methods:  time: mean
-long_name:     Temperature
-flag_values:  8    6   7 8     9654 
-flag_meanings: region5 region6 region7 region8 9region
-
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude pressure time
-valid_min:        150.
-valid_max:        350.
-ok_min_mean_abs:  200.
-ok_max_mean_abs:  300.
-!----------------------------------	
-!
-!
-!============
-variable_entry: pr
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:  precipitation
-units:          kg m-2 s-1
-cell_methods:   time: mean
-long_name:      Precipitation
-comment:        includes all types (rain, snow, large-scale, convective, etc.)
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         longitude latitude time
-valid_min:          0.0
-valid_max:          1.e-4
-ok_min_mean_abs:    1.e-6
-ok_max_mean_abs:    5.e-5 
-!----------------------------------	
-!
-!
-!============
-variable_entry: cl
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:  cloud_area_fraction
-units:          %
-cell_methods:   time: mean
-long_name:      Total Cloud Fraction
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         longitude latitude zlevel time
-valid_min:          0.0
-valid_max:          100.0
-ok_min_mean_abs:    10.0
-ok_max_mean_abs:    90.0
-!----------------------------------	
-!
-!
-!============
-variable_entry: ci
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:  cloud_area_fraction_i
-units:          %
-cell_methods:   time: mean
-long_name:      Total Cloud Fraction Crap
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         latitude longitude zlevel time
-valid_min:          0.0
-valid_max:          100.0
-ok_min_mean_abs:    10.0
-ok_max_mean_abs:    90.0
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfogo
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:  northward_ocean_heat_transport
-units:          W
-cell_methods:   time: mean
-long_name:      Northward Ocean Heat Transport
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         latitude region time
-valid_min:          -4.e15
-valid_max:          4.e15
-ok_min_mean_abs:    0.0
-ok_max_mean_abs:    4.e15
-!----------------------------------	
-!
-!
-!============
-variable_entry: ps
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:   surface_air_pressure     
-units:           Pa
-cell_methods:    time: mean
-long_name:       Surface Pressure
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-valid_min:        0.5e5
-valid_max:        1.2e5
-ok_min_mean_abs:  0.9e5
-ok_max_mean_abs:  1.1e5
-!----------------------------------	
-!
-!
-!============
-variable_entry: p0
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-ignored: axis_ids
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:       reference pressure for hybrid sigma coordinate 
-units:           Pa
-!----------------------------------	
-!
-!
-!============
-variable_entry: ptop
-!============
-!
-! Variable attributes:
-!----------------------------------	
-long_name:       pressure at top of model 
-units:           Pa
-!----------------------------------	
-!
-!
-!============
-variable_entry: sigma
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-optional: units
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:  sigma coordinate
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel longitude
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: a
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-optional: units
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   hybrid sigma coordinate A coefficient for layer
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: b
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-optional: units
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   hybrid sigma coordinate B coefficient for layer
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: a_bnds
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-optional: units
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   hybrid sigma coordinate A coefficient for layer bounds
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: b_bnds
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-optional: units
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   hybrid sigma coordinate B coefficient for layer bounds
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------
-!
-!
-!============
-variable_entry: ap
-!============
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   alternate hybrid sigma coordinate A coefficient for layer
-units:           Pa
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: ap_bnds
-!============
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   alternate hybrid sigma coordinate A coefficient for layer bounds
-units:           Pa
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------	
-!
-!
diff --git a/Test/Curts_table b/Test/Curts_table
deleted file mode 100644
index f116bb2..0000000
--- a/Test/Curts_table
+++ /dev/null
@@ -1,761 +0,0 @@
-cmor_version: 1.0         ! version of CMOR that can read this table
-cf_version:   1.0         ! version of CF that output conforms to
-project_id:   IPCC Fourth Assessment  ! project id
-table_id:     Curts_table A  ! table id
-table_date:   9 January 2006 ! date this table was constructed
-modeling_realm:	      atm
-
-expt_id_ok:   'pre-industrial control experiment'
-expt_id_ok:   'present-day control experiment'
-expt_id_ok:   'climate of the 20th Century experiment (20C3M)' '20c3m'
-expt_id_ok:   'committed climate change experiment'  ! official name(s) of 
-expt_id_ok:   'SRES A2 experiment'                   !  project's experiments
-expt_id_ok:   '720 ppm stabilization experiment (SRES A1B)'    
-expt_id_ok:   '550 ppm stabilization experiment (SRES B1)'
-expt_id_ok:   '1%/year CO2 increase experiment (to doubling)'
-expt_id_ok:   '1%/year CO2 increase experiment (to quadrupling)'
-expt_id_ok:   'slab ocean control experiment'
-expt_id_ok:   '2xCO2 equilibrium experiment'
-expt_id_ok:   'AMIP experiment'
-
-magic_number: -1          ! used to check whether this file has been 
-                          !   altered from the official version.
-                          !   should be set to number of non-blank 
-                          !   characters in file. 
-approx_interval:   1.     ! approximate spacing between successive time
-                          !   samples (in units of the output time 
-                          !   coordinate), but this is ignored if set to 0.
-missing_value: 1.e20      ! value used to indicate a missing value
-                          !   in arrays output by netCDF as 32-bit IEEE 
-                          !   floating-point numbers (float or real)
-
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-! SUBROUTINE ARGUMENT DEFAULT INFORMATION
-!
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-!  set default specifications for subroutine arguments to:
-!     required/indeterminate/optional/ignored/forbidden
-!    (indeterminate may or may not be required information, but is not always
-!     required as an argument of the function call)
-!
-!
-!============
-subroutine_entry: cmor_axis
-!============
-!
-required: table axis_name units length coord_vals cell_bounds
-ignored: interval
-!
-!============
-subroutine_entry: cmor_variable
-!============
-!
-required: table table_entry units axis_ids
-indeterminate: missing_value
-optional: tolerance original_name history comment
-ignored: positive
-!
-!============
-subroutine_entry: cmor_write
-!============
-!
-required:  var_id data 
-indeterminate: ntimes_passed time_vals time_bnds store_with
-optional: file_suffix
-!
-!
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-! AXIS INFORMATION
-!
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-! ??? what about climatology???
-! ??? what about model level data???
-!
-!
-!  TEMPLATE FOR AXES
-!
-!============
-!axis_entry:               ! (required)
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-!    acceptable arguments include units length coord_vals cell_bounds interval
-!required:                  ! (default: table axis_name units length
-!                                        coord_vals cell_bounds)
-!indeterminate:
-!optional:
-!ignored:                   ! (default: interval)
-!forbidden:
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-!standard_name:             ! (required)
-!units:                     ! (required)
-!axis:                      ! X, Y, Z, T (default: undeclared)
-!positive:                  ! up or down (default: undeclared)
-!long_name:                 ! (default: undeclared)
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-!out_name:                ! (default: same as axis_entry) 
-!type:                    ! double (default), real, character, integer
-!stored_direction:        ! increasing (default) or decreasing
-!valid_min:               ! type: double precision (default: no check performed
-!valid_max:               ! type: double precision (default: no check performed
-!requested:               ! space-separated list of requested coordinates 
-                          !       (default: undeclared)
-!bounds_requested:        ! space-separated list of requested coordinate bounds
-                          !       (default: undeclared)
-!tol_on_requests:         ! fractional tolerance for meeting request
-                          !  (default=1.e-3, which is used in the formula:
-                          !     eps =  MIN(( tol*interval between grid-points)
-                          !          and (1.e-3*tol*coordinate value)))
-!value:                   ! of scalar (singleton) dimension 
-!bounds_values:           ! of scalar (singleton) dimension bounds
-!----------------------------------	
-!
-!
-!  TEMPLATE FOR VARIABLES
-!
-!
-!============
-!variable_entry:                ! (required)
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!        acceptable arguments include  file_suffix missing_value tolerance 
-!                               original_name history comment positive
-!required:                   ! (default: table table_entry units axis_ids)
-!indeterminate:              ! (default: file_suffix missing_value)
-!optional:                   ! (default: original_name history comment)
-!ignored:                    ! (default: positive)
-!forbidden:
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-!standard_name:              ! (required)
-!units:                      ! (required)
-!cell_methods:               ! (default: undeclared)
-!long_name:                  ! (default: undeclared)
-!comment:                    ! (default: undeclared)
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-!dimensions:                 ! (required)  (scalar dimension(s) should appear
-                             !      last in list)
-!out_name:                   ! (default: variable_entry)
-!type:                       ! real (default), double, integer 
-!positive:                   ! up or down (default: undeclared)
-!valid_min:                  ! type: real (default: no check performed)
-!valid_max:                  ! type: real (default: no check performed)
-!ok_min_mean_abs:            ! type: real (default: no check performed)
-!ok_max_mean_abs:            ! type: real (default: no check performed)
-!----------------------------------	
-! 
-
-!
-!============
-axis_entry: longitude
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-optional: cell_bounds
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    longitude
-units:            degrees_east
-axis:             X
-long_name:        longitude
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lon
-valid_min:        0.           ! CMOR will add n*360 to input values
-                               ! (where n is an integer) to ensure 
-                               !  longitudes are in proper range.  The
-                               !  data will also be rearranged 
-                               !  appropriately.
-valid_max:        360.         !  see above comment.
-value:            287.8
-!----------------------------------	
-!
-!
-!=============
-axis_entry: latitude
-!=============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-optional: cell_bounds
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    latitude
-units:            degrees_north
-axis:             Y
-long_name:        latitude
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lat
-valid_min:        -90.
-valid_max:        90.
-value:            42.5
-!----------------------------------	
-!
-!
-
-! ??? What about climatological data???
-!
-
-!============
-axis_entry: time
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-optional: interval length
-indeterminate: coord_vals cell_bounds
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    time
-units:            days since ?
-axis:             T
-long_name:        time
-!----------------------------------	
-!
-!
-!============
-axis_entry: pressure
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-ignored: cell_bounds
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    air_pressure
-units:            Pa 
-axis:             Z
-positive:         down
-long_name:        pressure
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         plev
-stored_direction: decreasing
-valid_min:        0.
-valid_max:        110000.
-requested:        100000. 92500. 85000. 70000. 60000. 50000. 40000. 
-requested:         30000. 20000.
-!----------------------------------	
-!
-!
-!============
-axis_entry: height1
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-ignored: cell_bounds
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    height
-units:            m
-axis:             Z
-positive:         up
-long_name:        height
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         height
-valid_min:        0.
-valid_max:        10.
-value:            2.
-!----------------------------------	
-!
-!
-!============
-axis_entry: height2
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-ignored: cell_bounds
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    height
-units:            m
-axis:             Z
-positive:         up
-long_name:        height
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         height
-valid_min:        0.
-valid_max:        30.
-value:            10.
-!----------------------------------	
-!
-!
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-! VARIABLE INFORMATION
-!
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-!
-!
-! ***************************************************************
-!
-! IPCC Table A2a: Daily-mean 2-d atmosphere data
-!
-! ***************************************************************
-!
-!
-!
-!============
-variable_entry: psl
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:   air_pressure_at_sea_level     
-units:           Pa
-cell_methods:    time: mean
-long_name:       Sea Level Pressure
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-valid_min:        90000.
-valid_max:        120000.
-ok_min_mean_abs:  102000.
-ok_max_mean_abs:  98000.
-!----------------------------------	
-! 
-!
-!============
-variable_entry: pr
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:  precipitation_flux
-units:          kg m-2 s-1
-cell_methods:   time: mean
-long_name:      Precipitation
-comment:        includes all types (rain, snow, large-scale, convective, etc.)
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         longitude latitude time
-valid_min:          0.0
-!----------------------------------	
-!
-!
-!============
-variable_entry: tasmin
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:   air_temperature     
-units:           K
-cell_methods:    time: minimum
-long_name:       Minimum Daily Surface Air Temperature
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time height1
-valid_min:        185.
-valid_max:        330.
-ok_min_mean_abs:  270.
-ok_max_mean_abs:  300.
-!----------------------------------	
-! 
-!
-!============
-variable_entry: tasmax
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:   air_temperature     
-units:           K
-cell_methods:    time: maximum
-long_name:       Maximum Daily Surface Air Temperature
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time height1
-valid_min:        185.
-valid_max:        350.
-ok_min_mean_abs:  270.
-ok_max_mean_abs:  300.
-!----------------------------------	
-! 
-!
-!============
-variable_entry: tas
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:   air_temperature     
-units:           K
-cell_methods:    time: mean
-long_name:       Surface Air Temperature
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       time longitude latitude height1
-valid_min:        185.
-valid_max:        330.
-ok_min_mean_abs:  260.
-ok_max_mean_abs:  300.
-!----------------------------------	
-! 
-!
-!============
-variable_entry: hfls
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -300.
-valid_max:        2000.
-ok_min_mean_abs:  50.
-ok_max_mean_abs:  120.
-!----------------------------------	
-! 
-!
-!============
-variable_entry: hfss
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_sensible_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Sensible Heat Flux
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-!----------------------------------	
-! 
-!
-!============
-variable_entry: rlds
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_downwelling_longwave_flux_in_air
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Downwelling Longwave Radiation
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         down
-valid_min:        20.
-valid_max:        600.
-ok_min_mean_abs:  300.
-ok_max_mean_abs:  370.
-!----------------------------------	
-! 
-!
-!============
-variable_entry: rlus
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upwelling_longwave_flux_in_air
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Upwelling Longwave Radiation
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        50.
-valid_max:        750.
-ok_min_mean_abs:  250.
-ok_max_mean_abs:  450.
-!----------------------------------	
-! 
-!
-!============
-variable_entry: rsds
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_downwelling_shortwave_flux_in_air
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Downwelling Shortwave Radiation
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         down
-valid_min:        0.
-valid_max:        550.
-ok_min_mean_abs:  150.
-ok_max_mean_abs:  220.
-!----------------------------------	
-! 
-!
-!============
-variable_entry: rsus
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upwelling_shortwave_flux_in_air
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Upwelling Shortwave Radiation
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-valid_min:        0.
-positive:         up
-!----------------------------------	
-! 
-!
-!============
-variable_entry: uas
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:   eastward_wind    
-units:           m s-1
-cell_methods:    time: mean
-long_name:       Zonal Surface Wind Speed
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time height2
-!----------------------------------	
-! 
-!
-!============
-variable_entry: vas
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:   northward_wind    
-units:           m s-1
-cell_methods:    time: mean
-long_name:       Meridional Surface Wind Speed
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time height2
-!----------------------------------	
-! 
-!
-!============
-variable_entry: rlut
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: toa_outgoing_longwave_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Outgoing Longwave Radiation
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-valid_min:        10.
-valid_max:        500.
-positive:         up
-!----------------------------------	
-! 
-!
-!
-!
-! ***************************************************************
-!
-! IPCC Table A2b: Daily-mean 3-d atmosphere data
-!
-! ***************************************************************
-!
-!
-!
-!============
-variable_entry: ta
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: air_temperature
-units:         K
-cell_methods:  time: mean
-long_name:     Temperature
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude pressure time
-valid_min:        100.
-valid_max:        360.
-!----------------------------------	
-!
-!
-!============
-variable_entry: ua
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: eastward_wind
-units:         m s-1
-cell_methods:  time: mean
-long_name:     Zonal Wind Component
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude pressure time
-!----------------------------------	
-!
-!
-!============
-variable_entry: va
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: northward_wind
-units:         m s-1
-cell_methods:  time: mean
-long_name:     Meridional Wind Component
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude pressure time
-!----------------------------------	
-!
-!
-!============
-variable_entry: hus
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: specific_humidity
-units:         1
-cell_methods:  time: mean
-long_name:     Specific Humidity 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude pressure time
-valid_min:        0.
-!----------------------------------	
-!
-!
-
diff --git a/Test/IPCC_table_A1 b/Test/IPCC_table_A1
deleted file mode 100644
index 359799b..0000000
--- a/Test/IPCC_table_A1
+++ /dev/null
@@ -1,2364 +0,0 @@
-cmor_version: 2.0         ! version of CMOR that can read this table
-cf_version:   1.0         ! version of CF that output conforms to
-project_id:   IPCC Fourth Assessment  ! project id
-table_id:     Table A1    ! table id
-table_date:   17 November 2004 ! date this table was constructed
-required_global_attributes: creation_date tracking_id model_id forcing
-
-modeling_realm: atm
-
-expt_id_ok:   'pre-industrial control experiment'
-expt_id_ok:   'present-day control experiment'
-expt_id_ok:   'climate of the 20th Century experiment (20C3M)'
-expt_id_ok:   'committed climate change experiment'  ! official name(s) of 
-expt_id_ok:   'SRES A2 experiment'                   !  project's experiments
-expt_id_ok:   '720 ppm stabilization experiment (SRES A1B)'    
-expt_id_ok:   '550 ppm stabilization experiment (SRES B1)'
-expt_id_ok:   '1%/year CO2 increase experiment (to doubling)'
-expt_id_ok:   '1%/year CO2 increase experiment (to quadrupling)'
-expt_id_ok:   'slab ocean control experiment'
-expt_id_ok:   '2xCO2 equilibrium experiment' '2xco2'
-expt_id_ok:   'AMIP experiment'
-
-magic_number: -1          ! used to check whether this file has been 
-                          !   altered from the official version.
-                          !   should be set to number of non-blank 
-                          !   characters in file. 
-approx_interval:  30.     ! approximate spacing between successive time
-                          !   samples (in units of the output time 
-                          !   coordinate), but this is ignored if set to 0.
-missing_value: 1.e20      ! value used to indicate a missing value
-                          !   in arrays output by netCDF as 32-bit IEEE 
-                          !   floating-point numbers (float or real)
-
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-! SUBROUTINE ARGUMENT DEFAULT INFORMATION
-!
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-!  set default specifications for subroutine arguments to:
-!     required/indeterminate/optional/ignored/forbidden
-!    (indeterminate may or may not be required information, but is not always
-!     required as an argument of the function call)
-!
-!
-!============
-subroutine_entry: cmor_axis
-!============
-!
-required: table axis_name units length coord_vals cell_bounds
-ignored: interval
-!
-!============
-subroutine_entry: cmor_variable
-!============
-!
-required: table table_entry units axis_ids
-indeterminate: missing_value
-optional: tolerance original_name history comment
-ignored: positive
-!
-!============
-subroutine_entry: cmor_write
-!============
-!
-required:  var_id data 
-indeterminate: ntimes_passed time_vals time_bnds store_with
-optional: file_suffix
-!
-!
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-! AXIS INFORMATION
-!
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-! ??? what about climatology???
-! ??? what about model level data???
-!
-!
-!  TEMPLATE FOR AXES
-!
-!============
-!axis_entry:               ! (required)
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-!    acceptable arguments include units length coord_vals cell_bounds interval
-!required:                  ! (default: table axis_name units length
-!                                        coord_vals cell_bounds)
-!indeterminate:
-!optional:
-!ignored:                   ! (default: interval)
-!forbidden:
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-!standard_name:             ! (required)
-!units:                     ! (required)
-!axis:                      ! X, Y, Z, T (default: undeclared)
-!positive:                  ! up or down (default: undeclared)
-!long_name:                 ! (default: undeclared)
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-!out_name:                ! (default: same as axis_entry) 
-!type:                    ! double (default), real, character, integer
-!stored_direction:        ! increasing (default) or decreasing
-!valid_min:               ! type: double precision (default: no check performed
-!valid_max:               ! type: double precision (default: no check performed
-!requested:               ! space-separated list of requested coordinates 
-                          !       (default: undeclared)
-!bounds_requested:        ! space-separated list of requested coordinate bounds
-                          !       (default: undeclared)
-!tol_on_requests:         ! fractional tolerance for meeting request
-                          !  (default=1.e-3, which is used in the formula:
-                          !     eps =  MIN(( tol*interval between grid-points)
-                          !          and (1.e-3*tol*coordinate value)))
-!value:                   ! of scalar (singleton) dimension 
-!bounds_values:           ! of scalar (singleton) dimension bounds
-!----------------------------------	
-!
-!
-!  TEMPLATE FOR VARIABLES
-!
-!
-!============
-!variable_entry:                ! (required)
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!        acceptable arguments include  file_suffix missing_value tolerance 
-!                               original_name history comment positive
-!required:                   ! (default: table table_entry units axis_ids)
-!indeterminate:              ! (default: file_suffix missing_value)
-!optional:                   ! (default: original_name history comment)
-!ignored:                    ! (default: positive)
-!forbidden:
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-!standard_name:              ! (required)
-!units:                      ! (required)
-!cell_methods:               ! (default: undeclared)
-!long_name:                  ! (default: undeclared)
-!comment:                    ! (default: undeclared)
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-!dimensions:                 ! (required)  (scalar dimension(s) should appear
-                             !      last in list)
-!out_name:                   ! (default: variable_entry)
-!type:                       ! real (default), double, integer 
-!positive:                   ! up or down (default: undeclared)
-!valid_min:                  ! type: real (default: no check performed)
-!valid_max:                  ! type: real (default: no check performed)
-!ok_min_mean_abs:            ! type: real (default: no check performed)
-!ok_max_mean_abs:            ! type: real (default: no check performed)
-!----------------------------------	
-! 
-
-!
-!============
-axis_entry: longitude
-!============
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    longitude
-units:            degrees_east
-axis:             X
-long_name:        longitude
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lon
-valid_min:        0.           ! CMOR will add n*360 to input values
-                               ! (where n is an integer) to ensure 
-                               !  longitudes are in proper range.  The
-                               !  data will also be rearranged 
-                               !  appropriately.
-valid_max:        360.         !  see above comment.
-!----------------------------------	
-!
-!
-!=============
-axis_entry: latitude
-!=============
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    latitude
-units:            degrees_north
-axis:             Y
-long_name:        latitude
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lat
-valid_min:        -90.
-valid_max:        90.
-!----------------------------------	
-!
-!
-
-! ??? What about climatological data???
-!
-
-!============
-axis_entry: time
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-optional: interval length
-indeterminate: coord_vals cell_bounds
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    time
-units:            days since ?
-axis:             T
-long_name:        time
-!----------------------------------	
-!
-!
-!============
-axis_entry: pressure
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-ignored: cell_bounds
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    air_pressure
-units:            Pa 
-axis:             Z
-positive:         down
-long_name:        pressure
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         plev
-stored_direction: decreasing
-valid_min:        0.
-valid_max:        110000.
-!requested:        100000. 92500. 85000. 70000. 60000. 50000. 40000. 
-!requested:         30000. 25000. 20000. 15000. 10000.  7000.  5000.
-!requested:          3000.  2000.  1000.
-!----------------------------------	
-!
-!
-!============
-axis_entry: height1
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-ignored: cell_bounds
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    height
-units:            m
-axis:             Z
-positive:         up
-long_name:        height
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         height
-valid_min:        0.
-valid_max:        10.
-value:            2.
-!----------------------------------	
-!
-!
-!============
-axis_entry: height2
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-ignored: cell_bounds
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    height
-units:            m
-axis:             Z
-positive:         up
-long_name:        height
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         height
-valid_min:        0.
-valid_max:        30.
-value:            10.
-!----------------------------------	
-!
-!
-!============
-axis_entry: depth1
-!============
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    depth
-units:            m
-axis:             Z
-positive:         down
-long_name:         depth
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         depth
-valid_min:        0.0
-valid_max:        1.0
-value:            0.05
-bounds_values:    0.0 0.1
-!----------------------------------
-!
-!
-!============
-axis_entry: pressure1
-!
-!   Scalar dimension (200 hPa) defined for near-tropopause radiation fluxes
-!      (rsntp, rlntp, rsntpcs, rlntpcs, rsftropa_?, rsftropi_?, rlftropa_?, 
-!       rlftropi_?, rsftropacs_?, rsftropics_?, rlftropacs_?, rlftropics_?)
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-ignored: cell_bounds
-!------------
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    air_pressure
-units:            Pa
-axis:             Z
-positive:         down
-long_name:        pressure
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         plev
-valid_min:        10000.
-valid_max:        30000.
-value:            20000.
-!----------------------------------
-!
-!
-!============
-axis_entry: pressure2
-!
-!   Is defined for Table A1d: ISCCP simulator data (clisccp)
-!============
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    air_pressure
-stored_direction: decreasing
-units:            Pa
-axis:             Z
-positive:         down
-long_name:        pressure
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         plev
-bounds_requested: 100000. 80000. 80000. 68000. 68000. 56000. 
-bounds_requested:  56000. 44000. 44000. 31000. 31000. 18000.
-bounds_requested:  18000.     0.
-!----------------------------------!
-!
-!
-!============
-axis_entry: pressure3
-!
-!   Is defined for Table A1e: sulfate aerosol data (trsul)
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-optional: cell_bounds
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    air_pressure
-units:            Pa 
-axis:             Z
-positive:         down
-long_name:        pressure
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         plev
-stored_direction: decreasing
-valid_min:        0.
-valid_max:        110000.
-requested:        100400. 98300. 95300. 91000. 84800. 76500. 66300. 
-requested:         54600. 42500. 31800. 23800. 18300. 14000. 10300.
-requested:          7200.  4700.  2700.  1300.   400.
-!----------------------------------	
-!
-!
-!============
-axis_entry: tau
-!============
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    cloud_optical_depth
-units:            1
-long_name:        optical depth
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-bounds_requested:  0.0  0.3  0.3  1.3  1.3  3.6  3.6  9.4 
-bounds_requested:  9.4 23.0 23.0 60.0 60.0 100000.
-!----------------------------------
-!
-!
-!============
-axis_entry: standard_sigma
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-optional: units
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    atmosphere_sigma_coordinate
-axis:             Z
-positive:         down
-long_name:        sigma coordinate
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lev
-stored_direction: decreasing
-valid_min:        0.0
-valid_max:        1.0
-formula:          p(n,k,j,i) = ptop + sigma(k)*(ps(n,j,i) - ptop)
-convert_to:       standard_hybrid_sigma
-z_factors:        ptop: ptop sigma: sigma ps: ps
-z_bounds_factors: ptop: ptop sigma: sigma_bnds ps: ps
-!----------------------------------	
-!
-!
-!============
-axis_entry:  standard_hybrid_sigma
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-optional: units
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    atmosphere_hybrid_sigma_pressure_coordinate
-units:            1
-axis:             Z 
-positive:         down
-long_name:        hybrid sigma pressure coordinate
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lev
-stored_direction: decreasing
-valid_min:        0.0
-valid_max:        1.0
-formula:          p(n,k,j,i) = a(k)*p0 + b(k)*ps(n,j,i)
-z_factors:        p0: p0 a: a b: b ps: ps
-z_bounds_factors: p0: p0 a: a_bnds b: b_bnds ps: ps
-!----------------------------------		
-!
-!
-!============
-axis_entry:  alternate_hybrid_sigma
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-optional: units
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    atmosphere_hybrid_sigma_pressure_coordinate
-stored_direction: decreasing
-units:            1
-axis:             Z
-positive:         down
-long_name:        hybrid sigma pressure coordinate
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lev
-valid_min:        0.0
-valid_max:        1.0
-formula:          p(n,k,j,i) = ap(k) + b(k)*ps(n,j,i)
-convert_to:       standard_hybrid_sigma
-z_factors:        p0: p0 ap: ap b: b ps: ps
-z_bounds_factors: p0 ap: ap_bnds b: b_bnds ps: ps
-!----------------------------------		
-!
-!
-!============
-axis_entry:  hybrid_height
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-optional: units
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    atmosphere_hybrid_height_coordinate
-units:            m
-axis:             Z 
-positive:         up
-long_name:        hybrid height coordinate
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lev
-stored_direction: increasing
-valid_min:        0.0
-formula:          z(k,j,i) = a(k) + b(k)*orog(j,i)
-z_factors:        a: a b: b orog: orog
-z_bounds_factors: a: a_bnds b: b_bnds orog: orog
-!----------------------------------		
-!
-!
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-! VARIABLE INFORMATION
-!
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-!
-!
-! ***************************************************************
-!
-! Vertical dimensionless coordinate variables:
-!
-! ***************************************************************
-!
-!
-!
-!============
-variable_entry: p0
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-ignored: axis_ids
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:       reference pressure for hybrid sigma coordinate 
-units:           Pa
-!----------------------------------	
-!
-!
-!============
-variable_entry: ptop
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-ignored: axis_ids
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:       pressure at top of model 
-units:           Pa
-!----------------------------------	
-!
-!
-!============
-variable_entry: sigma
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-optional: units
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:  sigma coordinate
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: sigma_bnds
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-optional: units
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:  sigma coordinate for layer bounds
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: a
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-optional: units
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   hybrid sigma coordinate A coefficient for layer
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: b
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-optional: units
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   hybrid sigma coordinate B coefficient for layer
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: a_bnds
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-optional: units
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   hybrid sigma coordinate A coefficient for layer bounds
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: b_bnds
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-optional: units
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   hybrid sigma coordinate B coefficient for layer bounds
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------
-!
-!
-!============
-variable_entry: ap
-!============
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   alternate hybrid sigma coordinate A coefficient for layer
-units:           Pa
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: ap_bnds
-!============
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   alternate hybrid sigma coordinate A coefficient for layer bounds
-units:           Pa
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: ztop
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-ignored: axis_ids
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:       height of top of model 
-units:           m
-!----------------------------------	
-!
-!
-!============
-variable_entry: az
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-optional: units
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   hybrid height coordinate coefficient (eta) for layer
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: bz
-!============
-!
-!    Override default argument specifications for cmor_variable 
-!------------
-optional: units
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   hybrid height coordinate coefficient (tau) for layer
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: az_bnds
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-optional: units
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   hybrid sigma coordinate coefficient (eta) for layer bounds
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: bz_bnds
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-optional: units
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   hybrid sigma coordinate B coefficient (tau) for layer bounds
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------
-!
-!
-!
-! ***************************************************************
-!
-! IPCC Table A1a: Monthly-mean 2-d atmosphere or land surface data
-!
-! ***************************************************************
-!
-!
-!
-!============
-variable_entry: psl
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:   air_pressure_at_sea_level     
-units:           Pa
-cell_methods:    time: mean
-long_name:       Sea Level Pressure
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-valid_min:        90000.
-valid_max:        120000.
-ok_min_mean_abs:  102000.
-ok_max_mean_abs:  98000.
-!----------------------------------	
-! 
-!
-!============
-variable_entry: pr
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:  precipitation_flux
-units:          kg m-2 s-1
-cell_methods:   time: mean
-long_name:      Precipitation
-comment:        includes all types (rain, snow, large-scale, convective, etc.)
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         longitude latitude time
-valid_min:          0.0
-valid_max:          1.e-3
-ok_min_mean_abs:    1.e-6
-ok_max_mean_abs:    5.e-5 
-!----------------------------------	
-!
-!
-!============
-variable_entry: tas
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:   air_temperature     
-units:           K
-cell_methods:    time: mean
-long_name:       Surface Air Temperature
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time height1
-valid_min:        195.
-valid_max:        330.
-ok_min_mean_abs:  270.
-ok_max_mean_abs:  300.
-!----------------------------------	
-! 
-!
-!============
-variable_entry: mrsos
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: moisture_content_of_soil_layer
-units:         kg m-2
-cell_methods:  time: mean
-long_name:     Moisture in Upper 0.1 m of Soil Column
-comment:         includes subsurface frozen water but not surface snow and ice 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time depth1
-!----------------------------------	 
-!
-!
-!============
-variable_entry: mrso
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: soil_moisture_content
-units:         kg m-2
-cell_methods:  time: mean
-long_name:     Total Soil Moisture Content
-comment:         includes subsurface frozen water but not surface snow and ice 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-!----------------------------------	 
-!
-!
-!============
-variable_entry: tauu
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_downward_eastward_stress
-units:         Pa
-cell_methods:  time: mean
-long_name:     Zonal Surface Wind Stress
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         down
-!----------------------------------	
-! 
-!
-!============
-variable_entry: tauv
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_downward_northward_stress
-units:         Pa
-cell_methods:  time: mean
-long_name:     Meridional Surface Wind Stress
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         down
-!----------------------------------	
-! 
-!
-!============
-variable_entry: snd
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_snow_thickness
-units:         m
-cell_methods:  time: mean
-long_name:     Snow Depth
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-valid_min:        0.0
-!----------------------------------	
-! 
-!
-!============
-variable_entry: hfls
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -120
-valid_max:        900.
-ok_min_mean_abs:  50.
-ok_max_mean_abs:  120.
-!----------------------------------	
-! 
-!
-!============
-variable_entry: hfss
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_sensible_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Sensible Heat Flux
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-!----------------------------------	
-! 
-!
-!============
-variable_entry: rlds
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_downwelling_longwave_flux_in_air
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Downwelling Longwave Radiation
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         down
-valid_min:        20.
-valid_max:        600.
-ok_min_mean_abs:  300.
-ok_max_mean_abs:  370.
-!----------------------------------	
-! 
-!
-!============
-variable_entry: rlus
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upwelling_longwave_flux_in_air
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Upwelling Longwave Radiation
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        50.
-valid_max:        750.
-ok_min_mean_abs:  250.
-ok_max_mean_abs:  450.
-!----------------------------------	
-! 
-!
-!============
-variable_entry: rsds
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_downwelling_shortwave_flux_in_air
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Downwelling Shortwave Radiation
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         down
-valid_min:        0.
-valid_max:        550.
-ok_min_mean_abs:  150.
-ok_max_mean_abs:  220.
-!----------------------------------	
-! 
-!
-!============
-variable_entry: rsus
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upwelling_shortwave_flux_in_air
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Upwelling Shortwave Radiation
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-valid_min:        0.
-positive:         up
-!----------------------------------	
-! 
-!
-!============
-variable_entry: ts
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_temperature
-units:         K    
-cell_methods:  time: mean
-long_name:     Surface Skin Temperature
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-valid_min:        170.
-valid_max:        340.
-ok_min_mean_abs:  280.
-ok_max_mean_abs:  300.
-!----------------------------------	
-! 
-!
-!============
-variable_entry: ps
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:   surface_air_pressure     
-units:           Pa
-cell_methods:    time: mean
-long_name:       Surface Pressure
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-valid_min:        0.48e5
-valid_max:        1.1e5
-ok_min_mean_abs:  0.97e5
-ok_max_mean_abs:  1.0e5
-!----------------------------------	
-!
-!
-!============
-variable_entry: prsn
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:  snowfall_flux
-units:          kg m-2 s-1
-cell_methods:   time: mean
-long_name:      Snowfall Flux
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         longitude latitude time
-valid_min:          0.0
-!----------------------------------	
-!
-!
-!============
-variable_entry: prc
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:  convective_precipitation_flux
-units:          kg m-2 s-1
-cell_methods:   time: mean
-long_name:      Convective Precipitation
-comment:        includes both liquid and solid phases
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         longitude latitude time
-valid_min:          0.0
-!----------------------------------	
-!
-!
-!============
-variable_entry: prw
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:  atmosphere_water_vapor_content
-units:          kg m-2
-cell_methods:   time: mean
-long_name:      Precipitable Water
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         longitude latitude time
-valid_min:          0.0
-valid_max:          150.
-ok_min_mean_abs:    20.
-ok_max_mean_abs:    30. 
-!----------------------------------	
-!
-!
-!============
-variable_entry: mrfso
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: soil_frozen_water_content
-units:         kg m-2
-cell_methods:  time: mean
-long_name:     Soil Frozen Water Content
-comment:       excludes surface snow and ice
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-valid_min:          0.0
-!----------------------------------	 
-!
-!
-!============
-variable_entry: mrros
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_runoff_flux
-units:         kg m-2 s-1
-cell_methods:  time: mean
-long_name:     Surface Runoff
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-!----------------------------------	 
-!
-!
-!============
-variable_entry: mrro
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: runoff_flux
-units:         kg m-2 s-1
-cell_methods:  time: mean
-long_name:     Surface and Subsurface Runoff
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-!----------------------------------	 
-!
-!
-!============
-variable_entry: snw
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_snow_amount_where_land
-units:         kg m-2
-cell_methods:  time: mean
-long_name:     Snow Amount
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-valid_min:          0.0
-!----------------------------------	 
-!
-!
-!============
-variable_entry: snc
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_snow_area_fraction_where_land
-units:         %
-cell_methods:  time: mean
-long_name:     Snow Area Fraction
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-valid_min:          0.0
-valid_max:          100.
-!----------------------------------	 
-!
-!
-!============
-variable_entry: snm
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_snow_melt_flux_where_land
-units:         kg m-2 s-1
-cell_methods:  time: mean
-long_name:     Snow Melt
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-valid_min:          0.0
-!----------------------------------	 
-!
-!
-!============
-variable_entry: uas
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:   eastward_wind    
-units:           m s-1
-cell_methods:    time: mean
-long_name:       Zonal Surface Wind Speed
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time height2
-!----------------------------------	
-! 
-!
-!============
-variable_entry: vas
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:   northward_wind    
-units:           m s-1
-cell_methods:    time: mean
-long_name:       Meridional Surface Wind Speed
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time height2
-!----------------------------------	
-! 
-!
-!============
-variable_entry: huss
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:   specific_humidity   
-units:           kg kg-1
-cell_methods:    time: mean
-long_name:       Surface Specific Humidity
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time height1
-valid_min:        0.0
-!----------------------------------	
-! 
-!
-!============
-variable_entry: rsdt
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: toa_incoming_shortwave_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     TOA Incident Shortwave Radiation
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-valid_min:        0.
-positive:         down
-!----------------------------------	
-! 
-!
-!============
-variable_entry: rsut
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: toa_outgoing_shortwave_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     TOA Reflected Shortwave Radiation
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-valid_min:        0.
-positive:         up
-!----------------------------------	
-! 
-!
-!============
-variable_entry: rlut
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: toa_outgoing_longwave_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Outgoing Longwave Radiation
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-valid_min:        10.
-valid_max:        500.
-positive:         up
-!----------------------------------	
-! 
-!
-!============
-variable_entry: rtmt
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: net_downward_radiative_flux_at_top_of_atmosphere_model
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Net Flux at Top of Model
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         down
-!----------------------------------	
-! 
-!
-!============
-variable_entry: rsntp
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: net_downward_shortwave_flux_in_air
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Net Downward Shortwave Flux at 200 hPa
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time pressure1
-valid_min:        0.
-positive:         down
-!----------------------------------	
-! 
-!
-!============
-variable_entry: rlntp
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: net_upward_longwave_flux_in_air
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Net Upward Longwave Flux at 200 hPa
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time pressure1
-valid_min:        0.
-positive:         up
-!----------------------------------	
-! 
-!
-!============
-variable_entry: rsntpcs
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: net_downward_shortwave_flux_in_air_assuming_clear_sky
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Net Downward Clear-Sky Shortwave Flux at 200 hPa
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time pressure1
-valid_min:        0.
-positive:         down
-!----------------------------------	
-! 
-!
-!============
-variable_entry: rlntpcs
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: net_upward_longwave_flux_in_air_assuming_clear_sky
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Net Upward Clear-Sky Longwave Flux at 200 hPa
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time pressure1
-valid_min:        0.
-positive:         up
-!----------------------------------	
-! 
-!
-!============
-variable_entry: rsdscs
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_downwelling_shortwave_flux_in_air_assuming_clear_sky
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Incident Surface Clear-Sky Shortwave
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-valid_min:        0.
-positive:         down
-!----------------------------------	
-! 
-!
-!============
-variable_entry: rsuscs
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upwelling_shortwave_flux_in_air_assuming_clear_sky
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Reflected Surface Clear-Sky Shortwave
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-valid_min:        0.
-positive:         up
-!----------------------------------	
-! 
-!
-!============
-variable_entry: rldscs
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_downwelling_longwave_flux_in_air_assuming_clear_sky
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Downwelling Surface Clear-Sky Longwave
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-valid_min:        0.
-positive:         down
-!----------------------------------	
-! 
-!
-!============
-variable_entry: rlutcs
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: toa_outgoing_longwave_flux_assuming_clear_sky
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Outgoing Clear-Sky Longwave
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-valid_min:        10.
-valid_max:        500.
-positive:         up
-!----------------------------------	
-! 
-!
-!============
-variable_entry: rsutcs
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: toa_outgoing_shortwave_flux_assuming_clear_sky
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Reflected Clear-Sky Shortwave
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-valid_min:        0.
-positive:         up
-!----------------------------------	
-! 
-!
-!============
-variable_entry: clt
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: cloud_area_fraction
-units:         %
-cell_methods:  time: mean
-long_name:     Total Cloud Fraction
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-valid_min:        0.0
-valid_max:        100.0
-ok_min_mean_abs:  30.
-ok_max_mean_abs:  75.
-!----------------------------------	
-! 
-!
-!============
-variable_entry: clwvi
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: atmosphere_cloud_condensed_water_content
-units:         kg m-2
-cell_methods:  time: mean
-long_name:     Column Integerated Cloud Water Content
-comment:       should include both liquid and solid phase
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-valid_min:        0.0
-!----------------------------------	
-! 
-!
-!============
-variable_entry: clivi
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: atmosphere_cloud_ice_content
-units:         kg m-2
-cell_methods:  time: mean
-long_name:     Column Integerated Cloud Ice Content
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-valid_min:        0.0
-!----------------------------------	
-!
-!
-!
-!
-! ***************************************************************
-!
-! IPCC Table A1b: Time-independent 2-d land surface data
-!
-! ***************************************************************
-!
-!
-!
-!============
-variable_entry: orog
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_altitude
-units:         m
-long_name:     Surface Altitude
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude
-valid_min:        -500.
-valid_max:        12000.
-ok_min_mean_abs:  0.
-ok_max_mean_abs:  2000.
-!----------------------------------	
-!
-!
-!============
-variable_entry: sftlf
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: land_area_fraction
-units:         %
-long_name:     Land Area Fraction
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude
-valid_min:        0.0
-valid_max:        100.
-ok_min_mean_abs:  20.
-ok_max_mean_abs:  40.
-!----------------------------------	
-!
-!
-!============
-variable_entry: sftgif
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: land_ice_area_fraction
-units:         %
-long_name:     Fraction of Grid Cell Covered with Glacier
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude
-valid_min:        0.0
-valid_max:        100.
-!----------------------------------	
-!
-!
-!============
-variable_entry: mrsofc
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: soil_moisture_content_at_field_capacity
-units:         kg m-2
-long_name:     Capacity of Soil to Store Water
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude
-!----------------------------------	
-!
-!
-!
-!
-! ***************************************************************
-!
-! IPCC Table A1c: Monthly-mean 3-d atmosphere data
-!
-! ***************************************************************
-!
-!
-!
-!============
-variable_entry: cl
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:  cloud_area_fraction_in_atmosphere_layer
-units:          %
-cell_methods:   time: mean
-long_name:      Cloud Fraction
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         longitude latitude zlevel time
-valid_min:          0.0
-valid_max:          100.0
-ok_min_mean_abs:    10.0
-ok_max_mean_abs:    90.0
-!----------------------------------	
-!
-!
-!============
-variable_entry: ta
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: air_temperature
-units:         K
-cell_methods:  time: mean
-long_name:     Temperature
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude pressure time
-valid_min:        150.
-valid_max:        350.
-ok_min_mean_abs:  200.
-ok_max_mean_abs:  300.
-!----------------------------------	
-!
-!
-!============
-variable_entry: ua
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: eastward_wind
-units:         m s-1
-cell_methods:  time: mean
-long_name:     Zonal Wind Component
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude pressure time
-valid_min:        -200.
-valid_max:        300.
-ok_min_mean_abs:  0.1
-ok_max_mean_abs:  100.
-!----------------------------------	
-!
-!
-!============
-variable_entry: va
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: northward_wind
-units:         m s-1
-cell_methods:  time: mean
-long_name:     Meridional Wind Component
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude pressure time
-valid_min:        -100.
-valid_max:        100.
-ok_min_mean_abs:  0.1
-ok_max_mean_abs:  50.
-!----------------------------------	
-!
-!
-!============
-variable_entry: hus
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: specific_humidity
-units:         1
-cell_methods:  time: mean
-long_name:     Specific Humidity 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude pressure time
-!----------------------------------	
-!
-!
-!============
-variable_entry: wap
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: lagrangian_tendency_of_air_pressure
-units:         Pa s-1
-cell_methods:  time: mean
-long_name:     Omega (=dp/dt) 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude pressure time
-!----------------------------------	
-!
-!
-!============
-variable_entry: zg
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: geopotential_height
-units:         m
-cell_methods:  time: mean
-long_name:     Geopotential Height 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude pressure time
-!----------------------------------	
-!
-!
-!============
-variable_entry: hur
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: relative_humidity
-units:         %
-cell_methods:  time: mean
-long_name:     Relative Humidity 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude pressure time
-valid_min:        0.
-valid_max:        100.
-ok_min_mean_abs:  1.
-ok_max_mean_abs:  99.
-!----------------------------------	
-!
-!
-!============
-variable_entry: tro3
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: mole_fraction_of_o3_in_air
-units:         1e-9
-cell_methods:  time: mean
-long_name:     Ozone Mole Fraction
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude pressure time
-!----------------------------------	
-!
-!
-!
-!
-! ***************************************************************
-!
-! IPCC Table A1d: Monthly-mean 3-d ISCCP simulator data
-!
-! ***************************************************************
-!
-!
-!
-!============
-variable_entry: clisccp
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: isccp_cloud_area_fraction
-units:         1
-cell_methods:  time: mean
-long_name:     Cloud Fraction as Calculated by the ISCCP Simulator
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude pressure2 tau time
-valid_min:        0.0
-valid_max:        1.0
-ok_min_mean_abs:  0.001
-ok_max_mean_abs:  0.9
-!----------------------------------	
-!
-!
-!
-!
-! ***************************************************************
-!
-! IPCC Table A1e: Monthly-mean 2-d and 3-d sulfate aerosol fields
-!
-! ***************************************************************
-!
-!
-!
-!============
-variable_entry: trsul
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: mass_concentration_of_sulfate_aerosol_in_air 
-units:         1e-9 kg m-3
-cell_methods:  time: mean
-long_name:     Mass Concentration of Sulfate Aerosol
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude pressure3 time
-!----------------------------------	
-!
-!
-!============
-variable_entry: trsult
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: atmosphere_content_of_sulfate_aerosol 
-units:         1e-6 kg m-2
-cell_methods:  time: mean
-long_name:     Sulfate Burden
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-!----------------------------------	
-!
-!
-!
-!
-! ***************************************************************
-!
-! IPCC Table A1f: Monthly-mean land surface fields and prescribed land surface characteristics
-!
-! ***************************************************************
-!
-!
-!
-!============
-variable_entry: prveg
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: precipitation_flux_onto_canopy
-units:         kg m-2 s-1 
-cell_methods:  time: mean
-long_name:     Precipitation Intercepted by Vegetation Canopy
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-!----------------------------------	
-!
-!
-!============
-variable_entry: evspsblveg
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: water_evaporation_flux_from_canopy
-units:         kg m-2 s-1 
-cell_methods:  time: mean
-long_name:     Evaporation from Vegetation Canopy
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-!----------------------------------	
-!
-!
-!============
-variable_entry: zmla
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: atmosphere_boundary_layer_thickness
-units:         m
-cell_methods:  time: mean
-long_name:     Atmospheric Boundary Layer Thickness
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-!----------------------------------	
-!
-!
-!============
-variable_entry: rootd
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: root_depth
-units:         m
-long_name:     Root Depth
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude
-!----------------------------------	
-!
-!
-!============
-variable_entry: tasmin
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: air_temperature
-units:         K
-cell_methods:  time: minimum within days time: mean over days
-long_name:     Daily Minimum Surface Air Temperature
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time height1
-!----------------------------------	
-!
-!
-!============
-variable_entry: tasmax
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: air_temperature
-units:         K
-cell_methods:  time: maximum within days time: mean over days
-long_name:     Daily Miximum Surface Air Temperature
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time height1
-!----------------------------------	
-!
-!
diff --git a/Test/IPCC_table_A3 b/Test/IPCC_table_A3
deleted file mode 100644
index 9492267..0000000
--- a/Test/IPCC_table_A3
+++ /dev/null
@@ -1,545 +0,0 @@
-cmor_version: 2.0         ! version of CMOR that can read this table
-cf_version:   1.0         ! version of CF that output conforms to
-project_id:   IPCC Fourth Assessment  ! project id
-table_id:     Table A3    ! table id
-table_date:   17 November 2004 ! date this table was constructed
-required_global_attributes: creation_date tracking_id model_id forcing
-
-modeling_realm:	      atm
-
-expt_id_ok:   'pre-industrial control experiment'
-expt_id_ok:   'present-day control experiment'
-expt_id_ok:   'climate of the 20th Century experiment (20C3M)'
-expt_id_ok:   'committed climate change experiment'  ! official name(s) of 
-expt_id_ok:   'SRES A2 experiment'                   !  project's experiments
-expt_id_ok:   '720 ppm stabilization experiment (SRES A1B)'    
-expt_id_ok:   '550 ppm stabilization experiment (SRES B1)'
-expt_id_ok:   '1%/year CO2 increase experiment (to doubling)'
-expt_id_ok:   '1%/year CO2 increase experiment (to quadrupling)'
-expt_id_ok:   'slab ocean control experiment'
-expt_id_ok:   '2xCO2 equilibrium experiment' '2xco2'
-expt_id_ok:   'AMIP experiment'
-
-magic_number: -1          ! used to check whether this file has been 
-                          !   altered from the official version.
-                          !   should be set to number of non-blank 
-                          !   characters in file. 
-approx_interval: 0.125    ! approximate spacing between successive time
-                          !   samples (in units of the output time 
-                          !   coordinate), but this is ignored if set to 0.                   
-missing_value: 1.e20      ! value used to indicate a missing value
-                          !   in arrays output by netCDF as 32-bit IEEE 
-                          !   floating-point numbers (float or real)
-
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-! SUBROUTINE ARGUMENT DEFAULT INFORMATION
-!
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-!  set default specifications for subroutine arguments to:
-!     required/indeterminate/optional/ignored/forbidden
-!    (indeterminate may or may not be required information, but is not always
-!     required as an argument of the function call)
-!
-!
-!============
-subroutine_entry: cmor_axis
-!============
-!
-required: table axis_name units length coord_vals cell_bounds
-ignored: interval
-!
-!============
-subroutine_entry: cmor_variable
-!============
-!
-required: table table_entry units axis_ids
-indeterminate: missing_value
-optional: tolerance original_name history comment
-ignored: positive
-!
-!============
-subroutine_entry: cmor_write
-!============
-!
-required:  var_id data 
-indeterminate: ntimes_passed time_vals time_bnds store_with
-optional: file_suffix
-!
-!
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-! AXIS INFORMATION
-!
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-! ??? what about climatology???
-! ??? what about model level data???
-!
-!
-!  TEMPLATE FOR AXES
-!
-!============
-!axis_entry:               ! (required)
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-!    acceptable arguments include units length coord_vals cell_bounds interval
-!required:                  ! (default: table axis_name units length
-!                                        coord_vals cell_bounds)
-!indeterminate:
-!optional:
-!ignored:                   ! (default: interval)
-!forbidden:
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-!standard_name:             ! (required)
-!units:                     ! (required)
-!axis:                      ! X, Y, Z, T (default: undeclared)
-!positive:                  ! up or down (default: undeclared)
-!long_name:                 ! (default: undeclared)
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-!out_name:                ! (default: same as axis_entry) 
-!type:                    ! double (default), real, character, integer
-!stored_direction:        ! increasing (default) or decreasing
-!valid_min:               ! type: double precision (default: no check performed
-!valid_max:               ! type: double precision (default: no check performed
-!requested:               ! space-separated list of requested coordinates 
-                          !       (default: undeclared)
-!bounds_requested:        ! space-separated list of requested coordinate bounds
-                          !       (default: undeclared)
-!tol_on_requests:         ! fractional tolerance for meeting request
-                          !  (default=1.e-3, which is used in the formula:
-                          !     eps =  MIN(( tol*interval between grid-points)
-                          !          and (1.e-3*tol*coordinate value)))
-!value:                   ! of scalar (singleton) dimension 
-!bounds_values:           ! of scalar (singleton) dimension bounds
-!----------------------------------	
-!
-!
-!  TEMPLATE FOR VARIABLES
-!
-!
-!============
-!variable_entry:                ! (required)
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!        acceptable arguments include  file_suffix missing_value tolerance 
-!                               original_name history comment positive
-!required:                   ! (default: table table_entry units axis_ids)
-!indeterminate:              ! (default: file_suffix missing_value)
-!optional:                   ! (default: original_name history comment)
-!ignored:                    ! (default: positive)
-!forbidden:
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-!standard_name:              ! (required)
-!units:                      ! (required)
-!cell_methods:               ! (default: undeclared)
-!long_name:                  ! (default: undeclared)
-!comment:                    ! (default: undeclared)
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-!dimensions:                 ! (required)  (scalar dimension(s) should appear
-                             !      last in list)
-!out_name:                   ! (default: variable_entry)
-!type:                       ! real (default), double, integer 
-!positive:                   ! up or down (default: undeclared)
-!valid_min:                  ! type: real (default: no check performed)
-!valid_max:                  ! type: real (default: no check performed)
-!ok_min_mean_abs:            ! type: real (default: no check performed)
-!ok_max_mean_abs:            ! type: real (default: no check performed)
-!----------------------------------	
-! 
-
-!
-!============
-axis_entry: longitude
-!============
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    longitude
-units:            degrees_east
-axis:             X
-long_name:        longitude
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lon
-valid_min:        0.           ! CMOR will add n*360 to input values
-                               ! (where n is an integer) to ensure 
-                               !  longitudes are in proper range.  The
-                               !  data will also be rearranged 
-                               !  appropriately.
-valid_max:        360.         !  see above comment.
-!----------------------------------	
-!
-!
-!=============
-axis_entry: latitude
-!=============
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    latitude
-units:            degrees_north
-axis:             Y
-long_name:        latitude
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lat
-valid_min:        -90.
-valid_max:        90.
-!----------------------------------	
-!
-!
-
-! ??? What about climatological data???
-!
-!============
-axis_entry: time
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-optional: interval length
-indeterminate: coord_vals cell_bounds
-!------------
-!
-! Axis attributes:
-!----------------------------------
-standard_name:    time
-units:            days since ?
-axis:             T
-long_name:        time
-!----------------------------------	
-!
-!
-!============
-axis_entry: time1
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-optional: interval length
-indeterminate: coord_vals
-forbidden: cell_bounds
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-out_name:         time
-standard_name:    time
-units:            days since ?
-axis:             T
-long_name:        time
-!----------------------------------	
-!
-!
-!============
-axis_entry: pressure
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-ignored: cell_bounds
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    air_pressure
-units:            Pa 
-axis:             Z
-positive:         down
-long_name:        pressure
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         plev
-stored_direction: decreasing
-valid_min:        0.
-valid_max:        110000.
-requested:        100000. 92500. 85000. 70000. 60000. 50000. 40000. 
-requested:         30000. 25000. 20000. 15000. 10000.  7000.  5000.
-requested:          3000.  2000.  1000.
-!----------------------------------	
-!
-!
-!============
-axis_entry: height1
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-ignored: cell_bounds
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    height
-units:            m
-axis:             Z
-positive:         up
-long_name:        height
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         height
-valid_min:        0.
-valid_max:        10.
-value:            2.
-!----------------------------------	
-!
-!
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-! VARIABLE INFORMATION
-!
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-!
-!
-! ***************************************************************
-!
-! IPCC Table A3: 3-bourly 2-d atmosphere data 
-!
-! ***************************************************************
-!
-!
-!
-!============
-variable_entry: psl
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:   air_pressure_at_sea_level     
-units:           Pa
-long_name:       Sea Level Pressure
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time1
-valid_min:        90000.
-valid_max:        120000.
-ok_min_mean_abs:  102000.
-ok_max_mean_abs:  98000.
-!----------------------------------	
-! 
-!
-!============
-variable_entry: pr
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:  precipitation_flux
-units:          kg m-2 s-1
-cell_methods:   time: mean
-long_name:      Precipitation
-comment:        includes all types (rain, snow, large-scale, convective, etc.)
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         longitude latitude time
-valid_min:          0.0
-!----------------------------------	
-!
-!
-!============
-variable_entry: tas
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:   air_temperature     
-units:           K
-long_name:       Surface Air Temperature
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time1 height1
-valid_min:        185.
-valid_max:        350.
-ok_min_mean_abs:  270.
-ok_max_mean_abs:  300.
-!----------------------------------	
-! 
-!
-!============
-variable_entry: hfls
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-long_name:     Surface Latent Heat Flux
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time1
-positive:         up
-valid_min:        -1000.
-valid_max:        2000.
-ok_min_mean_abs:  50.
-ok_max_mean_abs:  120.
-!----------------------------------	
-! 
-!
-!============
-variable_entry: hfss
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_sensible_heat_flux
-units:         W m-2
-long_name:     Surface Sensible Heat Flux
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time1
-positive:         up
-!----------------------------------	
-! 
-!
-!============
-variable_entry: rlds
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_downwelling_longwave_flux_in_air
-units:         W m-2
-long_name:     Surface Downwelling Longwave Radiation
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time1
-positive:         down
-valid_min:        20.
-valid_max:        600.
-ok_min_mean_abs:  300.
-ok_max_mean_abs:  370.
-!----------------------------------	
-! 
-!
-!============
-variable_entry: rlus
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upwelling_longwave_flux_in_air
-units:         W m-2
-long_name:     Surface Upwelling Longwave Radiation
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time1
-positive:         up
-valid_min:        50.
-valid_max:        900.
-ok_min_mean_abs:  250.
-ok_max_mean_abs:  450.
-!----------------------------------	
-! 
-!
-!============
-variable_entry: rsds
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_downwelling_shortwave_flux_in_air
-units:         W m-2
-long_name:     Surface Downwelling Shortwave Radiation
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time1
-positive:         down
-valid_min:        0.
-valid_max:        1400.
-!----------------------------------	
-! 
-!
-!============
-variable_entry: rsus
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upwelling_shortwave_flux_in_air
-units:         W m-2
-long_name:     Surface Upwelling Shortwave Radiation
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time1
-valid_min:        0.
-positive:         up
-!----------------------------------	
-! 
-!
diff --git a/Test/IPCC_test_table_A b/Test/IPCC_test_table_A
deleted file mode 100644
index e9cb7ad..0000000
--- a/Test/IPCC_test_table_A
+++ /dev/null
@@ -1,1023 +0,0 @@
-cmor_version: 1.0         ! version of CMOR that can read this table
-cf_version:   1.3         ! version of CF that output conforms to
-project_id:   IPCC Fourth Assessment  ! project id
-table_id:     Table A1    ! table id
-table_date:   23 October 2008 ! date this table was constructed
-baseURL: http://www-pcmdi.llnl.gov/
-
-modeling_realm:	      atm
-
-expt_id_ok:   'pre-industrial control experiment'
-expt_id_ok:   'present-day control experiment'
-expt_id_ok:   'climate of the 20th Century experiment (20C3M)' '20c3m'
-expt_id_ok:   'committed climate change experiment'  ! official name(s) of 
-expt_id_ok:   'SRES A2 experiment'                   !  project's experiments
-expt_id_ok:   '720 ppm stabilization experiment (SRES A1B)'    
-expt_id_ok:   '550 ppm stabilization experiment (SRES B1)'
-expt_id_ok:   '1%/year CO2 increase experiment (to doubling)'
-expt_id_ok:   '1%/year CO2 increase experiment (to quadrupling)'
-expt_id_ok:   'slab ocean control experiment'
-expt_id_ok:   '2xCO2 equilibrium experiment'  '2xco2'
-expt_id_ok:   'AMIP experiment'
-
-required_global_attributes: creation_date tracking_id forcing model_id ! space separated required global attribute
-
-! global attributes: Conventions (cf_version in here), table_id, project_id,
-! institution, experiment_id, source, calendar: are always required anyway 
-magic_number: -1          ! used to check whether this file has been 
-                          !   altered from the official version.
-                          !   should be set to number of non-blank 
-                          !   characters in file. 
-approx_interval:  30.     ! approximate spacing between successive time
-                          !   samples (in units of the output time 
-                          !   coordinate.
-missing_value: 1.e20      ! value used to indicate a missing value
-                          !   in arrays output by netCDF as 32-bit IEEE 
-                          !   floating-point numbers (float or real)
-
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-! SUBROUTINE ARGUMENT DEFAULT INFORMATION
-!
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-!  set default specifications for subroutine arguments to:
-!     required/indeterminate/optional/ignored/forbidden
-!    (indeterminate may or may not be required information, but is not always
-!     required as an argument of the function call)
-!
-!
-!============
-subroutine_entry: cmor_axis
-!============
-!
-required: table axis_name units length coord_vals cell_bounds
-ignored: interval
-!
-!============
-subroutine_entry: cmor_variable
-!============
-!
-required: table table_entry units axis_ids
-indeterminate: missing_value
-optional: tolerance original_name history comment
-ignored: positive
-!
-!============
-subroutine_entry: cmor_write
-!============
-!
-required:  var_id data 
-indeterminate: ntimes_passed time_vals time_bnds store_with
-optional: file_suffix
-!
-!
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-! AXIS INFORMATION
-!
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-! ??? what about climatology???
-! ??? what about model level data???
-!
-!
-!  TEMPLATE FOR AXES
-!
-!============
-!axis_entry:               ! (required)
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-!    acceptable arguments include units length coord_vals cell_bounds interval
-!required:                  ! (default: table axis_name units length
-!                                        coord_vals cell_bounds)
-!indeterminate:
-!optional:
-!ignored:                   ! (default: interval)
-!forbidden:
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-!standard_name:             ! (required)
-!units:                     ! (required)
-!axis:                      ! X, Y, Z, T (default: undeclared)
-!positive:                  ! up or down (default: undeclared)
-!long_name:                 ! (default: undeclared)
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-!out_name:                ! (default: same as axis_entry) 
-!type:                    ! double (default), real, character, integer
-!stored_direction:        ! increasing (default) or decreasing
-!valid_min:               ! type: double precision (default: no check performed
-!valid_max:               ! type: double precision (default: no check performed
-!requested:               ! space-separated list of requested coordinates 
-                          !       (default: undeclared)
-!requested_bounds:        ! space-separated list of requested coordinate bounds
-                          !       (default: undeclared)
-!tol_on_requests:         ! fractional tolerance for meeting request
-                          !  (default=1.e-3, which is used in the formula:
-                          !     eps =  MIN(( tol*interval between grid-points)
-                          !          and (1.e-3*tol*coordinate value)))
-!value:                   ! of scalar (singleton) dimension 
-!bounds_values:           ! of scalar (singleton) dimension bounds
-!----------------------------------	
-!
-!
-!  TEMPLATE FOR VARIABLES
-!
-!
-!============
-!variable_entry:                ! (required)
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!        acceptable arguments include  file_suffix missing_value tolerance 
-!                               original_name history comment positive
-!required:                   ! (default: table table_entry units axis_ids)
-!indeterminate:              ! (default: file_suffix missing_value)
-!optional:                   ! (default: original_name history comment)
-!ignored:                    ! (default: positive)
-!forbidden:
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-!standard_name:              ! (required)
-!units:                      ! (required)
-!cell_methods:               ! (default: undeclared)
-!long_name:                  ! (default: undeclared)
-!comment:                    ! (default: undeclared)
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-!dimensions:                 ! (required)  (scalar dimension(s) should appear
-                             !      last in list)
-!out_name:                   ! (default: variable_entry)
-!type:                       ! real (default), double, integer 
-!positive:                   ! up or down (default: undeclared)
-!valid_min:                  ! type: real (default: no check performed)
-!valid_max:                  ! type: real (default: no check performed)
-!ok_min_mean_abs:            ! type: real (default: no check performed)
-!ok_max_mean_abs:            ! type: real (default: no check performed)
-!----------------------------------	
-! 
-
-!
-!============
-axis_entry: longitude
-!============
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    longitude
-units:            degrees_east
-axis:             X
-long_name:        longitude
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lon
-valid_min:        0.           ! CMOR will add n*360 to input values
-                               ! (where n is an integer) to ensure 
-                               !  longitudes are in proper range.  The
-                               !  data will also be rearranged 
-                               !  appropriately.
-valid_max:        360.         !  see above comment.
-!----------------------------------	
-!
-!
-!=============
-axis_entry: latitude
-!=============
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    latitude
-units:            degrees_north
-axis:             Y
-long_name:        latitude
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lat
-valid_min:        -90.
-valid_max:        90.
-!----------------------------------	
-!
-!
-!============
-axis_entry: time
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-optional: interval length
-indeterminate: coord_vals cell_bounds
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    time
-units:            days since ?
-axis:             T
-long_name:        time
-!----------------------------------
-!
-!
-!
-!============
-axis_entry: time_clim
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-optional: interval length
-indeterminate: coord_vals cell_bounds
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    time
-units:            days since ?
-axis:             T
-climatology:      yes
-long_name:        time
-!----------------------------------
-!
-!
-!
-!============
-axis_entry: pressure
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-ignored: cell_bounds
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    air_pressure
-units:            Pa 
-axis:             Z
-positive:         down
-long_name:        pressure
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         plev
-stored_direction: decreasing
-valid_min:        0.
-valid_max:        110000.
-requested:        10000. 20000. 30000. 40000. 50000.
-!----------------------------------	
-!
-!
-!============
-axis_entry: height1
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-ignored: cell_bounds
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    height
-units:            m
-axis:             Z
-positive:         up
-long_name:        height
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         height
-valid_min:        0.
-valid_max:        10.
-value:            2.
-!----------------------------------	
-!
-!
-!============
-axis_entry: height2
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-ignored: cell_bounds
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    height
-units:            m
-axis:             Z
-positive:         up
-long_name:        height
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         height
-valid_min:        0.
-valid_max:        30.
-value:            10.
-!----------------------------------	
-!
-!============
-axis_entry: depth1
-!============
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    depth
-units:            m
-axis:             Z
-positive:         down
-long_name:         depth
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         depth
-valid_min:        0.0
-valid_max:        1.0
-value:            0.05
-bounds_values:    0.0 0.1
-!----------------------------------
-!
-!
-!============
-axis_entry: standard_sigma
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-optional: units
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    atmosphere_sigma_coordinate
-axis:             Z
-positive:         down
-long_name:        sigma coordinate
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lev
-stored_direction: decreasing
-valid_min:        0.0
-valid_max:        1.0
-formula:          p(n,k,j,i) = ptop + sigma(k)*(ps(n,j,i) - ptop)
-convert_to:       standard_hybrid_sigma
-z_factors:        ptop: ptop sigma: sigma ps: ps
-z_bounds_factors: ptop: ptop sigma: sigma_bnds ps: ps
-!----------------------------------	
-!
-!
-!============
-axis_entry:  standard_hybrid_sigma
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-optional: units
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    atmosphere_hybrid_sigma_pressure_coordinate
-units:            1
-axis:             Z 
-positive:         down
-long_name:        hybrid sigma pressure coordinate
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lev
-stored_direction: decreasing
-valid_min:        0.0
-valid_max:        1.0
-formula:          p(n,k,j,i) = a(k)*p0 + b(k)*ps(n,j,i)
-convert_to:       standard_hybrid_sigma
-z_factors:        p0: p0 a: a b: b ps: ps
-z_bounds_factors: p0: p0 a: a_bnds b: b_bnds ps: ps
-!----------------------------------		
-!
-!
-!============
-axis_entry:  alternate_hybrid_sigma
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-optional: units
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    atmosphere_hybrid_sigma_pressure_coordinate
-units:            1
-axis:             Z
-positive:         down
-long_name:        hybrid sigma pressure coordinate
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lev
-stored_direction: decreasing
-valid_min:        0.0
-valid_max:        1.0
-formula:          p(n,k,j,i) = ap(k) + b(k)*ps(n,j,i)
-convert_to:       standard_hybrid_sigma
-z_factors:        p0: p0 ap: ap b: b ps: ps
-z_bounds_factors: p0 ap: ap_bnds b: b_bnds ps: ps
-!----------------------------------		
-!
-!
-!============
-axis_entry:  hybrid_height
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-optional: units
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    atmosphere_hybrid_height_coordinate
-units:            m
-axis:             Z 
-positive:         up
-long_name:        hybrid height coordinate
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lev
-stored_direction: increasing
-valid_min:        0.0
-formula:          z(k,j,i) = a(k) + b(k)*orog(j,i)
-z_factors:        a: az b: bz orog: orog
-z_bounds_factors: a: az_bnds b: bz_bnds orog: orog
-!----------------------------------		
-!
-!
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-! VARIABLE INFORMATION
-!
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-!
-!
-! ***************************************************************
-!
-! Vertical dimensionless coordinate variables:
-!
-! ***************************************************************
-!
-!
-!
-!============
-variable_entry: p0
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-ignored: axis_ids
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:       reference pressure for hybrid sigma coordinate 
-units:           Pa
-!----------------------------------	
-!
-!
-!============
-variable_entry: ptop
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-ignored: axis_ids
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:       pressure at top of model 
-units:           Pa
-!----------------------------------	
-!
-!
-!============
-variable_entry: sigma
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-optional: units
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:  sigma coordinate
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: sigma_bnds
-!============
-!IPCC_table_A1
-!    Override default argument specifications for cmor_variable
-!------------
-optional: units
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:  sigma coordinate for layer bounds
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: a
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-optional: units
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   hybrid sigma coordinate A coefficient for layer
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: b
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-optional: units
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   hybrid sigma coordinate B coefficient for layer
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: a_bnds
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-optional: units
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   hybrid sigma coordinate A coefficient for layer bounds
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: b_bnds
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-optional: units
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   hybrid sigma coordinate B coefficient for layer bounds
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------
-!
-!
-!============
-variable_entry: ap
-!============
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   alternate hybrid sigma coordinate A coefficient for layer
-units:           Pa
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: ap_bnds
-!============
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   alternate hybrid sigma coordinate A coefficient for layer bounds
-units:           Pa
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: az
-!============
-!
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   hybrid height coordinate A coefficient for layer
-units:           m
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: bz
-!============
-!
-!    Override default argument specifications for cmor_variable 
-!------------
-optional: units
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   hybrid height coordinate B coefficient for layer
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: az_bnds
-!============
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   hybrid sigma coordinate A coefficient for layer bounds
-units:           m
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: bz_bnds
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-optional: units
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   hybrid sigma coordinate B coefficient for layer bounds
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------
-!
-!
-!============
-variable_entry: psl
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:   air_pressure_at_sea_level     
-units:           Pa
-cell_methods:    time: mean
-long_name:       Sea Level Pressure
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-valid_min:        90000.
-valid_max:        120000.
-ok_min_mean_abs:  102000.
-ok_max_mean_abs:  98000.
-!----------------------------------	
-! 
-!
-!============
-variable_entry: orog
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_altitude
-units:         m
-long_name:     Surface Altitude
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude
-valid_min:        -500.
-valid_max:        12000.
-ok_min_mean_abs:  0.
-ok_max_mean_abs:  2000.
-!----------------------------------	
-!
-!
-!============
-variable_entry: pr
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:  precipitation_flux
-units:          kg m-2 s-1
-cell_methods:   time: mean
-long_name:      Precipitation
-comment:        includes all types (rain, snow, large-scale, convective, etc.)
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         longitude latitude time
-valid_min:          0.0
-valid_max:          1.e-4
-ok_min_mean_abs:    1.e-6
-ok_max_mean_abs:    5.e-5 
-!----------------------------------	
-!
-!
-!============
-variable_entry: tas
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:   air_temperature     
-units:           K
-cell_methods:    time: mean
-long_name:       Surface Air Temperature
-deflate: 9
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time height1
-valid_min:        200.
-valid_max:        330.
-ok_min_mean_abs:  260.
-ok_max_mean_abs:  300.
-!----------------------------------	
-! 
-!
-!============
-variable_entry: tas_diurnal
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:   air_temperature     
-units:           K
-cell_methods:    time: mean within days time: mean over days
-long_name:       Diurnal Cycle Climatology for Surface Air Temperature
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time_clim height1
-valid_min:        200.
-valid_max:        330.
-ok_min_mean_abs:  270.
-ok_max_mean_abs:  300.
-!----------------------------------	
-! 
-!
-!============
-variable_entry: mrsos
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: moisture_content_of_soil_layer
-units:         kg m-2
-cell_methods:  time: mean
-long_name:     Moisture in Upper 0.1 m of Soil Column
-comment:         includes subsurface frozen water but not surface snow and ice 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time depth1
-!----------------------------------	 
-!
-!
-!============
-variable_entry: hfls
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name: hfls
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: ps
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:   surface_air_pressure     
-units:           Pa
-cell_methods:    time: mean
-long_name:       Surface Pressure
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-valid_min:        0.48e5
-valid_max:        1.1e5
-ok_min_mean_abs:  0.97e5
-ok_max_mean_abs:  1.0e5
-!----------------------------------		
-! 
-!
-!============
-variable_entry: ua
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: eastward_wind
-units:         m s-1
-cell_methods:  time: mean
-long_name:     Zonal Wind Component
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude pressure time
-valid_min:        -200.
-valid_max:        300.
-ok_min_mean_abs:  0.1
-ok_max_mean_abs:  100.
-!----------------------------------	
-!
-!
-!============
-variable_entry: ta
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: air_temperature
-units:         K
-cell_methods:  time: mean
-long_name:     Temperature
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude pressure time
-valid_min:        150.
-valid_max:        350.
-ok_min_mean_abs:  200.
-ok_max_mean_abs:  300.
-!----------------------------------	
-!
-!
-!============
-variable_entry: cl
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:  cloud_area_fraction
-units:          %
-cell_methods:   time: mean
-long_name:      Total Cloud Fraction
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         longitude latitude zlevel time
-valid_min:          0.0
-valid_max:          100.0
-ok_min_mean_abs:    10.0
-ok_max_mean_abs:    90.0
-!----------------------------------	
-!
-!
diff --git a/Test/IPCC_test_table_As b/Test/IPCC_test_table_As
deleted file mode 100644
index a726042..0000000
--- a/Test/IPCC_test_table_As
+++ /dev/null
@@ -1,14624 +0,0 @@
-cmor_version: 1.0         ! version of CMOR that can read this table
-cf_version:   1.3         ! version of CF that output conforms to
-project_id:   IPCC Fourth Assessment  ! project id
-table_id:     Table A1    ! table id
-table_date:   23 October 2008 ! date this table was constructed
-baseURL: http://www-pcmdi.llnl.gov/
-
-modeling_realm: 	      land
-
-expt_id_ok:   'pre-industrial control experiment'  'preind'
-expt_id_ok:   'present-day control experiment'  'present'
-expt_id_ok:   'climate of the 20th Century experiment (20C3M)' '20c3m'
-expt_id_ok:   'committed climate change experiment'  ! official name(s) of 'ccce'
-expt_id_ok:   'SRES A2 experiment'                   !  project's experiments 'sresa2'
-expt_id_ok:   '720 ppm stabilization experiment (SRES A1B)'    'sresa1b'
-expt_id_ok:   '550 ppm stabilization experiment (SRES B1)' 'sres1b'
-expt_id_ok:   '1%/year CO2 increase experiment (to doubling)' '1pct2x'
-expt_id_ok:   '1%/year CO2 increase experiment (to quadrupling)' '1pct4x'
-expt_id_ok:   'slab ocean control experiment' 'slab'
-expt_id_ok:   '2xCO2 equilibrium experiment' '2xco2'
-expt_id_ok:   'AMIP experiment' 'amip'
-
-required_global_attributes: creation_date tracking_id forcing model_id initialization_method ! space separated required global attribute
-
-! global attributes: Conventions (cf_version in here), table_id, project_id,
-! institution, experiment_id, source, calendar: are always required anyway 
-magic_number: -1          ! used to check whether this file has been 
-                          !   altered from the official version.
-                          !   should be set to number of non-blank 
-                          !   characters in file. 
-approx_interval:  30.     ! approximate spacing between successive time
-                          !   samples (in units of the output time 
-                          !   coordinate.
-missing_value: 1.e20      ! value used to indicate a missing value
-                          !   in arrays output by netCDF as 32-bit IEEE 
-                          !   floating-point numbers (float or real)
-
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-! SUBROUTINE ARGUMENT DEFAULT INFORMATION
-!
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-!  set default specifications for subroutine arguments to:
-!     required/indeterminate/optional/ignored/forbidden
-!    (indeterminate may or may not be required information, but is not always
-!     required as an argument of the function call)
-!
-!
-!============
-subroutine_entry: cmor_axis
-!============
-!
-required: table axis_name units length coord_vals cell_bounds
-ignored: interval
-!
-!============
-subroutine_entry: cmor_variable
-!============
-!
-required: table table_entry units axis_ids
-indeterminate: missing_value
-optional: tolerance original_name history comment
-ignored: positive
-!
-!============
-subroutine_entry: cmor_write
-!============
-!
-required:  var_id data 
-indeterminate: ntimes_passed time_vals time_bnds store_with
-optional: file_suffix
-!
-!
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-! AXIS INFORMATION
-!
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-! ??? what about climatology???
-! ??? what about model level data???
-!
-!
-!  TEMPLATE FOR AXES
-!
-!============
-!axis_entry:               ! (required)
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-!    acceptable arguments include units length coord_vals cell_bounds interval
-!required:                  ! (default: table axis_name units length
-!                                        coord_vals cell_bounds)
-!indeterminate:
-!optional:
-!ignored:                   ! (default: interval)
-!forbidden:
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-!standard_name:             ! (required)
-!units:                     ! (required)
-!axis:                      ! X, Y, Z, T (default: undeclared)
-!positive:                  ! up or down (default: undeclared)
-!long_name:                 ! (default: undeclared)
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-!out_name:                ! (default: same as axis_entry) 
-!type:                    ! double (default), real, character, integer
-!stored_direction:        ! increasing (default) or decreasing
-!valid_min:               ! type: double precision (default: no check performed
-!valid_max:               ! type: double precision (default: no check performed
-!requested:               ! space-separated list of requested coordinates 
-                          !       (default: undeclared)
-!requested_bounds:        ! space-separated list of requested coordinate bounds
-                          !       (default: undeclared)
-!tol_on_requests:         ! fractional tolerance for meeting request
-                          !  (default=1.e-3, which is used in the formula:
-                          !     eps =  MIN(( tol*interval between grid-points)
-                          !          and (1.e-3*tol*coordinate value)))
-!value:                   ! of scalar (singleton) dimension 
-!bounds_values:           ! of scalar (singleton) dimension bounds
-!----------------------------------	
-!
-!
-!  TEMPLATE FOR VARIABLES
-!
-!
-!============
-!variable_entry:                ! (required)
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!        acceptable arguments include  file_suffix missing_value tolerance 
-!                               original_name history comment positive
-!required:                   ! (default: table table_entry units axis_ids)
-!indeterminate:              ! (default: file_suffix missing_value)
-!optional:                   ! (default: original_name history comment)
-!ignored:                    ! (default: positive)
-!forbidden:
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-!standard_name:              ! (required)
-!units:                      ! (required)
-!cell_methods:               ! (default: undeclared)
-!long_name:                  ! (default: undeclared)
-!comment:                    ! (default: undeclared)
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-!dimensions:                 ! (required)  (scalar dimension(s) should appear
-                             !      last in list)
-!out_name:                   ! (default: variable_entry)
-!type:                       ! real (default), double, integer 
-!positive:                   ! up or down (default: undeclared)
-!valid_min:                  ! type: real (default: no check performed)
-!valid_max:                  ! type: real (default: no check performed)
-!ok_min_mean_abs:            ! type: real (default: no check performed)
-!ok_max_mean_abs:            ! type: real (default: no check performed)
-!----------------------------------	
-! 
-
-!
-!============
-axis_entry: longitude
-!============
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    longitude
-units:            degrees_east
-axis:             X
-long_name:        longitude
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lon
-valid_min:        0.           ! CMOR will add n*360 to input values
-                               ! (where n is an integer) to ensure 
-                               !  longitudes are in proper range.  The
-                               !  data will also be rearranged 
-                               !  appropriately.
-valid_max:        360.         !  see above comment.
-!----------------------------------	
-!
-!
-!=============
-axis_entry: latitude
-!=============
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    latitude
-units:            degrees_north
-axis:             Y
-long_name:        latitude
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lat
-valid_min:        -90.
-valid_max:        90.
-!----------------------------------	
-!
-!
-!============
-axis_entry: time
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-optional: interval length
-indeterminate: coord_vals cell_bounds
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    time
-units:            days since ?
-axis:             T
-long_name:        time
-!----------------------------------
-!
-!
-!
-!============
-axis_entry: time_clim
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-optional: interval length
-indeterminate: coord_vals cell_bounds
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    time
-units:            days since ?
-axis:             T
-climatology:      yes
-long_name:        time
-!----------------------------------
-!
-!
-!
-!============
-axis_entry: pressure
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-ignored: cell_bounds
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    air_pressure
-units:            Pa 
-axis:             Z
-positive:         down
-long_name:        pressure
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         plev
-stored_direction: decreasing
-valid_min:        0.
-valid_max:        110000.
-requested:        10000. 20000. 30000. 40000. 50000.
-!----------------------------------	
-!
-!
-!============
-axis_entry: height1
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-ignored: cell_bounds
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    height
-units:            m
-axis:             Z
-positive:         up
-long_name:        height
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         height
-valid_min:        0.
-valid_max:        10.
-value:            2.
-!----------------------------------	
-!
-!
-!============
-axis_entry: height2
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-ignored: cell_bounds
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    height
-units:            m
-axis:             Z
-positive:         up
-long_name:        height
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         height
-valid_min:        0.
-valid_max:        30.
-value:            10.
-!----------------------------------	
-!
-!============
-axis_entry: depth1
-!============
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    depth
-units:            m
-axis:             Z
-positive:         down
-long_name:         depth
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         depth
-valid_min:        0.0
-valid_max:        1.0
-value:            0.05
-bounds_values:    0.0 0.1
-!----------------------------------
-!
-!
-!============
-axis_entry: standard_sigma
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-optional: units
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    atmosphere_sigma_coordinate
-axis:             Z
-positive:         down
-long_name:        sigma coordinate
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lev
-stored_direction: decreasing
-valid_min:        0.0
-valid_max:        1.0
-formula:          p(n,k,j,i) = ptop + sigma(k)*(ps(n,j,i) - ptop)
-convert_to:       standard_hybrid_sigma
-z_factors:        ptop: ptop sigma: sigma ps: ps
-z_bounds_factors: ptop: ptop sigma: sigma_bnds ps: ps
-!----------------------------------	
-!
-!
-!============
-axis_entry:  standard_hybrid_sigma
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-optional: units
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    atmosphere_hybrid_sigma_pressure_coordinate
-units:            1
-axis:             Z 
-positive:         down
-long_name:        hybrid sigma pressure coordinate
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lev
-stored_direction: decreasing
-valid_min:        0.0
-valid_max:        1.0
-formula:          p(n,k,j,i) = a(k)*p0 + b(k)*ps(n,j,i)
-convert_to:       standard_hybrid_sigma
-z_factors:        p0: p0 a: a b: b ps: ps
-z_bounds_factors: p0: p0 a: a_bnds b: b_bnds ps: ps
-!----------------------------------		
-!
-!
-!============
-axis_entry:  alternate_hybrid_sigma
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-optional: units
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    atmosphere_hybrid_sigma_pressure_coordinate
-units:            1
-axis:             Z
-positive:         down
-long_name:        hybrid sigma pressure coordinate
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lev
-stored_direction: decreasing
-valid_min:        0.0
-valid_max:        1.0
-formula:          p(n,k,j,i) = ap(k) + b(k)*ps(n,j,i)
-convert_to:       standard_hybrid_sigma
-z_factors:        p0: p0 ap: ap b: b ps: ps
-z_bounds_factors: p0 ap: ap_bnds b: b_bnds ps: ps
-!----------------------------------		
-!
-!
-!============
-axis_entry:  hybrid_height
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-optional: units
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    atmosphere_hybrid_height_coordinate
-units:            m
-axis:             Z 
-positive:         up
-long_name:        hybrid height coordinate
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lev
-stored_direction: increasing
-valid_min:        0.0
-formula:          z(k,j,i) = a(k) + b(k)*orog(j,i)
-z_factors:        a: az b: bz orog: orog
-z_bounds_factors: a: az_bnds b: bz_bnds orog: orog
-!----------------------------------		
-!
-!
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-! VARIABLE INFORMATION
-!
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-!
-!
-! ***************************************************************
-!
-! Vertical dimensionless coordinate variables:
-!
-! ***************************************************************
-!
-!
-!
-!============
-variable_entry: p0
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-ignored: axis_ids
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:       reference pressure for hybrid sigma coordinate 
-units:           Pa
-!----------------------------------	
-!
-!
-!============
-variable_entry: ptop
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-ignored: axis_ids
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:       pressure at top of model 
-units:           Pa
-!----------------------------------	
-!
-!
-!============
-variable_entry: sigma
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-optional: units
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:  sigma coordinate
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: sigma_bnds
-!============
-!IPCC_table_A1
-!    Override default argument specifications for cmor_variable
-!------------
-optional: units
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:  sigma coordinate for layer bounds
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: a
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-optional: units
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   hybrid sigma coordinate A coefficient for layer
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: b
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-optional: units
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   hybrid sigma coordinate B coefficient for layer
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: a_bnds
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-optional: units
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   hybrid sigma coordinate A coefficient for layer bounds
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: b_bnds
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-optional: units
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   hybrid sigma coordinate B coefficient for layer bounds
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------
-!
-!
-!============
-variable_entry: ap
-!============
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   alternate hybrid sigma coordinate A coefficient for layer
-units:           Pa
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: ap_bnds
-!============
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   alternate hybrid sigma coordinate A coefficient for layer bounds
-units:           Pa
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: az
-!============
-!
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   hybrid height coordinate A coefficient for layer
-units:           m
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: bz
-!============
-!
-!    Override default argument specifications for cmor_variable 
-!------------
-optional: units
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   hybrid height coordinate B coefficient for layer
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: az_bnds
-!============
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   hybrid sigma coordinate A coefficient for layer bounds
-units:           m
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: bz_bnds
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-optional: units
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   hybrid sigma coordinate B coefficient for layer bounds
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------
-!
-!
-!============
-variable_entry: psl
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:   air_pressure_at_sea_level     
-units:           Pa
-cell_methods:    time: mean
-long_name:       Sea Level Pressure
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-valid_min:        90000.
-valid_max:        120000.
-ok_min_mean_abs:  102000.
-ok_max_mean_abs:  98000.
-!----------------------------------	
-! 
-!
-!============
-variable_entry: orog
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_altitude
-units:         m
-long_name:     Surface Altitude
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude
-valid_min:        -500.
-valid_max:        12000.
-ok_min_mean_abs:  0.
-ok_max_mean_abs:  2000.
-!----------------------------------	
-!
-!
-!============
-variable_entry: pr
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:  precipitation_flux
-units:          kg m-2 s-1
-cell_methods:   time: mean
-long_name:      Precipitation
-comment:        includes all types (rain, snow, large-scale, convective, etc.)
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         longitude latitude time
-valid_min:          0.0
-valid_max:          1.e-4
-ok_min_mean_abs:    1.e-6
-ok_max_mean_abs:    5.e-5 
-!----------------------------------	
-!
-!
-!============
-variable_entry: tas
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:   air_temperature     
-units:           K
-cell_methods:    time: mean
-long_name:       Surface Air Temperature
-deflate: 9
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time height1
-valid_min:        200.
-valid_max:        330.
-ok_min_mean_abs:  260.
-ok_max_mean_abs:  300.
-!----------------------------------	
-! 
-!
-!============
-variable_entry: tas_diurnal
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:   air_temperature     
-units:           K
-cell_methods:    time: mean within days time: mean over days
-long_name:       Diurnal Cycle Climatology for Surface Air Temperature
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time_clim height1
-valid_min:        200.
-valid_max:        330.
-ok_min_mean_abs:  270.
-ok_max_mean_abs:  300.
-!----------------------------------	
-! 
-!
-!============
-variable_entry: mrsos
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: moisture_content_of_soil_layer
-units:         kg m-2
-cell_methods:  time: mean
-long_name:     Moisture in Upper 0.1 m of Soil Column
-comment:         includes subsurface frozen water but not surface snow and ice 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time depth1
-!----------------------------------	 
-!
-!
-!============
-variable_entry: hfls
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name: hfls
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: ps
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:   surface_air_pressure     
-units:           Pa
-cell_methods:    time: mean
-long_name:       Surface Pressure
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-valid_min:        0.48e5
-valid_max:        1.1e5
-ok_min_mean_abs:  0.97e5
-ok_max_mean_abs:  1.0e5
-!----------------------------------		
-! 
-!
-!============
-variable_entry: ua
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: eastward_wind
-units:         m s-1
-cell_methods:  time: mean
-long_name:     Zonal Wind Component
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude pressure time
-valid_min:        -200.
-valid_max:        300.
-ok_min_mean_abs:  0.1
-ok_max_mean_abs:  100.
-!----------------------------------	
-!
-!
-!============
-variable_entry: ta
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: air_temperature
-units:         K
-cell_methods:  time: mean
-long_name:     Temperature
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude pressure time
-valid_min:        150.
-valid_max:        350.
-ok_min_mean_abs:  200.
-ok_max_mean_abs:  300.
-!----------------------------------	
-!
-!
-!============
-variable_entry: cl
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:  cloud_area_fraction
-units:          %
-cell_methods:   time: mean
-long_name:      Total Cloud Fraction
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         longitude latitude zlevel time
-valid_min:          0.0
-valid_max:          100.0
-ok_min_mean_abs:    10.0
-ok_max_mean_abs:    90.0
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls0 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls0 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls1 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls1 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls2 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls2 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls3 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls3 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls4 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls4 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls5 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls5 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls6 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls6 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls7 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls7 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls8 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls8 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls9 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls9 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls10 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls10 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls11 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls11 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls12 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls12 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls13 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls13 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls14 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls14 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls15 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls15 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls16 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls16 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls17 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls17 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls18 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls18 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls19 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls19 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls20 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls20 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls21 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls21 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls22 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls22 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls23 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls23 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls24 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls24 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls25 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls25 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls26 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls26 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls27 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls27 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls28 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls28 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls29 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls29 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls30 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls30 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls31 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls31 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls32 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls32 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls33 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls33 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls34 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls34 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls35 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls35 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls36 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls36 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls37 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls37 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls38 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls38 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls39 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls39 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls40 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls40 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls41 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls41 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls42 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls42 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls43 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls43 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls44 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls44 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls45 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls45 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls46 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls46 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls47 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls47 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls48 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls48 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls49 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls49 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls50 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls50 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls51 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls51 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls52 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls52 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls53 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls53 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls54 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls54 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls55 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls55 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls56 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls56 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls57 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls57 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls58 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls58 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls59 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls59 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls60 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls60 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls61 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls61 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls62 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls62 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls63 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls63 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls64 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls64 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls65 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls65 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls66 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls66 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls67 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls67 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls68 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls68 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls69 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls69 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls70 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls70 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls71 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls71 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls72 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls72 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls73 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls73 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls74 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls74 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls75 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls75 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls76 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls76 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls77 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls77 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls78 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls78 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls79 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls79 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls80 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls80 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls81 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls81 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls82 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls82 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls83 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls83 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls84 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls84 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls85 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls85 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls86 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls86 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls87 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls87 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls88 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls88 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls89 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls89 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls90 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls90 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls91 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls91 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls92 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls92 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls93 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls93 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls94 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls94 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls95 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls95 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls96 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls96 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls97 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls97 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls98 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls98 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls99 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls99 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls100 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls100 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls101 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls101 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls102 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls102 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls103 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls103 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls104 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls104 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls105 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls105 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls106 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls106 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls107 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls107 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls108 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls108 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls109 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls109 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls110 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls110 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls111 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls111 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls112 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls112 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls113 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls113 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls114 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls114 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls115 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls115 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls116 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls116 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls117 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls117 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls118 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls118 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls119 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls119 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls120 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls120 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls121 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls121 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls122 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls122 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls123 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls123 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls124 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls124 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls125 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls125 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls126 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls126 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls127 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls127 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls128 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls128 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls129 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls129 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls130 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls130 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls131 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls131 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls132 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls132 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls133 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls133 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls134 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls134 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls135 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls135 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls136 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls136 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls137 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls137 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls138 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls138 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls139 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls139 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls140 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls140 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls141 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls141 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls142 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls142 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls143 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls143 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls144 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls144 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls145 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls145 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls146 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls146 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls147 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls147 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls148 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls148 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls149 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls149 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls150 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls150 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls151 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls151 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls152 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls152 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls153 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls153 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls154 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls154 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls155 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls155 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls156 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls156 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls157 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls157 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls158 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls158 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls159 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls159 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls160 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls160 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls161 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls161 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls162 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls162 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls163 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls163 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls164 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls164 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls165 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls165 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls166 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls166 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls167 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls167 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls168 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls168 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls169 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls169 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls170 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls170 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls171 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls171 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls172 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls172 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls173 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls173 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls174 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls174 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls175 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls175 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls176 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls176 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls177 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls177 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls178 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls178 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls179 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls179 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls180 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls180 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls181 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls181 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls182 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls182 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls183 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls183 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls184 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls184 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls185 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls185 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls186 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls186 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls187 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls187 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls188 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls188 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls189 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls189 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls190 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls190 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls191 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls191 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls192 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls192 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls193 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls193 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls194 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls194 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls195 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls195 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls196 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls196 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls197 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls197 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls198 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls198 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls199 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls199 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls200 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls200 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls201 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls201 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls202 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls202 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls203 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls203 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls204 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls204 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls205 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls205 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls206 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls206 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls207 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls207 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls208 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls208 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls209 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls209 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls210 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls210 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls211 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls211 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls212 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls212 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls213 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls213 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls214 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls214 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls215 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls215 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls216 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls216 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls217 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls217 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls218 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls218 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls219 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls219 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls220 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls220 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls221 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls221 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls222 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls222 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls223 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls223 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls224 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls224 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls225 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls225 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls226 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls226 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls227 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls227 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls228 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls228 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls229 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls229 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls230 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls230 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls231 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls231 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls232 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls232 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls233 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls233 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls234 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls234 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls235 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls235 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls236 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls236 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls237 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls237 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls238 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls238 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls239 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls239 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls240 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls240 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls241 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls241 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls242 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls242 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls243 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls243 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls244 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls244 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls245 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls245 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls246 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls246 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls247 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls247 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls248 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls248 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls249 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls249 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls250 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls250 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls251 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls251 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls252 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls252 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls253 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls253 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls254 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls254 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls255 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls255 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls256 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls256 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls257 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls257 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls258 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls258 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls259 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls259 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls260 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls260 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls261 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls261 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls262 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls262 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls263 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls263 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls264 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls264 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls265 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls265 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls266 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls266 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls267 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls267 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls268 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls268 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls269 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls269 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls270 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls270 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls271 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls271 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls272 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls272 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls273 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls273 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls274 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls274 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls275 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls275 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls276 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls276 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls277 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls277 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls278 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls278 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls279 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls279 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls280 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls280 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls281 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls281 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls282 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls282 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls283 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls283 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls284 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls284 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls285 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls285 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls286 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls286 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls287 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls287 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls288 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls288 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls289 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls289 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls290 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls290 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls291 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls291 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls292 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls292 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls293 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls293 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls294 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls294 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls295 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls295 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls296 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls296 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls297 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls297 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls298 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls298 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls299 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls299 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls300 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls300 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls301 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls301 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls302 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls302 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls303 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls303 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls304 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls304 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls305 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls305 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls306 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls306 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls307 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls307 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls308 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls308 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls309 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls309 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls310 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls310 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls311 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls311 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls312 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls312 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls313 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls313 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls314 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls314 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls315 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls315 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls316 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls316 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls317 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls317 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls318 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls318 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls319 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls319 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls320 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls320 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls321 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls321 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls322 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls322 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls323 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls323 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls324 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls324 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls325 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls325 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls326 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls326 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls327 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls327 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls328 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls328 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls329 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls329 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls330 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls330 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls331 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls331 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls332 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls332 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls333 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls333 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls334 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls334 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls335 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls335 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls336 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls336 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls337 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls337 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls338 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls338 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls339 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls339 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls340 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls340 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls341 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls341 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls342 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls342 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls343 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls343 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls344 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls344 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls345 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls345 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls346 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls346 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls347 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls347 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls348 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls348 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls349 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls349 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls350 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls350 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls351 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls351 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls352 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls352 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls353 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls353 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls354 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls354 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls355 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls355 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls356 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls356 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls357 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls357 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls358 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls358 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls359 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls359 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls360 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls360 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls361 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls361 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls362 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls362 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls363 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls363 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls364 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls364 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls365 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls365 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls366 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls366 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls367 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls367 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls368 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls368 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls369 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls369 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls370 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls370 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls371 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls371 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls372 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls372 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls373 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls373 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls374 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls374 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls375 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls375 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls376 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls376 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls377 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls377 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls378 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls378 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls379 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls379 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls380 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls380 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls381 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls381 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls382 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls382 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls383 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls383 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls384 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls384 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls385 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls385 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls386 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls386 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls387 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls387 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls388 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls388 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls389 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls389 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls390 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls390 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls391 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls391 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls392 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls392 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls393 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls393 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls394 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls394 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls395 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls395 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls396 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls396 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls397 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls397 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls398 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls398 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: hfls399 
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name:  hfls399 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
diff --git a/Test/IPCC_test_table_Grids b/Test/IPCC_test_table_Grids
deleted file mode 100644
index 95b89bd..0000000
--- a/Test/IPCC_test_table_Grids
+++ /dev/null
@@ -1,192 +0,0 @@
-cmor_version: 2.0         ! version of CMOR that can read this table
-cf_version:   1.0         ! version of CF that output conforms to
-project_id:   IPCC Fourth Assessment  ! project id
-table_id:     Table Grids    ! table id
-table_date:   25 October 2007 ! date this table was constructed
-
-expt_id_ok:   'pre-industrial control experiment'
-expt_id_ok:   'present-day control experiment'
-expt_id_ok:   'climate of the 20th Century experiment (20C3M)'
-expt_id_ok:   'committed climate change experiment'  ! official name(s) of 
-expt_id_ok:   'SRES A2 experiment'                   !  project's experiments
-expt_id_ok:   '720 ppm stabilization experiment (SRES A1B)'    
-expt_id_ok:   '550 ppm stabilization experiment (SRES B1)'
-expt_id_ok:   '1%/year CO2 increase experiment (to doubling)'
-expt_id_ok:   '1%/year CO2 increase experiment (to quadrupling)'
-expt_id_ok:   'slab ocean control experiment'
-expt_id_ok:   '2xCO2 equilibrium experiment'
-expt_id_ok:   'AMIP experiment'
-
-magic_number: -1          ! used to check whether this file has been 
-                          !   altered from the official version.
-                          !   should be set to number of non-blank 
-                          !   characters in file. 
-approx_interval:  30.     ! approximate spacing between successive time
-                          !   samples (in units of the output time 
-                          !   coordinate.
-missing_value: 1.e20      ! value used to indicate a missing value
-                          !   in arrays output by netCDF as 32-bit IEEE 
-                          !   floating-point numbers (float or real)
-!
-!
-!============
-mapping_entry: crap
-!============
-parameter: false_easting
-parameter: false_northing
-coordinates: rlon rlat
-!
-!============
-axis_entry: x
-!============
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    projection_x_coordinate
-units:            ?
-long_name:        x coordinate of projection
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-!
-!============
-axis_entry: y
-!============
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    projection_y_coordinate
-units:            ?
-long_name:        y coordinate of projection
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-!
-!============
-axis_entry: grid_latitude
-!============
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    grid_latitude
-units:            degrees
-long_name:        latitude in rotated pole grid
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         rlat
-!
-!============
-axis_entry: grid_longitude
-!============
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    grid_longitude
-units:            degrees
-long_name:        longitude in rotated pole grid
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         rlon
-!
-!============
-axis_entry: vertices
-!============
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    vertices
-units:            1
-long_name:        vertices
-!
-!============
-variable_entry: longitude
-!============
-!----------------------------------	
-standard_name:    longitude
-units:            degrees_east
-long_name:        longitude coordinate
-dimensions:	  longitude latitude
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lon
-valid_min:        -180.        ! CMOR will add n*360 to input values
-                               ! (where n is an integer) to ensure 
-                               !  longitudes are in proper range.
-valid_max:        180.         !  see above comment.
-!----------------------------------	
-!
-!
-!============
-variable_entry: latitude
-!============
-!----------------------------------	
-standard_name:    latitude
-units:            degrees_north
-long_name:        latitude coordinate
-dimensions:	  longitude latitude
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lat
-valid_min:        -90.        
-valid_max:        90.
-!----------------------------------	
-!
-!
-!============
-variable_entry: vertices_longitude
-!============
-!----------------------------------	
-standard_name:    vertices_longitude
-units:            degrees_east
-long_name:        longitude vertices coordinate 
-dimensions:	  vertices longitude latitude
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         vertices_lon
-valid_min:        -180.        ! CMOR will add n*360 to input values
-                               ! (where n is an integer) to ensure 
-                               !  longitudes are in proper range.
-valid_max:        180.         !  see above comment.
-!----------------------------------	
-!
-!
-!============
-variable_entry: vertices_latitude
-!============
-!----------------------------------	
-standard_name:    vertices_latitude
-units:            degrees_north
-long_name:        latitude vertices coordinate
-dimensions:	  vertices longitude latitude
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         vertices_lat
-valid_min:        -90.        
-valid_max:        90.
-!----------------------------------	
-!
-!
diff --git a/Test/IPCC_test_table_O b/Test/IPCC_test_table_O
deleted file mode 100644
index 8a8fed6..0000000
--- a/Test/IPCC_test_table_O
+++ /dev/null
@@ -1,287 +0,0 @@
-cmor_version: 1.0         ! version of CMOR that can read this table
-cf_version:   1.0         ! version of CF that output conforms to
-project_id:   IPCC Fourth Assessment  ! project id
-table_id:     Table O1    ! table id
-table_date:   4 June 2004 ! date this table was constructed
-
-modeling_realm:	   atm
-
-expt_id_ok:   'climate of the 20th Century (20C3M)'
-expt_id_ok:   'committed climate change experiment'  ! official name(s) of 
-expt_id_ok:   'SRES A2 experiment'                   !  project's experiments
-expt_id_ok:   'control experiment (for 20C3M)'
-expt_id_ok:   '720 ppm stabilization experiment (SRES A1B)'    
-expt_id_ok:   '550 ppm stabilization experiment (SRES B1)'
-expt_id_ok:   '1%/year CO2 increase experiment (to doubling)'
-expt_id_ok:   '1%/year CO2 increase experiment (to quadrupling)'
-expt_id_ok:   'control experiment (for 1%/year CO2 run)'
-expt_id_ok:   '2xCO2 equilibrium experiment' '2xco2'
-expt_id_ok:   'control experiment (for 2xCO2 run)'
-
-required_global_attributes: creation_date tracking_id forcing model_id ! space separated required global attribute
-
-magic_number: -1          ! used to check whether this file has been 
-                          !   altered from the official version.
-                          !   should be set to number of non-blank 
-                          !   characters in file. 
-approx_interval:  30.     ! approximate spacing between successive time
-                          !   samples (in units of the output time 
-                          !   coordinate.
-missing_value: 1.e20      ! value used to indicate a missing value
-                          !   in arrays output by netCDF as 32-bit IEEE 
-                          !   floating-point numbers (float or real)
-
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-! SUBROUTINE ARGUMENT DEFAULT INFORMATION
-!
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-!  set default specifications for subroutine arguments to:
-!     required/indeterminate/optional/ignored/forbidden
-!    (indeterminate may or may not be required information, but is not always
-!     required as an argument of the function call)
-!
-!
-!============
-subroutine_entry: cmor_axis
-!============
-!
-required: table axis_name units length coord_vals cell_bounds
-ignored: interval
-!
-!============
-subroutine_entry: cmor_variable
-!============
-!
-required: table table_entry units axis_ids
-indeterminate: missing_value
-optional: tolerance original_name history comment
-ignored: positive
-!
-!============
-subroutine_entry: cmor_write
-!============
-!
-required:  var_id data 
-indeterminate: ntimes_passed time_vals time_bnds store_with
-optional: file_suffix
-!
-!
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-! AXIS INFORMATION
-!
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-! ??? what about climatology???
-! ??? what about model level data???
-!
-!
-!  TEMPLATE FOR AXES
-!
-!============
-!axis_entry:               ! (required)
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-!    acceptable arguments include units length coord_vals cell_bounds interval
-!required:                  ! (default: table axis_name units length
-!                                        coord_vals cell_bounds)
-!indeterminate:
-!optional:
-!ignored:                   ! (default: interval)
-!forbidden:
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-!standard_name:             ! (required)
-!units:                     ! (required)
-!axis:                      ! X, Y, Z, T (default: undeclared)
-!positive:                  ! up or down (default: undeclared)
-!long_name:                 ! (default: undeclared)
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-!out_name:                ! (default: same as axis_entry) 
-!type:                    ! double (default), real, character, integer
-!stored_direction:        ! increasing (default) or decreasing
-!valid_min:               ! type: double precision (default: no check performed
-!valid_max:               ! type: double precision (default: no check performed
-!requested:               ! space-separated list of requested coordinates 
-                          !       (default: undeclared)
-!requested_bounds:        ! space-separated list of requested coordinate bounds
-                          !       (default: undeclared)
-!tol_on_requests:         ! fractional tolerance for meeting request
-                          !  (default=1.e-3, which is used in the formula:
-                          !     eps =  MIN(( tol*interval between grid-points)
-                          !          and (1.e-3*tol*coordinate value)))
-!value:                   ! of scalar (singleton) dimension 
-!bounds_values:           ! of scalar (singleton) dimension bounds
-!----------------------------------	
-!
-!
-!  TEMPLATE FOR VARIABLES
-!
-!
-!============
-!variable_entry:                ! (required)
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!        acceptable arguments include  file_suffix missing_value tolerance 
-!                               original_name history comment positive
-!required:                   ! (default: table table_entry units axis_ids)
-!indeterminate:              ! (default: file_suffix missing_value)
-!optional:                   ! (default: original_name history comment)
-!ignored:                    ! (default: positive)
-!forbidden:
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-!standard_name:              ! (required)
-!units:                      ! (required)
-!cell_methods:               ! (default: undeclared)
-!long_name:                  ! (default: undeclared)
-!comment:                    ! (default: undeclared)
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-!dimensions:                 ! (required)  (scalar dimension(s) should appear
-                             !      last in list)
-!out_name:                   ! (default: variable_entry)
-!type:                       ! real (default), double, integer 
-!positive:                   ! up or down (default: undeclared)
-!valid_min:                  ! type: real (default: no check performed)
-!valid_max:                  ! type: real (default: no check performed)
-!ok_min_mean_abs:            ! type: real (default: no check performed)
-!ok_max_mean_abs:            ! type: real (default: no check performed)
-!----------------------------------	
-! 
-
-!
-!============
-axis_entry: longitude
-!============
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    longitude
-units:            degrees_east
-axis:             X
-long_name:        longitude
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lon
-valid_min:        0.           ! CMOR will add n*360 to input values
-                               ! (where n is an integer) to ensure 
-                               !  longitudes are in proper range.  The
-                               !  data will also be rearranged 
-                               !  appropriately.
-valid_max:        360.         !  see above comment.
-!----------------------------------	
-!
-!
-!=============
-axis_entry: latitude
-!=============
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    latitude
-units:            degrees_north
-axis:             Y
-long_name:        latitude
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lat
-valid_min:        -90.
-valid_max:        90.
-!----------------------------------	
-!
-!
-
-! ??? What about climatological data???
-!
-
-!============
-axis_entry: time
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-optional: interval
-indeterminate: coord_vals cell_bounds
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    time
-units:            days since ?
-axis:             T
-long_name:        time
-!
-!
-!============
-axis_entry: region
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-ignored: units cell_bounds
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    region
-long_name:        Ocean Basin 
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------
-coords_attrib:     geo_region
-type:             character
-requested:        atlantic_ocean indian_ocean pacific_ocean global_ocean
-!----------------------------------	
-!	
-!
-!
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-! VARIABLE INFORMATION
-!
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-!
-!============
-variable_entry: hfogo
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:   northward_ocean_heat_transport     
-units:           W
-cell_methods:    time: mean  longitude: sum
-long_name:       Northward Ocean Heat Transport
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       latitude region time
-valid_min:          -4.e15
-valid_max:          4.e15
-ok_min_mean_abs:    0.0
-ok_max_mean_abs:    4.e15
-!----------------------------------
diff --git a/Test/IPCC_test_table_S b/Test/IPCC_test_table_S
deleted file mode 100644
index 19f8247..0000000
--- a/Test/IPCC_test_table_S
+++ /dev/null
@@ -1,691 +0,0 @@
-cmor_version: 2.0         ! version of CMOR that can read this table
-cf_version:   1.0         ! version of CF that output conforms to
-project_id:   IPCC Fourth Assessment  ! project id
-table_id:     Table A1    ! table id
-table_date:   25 October 2007 ! date this table was constructed  !Oct 20008 added axis - station data section
-
-expt_id_ok:   'pre-industrial control experiment'
-expt_id_ok:   'present-day control experiment'
-expt_id_ok:   'climate of the 20th Century experiment (20C3M)'
-expt_id_ok:   'committed climate change experiment'  ! official name(s) of 
-expt_id_ok:   'SRES A2 experiment'                   !  project's experiments
-expt_id_ok:   '720 ppm stabilization experiment (SRES A1B)'    
-expt_id_ok:   '550 ppm stabilization experiment (SRES B1)'
-expt_id_ok:   '1%/year CO2 increase experiment (to doubling)'
-expt_id_ok:   '1%/year CO2 increase experiment (to quadrupling)'
-expt_id_ok:   'slab ocean control experiment'
-expt_id_ok:   '2xCO2 equilibrium experiment'
-expt_id_ok:   'AMIP experiment'
-
-required_global_attributes: creation_date tracking_id model_id ! space separated required global attribute
-
-magic_number: -1          ! used to check whether this file has been 
-                          !   altered from the official version.
-                          !   should be set to number of non-blank 
-                          !   characters in file. 
-approx_interval:  30.     ! approximate spacing between successive time
-                          !   samples (in units of the output time 
-                          !   coordinate.
-missing_value: 1.e20      ! value used to indicate a missing value
-                          !   in arrays output by netCDF as 32-bit IEEE 
-                          !   floating-point numbers (float or real)
-
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-! SUBROUTINE ARGUMENT DEFAULT INFORMATION
-!
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-!  set default specifications for subroutine arguments to:
-!     required/indeterminate/optional/ignored/forbidden
-!    (indeterminate may or may not be required information, but is not always
-!     required as an argument of the function call)
-!
-!
-!============
-subroutine_entry: cmor_axis
-!============
-!
-required: table axis_name units length coord_vals cell_bounds
-ignored: interval
-!
-!============
-subroutine_entry: cmor_variable
-!============
-!
-required: table table_entry units axis_ids
-indeterminate: missing_value
-optional: tolerance original_name history comment
-ignored: positive
-!
-!============
-subroutine_entry: cmor_write
-!============
-!
-required:  var_id data 
-indeterminate: ntimes_passed time_vals time_bnds store_with
-optional: file_suffix
-!
-!
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-! AXIS INFORMATION
-!
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-! ??? what about climatology???
-! ??? what about model level data???
-!
-!
-!  TEMPLATE FOR AXES
-!
-!============
-!axis_entry:               ! (required)
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-!    acceptable arguments include units length coord_vals cell_bounds interval
-!required:                  ! (default: table axis_name units length
-!                                        coord_vals cell_bounds)
-!indeterminate:
-!optional:
-!ignored:                   ! (default: interval)
-!forbidden:
-!------------
-!
-! Axis attributes:
-!----------------------------------     
-!standard_name:             ! (required)
-!units:                     ! (required)
-!axis:                      ! X, Y, Z, T (default: undeclared)
-!positive:                  ! up or down (default: undeclared)
-!long_name:                 ! (default: undeclared)
-!----------------------------------     
-!
-! Additional axis information:
-!----------------------------------     
-!out_name:                ! (default: same as axis_entry) 
-!type:                    ! double (default), real, character, integer
-!stored_direction:        ! increasing (default) or decreasing
-!valid_min:               ! type: double precision (default: no check performed
-!valid_max:               ! type: double precision (default: no check performed
-!requested:               ! space-separated list of requested coordinates 
-                          !       (default: undeclared)
-!requested_bounds:        ! space-separated list of requested coordinate bounds
-                          !       (default: undeclared)
-!tol_on_requests:         ! fractional tolerance for meeting request
-                          !  (default=1.e-3, which is used in the formula:
-                          !     eps =  MIN(( tol*interval between grid-points)
-                          !          and (1.e-3*tol*coordinate value)))
-!value:                   ! of scalar (singleton) dimension 
-!bounds_values:           ! of scalar (singleton) dimension bounds
-!----------------------------------     
-!
-!
-!  TEMPLATE FOR VARIABLES
-!
-!
-!============
-!variable_entry:                ! (required)
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!        acceptable arguments include  file_suffix missing_value tolerance 
-!                               original_name history comment positive
-!required:                   ! (default: table table_entry units axis_ids)
-!indeterminate:              ! (default: file_suffix missing_value)
-!optional:                   ! (default: original_name history comment)
-!ignored:                    ! (default: positive)
-!forbidden:
-!------------
-!
-! Variable attributes:
-!----------------------------------     
-!standard_name:              ! (required)
-!units:                      ! (required)
-!cell_methods:               ! (default: undeclared)
-!long_name:                  ! (default: undeclared)
-!comment:                    ! (default: undeclared)
-!----------------------------------     
-!
-! Additional variable information:
-!----------------------------------     
-!dimensions:                 ! (required)  (scalar dimension(s) should appear
-                             !      last in list)
-!out_name:                   ! (default: variable_entry)
-!type:                       ! real (default), double, integer 
-!positive:                   ! up or down (default: undeclared)
-!valid_min:                  ! type: real (default: no check performed)
-!valid_max:                  ! type: real (default: no check performed)
-!ok_min_mean_abs:            ! type: real (default: no check performed)
-!ok_max_mean_abs:            ! type: real (default: no check performed)
-!----------------------------------     
-! 
-
-!
-!============
-axis_entry: longitude
-!============
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------     
-standard_name:    longitude
-units:            degrees_east
-axis:             X
-long_name:        longitude
-!----------------------------------     
-!
-! Additional axis information:
-!----------------------------------     
-out_name:         lon
-valid_min:        0.           ! CMOR will add n*360 to input values
-                               ! (where n is an integer) to ensure 
-                               !  longitudes are in proper range.  The
-                               !  data will also be rearranged 
-                               !  appropriately.
-valid_max:        360.         !  see above comment.
-!----------------------------------     
-!
-!
-!=============
-axis_entry: latitude
-!=============
-!
-! Axis attributes:
-!----------------------------------     
-standard_name:    latitude
-units:            degrees_north
-axis:             Y
-long_name:        latitude
-!----------------------------------     
-!
-! Additional axis information:
-!----------------------------------     
-out_name:         lat
-valid_min:        -90.
-valid_max:        90.
-!----------------------------------     
-!
-!
-!============
-axis_entry: time
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-optional: interval length
-indeterminate: coord_vals cell_bounds
-!------------
-!
-! Axis attributes:
-!----------------------------------     
-standard_name:    time
-units:            days since ?
-axis:             T
-long_name:        time
-!----------------------------------
-!
-!
-!
-!============
-axis_entry: time_clim
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-optional: interval length
-indeterminate: coord_vals cell_bounds
-!------------
-!
-! Axis attributes:
-!----------------------------------     
-standard_name:    time
-units:            days since ?
-axis:             T
-climatology:      yes
-long_name:        time
-!----------------------------------
-!
-!
-!
-!============
-axis_entry: pressure
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-ignored: cell_bounds
-!------------
-!
-! Axis attributes:
-!----------------------------------     
-standard_name:    air_pressure
-units:            Pa 
-axis:             Z
-positive:         down
-long_name:        pressure
-!----------------------------------     
-!
-! Additional axis information:
-!----------------------------------     
-out_name:         plev
-stored_direction: decreasing
-valid_min:        0.
-valid_max:        110000.
-requested:        10000. 20000. 30000. 40000. 50000.
-!----------------------------------     
-!
-!
-!============
-axis_entry: height1
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-ignored: cell_bounds
-!------------
-!
-! Axis attributes:
-!----------------------------------     
-standard_name:    height
-units:            m
-axis:             Z
-positive:         up
-long_name:        height
-!----------------------------------     
-!
-! Additional axis information:
-!----------------------------------     
-out_name:         height
-valid_min:        0.
-valid_max:        10.
-value:            2.
-!----------------------------------     
-!
-!
-!============
-axis_entry: height2
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-ignored: cell_bounds
-!------------
-!
-! Axis attributes:
-!----------------------------------     
-standard_name:    height
-units:            m
-axis:             Z
-positive:         up
-long_name:        height
-!----------------------------------     
-!
-! Additional axis information:
-!----------------------------------     
-out_name:         height
-valid_min:        0.
-valid_max:        30.
-value:            10.
-!----------------------------------     
-!
-!============
-axis_entry: depth1
-!============
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------     
-standard_name:    depth
-units:            m
-axis:             Z
-positive:         down
-long_name:         depth
-!----------------------------------     
-!
-! Additional axis information:
-!----------------------------------     
-out_name:         depth
-valid_min:        0.0
-valid_max:        1.0
-value:            0.05
-bounds_values:    0.0 0.1
-!----------------------------------
-!           
-!
-!
-!============
-axis_entry: station
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-ignored: units cell_bounds
-!------------
-!
-! Axis attributes:
-!----------------------------------     
-standard_name:    station
-long_name:        station number 
-!----------------------------------     
-!
-! Additional axis information:
-!----------------------------------
-coords_attrib:    station_number
-type:             integer
-!requested:        atlantic_ocean indian_ocean pacific_ocean global_ocean
-!----------------------------------     
-!       
-
-
-
-!
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-! VARIABLE INFORMATION
-!
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-!
-!
-! ***************************************************************
-!
-! Vertical dimensionless coordinate variables:
-!
-! ***************************************************************
-!
-!  
-! 
-!============
-variable_entry: longitude
-!============
-!----------------------------------     
-standard_name:    longitude
-units:            degrees_east
-long_name:        longitude coordinate
-dimensions:       station
-!----------------------------------     
-!
-! Additional axis information:
-!----------------------------------     
-out_name:         lon
-valid_min:        0.           ! CMOR will add n*360 to input values
-                               ! (where n is an integer) to ensure 
-                               !  longitudes are in proper range.
-valid_max:        360.         !  see above comment.
-!----------------------------------     
-!
-!
-!============
-variable_entry: latitude
-!============
-!----------------------------------     
-standard_name:    latitude
-units:            degrees_north
-long_name:        latitude coordinate
-dimensions:       station
-!----------------------------------     
-!
-! Additional axis information:
-!----------------------------------     
-out_name:         lat
-valid_min:        -90.        
-valid_max:        90.
-!----------------------------------     
-!
-
-!
-!============
-variable_entry: psl
-!============
-!
-! Variable attributes:
-!----------------------------------     
-standard_name:   air_pressure_at_sea_level     
-units:           Pa
-cell_methods:    time: mean
-long_name:       Sea Level Pressure
-!----------------------------------     
-!
-! Additional variable information:
-!----------------------------------     
-dimensions:       station time
-valid_min:        90000.
-valid_max:        120000.
-ok_min_mean_abs:  102000.
-ok_max_mean_abs:  98000.
-!----------------------------------     
-! 
-!
-!============
-variable_entry: orog
-!============
-!
-! Variable attributes:
-!----------------------------------     
-standard_name: surface_altitude
-units:         m
-long_name:     Surface Altitude
-!----------------------------------     
-!
-! Additional variable information:
-!----------------------------------     
-dimensions:       station
-valid_min:        -500.
-valid_max:        12000.
-ok_min_mean_abs:  0.
-ok_max_mean_abs:  2000.
-!----------------------------------     
-!
-!
-!============
-variable_entry: pr
-!============
-!
-! Variable attributes:
-!----------------------------------     
-standard_name:  precipitation_flux
-units:          kg m-2 s-1
-cell_methods:   time: mean
-long_name:      Precipitation
-comment:        includes all types (rain, snow, large-scale, convective, etc.)
-!----------------------------------     
-!
-! Additional variable information:
-!----------------------------------     
-dimensions:         station time
-valid_min:          0.0
-valid_max:          1.e-4
-ok_min_mean_abs:    1.e-6
-ok_max_mean_abs:    5.e-5 
-!----------------------------------     
-!
-!
-!============
-variable_entry: tas
-!============
-!
-! Variable attributes:
-!----------------------------------     
-standard_name:   air_temperature     
-units:           K
-cell_methods:    time: mean
-long_name:       Surface Air Temperature
-!----------------------------------     
-!
-! Additional variable information:
-!----------------------------------     
-dimensions:       longitude latitude time
-valid_min:        200.
-valid_max:        330.
-ok_min_mean_abs:  260.
-ok_max_mean_abs:  300.
-!----------------------------------     
-! 
-!
-!============
-variable_entry: tas_diurnal
-!============
-!
-! Variable attributes:
-!----------------------------------     
-standard_name:   air_temperature     
-units:           K
-cell_methods:    time: mean within days time: mean over days
-long_name:       Diurnal Cycle Climatology for Surface Air Temperature
-!----------------------------------     
-!
-! Additional variable information:
-!----------------------------------     
-dimensions:       station time_clim height1
-valid_min:        200.
-valid_max:        330.
-ok_min_mean_abs:  270.
-ok_max_mean_abs:  300.
-!----------------------------------     
-! 
-!
-!============
-variable_entry: mrsos
-!============
-!
-! Variable attributes:
-!----------------------------------     
-standard_name: moisture_content_of_soil_layer
-units:         kg m-2
-cell_methods:  time: mean
-long_name:     Moisture in Upper 0.1 m of Soil Column
-comment:         includes subsurface frozen water but not surface snow and ice 
-!----------------------------------     
-!
-! Additional variable information:
-!----------------------------------     
-dimensions:       station time depth1
-!----------------------------------      
-!
-!
-!============
-variable_entry: hfls
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------     
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-!----------------------------------     
-!
-! Additional variable information:
-!----------------------------------     
-!dimensions:       longitude latitude time
-dimensions:       station time
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------     
-!
-!
-!============
-variable_entry: ps
-!============
-!
-! Variable attributes:
-!----------------------------------     
-standard_name:   surface_air_pressure     
-units:           Pa
-cell_methods:    time: mean
-long_name:       Surface Pressure
-!----------------------------------     
-!
-! Additional variable information:
-!----------------------------------     
-dimensions:       station time
-valid_min:        0.48e5
-valid_max:        1.1e5
-ok_min_mean_abs:  0.97e5
-ok_max_mean_abs:  1.0e5
-!----------------------------------             
-! 
-!
-!============
-variable_entry: ua
-!============
-!
-! Variable attributes:
-!----------------------------------     
-standard_name: eastward_wind
-units:         m s-1
-cell_methods:  time: mean
-long_name:     Zonal Wind Component
-!----------------------------------     
-!
-! Additional variable information:
-!----------------------------------     
-dimensions:       station pressure time
-valid_min:        -200.
-valid_max:        300.
-ok_min_mean_abs:  0.1
-ok_max_mean_abs:  100.
-!----------------------------------     
-!
-!
-!============
-variable_entry: ta
-!============
-!
-! Variable attributes:
-!----------------------------------     
-standard_name: air_temperature
-units:         K
-cell_methods:  time: mean
-long_name:     Temperature
-!----------------------------------     
-!
-! Additional variable information:
-!----------------------------------     
-dimensions:       station pressure time
-valid_min:        150.
-valid_max:        350.
-ok_min_mean_abs:  200.
-ok_max_mean_abs:  300.
-!----------------------------------     
-!
-!
-!============
-variable_entry: cl
-!============
-!
-! Variable attributes:
-!----------------------------------     
-standard_name:  cloud_area_fraction
-units:          %
-cell_methods:   time: mean
-long_name:      Total Cloud Fraction
-!----------------------------------     
-!
-! Additional variable information:
-!----------------------------------     
-dimensions:         station zlevel time
-valid_min:          0.0
-valid_max:          100.0
-ok_min_mean_abs:    10.0
-ok_max_mean_abs:    90.0
-!----------------------------------     
-!
-!
diff --git a/Test/Sophie_Table b/Test/Sophie_Table
deleted file mode 100644
index 97ea398..0000000
--- a/Test/Sophie_Table
+++ /dev/null
@@ -1,1021 +0,0 @@
-cmor_version: 2.0         ! version of CMOR that can read this table
-cf_version:   1.3         ! version of CF that output conforms to
-project_id:   IPCC Fourth Assessment  ! project id
-table_id:     Table A1    ! table id
-table_date:   23 October 2008 ! date this table was constructed
-
-expt_id_ok:   'pre-industrial control experiment'
-expt_id_ok:   'present-day control experiment'
-expt_id_ok:   'climate of the 20th Century experiment (20C3M)'
-expt_id_ok:   'committed climate change experiment'  ! official name(s) of 
-expt_id_ok:   'SRES A2 experiment'                   !  project's experiments
-expt_id_ok:   '720 ppm stabilization experiment (SRES A1B)'    
-expt_id_ok:   '550 ppm stabilization experiment (SRES B1)'
-expt_id_ok:   '1%/year CO2 increase experiment (to doubling)'
-expt_id_ok:   '1%/year CO2 increase experiment (to quadrupling)'
-expt_id_ok:   'slab ocean control experiment'
-expt_id_ok:   '2xCO2 equilibrium experiment'
-expt_id_ok:   'AMIP experiment'
-
-required_global_attributes: creation_date tracking_id forcing model_id ! space separated required global attribute
-
-! global attributes: Conventions (cf_version in here), table_id, project_id,
-! institution, experiment_id, source, calendar: are always required anyway 
-magic_number: -1          ! used to check whether this file has been 
-                         !   altered from the official version.
-                         !   should be set to number of non-blank 
-                         !   characters in file. 
-approx_interval:  30.     ! approximate spacing between successive time
-                         !   samples (in units of the output time 
-                         !   coordinate.
-missing_value: 1.e20      ! value used to indicate a missing value
-                         !   in arrays output by netCDF as 32-bit IEEE 
-                         !   floating-point numbers (float or real)
-
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-! SUBROUTINE ARGUMENT DEFAULT INFORMATION
-!
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-!  set default specifications for subroutine arguments to:
-!     required/indeterminate/optional/ignored/forbidden
-!    (indeterminate may or may not be required information, but is not always
-!     required as an argument of the function call)
-!
-!
-!============
-subroutine_entry: cmor_axis
-!============
-!
-required: table axis_name units length coord_vals cell_bounds
-ignored: interval
-!
-!============
-subroutine_entry: cmor_variable
-!============
-!
-required: table table_entry units axis_ids
-indeterminate: missing_value
-optional: tolerance original_name history comment
-ignored: positive
-!
-!============
-subroutine_entry: cmor_write
-!============
-!
-required:  var_id data 
-indeterminate: ntimes_passed time_vals time_bnds store_with
-optional: file_suffix
-!
-!
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-! AXIS INFORMATION
-!
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-! ??? what about climatology???
-! ??? what about model level data???
-!
-!
-!  TEMPLATE FOR AXES
-!
-!============
-!axis_entry:               ! (required)
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-!    acceptable arguments include units length coord_vals cell_bounds interval
-!required:                  ! (default: table axis_name units length
-!                                        coord_vals cell_bounds)
-!indeterminate:
-!optional:
-!ignored:                   ! (default: interval)
-!forbidden:
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-!standard_name:             ! (required)
-!units:                     ! (required)
-!axis:                      ! X, Y, Z, T (default: undeclared)
-!positive:                  ! up or down (default: undeclared)
-!long_name:                 ! (default: undeclared)
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-!out_name:                ! (default: same as axis_entry) 
-!type:                    ! double (default), real, character, integer
-!stored_direction:        ! increasing (default) or decreasing
-!valid_min:               ! type: double precision (default: no check performed
-!valid_max:               ! type: double precision (default: no check performed
-!requested:               ! space-separated list of requested coordinates 
-                         !       (default: undeclared)
-!requested_bounds:        ! space-separated list of requested coordinate bounds
-                         !       (default: undeclared)
-!tol_on_requests:         ! fractional tolerance for meeting request
-                         !  (default=1.e-3, which is used in the formula:
-                         !     eps =  MIN(( tol*interval between grid-points)
-                         !          and (1.e-3*tol*coordinate value)))
-!value:                   ! of scalar (singleton) dimension 
-!bounds_values:           ! of scalar (singleton) dimension bounds
-!----------------------------------	
-!
-!
-!  TEMPLATE FOR VARIABLES
-!
-!
-!============
-!variable_entry:                ! (required)
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!        acceptable arguments include  file_suffix missing_value tolerance 
-!                               original_name history comment positive
-!required:                   ! (default: table table_entry units axis_ids)
-!indeterminate:              ! (default: file_suffix missing_value)
-!optional:                   ! (default: original_name history comment)
-!ignored:                    ! (default: positive)
-!forbidden:
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-!standard_name:              ! (required)
-!units:                      ! (required)
-!cell_methods:               ! (default: undeclared)
-!long_name:                  ! (default: undeclared)
-!comment:                    ! (default: undeclared)
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-!dimensions:                 ! (required)  (scalar dimension(s) should appear
-                            !      last in list)
-!out_name:                   ! (default: variable_entry)
-!type:                       ! real (default), double, integer 
-!positive:                   ! up or down (default: undeclared)
-!valid_min:                  ! type: real (default: no check performed)
-!valid_max:                  ! type: real (default: no check performed)
-!ok_min_mean_abs:            ! type: real (default: no check performed)
-!ok_max_mean_abs:            ! type: real (default: no check performed)
-!----------------------------------	
-! 
-
-!
-!============
-axis_entry: longitude
-!============
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    longitude
-units:            degrees_east
-axis:             X
-long_name:        longitude
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lon
-valid_min:        0.           ! CMOR will add n*360 to input values
-                              ! (where n is an integer) to ensure 
-                              !  longitudes are in proper range.  The
-                              !  data will also be rearranged 
-                              !  appropriately.
-valid_max:        360.         !  see above comment.
-!----------------------------------	
-!
-!
-!=============
-axis_entry: latitude
-!=============
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    latitude
-units:            degrees_north
-axis:             Y
-long_name:        latitude
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lat
-valid_min:        -90.
-valid_max:        90.
-!----------------------------------	
-!
-!
-!============
-axis_entry: time
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-optional: interval length
-indeterminate: coord_vals cell_bounds
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    time
-units:            days since ?
-axis:             T
-long_name:        time
-!----------------------------------
-!
-!
-!
-!============
-axis_entry: time_clim
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-optional: interval length
-indeterminate: coord_vals cell_bounds
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    time
-units:            days since ?
-axis:             T
-climatology:      yes
-long_name:        time
-!----------------------------------
-!
-!
-!
-!============
-axis_entry: pressure
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-ignored: cell_bounds
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    air_pressure
-units:            Pa 
-axis:             Z
-positive:         down
-long_name:        pressure
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         plev
-stored_direction: decreasing
-valid_min:        0.
-valid_max:        110000.
-requested:        10000. 20000. 30000. 40000. 50000.
-!----------------------------------	
-!
-!
-!============
-axis_entry: height1
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-ignored: cell_bounds
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    height
-units:            m
-axis:             Z
-positive:         up
-long_name:        height
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         height
-valid_min:        0.
-valid_max:        10.
-value:            2.
-!----------------------------------	
-!
-!
-!============
-axis_entry: height2
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-ignored: cell_bounds
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    height
-units:            m
-axis:             Z
-positive:         up
-long_name:        height
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         height
-valid_min:        0.
-valid_max:        30.
-value:            10.
-!----------------------------------	
-!
-!============
-axis_entry: depth1
-!============
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    depth
-units:            m
-axis:             Z
-positive:         down
-long_name:         depth
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         depth
-valid_min:        0.0
-valid_max:        1.0
-value:            0.05
-bounds_values:    0.0 0.1
-!----------------------------------
-!
-!
-!============
-axis_entry: standard_sigma
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-optional: units
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    atmosphere_sigma_coordinate
-axis:             Z
-positive:         down
-long_name:        sigma coordinate
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lev
-stored_direction: decreasing
-valid_min:        0.0
-valid_max:        1.0
-formula:          p(n,k,j,i) = ptop + sigma(k)*(ps(n,j,i) - ptop)
-convert_to:       standard_hybrid_sigma
-z_factors:        ptop: ptop sigma: sigma ps: ps
-z_bounds_factors: ptop: ptop sigma: sigma_bnds ps: ps
-!----------------------------------	
-!
-!
-!============
-axis_entry:  standard_hybrid_sigma
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-optional: units
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    atmosphere_hybrid_sigma_pressure_coordinate
-units:            1
-axis:             Z 
-positive:         down
-long_name:        hybrid sigma pressure coordinate
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lev
-stored_direction: decreasing
-valid_min:        0.0
-valid_max:        1.0
-formula:          p(n,k,j,i) = a(k)*p0 + b(k)*ps(n,j,i)
-convert_to:       standard_hybrid_sigma
-z_factors:        p0: p0 a: a b: b ps: ps
-z_bounds_factors: p0: p0 a: a_bnds b: b_bnds ps: ps
-!----------------------------------		
-!
-!
-!============
-axis_entry:  alternate_hybrid_sigma
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-optional: units
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    atmosphere_hybrid_sigma_pressure_coordinate
-units:            1
-axis:             Z
-positive:         down
-long_name:        hybrid sigma pressure coordinate
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lev
-stored_direction: decreasing
-valid_min:        0.0
-valid_max:        1.0
-formula:          p(n,k,j,i) = ap(k) + b(k)*ps(n,j,i)
-convert_to:       standard_hybrid_sigma
-z_factors:        p0: p0 ap: ap b: b ps: ps
-z_bounds_factors: p0 ap: ap_bnds b: b_bnds ps: ps
-!----------------------------------		
-!
-!
-!============
-axis_entry:  hybrid_height
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-optional: units
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    atmosphere_hybrid_height_coordinate
-units:            m
-axis:             Z 
-positive:         up
-long_name:        hybrid height coordinate
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lev
-stored_direction: increasing
-valid_min:        0.0
-formula:          z(k,j,i) = a(k) + b(k)*orog(j,i)
-z_factors:        a: az b: bz orog: orog
-z_bounds_factors: a: az_bnds b: bz_bnds orog: orog
-!----------------------------------		
-!
-!
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-! VARIABLE INFORMATION
-!
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-!
-!
-! ***************************************************************
-!
-! Vertical dimensionless coordinate variables:
-!
-! ***************************************************************
-!
-!
-!
-!============
-variable_entry: p0
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-ignored: axis_ids
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:       reference pressure for hybrid sigma coordinate 
-units:           Pa
-!----------------------------------	
-!
-!
-!============
-variable_entry: ptop
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-ignored: axis_ids
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:       pressure at top of model 
-units:           Pa
-!----------------------------------	
-!
-!
-!============
-variable_entry: sigma
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-optional: units
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:  sigma coordinate
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: sigma_bnds
-!============
-!IPCC_table_A1
-!    Override default argument specifications for cmor_variable
-!------------
-optional: units
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:  sigma coordinate for layer bounds
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: a
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-optional: units
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   hybrid sigma coordinate A coefficient for layer
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: b
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-optional: units
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   hybrid sigma coordinate B coefficient for layer
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: a_bnds
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-optional: units
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   hybrid sigma coordinate A coefficient for layer bounds
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: b_bnds
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-optional: units
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   hybrid sigma coordinate B coefficient for layer bounds
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------
-!
-!
-!============
-variable_entry: ap
-!============
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   alternate hybrid sigma coordinate A coefficient for layer
-units:           Pa
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: ap_bnds
-!============
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   alternate hybrid sigma coordinate A coefficient for layer bounds
-units:           Pa
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: az
-!============
-!
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   hybrid height coordinate A coefficient for layer
-units:           m
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: bz
-!============
-!
-!    Override default argument specifications for cmor_variable 
-!------------
-optional: units
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   hybrid height coordinate B coefficient for layer
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: az_bnds
-!============
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   hybrid sigma coordinate A coefficient for layer bounds
-units:           m
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: bz_bnds
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-optional: units
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   hybrid sigma coordinate B coefficient for layer bounds
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------
-!
-!
-!============
-variable_entry: psl
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:   air_pressure_at_sea_level     
-units:           Pa
-cell_methods:    time: mean
-long_name:       Sea Level Pressure
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-valid_min:        90000.
-valid_max:        120000.
-ok_min_mean_abs:  102000.
-ok_max_mean_abs:  98000.
-!----------------------------------	
-! 
-!
-!============
-variable_entry: orog
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_altitude
-units:         m
-long_name:     Surface Altitude
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude
-valid_min:        -500.
-valid_max:        12000.
-ok_min_mean_abs:  0.
-ok_max_mean_abs:  2000.
-!----------------------------------	
-!
-!
-!============
-variable_entry: pr
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:  precipitation_flux
-units:          kg m-2 s-1
-cell_methods:   time: mean
-long_name:      Precipitation
-comment:        includes all types (rain, snow, large-scale, convective, etc.)
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         longitude latitude time
-valid_min:          0.0
-valid_max:          1.e-4
-ok_min_mean_abs:    1.e-6
-ok_max_mean_abs:    5.e-5 
-!----------------------------------	
-!
-!
-!============
-variable_entry: tas
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:   air_temperature     
-units:           K
-cell_methods:    time: mean
-long_name:       Surface Air Temperature
-deflate: 9
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time height1
-valid_min:        200.
-valid_max:        330.
-ok_min_mean_abs:  260.
-ok_max_mean_abs:  300.
-!----------------------------------	
-! 
-!
-!============
-variable_entry: tas_diurnal
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:   air_temperature     
-units:           K
-cell_methods:    time: mean within days time: mean over days
-long_name:       Diurnal Cycle Climatology for Surface Air Temperature
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time_clim height1
-valid_min:        200.
-valid_max:        330.
-ok_min_mean_abs:  270.
-ok_max_mean_abs:  300.
-!----------------------------------	
-! 
-!
-!============
-variable_entry: mrsos
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: moisture_content_of_soil_layer
-units:         kg m-2
-cell_methods:  time: mean
-long_name:     Moisture in Upper 0.1 m of Soil Column
-comment:         includes subsurface frozen water but not surface snow and ice 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time depth1
-!----------------------------------	 
-!
-!
-!============
-variable_entry: hfls
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-!cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-modeling_realm:   atmosphere
-comment: whatever dude
-out_name: hfls
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-!dimensions:       longitude latitude time
-dimensions:       longitude latitude
-positive:         up
-valid_min:        -50.
-valid_max:        300.
-ok_min_mean_abs:  10.
-ok_max_mean_abs:  120.
-!shuffle:          1
-!deflate:          1
-!deflate_level:    9
-!----------------------------------	
-!
-!
-!============
-variable_entry: ps
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:   surface_air_pressure     
-units:           Pa
-cell_methods:    time: mean
-long_name:       Surface Pressure
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-valid_min:        0.48e5
-valid_max:        1.1e5
-ok_min_mean_abs:  0.97e5
-ok_max_mean_abs:  1.0e5
-!----------------------------------		
-! 
-!
-!============
-variable_entry: ua
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: eastward_wind
-units:         m s-1
-cell_methods:  time: mean
-long_name:     Zonal Wind Component
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude pressure time
-valid_min:        -200.
-valid_max:        300.
-ok_min_mean_abs:  0.1
-ok_max_mean_abs:  100.
-!----------------------------------	
-!
-!
-!============
-variable_entry: ta
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: air_temperature
-units:         K
-cell_methods:  time: mean
-long_name:     Temperature
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude pressure time
-valid_min:        140.
-valid_max:        350.
-ok_min_mean_abs:  200.
-ok_max_mean_abs:  300.
-!----------------------------------	
-!
-!
-!============
-variable_entry: cl
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:  cloud_area_fraction
-units:          %
-cell_methods:   time: mean
-long_name:      Total Cloud Fraction
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         longitude latitude zlevel time
-valid_min:          0.0
-valid_max:          100.0
-ok_min_mean_abs:    10.0
-ok_max_mean_abs:    90.0
-!----------------------------------	
-!
-!
diff --git a/Test/alejandro.txt b/Test/alejandro.txt
deleted file mode 100644
index 573541a..0000000
--- a/Test/alejandro.txt
+++ /dev/null
@@ -1 +0,0 @@
-0
diff --git a/Test/alejandro_1.txt b/Test/alejandro_1.txt
deleted file mode 100644
index d00491f..0000000
--- a/Test/alejandro_1.txt
+++ /dev/null
@@ -1 +0,0 @@
-1
diff --git a/Test/alejandro_2.txt b/Test/alejandro_2.txt
deleted file mode 100644
index 0cfbf08..0000000
--- a/Test/alejandro_2.txt
+++ /dev/null
@@ -1 +0,0 @@
-2
diff --git a/Test/check_results.py b/Test/check_results.py
deleted file mode 100644
index 96e1bb5..0000000
--- a/Test/check_results.py
+++ /dev/null
@@ -1,51 +0,0 @@
-from out_files import out
-from in_files import input_tables
-import sys,os
-
-import cmor
-
-test = sys.argv[1]
-
-test = os.path.split(test)[1]
-if test[-4:].lower()=='.f90':
-    test=test[:-4]
-
-print 'Checking results for:',test
-
-outfiles = out.get(test,[])
-intables = input_tables.get(test,['IPCC_test_table_A',])
-
-
-class CMORResultCheckError(Exception):
-    def __init__(self,args=None):
-        self.args=args
-
-nfiles = 0
-
-print 'files:',outfiles
-gotfiles=[]
-missing=[]
-for f in outfiles:
-    if f is None:
-        print 'No checking'
-        sys.exit()
-    tables=[]
-    for t in intables:
-        tables.append(os.path.join("Test",t))
-    tbl = tables.pop(0)
-    if len(tables)==0:
-        tables=[None,]
-    fnm = os.path.join("Test",f)
-    if os.path.exists(fnm):
-        nfiles+=1
-        gotfiles.append(fnm)
-        print 'Checking output file:',f
-        cmor.checkCMOR(sys.stdout,fnm,tbl,other_tables=tables)
-        print '----------------------- Success ------------------------------'
-        os.remove(fnm)
-    else:
-        missing.append(fnm)
-if nfiles == 0 and outfiles!=[]:
-    raise CMORResultCheckError,["Error could not find any output file for test: Test/%s.f90" % (test),]
-elif nfiles!=len(outfiles):
-    raise CMORResultCheckError,["Error checking output files for test: Test/%s.f90 we could only find %i files when %i were expected.\n\n Expected files: \n\t%s\n\nPresent files: \n\t%s\n\nMissing files: \n\t%s\n" % (test,nfiles,len(outfiles),repr(outfiles),repr(gotfiles),repr(missing)),]
diff --git a/Test/climatology_test_code.f90 b/Test/climatology_test_code.f90
deleted file mode 100644
index ae1a15a..0000000
--- a/Test/climatology_test_code.f90
+++ /dev/null
@@ -1,371 +0,0 @@
-!!$pgf90 -I/work/NetCDF/5.1/include -L/work/NetCDF/5.1/lib -l netcdf -L. -l cmor Test/test_dimensionless.f90 -IModules -o cmor_test
-!!$pgf90 -g -I/pcmdi/charles_work/NetCDF/include -L/pcmdi/charles_work/NetCDF/lib -lnetcdf -module Modules -IModules -L. -lcmor -I/pcmdi/charles_work/Unidata/include -L/pcmdi/charles_work/Unidata/lib -ludunits Test/test_dimensionless.f90 -o cmor_test
-
-MODULE local_subs
-
-  USE cmor_users_functions
-  PRIVATE
-  PUBLIC read_coords, read_time, read_3d_input_files, read_2d_input_files
-CONTAINS
-  
-  SUBROUTINE read_coords(alats, alons, bnds_lat, bnds_lon)
-
-    IMPLICIT NONE
-    
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alats
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alons
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lat
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lon
-    
-    INTEGER :: i
-    
-    DO i = 1, SIZE(alons)
-       alons(i) = (i-1)*360./SIZE(alons)
-       bnds_lon(1,i) = (i - 1.5)*360./SIZE(alons)
-       bnds_lon(2,i) = (i - 0.5)*360./SIZE(alons)
-    END DO
-    
-    DO i = 1, SIZE(alats)
-       alats(i) = (size(alats)+1-i)*10
-       bnds_lat(1,i) = (size(alats)+1-i)*10 + 5.
-       bnds_lat(2,i) = (size(alats)+1-i)*10 - 5.
-    END DO
-      
-    RETURN
-  END SUBROUTINE read_coords
-
-  SUBROUTINE read_time(it, time, time_bnds)
-    
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: time
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: time_bnds
-
-    INTEGER :: i
-    
-    DO i=1,SIZE(time)
-       time(i) = (it-1)*30.+ (i-.5)/SIZE(time)
-       time_bnds(1,i) = (it-1)*30.+ (i-1)*1.0/SIZE(time)
-       time_bnds(2,i) = (it-1)*30.+ i*1.0/SIZE(time) + 29.
-       print*, i,time_bnds(1,i),time(i),time_bnds(2,i)
-    END DO
-    
-    RETURN
-  END SUBROUTINE read_time
-  
-
-  SUBROUTINE read_2d_input_files(it, varname, field)
-
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    CHARACTER(len=*), INTENT(IN) :: varname
-    REAL, INTENT(OUT), DIMENSION(:,:,:,:) :: field
-    
-    INTEGER :: i, j, k,l
-    REAL :: factor, offset
-    CHARACTER(len=LEN(varname)) :: tmp
-    
-    tmp = TRIM(ADJUSTL(varname))
-
-    factor = 2.2
-    offset = -220.
-    
-    DO k=1,SIZE(field,4)
-       DO j=1,SIZE(field, 2)
-          DO i=1,SIZE(field, 1)
-             DO l=1,SIZE(field, 3)
-                field(i,size(field,2)+1-j,l,k) = ((k-1)*0.005 + (j-1)*16 + (i-1)*4 + it)*factor - offset
-             END DO
-          END DO
-       END DO
-    END DO
-
-  END SUBROUTINE read_2d_input_files
-
-END MODULE local_subs
-
-
-PROGRAM ipcc_test_code
-!
-!   Purpose:   To serve as a generic example of an application that
-!       uses the "Climate Model Output Rewriter" (CMOR)
-
-!    CMOR writes CF-compliant netCDF files.
-!    Its use is strongly encouraged by the IPCC and is intended for use 
-!       by those participating in many community-coordinated standard 
-!       climate model experiments (e.g., AMIP, CMIP, CFMIP, PMIP, APE,
-!       etc.)
-!
-!   Background information for this sample code:
-!
-!      Atmospheric standard output requested by IPCC are listed in 
-!   tables available on the web.  Monthly mean output is found in
-!   tables A1a and A1c.  This sample code processes only two 3-d 
-!   variables listed in table A1c ("monthly mean atmosphere 3-D data" 
-!   and only four 2-d variables listed in table A1a ("monthly mean 
-!   atmosphere + land surface 2-D (latitude, longitude) data").  The 
-!   extension to many more fields is trivial.
-!
-!      For this example, the user must fill in the sections of code that 
-!   extract the 3-d and 2-d fields from his monthly mean "history" 
-!   files (which usually contain many variables but only a single time 
-!   slice).  The CMOR code will write each field in a separate file, but 
-!   many monthly mean time-samples will be stored together.  These 
-!   constraints partially determine the structure of the code.
-!
-!
-!   Record of revisions:
-
-!       Date        Programmer(s)           Description of change
-!       ====        ==========              =====================
-!      10/22/03     Rusty Koder              Original code
-!       1/28/04     Les R. Koder             Revised to be consistent
-!                                            with evolving code design
-
-! include module that contains the user-accessible cmor functions.
-  USE cmor_users_functions
-  USE local_subs
-
-  IMPLICIT NONE
-
-  !   dimension parameters:
-  ! ---------------------------------
-  INTEGER, PARAMETER :: ntimes = 2    ! number of time samples to process
-  INTEGER, PARAMETER :: lon = 4       ! number of longitude grid cells  
-  INTEGER, PARAMETER :: lat = 3       ! number of latitude grid cells
-  INTEGER, PARAMETER :: lev = 17       ! number of latitude grid cells
-  INTEGER, PARAMETER :: n2d = 1       ! number of IPCC Table A1a fields to be
-                                      !     output.
-  !   Tables associating the user's variables with IPCC standard output 
-  !   variables.  The user may choose to make this association in a 
-  !   different way (e.g., by defining values of pointers that allow him 
-  !   to directly retrieve data from a data record containing many 
-  !   different variables), but in some way the user will need to map his 
-  !   model output onto the Tables specifying the MIP standard output.
-
-  ! ----------------------------------
-
-                                ! My variable names for IPCC Table A1a fields
-  CHARACTER (LEN=4), DIMENSION(n2d) :: &
-                  varin2d=(/  'TSURF' /)
-
-                                ! Units appropriate to my data
-   CHARACTER (LEN=1), DIMENSION(n2d) :: &
-                          units2d=(/ '1'/)
-
-   CHARACTER (LEN=4), DIMENSION(n2d) :: &
-                      positive2d= (/  '    ' /)
-
-                     ! Corresponding IPCC Table A1a entry (variable name) 
-  CHARACTER (LEN=10), DIMENSION(n2d) :: &
-                        entry2d = (/ 'co2Clim' /)
-
-!  uninitialized variables used in communicating with CMOR:
-!  ---------------------------------------------------------
-
-  INTEGER :: error_flag
-  INTEGER, DIMENSION(n2d) :: var2d_ids
-  REAL, DIMENSION(lon,lat,lev,24) :: data2d
-  DOUBLE PRECISION, DIMENSION(lat) :: alats
-  DOUBLE PRECISION, DIMENSION(lon) :: alons
-  DOUBLE PRECISION, DIMENSION(lev) :: plevs
-  DOUBLE PRECISION, DIMENSION(24) :: time
-  DOUBLE PRECISION, DIMENSION(2,24):: bnds_time
-  DOUBLE PRECISION, DIMENSION(2,lat) :: bnds_lat
-  DOUBLE PRECISION, DIMENSION(2,lon) :: bnds_lon
-  INTEGER :: ilon, ilat, ipres, itim
-  double precision bt
-
-
-  !  Other variables:
-  !  ---------------------
-  
-  INTEGER :: it, m  
-
-  bt=0.
-      plevs = (/100000., 92500., 85000., 70000.,&
-       60000., 50000., 40000., 30000., 25000., 20000.,&
-       15000., 10000., 7000., 5000., 3000., 2000., 1000. /)
-  
-  ! ================================
-  !  Execution begins here:
-  ! ================================
-  
-  ! Read coordinate information from model into arrays that will be passed 
-  !   to CMOR.
-  ! Read latitude, longitude, and pressure coordinate values into 
-  !   alats, alons, and plevs, respectively.  Also generate latitude and 
-  !   longitude bounds, and store in bnds_lat and bnds_lon, respectively.
-  !   Note that all variable names in this code can be freely chosen by
-  !   the user.
-
-  !   The user must write the subroutine that fills the coordinate arrays 
-  !   and their bounds with actual data.  The following line is simply a
-  !   a place-holder for the user's code, which should replace it.
-  
-  !  *** possible user-written call ***
-  
-  call read_coords(alats, alons, bnds_lat, bnds_lon)
-  
-  ! Specify path where tables can be found and indicate that existing 
-  !    netCDF files should not be overwritten.
-  
-  error_flag = cmor_setup(inpath='Test', netcdf_file_action='replace')!,logfile="climatology_test_code.LOG")
-  
-  ! Define dataset as output from the GICC model (first member of an
-  !   ensemble of simulations) run under IPCC 2xCO2 equilibrium
-  !   experiment conditions, and provide information to be included as 
-  !   attributes in all CF-netCDF files written as part of this dataset.
-
-  error_flag = cmor_dataset(                                   &
-       outpath='Test',                                         &
-       experiment_id='abrupt 4XCO2',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       'Geneva, Switzerland)',                                 &
-       source='GICCM1 (2002): ' //                             &
-       'atmosphere:  GICAM3 (gicam_0_brnchT_itea_2, T63L32); '// &
-       'ocean: MOM (mom3_ver_3.5.2, 2x3L15); '             //  &
-       'sea ice: GISIM4; land: GILSM2.5',                      &
-       calendar='360_day',                                      &
-       realization=1,                                          &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also '        //   &
-       'see http://www.GICC.su/giccm/doc/index.html '     //   &
-       ' 2XCO2 simulation described in Dorkey et al. '    //   &
-       '(Clim. Dyn., 2003, 323-357.)', &
-       model_id = 'GICCM1', &
-       forcing='TO',contact="Barry Bonds",institute_id="PCMDI",&
-       parent_experiment_id="N/A",branch_time=bt)
-
-  !  Define all axes that will be needed
-
-  ipres = cmor_axis(  &
-       table='Tables/CMIP5_Amon',        &
-       table_entry='plevs',       &
-       units='Pa',                   &
-       length=lev,                   &
-       coord_vals=plevs)
-  ilat = cmor_axis(  &
-       table='Tables/CMIP5_Amon',    &
-       table_entry='latitude',       &
-       units='degrees_north',        &  
-       length=lat,                   &
-       coord_vals=alats,             & 
-       cell_bounds=bnds_lat)        
-      
-  ilon = cmor_axis(  &
-       table='Tables/CMIP5_Amon',    &
-       table_entry='longitude',      &
-       length=lon,                   &
-       units='degrees_east',         &
-       coord_vals=alons,             &
-       cell_bounds=bnds_lon)      
-        
-  !   note that the time axis is defined next, but the time coordinate 
-  !   values and bounds will be passed to cmor through function 
-  !   cmor_write (later, below).
-
-  itim = cmor_axis(  &
-       table='Tables/CMIP5_Amon',    &
-       table_entry='time2',           &
-       units='days since 2030-1-1',  &
-       length=ntimes*24                &
-       )
-  
-
-  !  Define variables appearing in IPCC table A1a (2-d variables)
-  
-  DO m=1,n2d
-     var2d_ids(m) = cmor_variable(    &
-          table='Tables/CMIP5_Amon',  &
-          table_entry=entry2d(m),     & 
-          units=units2d(m),           & 
-          axis_ids=(/ ilon, ilat, ipres, itim /), &
-          missing_value=1.0e28,       &
-          positive=positive2d(m),     &
-          original_name=varin2d(m))   
-  ENDDO
-
-  PRINT*, ' '
-  PRINT*, 'completed everything up to writing output fields '
-  PRINT*, ' '
-
-  !  Loop through history files (each containing several different fields, 
-  !       but only a single month of data, averaged over the month).  Then 
-  !       extract fields of interest and write these to netCDF files (with 
-  !       one field per file, but all months included in the loop).
-  
-  time_loop: DO it=1, ntimes
-     
-     ! In the following loops over the 3d and 2d fields, the user-written    
-     ! subroutines (read_3d_input_files and read_2d_input_files) retrieve 
-     ! the requested IPCC table A1c and table A1a fields and store them in 
-     ! data3d and data2d, respectively.  In addition a user-written code 
-     ! (read_time) retrieves the time and time-bounds associated with the 
-     ! time sample (in units of 'days since 1970-1-1', consistent with the 
-     ! axis definitions above).  The bounds are set to the beginning and 
-     ! the end of the month retrieved, indicating the averaging period.
-     
-     ! The user must write a code to obtain the times and time-bounds for
-     !   the time slice.  The following line is simply a place-holder for
-     !   the user's code, which should replace it.
-     
-     call read_time(it, time, bnds_time)
-
-     
-     ! Cycle through the 2-d fields, retrieve the requested variable and 
-     ! append each to the appropriate netCDF file.
-     
-     DO m=1,n2d
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-        
-        call read_2d_input_files(it, varin2d(m), data2d)                  
-
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-
-        print*, 'CALLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL'
-        print*, 'times:',time(1),time(2)
-        print*, 'btimes:',bnds_time(1,1),bnds_time(2,1),bnds_time(1,2),bnds_time(2,2)
-        error_flag = cmor_write(                                  &
-             var_id        = var2d_ids(m),                        &
-             data          = data2d,                              &
-             ntimes_passed = 24,                                   &
-             time_vals     = time,                                &
-             time_bnds     = bnds_time  )
-        
-       IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) ' Error encountered writing climatology test Table A ' &
-                // 'field ', entry2d(m), ', which I call ', varin2d(m)
-           write(*,*) ' Was processing time sample: ', time 
-                      
-        END IF
-        
-     END DO
-     
-  END DO time_loop
-  
-  !   Close all files opened by CMOR.
-  
-  error_flag = cmor_close()  
-
-  print*, ' '
-  print*, '******************************'
-  print*, ' '
-  print*, 'ipcc_test_code executed to completion '   
-  print*, ' '
-  print*, '******************************'
-  
-END PROGRAM ipcc_test_code
-
diff --git a/Test/climatology_test_table_A b/Test/climatology_test_table_A
deleted file mode 100644
index cd5be09..0000000
--- a/Test/climatology_test_table_A
+++ /dev/null
@@ -1,296 +0,0 @@
-cmor_version: 2.0         ! version of CMOR that can read this table
-cf_version:   1.3         ! version of CF that output conforms to
-project_id:   IPCC Fourth Assessment  ! project id
-table_id:     Table A1    ! table id
-table_date:   22 October 2008 ! date this table was last updated
-
-modeling_realm: 	      atm
-
-required_global_attributes: creation_date tracking_id model_id forcing
-
-expt_id_ok:   'pre-industrial control experiment'
-expt_id_ok:   'present-day control experiment'
-expt_id_ok:   'climate of the 20th Century experiment (20C3M)'
-expt_id_ok:   'committed climate change experiment'  ! official name(s) of 
-expt_id_ok:   'SRES A2 experiment'                   !  project's experiments
-expt_id_ok:   '720 ppm stabilization experiment (SRES A1B)'    
-expt_id_ok:   '550 ppm stabilization experiment (SRES B1)'
-expt_id_ok:   '1%/year CO2 increase experiment (to doubling)'
-expt_id_ok:   '1%/year CO2 increase experiment (to quadrupling)'
-expt_id_ok:   'slab ocean control experiment'
-expt_id_ok:   '2xCO2 equilibrium experiment' '2xco2'
-expt_id_ok:   'AMIP experiment'
-
-magic_number: -1          ! used to check whether this file has been 
-                          !   altered from the official version.
-                          !   should be set to number of non-blank 
-                          !   characters in file. 
-approx_interval:  30.     ! approximate spacing between successive time
-                          !   samples (in units of the output time 
-                          !   coordinate.
-missing_value: 1.e20      ! value used to indicate a missing value
-                          !   in arrays output by netCDF as 32-bit IEEE 
-                          !   floating-point numbers (float or real)
-
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-! SUBROUTINE ARGUMENT DEFAULT INFORMATION
-!
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-!  set default specifications for subroutine arguments to:
-!     required/indeterminate/optional/ignored/forbidden
-!    (indeterminate may or may not be required information, but is not always
-!     required as an argument of the function call)
-!
-!
-!============
-subroutine_entry: cmor_axis
-!============
-!
-required: table axis_name units length coord_vals cell_bounds
-ignored: interval
-!
-!============
-subroutine_entry: cmor_variable
-!============
-!
-required: table table_entry units axis_ids
-indeterminate: missing_value
-optional: tolerance original_name history comment
-ignored: positive
-!
-!============
-subroutine_entry: cmor_write
-!============
-!
-required:  var_id data 
-indeterminate: ntimes_passed time_vals time_bnds store_with
-optional: file_suffix
-!
-!
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-! AXIS INFORMATION
-!
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-! ??? what about climatology???
-! ??? what about model level data???
-!
-!
-!  TEMPLATE FOR AXES
-!
-!============
-!axis_entry:               ! (required)
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-!    acceptable arguments include units length coord_vals cell_bounds interval
-!required:                  ! (default: table axis_name units length
-!                                        coord_vals cell_bounds)
-!indeterminate:
-!optional:
-!ignored:                   ! (default: interval)
-!forbidden:
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-!standard_name:             ! (required)
-!units:                     ! (required)
-!axis:                      ! X, Y, Z, T (default: undeclared)
-!positive:                  ! up or down (default: undeclared)
-!long_name:                 ! (default: undeclared)
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-!out_name:                ! (default: same as axis_entry) 
-!type:                    ! double (default), real, character, integer
-!stored_direction:        ! increasing (default) or decreasing
-!valid_min:               ! type: double precision (default: no check performed
-!valid_max:               ! type: double precision (default: no check performed
-!requested:               ! space-separated list of requested coordinates 
-                          !       (default: undeclared)
-!requested_bounds:        ! space-separated list of requested coordinate bounds
-                          !       (default: undeclared)
-!tol_on_requests:         ! fractional tolerance for meeting request
-                          !  (default=1.e-3, which is used in the formula:
-                          !     eps =  MIN(( tol*interval between grid-points)
-                          !          and (1.e-3*tol*coordinate value)))
-!value:                   ! of scalar (singleton) dimension 
-!bounds_values:           ! of scalar (singleton) dimension bounds
-!----------------------------------	
-!
-!
-!  TEMPLATE FOR VARIABLES
-!
-!
-!============
-!variable_entry:                ! (required)
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!        acceptable arguments include  file_suffix missing_value tolerance 
-!                               original_name history comment positive
-!required:                   ! (default: table table_entry units axis_ids)
-!indeterminate:              ! (default: file_suffix missing_value)
-!optional:                   ! (default: original_name history comment)
-!ignored:                    ! (default: positive)
-!forbidden:
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-!standard_name:              ! (required)
-!units:                      ! (required)
-!cell_methods:               ! (default: undeclared)
-!long_name:                  ! (default: undeclared)
-!comment:                    ! (default: undeclared)
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-!dimensions:                 ! (required)  (scalar dimension(s) should appear
-                             !      last in list)
-!out_name:                   ! (default: variable_entry)
-!type:                       ! real (default), double, integer 
-!positive:                   ! up or down (default: undeclared)
-!valid_min:                  ! type: real (default: no check performed)
-!valid_max:                  ! type: real (default: no check performed)
-!ok_min_mean_abs:            ! type: real (default: no check performed)
-!ok_max_mean_abs:            ! type: real (default: no check performed)
-!----------------------------------	
-! 
-
-!
-!============
-axis_entry: longitude
-!============
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    longitude
-units:            degrees_east
-axis:             X
-long_name:        longitude
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lon
-valid_min:        0.           ! CMOR will add n*360 to input values
-                               ! (where n is an integer) to ensure 
-                               !  longitudes are in proper range.  The
-                               !  data will also be rearranged 
-                               !  appropriately.
-valid_max:        360.         !  see above comment.
-!----------------------------------	
-!
-!
-!=============
-axis_entry: latitude
-!=============
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    latitude
-units:            degrees_north
-axis:             Y
-long_name:        latitude
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lat
-valid_min:        -90.
-valid_max:        90.
-!----------------------------------	
-!
-!
-!
-!============
-axis_entry: time
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-optional: interval length
-indeterminate: coord_vals cell_bounds
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    time
-units:            days since ?
-axis:             T
-climatology:      yes
-long_name:        time
-!----------------------------------
-!
-!
-!
-!============
-axis_entry: height1
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-ignored: cell_bounds
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    height
-units:            m
-axis:             Z
-positive:         up
-long_name:        height
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         height
-valid_min:        0.
-valid_max:        10.
-value:            2.
-!----------------------------------	
-!
-!	
-!
-!
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-! VARIABLE INFORMATION
-!
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-!
-!
-!============
-variable_entry: tasDiurnal
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:   air_temperature     
-units:           K
-cell_methods:    time: mean within days time: mean over days
-long_name:       Diurnal Cycle Climatology for Surface Air Temperature
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time height1
-valid_min:        200.
-valid_max:        330.
-ok_min_mean_abs:  270.
-ok_max_mean_abs:  300.
-!----------------------------------	
-! 
-!
diff --git a/Test/cmor_speed_and_compression.py b/Test/cmor_speed_and_compression.py
deleted file mode 100644
index 6a055c9..0000000
--- a/Test/cmor_speed_and_compression.py
+++ /dev/null
@@ -1,161 +0,0 @@
-import cmor,numpy,sys,os
-try:
-    import cdms2
-    cdms2.setNetcdfShuffleFlag(0)
-    cdms2.setNetcdfDeflateFlag(0)
-    cdms2.setNetcdfDeflateLevelFlag(0)
-except:
-    print "This test code needs a recent cdms2 interface for i/0"
-    sys.exit()
-
-if len(sys.argv)>1:
-    level = int(sys.argv[1])
-else:
-    level=int(os.environ.get("DEFLATE_LEVEL",0))
-
-if len(sys.argv)>2:
-    shuffle= int(sys.argv[2])
-else:
-    shuffle=int(os.environ.get("SHUFFLE",0))
-
-if level==0:
-    deflate = 0
-else:
-    deflate = 1
-
-f=open("Test/speed_test_table_A")
-s=f.read()
-f.close()
-s=s.replace("${DEFLATE_LEVEL}",str(level))
-s=s.replace("${DEFLATE}",str(deflate))
-s=s.replace("${SHUFFLE}",str(shuffle))
-f=open("mytable","w")
-f.write(s)
-f.close()
-
-cmor.setup(inpath="Test",set_verbosity=cmor.CMOR_NORMAL, netcdf_file_action = cmor.CMOR_REPLACE, exit_control = cmor.CMOR_EXIT_ON_MAJOR);
-cmor.dataset(
-    outpath = "Test",
-    experiment_id = "historical",
-    institution = "GICC (Generic International Climate Center, Geneva, Switzerland)",
-    source = "GICCM1 (2002): atmosphere:  GICAM3 (gicam_0_brnchT_itea_2, T63L32); ocean: MOM (mom3_ver_3.5.2, 2x3L15); sea ice: GISIM4; land: GILSM2.5",
-    calendar = "standard",
-    realization = 1,
-    contact = "Charles Doutriaux (doutriaux1 at llnl.gov)",
-    history = "Test for speed and compression.",
-    comment = "NetCDF4 vs NetCDF3 testing",
-    references = "http://cdat.sf.net",
-    leap_year=0,
-    leap_month=0,
-    institute_id="PCMDI",
-    month_lengths=None,model_id="GICCM1",forcing="SO",parent_experiment_id="lgm",branch_time=4.)
-
-tables=[]
-tables.append(cmor.load_table("mytable"))
-print 'Tables ids:',tables
-
-
-## read in data, just one slice
-f=cdms2.open(sys.prefix+'/sample_data/tas_dnm-95a_1984.01-1984.12.nc')
-s=f("tas",time=slice(0,1),squeeze=1)
-
-ntimes = 12
-
-myaxes=numpy.arange(10)
-myvars=numpy.arange(10)
-myaxes[0] = cmor.axis(table_entry = 'latitude', 
-                      units = 'degrees_north', 
-                      coord_vals = s.getLatitude()[:],cell_bounds=s.getLatitude().getBounds())
-myaxes[1] = cmor.axis(table_entry = 'longitude', 
-                      units = 'degrees_north', 
-                      coord_vals = s.getLongitude()[:],cell_bounds=s.getLongitude().getBounds())
-
-
-
-myaxes[3] = cmor.axis(table_entry = 'time',
-                      units = 'months since 1980',
-                      coord_vals = numpy.arange(ntimes), cell_bounds=numpy.arange(ntimes+1))
-
-pass_axes = [myaxes[2],myaxes[0],myaxes[1]]
-
-myvars[0] = cmor.variable( table_entry = 'tas',
-                           units = 'K',
-                           axis_ids = pass_axes,
-                           original_name = 'CLT',
-                           history = 'no history',
-                           comment = 'testing speed'
-                           )
-
-
-import time,MV2
-st = time.time()
-totcmor=0
-totcdms=0
-maxcmor=0
-mincmor=1000
-maxcdms=0
-mincdms=1000
-c0=st
-s2=s*1
-sh=list(s.shape)
-sh.insert(0,1)
-s2=MV2.reshape(s2,sh)
-s2.setAxis(1,s.getLatitude())
-s2.setAxis(2,s.getLongitude())
-f=cdms2.open("Test/crap.nc","w")
-for i in range(ntimes):
-    #print 'Time:',i
-    cmor.write(myvars[0],s.filled(),1)
-    c=time.time()
-    #print 'cmor write time:',c-c0
-    totcmor+=c-c0
-    if maxcmor<c-c0:
-        maxcmor=c-c0
-    if mincmor>c-c0:
-        mincmor=c-c0
-    c0=c
-    t=cdms2.createAxis([i])
-    t.id='time'
-    t.units='months since 1980'
-    t.designateTime()
-    s2.setAxis(0,t)
-    f.write(s2,id='tas')
-    c=time.time()
-    #print 'cdms time:',c-c0
-    totcdms+=c-c0
-    if maxcdms<c-c0:
-        maxcdms=c-c0
-    if mincdms>c-c0:
-        mincdms=c-c0
-    c0=c
-f.close()
-cmor.close()
-
-import cdtime,os
-ltime = cdtime.reltime(ntimes-1,'month since 1980').tocomp()
-lcmor = os.stat("Test/CMIP5/output/PCMDI/GICCM1/historical/mon/atmos/tas/r1i1p1/tas_Amon_GICCM1_historical_r1i1p1_198001-%i%.2i.nc" % (ltime.year,ltime.month))[6]
-print 'level:',level,"shuffle:",shuffle
-print 'total cmor:',totcmor,mincmor,totcmor/ntimes,maxcmor,lcmor
-lcdms = os.stat("Test/crap.nc")[6]
-print 'total cdms:',totcdms,mincdms,totcdms/ntimes,maxcdms,lcdms
-print 'Size diff:',float(lcmor)/float(lcdms)
-print 'speed diff:', totcmor/totcdms
-
-if os.path.exists("summary.txt"):
-    f = open("summary.txt")
-    s=f.read()
-    f.close()
-    dic = eval(s)
-else:
-    dic = {}
-
-dic[(level,shuffle)]=(float(lcmor)/float(lcdms),totcmor/totcdms)
-
-for i in range(10):
-    a = dic.get((i,0),"N/A")
-    b = dic.get((i,1),"N/A")
-    print 'Level: ',i,"no suffle:",a,"shuffle",b
-f=open("summary.txt","w")
-f.write(repr(dic))
-f.close()
-
diff --git a/Test/cmor_speed_and_compression_01.py b/Test/cmor_speed_and_compression_01.py
deleted file mode 100644
index f46d344..0000000
--- a/Test/cmor_speed_and_compression_01.py
+++ /dev/null
@@ -1,151 +0,0 @@
-import cmor,numpy,sys,os
-try:
-    import cdms2
-    cdms2.setNetcdfShuffleFlag(0)
-    cdms2.setNetcdfDeflateFlag(0)
-    cdms2.setNetcdfDeflateLevelFlag(0)
-except:
-    print "This test code needs a recent cdms2 interface for i/0"
-    sys.exit()
-
-if len(sys.argv)>1:
-    level = int(sys.argv[1])
-else:
-    level=int(os.environ.get("DEFLATE_LEVEL",0))
-
-if len(sys.argv)>2:
-    shuffle= int(sys.argv[2])
-else:
-    shuffle=int(os.environ.get("SHUFFLE",0))
-
-if level==0:
-    deflate = 0
-else:
-    deflate = 1
-
-f=open("Test/speed_test_table_A")
-s=f.read()
-f.close()
-s=s.replace("${DEFLATE_LEVEL}",str(level))
-s=s.replace("${DEFLATE}",str(deflate))
-s=s.replace("${SHUFFLE}",str(shuffle))
-f=open("mytable","w")
-f.write(s)
-f.close()
-
-cmor.setup(inpath="Test",set_verbosity=cmor.CMOR_NORMAL, netcdf_file_action = cmor.CMOR_REPLACE, exit_control = cmor.CMOR_EXIT_ON_MAJOR);
-cmor.dataset(
-    outpath = "Test",
-    experiment_id = "lgm",
-    institution = "GICC (Generic International Climate Center, Geneva, Switzerland)",
-    source = "GICCM1 (2002): atmosphere:  GICAM3 (gicam_0_brnchT_itea_2, T63L32); ocean: MOM (mom3_ver_3.5.2, 2x3L15); sea ice: GISIM4; land: GILSM2.5",
-    calendar = "standard",
-    realization = 1,
-    contact = "Charles Doutriaux (doutriaux1 at llnl.gov)",
-    history = "Test for speed and compression.",
-    comment = "NetCDF4 vs NetCDF3 testing",
-    references = "http://cdat.sf.net",
-    leap_year=0,
-    leap_month=0,
-    institute_id="PCMDI",
-    month_lengths=None,model_id="GICCM1",forcing="SO",parent_experiment_id="N/A",branch_time=0.)
-
-tables=[]
-tables.append(cmor.load_table("mytable"))
-print 'Tables ids:',tables
-
-
-## read in data, just one slice
-f=cdms2.open(sys.prefix+'/sample_data/tas_dnm-95a_1984.01-1984.12.nc')
-s=f("tas",time=slice(0,12),squeeze=1)
-
-ntimes = 12
-varout='tas'
-
-myaxes=numpy.arange(10)
-myvars=numpy.arange(10)
-myaxes[0] = cmor.axis(table_entry = 'latitude', 
-                      units = 'degrees_north', 
-                      coord_vals = s.getLatitude()[:],cell_bounds=s.getLatitude().getBounds())
-myaxes[1] = cmor.axis(table_entry = 'longitude', 
-                      units = 'degrees_north', 
-                      coord_vals = s.getLongitude()[:],cell_bounds=s.getLongitude().getBounds())
-
-
-
-myaxes[2] = cmor.axis(table_entry = 'time',
-                      units = s.getTime().units,
-                      coord_vals = s.getTime()[:],cell_bounds=s.getTime().getBounds())
-
-pass_axes = [myaxes[2],myaxes[0],myaxes[1]]
-
-myvars[0] = cmor.variable( table_entry = varout,
-                           units = s.units,
-                           axis_ids = pass_axes,
-                           original_name = s.id,
-                           history = 'no history',
-                           comment = 'testing speed'
-                           )
-
-
-import time,MV2
-st = time.time()
-totcmor=0
-totcdms=0
-maxcmor=0
-mincmor=1000
-maxcdms=0
-mincdms=1000
-c0=st
-f=cdms2.open("Test/crap.nc","w")
-#print 'Time:',i
-print s.filled().shape
-cmor.write(myvars[0],s.filled(),ntimes_passed=ntimes)
-c=time.time()
-#print 'cmor write time:',c-c0
-totcmor+=c-c0
-if maxcmor<c-c0:
-    maxcmor=c-c0
-if mincmor>c-c0:
-    mincmor=c-c0
-c0=c
-f.write(s,id=varout)
-c=time.time()
-#print 'cdms time:',c-c0
-totcdms+=c-c0
-if maxcdms<c-c0:
-    maxcdms=c-c0
-if mincdms>c-c0:
-    mincdms=c-c0
-c0=c
-f.close()
-cmor.close()
-
-import cdtime,os
-ltime = cdtime.reltime(ntimes-1,'month since 1980').tocomp()
-lcmor = os.stat("Test/CMIP5/output/PCMDI/GICCM1/lgm/mon/atmos/tas/r1i1p1/tas_Amon_GICCM1_lgm_r1i1p1_198401-198412.nc")[6]
-print 'level:',level,"shuffle:",shuffle
-print 'total cmor:',totcmor,mincmor,totcmor/ntimes,maxcmor,lcmor
-lcdms = os.stat("Test/crap.nc")[6]
-print 'total cdms:',totcdms,mincdms,totcdms/ntimes,maxcdms,lcdms
-print 'Size diff:',float(lcmor)/float(lcdms)
-print 'speed diff:', totcmor/totcdms
-
-if os.path.exists("summary.txt"):
-    f = open("summary.txt")
-    s=f.read()
-    f.close()
-    dic = eval(s)
-else:
-    dic = {}
-
-dic[(level,shuffle)]=(float(lcmor)/float(lcdms),totcmor/totcdms)
-
-for i in range(10):
-    a = dic.get((i,0),"N/A")
-    b = dic.get((i,1),"N/A")
-    print 'Level: ',i,"no suffle:",a,"shuffle",b
-f=open("summary.txt","w")
-f.write(repr(dic))
-f.close()
-
diff --git a/Test/cmor_speed_and_compression_02.py b/Test/cmor_speed_and_compression_02.py
deleted file mode 100644
index ad0378a..0000000
--- a/Test/cmor_speed_and_compression_02.py
+++ /dev/null
@@ -1,184 +0,0 @@
-import cmor,numpy,sys,os
-try:
-    import cdms2
-except:
-    print "This test code needs cdms2 interface for i/0"
-    sys.exit()
-
-cdms2.setNetcdfShuffleFlag(0)
-cdms2.setNetcdfDeflateFlag(0)
-cdms2.setNetcdfDeflateLevelFlag(0)
-
-if len(sys.argv)>1:
-    level = int(sys.argv[1])
-else:
-    level=int(os.environ.get("DEFLATE_LEVEL",0))
-
-if len(sys.argv)>2:
-    shuffle= int(sys.argv[2])
-else:
-    shuffle=int(os.environ.get("SHUFFLE",0))
-
-if level==0:
-    deflate = 0
-else:
-    deflate = 1
-
-f=open("Test/speed_test_table_A")
-s=f.read()
-f.close()
-s=s.replace("${DEFLATE_LEVEL}",str(level))
-s=s.replace("${DEFLATE}",str(deflate))
-s=s.replace("${SHUFFLE}",str(shuffle))
-f=open("mytable","w")
-f.write(s)
-f.close()
-
-cmor.setup(inpath="Test",set_verbosity=cmor.CMOR_NORMAL, netcdf_file_action = cmor.CMOR_REPLACE, exit_control = cmor.CMOR_EXIT_ON_MAJOR);
-cmor.dataset(
-    outpath = "Test",
-    experiment_id = "2xCO2 equilibrium experiment",
-    institution = "GICC (Generic International Climate Center, Geneva, Switzerland)",
-    source = "GICCM1 (2002): atmosphere:  GICAM3 (gicam_0_brnchT_itea_2, T63L32); ocean: MOM (mom3_ver_3.5.2, 2x3L15); sea ice: GISIM4; land: GILSM2.5",
-    calendar = "standard",
-    realization = 1,
-    contact = "Charles Doutriaux (doutriaux1 at llnl.gov)",
-    history = "Test for speed and compression.",
-    comment = "NetCDF4 vs NetCDF3 testing",
-    references = "http://cdat.sf.net",
-    leap_year=0,
-    leap_month=0,
-    month_lengths=None,model_id="pcmdi-09a",forcing="co2")
-
-tables=[]
-tables.append(cmor.load_table("mytable"))
-print 'Tables ids:',tables
-
-
-## read in data, just one slice
-var='tos'
-#f=cdms2.open('/export/ipcc/20c3m/atm/3h/tas/miroc3_2_medres/run1/tas_A3.nc')
-#f=cdms2.open('/export/ipcc/20c3m/atm/3h/pr/miroc3_2_medres/run1/pr_A3.nc')
-f=cdms2.open('/export/ipcc/20c3m/ocn/mo/tos/miroc3_2_medres/run1/tos_O1_1934_2000.nc')
-s=f[var]
-
-ntimes = s.shape[0]
-ntimes=100
-Tim = s.getTime().clone()
-myaxes=numpy.arange(10)
-myvars=numpy.arange(10)
-try:
-    missing_value = s.missing_value[0]
-except:
-    try:
-        missing_value=s.missing_value
-    except:
-        missing_value=None
-
-print 'Missing:',type(missing_value),missing_value
-#missing_value = -999.
-myaxes[0] = cmor.axis(table_entry = 'latitude', 
-                      units = 'degrees_north', 
-                      coord_vals = s.getLatitude()[:])
-myaxes[1] = cmor.axis(table_entry = 'longitude', 
-                      units = 'degrees_north', 
-                      coord_vals = s.getLongitude()[:])
-
-
-
-myaxes[2] = cmor.axis(table_entry = 'time',
-                      units = Tim.units,
-                      coord_vals = Tim[:ntimes])
-
-pass_axes = [myaxes[2],myaxes[0],myaxes[1]]
-
-myvars[0] = cmor.variable( table_entry = var,
-                           units = s.units,
-                           axis_ids = pass_axes,
-                           original_name = var,
-                           history = 'no history',
-                           comment = 'testing speed',
-                           missing_value=missing_value,
-                           tolerance = 1.e-2
-                           )
-
-
-import time,MV2
-st = time.time()
-totcmor=0
-totcdms=0
-maxcmor=0
-mincmor=1000
-maxcdms=0
-mincdms=1000
-c0=st
-f=cdms2.open("Test/crap.nc","w")
-step=10
-for i in range(0,ntimes,step):
-    print 'Time:',i
-    j1=i
-    j2=i+step
-    cmor.write(myvars[0],s[j1:j2].filled(),step,file_suffix="speed-comp-02")
-    c=time.time()
-    #print 'cmor write time:',c-c0
-    totcmor+=c-c0
-    if maxcmor<c-c0:
-        maxcmor=c-c0
-    if mincmor>c-c0:
-        mincmor=c-c0
-    c0=c
-    s2=s[j1:j2]
-    sh=list(s2.shape)
-    if len(sh)==2:
-        sh.insert(0,1)
-        s2=MV2.reshape(s2,sh)
-        s2.setAxis(-1,s.getLongitude())
-        s2.setAxis(-2,s.getLatitude())
-        t=cdms2.createAxis([Tim[i],])
-        t.id='time'
-        t.units=Tim.units
-        t.designateTime()
-        s2.setAxis(0,t)
-    f.write(s2,id=var)
-    c=time.time()
-    #print 'cdms time:',c-c0
-    totcdms+=c-c0
-    if maxcdms<c-c0:
-        maxcdms=c-c0
-    if mincdms>c-c0:
-        mincdms=c-c0
-    c0=c
-f.close()
-cmor.close()
-
-import cdtime,os
-ltime = cdtime.reltime(Tim[ntimes-1],Tim.units).tocomp()
-ftime = cdtime.reltime(Tim[0],Tim.units).tocomp()
-print ftime,ltime
-print (var,var,ftime.year,ftime.month,ltime.year,ltime.month)
-lcmor = os.stat("Test/IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-09a/mon/REALM/%s/r1/%s_A1_pcmdi-09a_r1_%i%.2i-%i%.2i_speed-comp-02.nc" % (var,var,ftime.year,ftime.month,ltime.year,ltime.month))[6]
-print 'level:',level,"shuffle:",shuffle
-print 'total cmor:',totcmor,mincmor,totcmor/ntimes,maxcmor,lcmor
-lcdms = os.stat("Test/crap.nc")[6]
-print 'total cdms:',totcdms,mincdms,totcdms/ntimes,maxcdms,lcdms
-print 'Size diff:',float(lcmor)/float(lcdms)
-print 'speed diff:', totcmor/totcdms
-
-if os.path.exists("summary.txt"):
-    f = open("summary.txt")
-    s=f.read()
-    f.close()
-    dic = eval(s)
-else:
-    dic = {}
-
-dic[(level,shuffle)]=(float(lcmor)/float(lcdms),totcmor/totcdms)
-
-for i in range(10):
-    a = dic.get((i,0),"N/A")
-    b = dic.get((i,1),"N/A")
-    print 'Level: ',i,"no suffle:",a,"shuffle",b
-f=open("summary.txt","w")
-f.write(repr(dic))
-f.close()
-
diff --git a/Test/in_files.py b/Test/in_files.py
deleted file mode 100644
index c010f74..0000000
--- a/Test/in_files.py
+++ /dev/null
@@ -1,31 +0,0 @@
-input_tables = {
-    'climatology_test_code' : ['climatology_test_table_A'],
-    'test_any_from_asc' : ['CMOR_SAMPLE_TABLE'],
-    'test_any_from_asc_d' : ['CMOR_SAMPLE_TABLE'],
-    'test_any_from_asc_i' : ['CMOR_SAMPLE_TABLE'],
-    'karls_test' : ['IPCC_test_table_A'],
-    'test1' : ['CMOR_SAMPLE_TABLE'],
-    'test2' : ['CMOR_SAMPLE_TABLE'],
-    'test3' : ['CMOR_SAMPLE_TABLE'],
-    'test4' : ['CMOR_SAMPLE_TABLE'],
-    'main_prog' : ['CMOR_SAMPLE_TABLE'],
-    'test_any_from_asc_i' : ['CMOR_SAMPLE_TABLE',],
-    'mytest_4d_r' : ['CMOR_SAMPLE_TABLE'],
-    'rewrite_harvardf_data': ['Curts_table'],
-    'test_3h' : ['IPCC_table_A3'],
-    'test_dimensionless' : ['IPCC_table_A1'],
-    'test_fortran_example_00' : ['IPCC_test_table_A'],
-    'test_fortran_example_01' : ['IPCC_test_table_A','IPCC_test_table_Grids'],
-    'test_station_data' : ['IPCC_test_table_S'],
-    'test_region': ['IPCC_test_table_O'],
-    'test_sigma' : ['IPCC_table_A1'],
-    'test_singleton' : ['IPCC_test_table_A'],
-    'mytest_4d_r_big_array' : ['CMOR_SAMPLE_TABLE'],
-    'mytest_4d_d_big_array_2' : ['CMOR_SAMPLE_TABLE'],
-    'mytest_4d_d_big_array_3' : ['CMOR_SAMPLE_TABLE'],
-    'mytest_4d_d_big_array_4' : ['CMOR_SAMPLE_TABLE'],
-    'mytest_4d_d_big_array_5' : ['CMOR_SAMPLE_TABLE'],
-    'test_lots_of_variables' : ['IPCC_test_table_As'],
-    'test_shrt_exp_nm_set_att_initi' : ['IPCC_test_table_As'],
-    'test_sophie' : ['Sophie_Table'],
-    }
diff --git a/Test/ipcc_test_code.c b/Test/ipcc_test_code.c
deleted file mode 100644
index 4b60b86..0000000
--- a/Test/ipcc_test_code.c
+++ /dev/null
@@ -1,384 +0,0 @@
-#include <time.h>
-#include <stdio.h>
-#include<string.h>
-#include "cmor.h"
-#include <stdlib.h>
-
-void read_coords(alats, alons, plevs, bnds_lat, bnds_lon,lon,lat,lev)
-     double *alats,*alons;
-     int *plevs;
-     double *bnds_lat,*bnds_lon;
-     int lon,lat,lev;
-{
-  int i;
-    
-  for (i=0;i<lon;i++) {
-    alons[i] = i*360./lon;
-    bnds_lon[2*i] = (i - 0.5)*360./lon;
-    bnds_lon[2*i+1] = (i + 0.5)*360./lon;
-  };
-  
-
-  for (i=0;i<lat;i++) {
-    alats[i] = (lat-i)*10;
-    bnds_lat[2*i] = (lat-i)*10 + 5.;
-    bnds_lat[2*i+1] = (lat-i)*10 - 5.;
-  };
-  
-
-  plevs[0]=1000;
-  plevs[1]=925;
-  plevs[2]=850;
-  plevs[3]=700;
-  plevs[4]=600;
-  plevs[5]=500;
-  plevs[6]=400;
-  plevs[7]=300;
-  plevs[8]=250;
-  plevs[9]=200;
-  plevs[10]=150;
-  plevs[11]=100;
-  plevs[12]=70;
-  plevs[13]=50;
-  plevs[14]=30;
-  plevs[15]=20;
-  plevs[16]=10;
-}
-
-void read_time(it, time, time_bnds)
-     int it;
-     double time[];
-     double time_bnds[];
-{    
-  time[0] = (it-0.5)*30.;
-  time_bnds[0] = (it-1)*30.;
-  time_bnds[1] = it*30.;
-
-  time[0]=it;
-  time_bnds[0] = it;
-  time_bnds[1] = it+1;
-
-}
-  
-#include "reader_2D_3D.h"
-
-int main()
-     /*
-/*   Purpose:   To serve as a generic example of an application that */
-/*       uses the "Climate Model Output Rewriter" (CMOR) */
-
-/*    CMOR writes CF-compliant netCDF files. */
-/*    Its use is strongly encouraged by the IPCC and is intended for use  */
-/*       by those participating in many community-coordinated standard  */
-/*       climate model experiments (e.g., AMIP, CMIP, CFMIP, PMIP, APE, */
-/*       etc.) */
-
-/*   Background information for this sample code: */
-
-/*      Atmospheric standard output requested by IPCC are listed in  */
-/*   tables available on the web.  Monthly mean output is found in */
-/*   tables A1a and A1c.  This sample code processes only two 3-d  */
-/*   variables listed in table A1c ("monthly mean atmosphere 3-D data"  */
-/*   and only four 2-d variables listed in table A1a ("monthly mean  */
-/*   atmosphere + land surface 2-D (latitude, longitude) data").  The  */
-/*   extension to many more fields is trivial. */
-
-/*      For this example, the user must fill in the sections of code that  */
-/*   extract the 3-d and 2-d fields from his monthly mean "history"  */
-/*   files (which usually contain many variables but only a single time  */
-/*   slice).  The CMOR code will write each field in a separate file, but  */
-/*   many monthly mean time-samples will be stored together.  These  */
-/*   constraints partially determine the structure of the code. */
-
-
-/*   Record of revisions: */
-
-/*       Date        Programmer(s)           Description of change */
-/*       ====        ==========              ===================== */
-/*      10/22/03     Rusty Koder              Original code */
-/*       1/28/04     Les R. Koder             Revised to be consistent */
-/*                                            with evolving code design */
-{
-
-  /*   dimension parameters: */
-  /* --------------------------------- */
-#define   ntimes  2    /* number of time samples to process */
-#define   lon  4       /* number of longitude grid cells   */
-#define   lat  3       /* number of latitude grid cells */
-#define   lev  17       /* number of standard pressure levels */
-#define   n2d  4       /* number of IPCC Table A1a fields to be */                                      /*     output. */
-#define n3d 3       /* number of IPCC Table A1c fields to  */
-                     /*                                be output.   */
-
-  /*   Tables associating the user's variables with IPCC standard output  */
-  /*   variables.  The user may choose to make this association in a  */
-  /*   different way (e.g., by defining values of pointers that allow him  */
-  /*   to directly retrieve data from a data record containing many  */
-  /*   different variables), but in some way the user will need to map his  */
-  /*   model output onto the Tables specifying the MIP standard output. */
-
-  /* ---------------------------------- */
-
-  /* My variable names for IPCC Table A1c fields */
-  char varin3d[n3d][6]={"CLOUD", "U", "T" };
-  
-  /* Units appropriate to my data */
-  char units3d[n3d][6]={"%", "m s-1", "K"};
-  
-  /* Corresponding IPCC Table A1c entry (variable name)  */
-  char entry3d[n3d][3]={"cl","ua","ta"};
-
-  /* My variable names for IPCC Table A1a fields */
-  char varin2d[n2d][9]={ "LATENT","TSURF","SOIL_WET","PSURF" };
-  
-  /* Units appropriate to my data */
-  char units2d[n2d][7]={ "W m-2","K","kg m-2","Pa"};
-  
-  char positive2d[n2d][4]={"down"," ", " ", " "};
-  
-  /* Corresponding IPCC Table A1a entry (variable name)  */
-  char entry2d[n2d][6]={"hfls", "tas","mrsos","ps"};
-
-/*  uninitialized variables used in communicating with CMOR: */
-/*  --------------------------------------------------------- */
-
-  int error_flag;
-  int znondim_id, zfactor_id;
-  int var2d_ids[n2d];
-  int var3d_ids[n3d];
-  double data2d[lat*lon];
-  double data3d[lev*lat*lon];
-  double alats[lat];
-  double alons[lon];
- int ilats[lat];
-  int ilons[lon];
-  double   plevs[lev];
-  int   iplevs[lev];
-  long   lplevs[lev];
-  float   fplevs[lev];
-  double Time[2];
-  double  bnds_time[4];
-  double bnds_lat[lat*2];
-  double bnds_lon[lon*2];
-  double zlevs[lev];
-  double zlev_bnds[lev+1];
-
-  double a_coeff[lev]={ 0.1, 0.2, 0.3, 0.22, 0.1 };
-  double b_coeff[lev]={ 0.0, 0.1, 0.2, 0.5, 0.8 };
-  float p0= 1.e5;
-  double a_coeff_bnds[lev+1]={0.,.15, .25, .25, .16, 0.};
-  double b_coeff_bnds[lev+1]={0.,.05, .15, .35, .65, 1.};
-  int ilon, ilat, ipres, ilev, itim;
-  double dtmp,dtmp2;
-
-  /*  Other variables: */
-  /*  --------------------- */
-  
-  int it, m, i,ierr , j;
-  int myaxes[10];
-  int myaxes2[10];
-  int myvars[10];
-  char id[CMOR_MAX_STRING];
-  char units[CMOR_MAX_STRING];
-  char interval[CMOR_MAX_STRING];
-  char anames[25][CMOR_MAX_STRING];
-  char type;
-  char regions[5][23] = { "atlantic_arctic_ocean", "indian_pacific_ocean", "pacific_ocean", "global_ocean", "sf_bay"};
-  double timestest[5];
-  /* Externals funcs */
-  int tables[5];
-  char msg[555];
-  double bt=0.;
-  /* ================================ */
-  /*  Execution begins here: */
-  /* ================================ */
-  
-  /* Read coordinate information from model into arrays that will be passed  */
-  /*   to CMOR. */
-  /* Read latitude, longitude, and pressure coordinate values into  */
-  /*   alats, alons, and plevs, respectively.  Also generate latitude and  */
-  /*   longitude bounds, and store in bnds_lat and bnds_lon, respectively. */
-  /*   Note that all variable names in this code can be freely chosen by */
-  /*   the user. */
-  
-  /*   The user must write the subroutine that fills the coordinate arrays  */
-  /*   and their bounds with actual data.  The following line is simply a */
-  /*   a place-holder for the user's code, which should replace it. */
-  
-  /*  *** possible user-written call *** */
-  
-
-  
-  m = CMOR_EXIT_ON_MAJOR;
-  j = CMOR_REPLACE;
-  i=1;
-  it=0;
-  printf("ok mode is:%i\n",m);
-  ierr = cmor_setup(NULL,&j,NULL,&m,NULL,&i);//,"  ipcc_test.LOG  ");
-
-  read_coords(&alats[0], &alons[0], &iplevs[0], &bnds_lat[0], &bnds_lon[0],lon,lat,lev);
-  int tmpmo[12];
-  printf("Test code: ok init cmor\n");
-  char c1[CMOR_MAX_STRING];
-  char c2[CMOR_MAX_STRING];
-  strcpy(c1,"GICCM1(2002)\0");
-  strcpy(c2,"Nat\0");
-
-
-  printf("yep: %s, %s\n",c1,c2);
-  ierr = cmor_dataset(
-       "Test",
-       "abrupt 4XCO2",
-       "GICC (Generic International Climate Center, Geneva, Switzerland)",
-       "GICCM1(2002): atmosphere:  GICAM3 (gicam_0_brnchT_itea_2, T63L32); ocean: MOM (mom3_ver_3.5.2, 2x3L15); sea ice: GISIM4; land: GILSM2.5",
-       "360_day",
-       1,
-       "Rusty Koder (koder at middle_earth.net)",
-       "Output from archive/giccm_03_std_2xCO2_2256.",
-       "Equilibrium reached after 30-year spin-up after which data were output starting with nominal date of January 2030",
-       "Model described by Koder and Tolkien (J. Geophys. Res., 2001, 576-591).  Also see http://www.GICC.su/giccm/doc/index.html  2XCO2 simulation described in Dorkey et al. '(Clim. Dyn., 2003, 323-357.)",
-       0,
-       0,
-       &tmpmo[0],&c1[0],&c2[0],
-       0,
-       0,"GICC","N/A",&bt);
-
-  printf("Test code: ok load cmor table(s)\n");
-  ierr = cmor_load_table("Tables/CMIP5_Omon",&tables[0]);
-  ierr = cmor_load_table("Tables/CMIP5_Amon",&tables[1]);
-  strcpy(id,"time");
-  strcpy(units,"months since 1980");
-  strcpy(interval,"1 month");
-  read_time(0, &Time[0], &bnds_time[0]);
-  read_time(1, &Time[1], &bnds_time[2]);
-  ierr = cmor_axis(&myaxes[0],id,units,ntimes,&Time[0],'d',&bnds_time[0],2,interval);
-  
-  strcpy(id,"latitude");
-  strcpy(units,"degrees_north");
-  strcpy(interval,"");
-  ierr = cmor_axis(&myaxes[1],id,units,lat,&alats,'d',&bnds_lat,2,interval);
-  strcpy(id,"longitude");
-  strcpy(units,"degrees_east");
-  ierr = cmor_axis(&myaxes[2],id,units,lon,&alons,'d',&bnds_lon,2,interval);
-  strcpy(id,"plevs");
-  strcpy(units,"hPa");
-  ierr = cmor_axis(&myaxes[3],id,units,lev,&iplevs,'i',NULL,0,interval);
-
-  zlevs[0]=0.1;
-  zlevs[1]= 0.3;
-  zlevs[2]=0.5;
-  zlevs[3]= 0.72;
-  zlevs[4] =  0.9;
-
-  zlev_bnds[0]=0.;
-  zlev_bnds[1]=.2;
-  zlev_bnds[2]=.42;
-  zlev_bnds[3]=.62;
-  zlev_bnds[4]=.8;
-  zlev_bnds[5]=1.;
-/*   p0 = 1.e5; */
-/*   a_coeff = { 0.1, 0.2, 0.3, 0.22, 0.1 }; */
-/*   b_coeff = { 0.0, 0.1, 0.2, 0.5, 0.8 }; */
-
-/*   a_coeff_bnds={0.,.15, .25, .25, .16, 0.}; */
-/*   b_coeff_bnds={0.,.05, .15, .35, .65, 1.}; */
-
-  ierr = cmor_axis(  &myaxes[4],"standard_hybrid_sigma","1",5,&zlevs,'d',&zlev_bnds,1,interval);
-
-  cmor_set_table(tables[0]);
-  /* ok here we declare a "regions" axis */
-  printf("Test code: defining axis region \n");
-  ierr = cmor_axis(  &myaxes[5],"basin","",4,&regions[0],'c',NULL,23,interval);
-
-  printf("Test code: Redefining time/lat from O table\n");
-
-  strcpy(id,"time");
-  strcpy(units,"months since 1980");
-  strcpy(interval,"1 month");
-  read_time(0, &Time[0], &bnds_time[0]);
-  read_time(1, &Time[1], &bnds_time[2]);
-  ierr = cmor_axis(&myaxes[7],id,units,ntimes,&Time[0],'d',&bnds_time[0],2,interval);
-
-  strcpy(id,"latitude");
-  strcpy(units,"degrees_north");
-  strcpy(interval,"");
-  ierr = cmor_axis(&myaxes[8],id,units,lat,&alats,'d',&bnds_lat,2,interval);
-
-  cmor_set_table(tables[1]);
-
-  dtmp = -999;
-  dtmp2=1.e-4;
-  myaxes2[0] = myaxes[0];
-  myaxes2[1] = myaxes[3];
-  myaxes2[2] = myaxes[1];
-  myaxes2[3] = myaxes[2];
-
-  printf("Test code: defining variables from table 1, %s\n",positive2d[0]);
-  ierr = cmor_variable(&myvars[0],entry2d[0],units2d[0],3,myaxes,'d',NULL,&dtmp2,&positive2d[0][0],varin2d[0],"no history","no future");
-  ierr = cmor_variable(&myvars[1],entry3d[2],units3d[2],4,myaxes2,'d',NULL,&dtmp2,NULL,varin3d[2],"no history","no future");
-  printf("Test code: definig tas\n");
-  ierr = cmor_variable(&myvars[5],"tas","K",3,myaxes,'d',NULL,&dtmp2,NULL,"TS","no history","no future");
-
-  myaxes2[1] = myaxes[4];
-  ierr = cmor_variable(&myvars[2],entry3d[0],units3d[0],4,myaxes2,'d',NULL,&dtmp2,NULL,varin3d[0],"no history","no future");
-
-
-  
-  ierr = cmor_zfactor(&myvars[3],myaxes2[1],"p0","Pa",0,NULL,'f',&p0,NULL);
-  ierr = cmor_zfactor(&myvars[3],myaxes2[1],"b","",1,&myaxes2[1],'d',&b_coeff,&b_coeff_bnds);
-  ierr = cmor_zfactor(&myvars[3],myaxes2[1],"a","",1,&myaxes2[1],'d',&a_coeff,&a_coeff_bnds);
-/*   printf("defining ap\n"); */
-/*   for(i=0;i<5;i++) {a_coeff[i]*=1.e3;printf("sending acoef: %i, %lf\n",i,a_coeff[i]);} */
-/*   for(i=0;i<6;i++) {a_coeff_bnds[i]*=1.e5;printf("sending acoef: %i, %lf\n",i,a_coeff_bnds[i]);} */
-/*   ierr = cmor_zfactor(&myvars[3],myaxes2[1],"ap","hPa",1,&myaxes2[1],'d',&a_coeff,&a_coeff_bnds); */
-  ierr = cmor_zfactor(&myvars[3],myaxes2[1],"ps","hPa",3,&myaxes[0],'d',NULL,NULL);
-
-  /* ok here we decalre a variable for region axis testing */
-  cmor_set_table(tables[0]);
-  myaxes2[0] = myaxes[7]; /* time */
-  myaxes2[1] = myaxes[5]; /* region */
-  myaxes2[2] = myaxes[8]; /* latitudes */
-  printf("Test code: ok we define hfogo positive: %s\n",positive2d[0]);
-  ierr = cmor_variable(&myvars[4],"htovgyre","W",3,myaxes2,'d',NULL,&dtmp2,&positive2d[0][0],varin2d[0],"no history","no future");
-
-  cmor_set_table(tables[1]);
-
-  for (i=0;i<ntimes;i++) {
-    printf("Test code: writing time: %i of %i\n",i+1,ntimes);
-    
-    printf("2d\n");
-    read_2d_input_files(i, varin2d[0], &data2d,lat,lon);
-    sprintf(id,"%i",i);
-/*     ierr = cmor_write(myvars[0],&data2d,'d',id,1,&time,&bnds_time,NULL); */
-/*     read_3d_input_files(i, varin3d[2], &data3d,lev,lat,lon); */
-/*     ierr = cmor_write(myvars[1],&data3d,'d',id,1,&time,&bnds_time,NULL); */
-/*     read_3d_input_files(i, varin3d[0], &data3d,5,lat,lon); */
-/*     ierr = cmor_write(myvars[2],&data3d,'d',id,1,&time,&bnds_time,NULL); */
-/*     read_2d_input_files(i, varin2d[3], &data2d,lat,lon); */
-/*     ierr = cmor_write(myvars[3],&data2d,'d',id,1,&time,&bnds_time,&myvars[2]); */
-    ierr = cmor_write(myvars[0],&data2d,'d',NULL,1,NULL,NULL,NULL);
-
-    printf("3d\n");
-    read_3d_input_files(i, varin3d[2], &data3d,lev,lat,lon);
-    ierr = cmor_write(myvars[1],&data3d,'d',NULL,1,NULL,NULL,NULL);
-    printf("writing tas\n");
-    read_2d_input_files(i, varin2d[1], &data2d,lat,lon);
-    ierr = cmor_write(myvars[5],&data2d,'d',NULL,1,NULL,NULL,NULL);
-
-    printf("3d zfactor\n");
-    read_3d_input_files(i, varin3d[0], &data3d,5,lat,lon);
-    ierr = cmor_write(myvars[2],&data3d,'d',NULL,1,NULL,NULL,NULL);
-
-    printf("writing ps\n");
-    read_2d_input_files(i, varin2d[3], &data2d,lat,lon);
-    ierr = cmor_write(myvars[3],&data2d,'d',NULL,1,NULL,NULL,&myvars[2]);
-
-    /* rereading hfls to fake hfogo */
-    printf("2d region\n");
-    read_2d_input_files(i, "htov", &data2d,lat,lon);
-    ierr = cmor_write(myvars[4],&data2d,'d',NULL,1,NULL,NULL,NULL);
-  }
-  ierr = cmor_close_variable(myvars[0],NULL,NULL);
-  ierr = cmor_close();
-  return 0;
-}
diff --git a/Test/ipcc_test_code.f90 b/Test/ipcc_test_code.f90
deleted file mode 100644
index a8a0d00..0000000
--- a/Test/ipcc_test_code.f90
+++ /dev/null
@@ -1,523 +0,0 @@
-!!$pgf90 -I/work/NetCDF/5.1/include -L/work/NetCDF/5.1/lib -l netcdf -L. -l cmor Test/test_dimensionless.f90 -IModules -o cmor_test
-!!$pgf90 -g -I/pcmdi/charles_work/NetCDF/include -L/pcmdi/charles_work/NetCDF/lib -lnetcdf -module Modules -IModules -L. -lcmor -I/pcmdi/charles_work/Unidata/include -L/pcmdi/charles_work/Unidata/lib -ludunits Test/test_dimensionless.f90 -o cmor_test
-
-MODULE local_subs
-
-  USE cmor_users_functions
-  PRIVATE
-  PUBLIC read_coords, read_time, read_3d_input_files, read_2d_input_files
-CONTAINS
-  
-  SUBROUTINE read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-
-    IMPLICIT NONE
-    
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alats
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alons
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: plevs
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lat
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lon
-    
-    INTEGER :: i
-    
-    DO i = 1, SIZE(alons)
-       alons(i) = (i-1)*360./SIZE(alons)
-       bnds_lon(1,i) = (i - 1.5)*360./SIZE(alons)
-       bnds_lon(2,i) = (i - 0.5)*360./SIZE(alons)
-    END DO
-    
-    DO i = 1, SIZE(alats)
-       alats(i) = (size(alats)+1-i)*10
-       bnds_lat(1,i) = (size(alats)+1-i)*10 + 5.
-       bnds_lat(2,i) = (size(alats)+1-i)*10 - 5.
-    END DO
-  
-    DO i = 1, SIZE(plevs)
-       plevs(i) = i*1.0e4
-    END DO
-      plevs = (/100000., 92500., 85000., 70000.,&
-       60000., 50000., 40000., 30000., 25000., 20000.,&
-       15000., 10000., 7000., 5000., 3000., 2000., 1000. /)
-    
-    RETURN
-  END SUBROUTINE read_coords
-
-  SUBROUTINE read_time(it, time, time_bnds)
-    
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    DOUBLE PRECISION, INTENT(OUT) :: time
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(2,1) :: time_bnds
-    
-    time = (it-0.5)*30.
-    time_bnds(1,1) = (it-1)*30.
-    time_bnds(2,1) = it*30.
-    
-    RETURN
-  END SUBROUTINE read_time
-  
-INCLUDE "reader_2D_3D.f90"
-
-END MODULE local_subs
-
-
-PROGRAM ipcc_test_code
-!
-!   Purpose:   To serve as a generic example of an application that
-!       uses the "Climate Model Output Rewriter" (CMOR)
-
-!    CMOR writes CF-compliant netCDF files.
-!    Its use is strongly encouraged by the IPCC and is intended for use 
-!       by those participating in many community-coordinated standard 
-!       climate model experiments (e.g., AMIP, CMIP, CFMIP, PMIP, APE,
-!       etc.)
-!
-!   Background information for this sample code:
-!
-!      Atmospheric standard output requested by IPCC are listed in 
-!   tables available on the web.  Monthly mean output is found in
-!   tables A1a and A1c.  This sample code processes only two 3-d 
-!   variables listed in table A1c ("monthly mean atmosphere 3-D data" 
-!   and only four 2-d variables listed in table A1a ("monthly mean 
-!   atmosphere + land surface 2-D (latitude, longitude) data").  The 
-!   extension to many more fields is trivial.
-!
-!      For this example, the user must fill in the sections of code that 
-!   extract the 3-d and 2-d fields from his monthly mean "history" 
-!   files (which usually contain many variables but only a single time 
-!   slice).  The CMOR code will write each field in a separate file, but 
-!   many monthly mean time-samples will be stored together.  These 
-!   constraints partially determine the structure of the code.
-!
-!
-!   Record of revisions:
-
-!       Date        Programmer(s)           Description of change
-!       ====        ==========              =====================
-!      10/22/03     Rusty Koder              Original code
-!       1/28/04     Les R. Koder             Revised to be consistent
-!                                            with evolving code design
-
-! include module that contains the user-accessible cmor functions.
-  USE cmor_users_functions
-  USE local_subs
-
-  IMPLICIT NONE
-
-  !   dimension parameters:
-  ! ---------------------------------
-  INTEGER, PARAMETER :: ntimes = 2    ! number of time samples to process
-  INTEGER, PARAMETER :: lon = 4       ! number of longitude grid cells  
-  INTEGER, PARAMETER :: lat = 3       ! number of latitude grid cells
-  INTEGER, PARAMETER :: lev = 5       ! number of standard pressure levels
-  INTEGER, PARAMETER :: lev2 = 17       ! number of standard pressure levels
-  INTEGER, PARAMETER :: n2d = 4       ! number of IPCC Table A1a fields to be
-                                      !     output.
-  INTEGER, PARAMETER :: n3d = 3       ! number of IPCC Table A1c fields to 
-                                      !     be output.  
-
-  !   Tables associating the user's variables with IPCC standard output 
-  !   variables.  The user may choose to make this association in a 
-  !   different way (e.g., by defining values of pointers that allow him 
-  !   to directly retrieve data from a data record containing many 
-  !   different variables), but in some way the user will need to map his 
-  !   model output onto the Tables specifying the MIP standard output.
-
-  ! ----------------------------------
-
-                                ! My variable names for IPCC Table A1c fields
-  CHARACTER (LEN=5), DIMENSION(n3d) :: &
-                                 varin3d=(/'CLOUD', 'U    ', 'T    '/)
-
-                                ! Units appropriate to my data
-  CHARACTER (LEN=5), DIMENSION(n3d) :: &
-                                  units3d=(/ '%    ', 'm s-1',   'K    '  /)
-
-                     ! Corresponding IPCC Table A1c entry (variable name) 
-  CHARACTER (LEN=2), DIMENSION(n3d) :: entry3d = (/ 'cl', 'ua', 'ta' /)
-
-                                ! My variable names for IPCC Table A1a fields
-  CHARACTER (LEN=8), DIMENSION(n2d) :: &
-                  varin2d=(/ 'LATENT  ', 'TSURF   ', 'SOIL_WET', 'PSURF   ' /)
-
-                                ! Units appropriate to my data
-   CHARACTER (LEN=6), DIMENSION(n2d) :: &
-                          units2d=(/ 'W m-2 ', 'K     ', 'kg m-2', 'Pa    ' /)
-
-   CHARACTER (LEN=4), DIMENSION(n2d) :: &
-                      positive2d= (/  'down',  '    ', '    ', '    '  /)
-
-                     ! Corresponding IPCC Table A1a entry (variable name) 
-  CHARACTER (LEN=5), DIMENSION(n2d) :: &
-                        entry2d = (/ 'hfls ', 'tas  ', 'mrsos', 'ps   ' /)
-
-!  uninitialized variables used in communicating with CMOR:
-!  ---------------------------------------------------------
-
-  INTEGER :: error_flag
-  INTEGER :: znondim_id, zfactor_id
-  INTEGER, DIMENSION(n2d) :: var2d_ids
-  INTEGER, DIMENSION(n3d) :: var3d_ids
-  REAL, DIMENSION(lon,lat) :: data2d
-  REAL, DIMENSION(lon,lat,lev2) :: data3d
-  DOUBLE PRECISION, DIMENSION(lat) :: alats
-  DOUBLE PRECISION, DIMENSION(lon) :: alons
-  DOUBLE PRECISION, DIMENSION(lev2) :: plevs
-  DOUBLE PRECISION, DIMENSION(1) :: time
-  DOUBLE PRECISION, DIMENSION(2,1):: bnds_time
-  DOUBLE PRECISION, DIMENSION(2,lat) :: bnds_lat
-  DOUBLE PRECISION, DIMENSION(2,lon) :: bnds_lon
-  DOUBLE PRECISION, DIMENSION(lev) :: zlevs
-  DOUBLE PRECISION, DIMENSION(lev+1) :: zlev_bnds
-  REAL, DIMENSION(lev) :: a_coeff
-  REAL, DIMENSION(lev) :: b_coeff
-  REAL :: p0
-  REAL, DIMENSION(lev+1) :: a_coeff_bnds
-  REAL, DIMENSION(lev+1) :: b_coeff_bnds
-  INTEGER :: ilon, ilat, ipres, ilev, itim, itim2, ilon2,ilat2
-  DOUBLE PRECISION bt
-
-  character(256)::  outpath,mycal
-  
-  !  Other variables:
-  !  ---------------------
-  
-  INTEGER :: it, m  
-  bt=0.
-  ! ================================
-  !  Execution begins here:
-  ! ================================
-  
-  ! Read coordinate information from model into arrays that will be passed 
-  !   to CMOR.
-  ! Read latitude, longitude, and pressure coordinate values into 
-  !   alats, alons, and plevs, respectively.  Also generate latitude and 
-  !   longitude bounds, and store in bnds_lat and bnds_lon, respectively.
-  !   Note that all variable names in this code can be freely chosen by
-  !   the user.
-
-  !   The user must write the subroutine that fills the coordinate arrays 
-  !   and their bounds with actual data.  The following line is simply a
-  !   a place-holder for the user's code, which should replace it.
-  
-  !  *** possible user-written call ***
-  
-  call read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-  
-  ! Specify path where tables can be found and indicate that existing 
-  !    netCDF files should not be overwritten.
-  
-  error_flag = cmor_setup(inpath='Test', netcdf_file_action='replace')
-  
-  ! Define dataset as output from the GICC model (first member of an
-  !   ensemble of simulations) run under IPCC 2xCO2 equilibrium
-  !   experiment conditions, and provide information to be included as 
-  !   attributes in all CF-netCDF files written as part of this dataset.
-
-  mycal = '360_day'
-
-  error_flag = cmor_dataset(                                   &
-       outpath='Test',                                         &
-       experiment_id='abrupt 4XCO2',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       'Geneva, Switzerland)',                                 &
-       source='GICCM1 (2002): ' //                             &
-       'atmosphere:  GICAM3 (gicam_0_brnchT_itea_2, T63L32); '// &
-       'ocean: MOM (mom3_ver_3.5.2, 2x3L15); '             //  &
-       'sea ice: GISIM4; land: GILSM2.5',                      &
-       calendar=mycal,                                      &
-       realization=1,                                          &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       institute_id = 'PCMDI', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also '        //   &
-       'see http://www.GICC.su/giccm/doc/index.html '     //   &
-       ' 2XCO2 simulation described in Dorkey et al. '    //   &
-       '(Clim. Dyn., 2003, 323-357.)',&
-       model_id='GICCM1',forcing='TO',contact="Barry Bonds",&
-       parent_experiment_id="N/A",branch_time=bt)
-  
-  
-  !  Define all axes that will be needed
-
-  ilat = cmor_axis(  &
-       table='Tables/CMIP5_Amon',    &
-       table_entry='latitude',       &
-       units='degrees_north',        &  
-       length=lat,                   &
-       coord_vals=alats,             & 
-       cell_bounds=bnds_lat)        
-      
-  ilon2 = cmor_axis(  &
-       table='Tables/CMIP5_Lmon',    &
-       table_entry='longitude',      &
-       length=lon,                   &
-       units='degrees_east',         &
-       coord_vals=alons,             &
-       cell_bounds=bnds_lon)      
-        
-  ilat2 = cmor_axis(  &
-       table='Tables/CMIP5_Lmon',    &
-       table_entry='latitude',       &
-       units='degrees_north',        &  
-       length=lat,                   &
-       coord_vals=alats,             & 
-       cell_bounds=bnds_lat)        
-      
-  ilon = cmor_axis(  &
-       table='Tables/CMIP5_Amon',    &
-       table_entry='longitude',      &
-       length=lon,                   &
-       units='degrees_east',         &
-       coord_vals=alons,             &
-       cell_bounds=bnds_lon)      
-        
-  ipres = cmor_axis(  &
-       table='Tables/CMIP5_Amon',    &
-       table_entry='plevs',       &
-       units='Pa',                   &
-       length=lev2,                   &
-       coord_vals=plevs)
-
-  !   note that the time axis is defined next, but the time coordinate 
-  !   values and bounds will be passed to cmor through function 
-  !   cmor_write (later, below).
-
-  itim = cmor_axis(  &
-       table='Tables/CMIP5_Amon',    &
-       table_entry='time',           &
-       units='days since 2030-1-1',  &
-       length=ntimes,                &
-       interval='20 minutes')
-  itim2 = cmor_axis(  &
-       table='Tables/CMIP5_Lmon',    &
-       table_entry='time',           &
-       units='days since 2030-1-1',  &
-       length=ntimes,                &
-       interval='20 minutes')
-  
-  !  define model eta levels (although these must be provided, they will
-  !    actually be replaced by a+b before writing the netCDF file)
-  zlevs = (/ 0.1, 0.3, 0.55, 0.7, 0.9 /)
-  zlev_bnds=(/ 0.,.2, .42, .62, .8, 1. /)
-
-  ilev = cmor_axis(  &
-       table='Tables/CMIP5_Amon',    &
-       table_entry='standard_hybrid_sigma',       &
-       units='1', &
-       length=lev,                   &
-       coord_vals=zlevs,             &
-       cell_bounds=zlev_bnds)
-
-  !   define z-factors needed to transform from model level to pressure
-  p0 = 1.e5
-  a_coeff = (/ 0.1, 0.2, 0.3, 0.22, 0.1 /)
-  b_coeff = (/ 0.0, 0.1, 0.2, 0.5, 0.8 /)
-
-  a_coeff_bnds=(/0.,.15, .25, .25, .16, 0./)
-  b_coeff_bnds=(/0.,.05, .15, .35, .65, 1./)
-
-  error_flag = cmor_zfactor(  &
-       zaxis_id=ilev,                      &
-       zfactor_name='p0',                  &
-       units='Pa',                         &
-       zfactor_values = p0)
-
-  error_flag = cmor_zfactor(  &
-       zaxis_id=ilev,                       & 
-       zfactor_name='b',                    &
-       axis_ids= (/ ilev /),                &
-       zfactor_values = b_coeff,            &
-       zfactor_bounds = b_coeff_bnds  )
-
-  error_flag = cmor_zfactor(  &
-       zaxis_id=ilev,                       &
-       zfactor_name='a',                    &
-       axis_ids= (/ ilev /),                &
-       zfactor_values = a_coeff,            &
-       zfactor_bounds = a_coeff_bnds )
-
-  zfactor_id = cmor_zfactor(  &
-       zaxis_id=ilev,                         &
-       zfactor_name='ps',                     &
-       axis_ids=(/ ilon, ilat, itim /),       &
-       units='Pa' )
-
-  !  Define the only field to be written that is a function of model level
-  !    (appearing in IPCC table A1c)
-
-  var3d_ids(1) = cmor_variable(    &
-       table='Tables/CMIP5_Amon',  &
-       table_entry=entry3d(1),     &
-       units=units3d(1),           &
-       axis_ids=(/ ilon, ilat, ilev, itim /),  &
-       missing_value=1.0e28, &
-       original_name=varin3d(1))
-  
-  !  Define variables appearing in IPCC table A1c that are a function of pressure
-  !         (3-d variables)
-  
-  DO m=2,n3d
-     var3d_ids(m) = cmor_variable(    &
-          table='Tables/CMIP5_Amon',  &
-          table_entry=entry3d(m),     &
-          units=units3d(m),           &
-          axis_ids=(/ ilon, ilat, ipres, itim /), &
-          missing_value=1.0e28,       &
-          original_name=varin3d(m))
-  ENDDO
-  
-
-  !  Define variables appearing in IPCC table A1a (2-d variables)
-  
-  DO m=1,n2d
-     if (m.ne.3) then
-     var2d_ids(m) = cmor_variable(    &
-          table='Tables/CMIP5_Amon',      &
-          table_entry=entry2d(m),     & 
-          units=units2d(m),           & 
-          axis_ids=(/ ilon, ilat, itim /), &
-          missing_value=1.0e28,       &
-          positive=positive2d(m),     &
-          original_name=varin2d(m))   
-  else
-     var2d_ids(m) = cmor_variable(    &
-          table='Tables/CMIP5_Lmon',      &
-          table_entry=entry2d(m),     & 
-          units=units2d(m),           & 
-          axis_ids=(/ ilon2, ilat2, itim2 /), &
-          missing_value=1.0e28,       &
-          positive=positive2d(m),     &
-          original_name=varin2d(m)) 
-  endif
-  ENDDO
-
-  PRINT*, ' '
-  PRINT*, 'completed everything up to writing output fields '
-  PRINT*, ' '
-
-  !  Loop through history files (each containing several different fields, 
-  !       but only a single month of data, averaged over the month).  Then 
-  !       extract fields of interest and write these to netCDF files (with 
-  !       one field per file, but all months included in the loop).
-  
-  time_loop: DO it=1, ntimes
-     
-     ! In the following loops over the 3d and 2d fields, the user-written    
-     ! subroutines (read_3d_input_files and read_2d_input_files) retrieve 
-     ! the requested IPCC table A1c and table A1a fields and store them in 
-     ! data3d and data2d, respectively.  In addition a user-written code 
-     ! (read_time) retrieves the time and time-bounds associated with the 
-     ! time sample (in units of 'days since 1970-1-1', consistent with the 
-     ! axis definitions above).  The bounds are set to the beginning and 
-     ! the end of the month retrieved, indicating the averaging period.
-     
-     ! The user must write a code to obtain the times and time-bounds for
-     !   the time slice.  The following line is simply a place-holder for
-     !   the user's code, which should replace it.
-     
-    call read_time(it, time(1), bnds_time)
-
-    call read_3d_input_files(it, varin3d(1), data3d)
-
-    error_flag = cmor_write(                                  &
-         var_id        = var3d_ids(1),                        &
-         data          = data3d,                              &
-         ntimes_passed = 1,                                   &
-         time_vals     = time,                                &
-         time_bnds     = bnds_time   )
-
-    call read_2d_input_files(it, varin2d(4), data2d)                  
-
-    error_flag = cmor_write(                                  &
-         var_id        = zfactor_id,                          &
-         data          = data2d,                              &
-         ntimes_passed = 1,                                   &
-         time_vals     = time,                                &
-         time_bnds     = bnds_time,                           &
-         store_with    = var3d_ids(1) )
-
-    ! Cycle through the 3-d fields (stored on pressure levels), 
-    ! and retrieve the requested variable and append each to the 
-    ! appropriate netCDF file.
-
-    DO m=2,n3d
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-
-        call read_3d_input_files(it, varin3d(m), data3d)
-       
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-        call cmor_create_output_path(var3d_ids(m),outpath)
-        print*, 'Ok we will dump that at: ',outpath
-        error_flag = cmor_write(                                  &
-             var_id        = var3d_ids(m),                        &
-             data          = data3d,                              &
-             ntimes_passed = 1,                                   &
-             time_vals     = time,                                &
-             time_bnds     = bnds_time  )
-        
-        IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) ' Error encountered writing IPCC Table A1c ' &
-                // 'field ', entry3d(m), ', which I call ', varin3d(m)
-           write(*,*) ' Was processing time sample: ', time
-                      
-        END IF
-
-     END DO
-     
-     ! Cycle through the 2-d fields, retrieve the requested variable and 
-     ! append each to the appropriate netCDF file.
-     
-     DO m=1,n2d
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-        
-        call read_2d_input_files(it, varin2d(m), data2d)                  
-
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-
-        error_flag = cmor_write(                                  &
-             var_id        = var2d_ids(m),                        &
-             data          = data2d,                              &
-             ntimes_passed = 1,                                   &
-             time_vals     = time,                                &
-             time_bnds     = bnds_time  )
-        
-       IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) ' Error encountered writing IPCC Table A1a ' &
-                // 'field ', entry2d(m), ', which I call ', varin2d(m)
-           write(*,*) ' Was processing time sample: ', time 
-                      
-        END IF
-        
-     END DO
-     
-  END DO time_loop
-  
-  !   Close all files opened by CMOR.
-  
-  error_flag = cmor_close()  
-
-  print*, ' '
-  print*, '******************************'
-  print*, ' '
-  print*, 'ipcc_test_code executed to completion '   
-  print*, ' '
-  print*, '******************************'
-  
-END PROGRAM ipcc_test_code
-
diff --git a/Test/jamie_hybrid_height.py b/Test/jamie_hybrid_height.py
deleted file mode 100644
index 791f9df..0000000
--- a/Test/jamie_hybrid_height.py
+++ /dev/null
@@ -1,68 +0,0 @@
-#!/usr/bin/env python
-
-import cmor
-import numpy
-
-def main():
-
-    cmor.setup(inpath='Tables',
-               netcdf_file_action = cmor.CMOR_REPLACE)
-    cmor.dataset('pre-industrial control', 'mohc', 'HadGEM2: source',
-                 '360_day',
-                 institute_id = 'ukmo',
-                 model_id = 'HadGEM2',
-                 history = 'some global history',
-                 forcing = 'N/A',
-                 parent_experiment_id = 'N/A',
-                 branch_time = 0.,
-                 contact = 'bob')
- 
-    table = 'CMIP5_6hrLev'
-    cmor.load_table(table)
-    axes = [ {'table_entry': 'time1',
-              'units': 'days since 2000-01-01 00:00:00',
-              },
-             {'table_entry': 'latitude',
-              'units': 'degrees_north',
-              'coord_vals': [0],
-              'cell_bounds': [-1, 1]},             
-             {'table_entry': 'longitude',
-              'units': 'degrees_east',
-              'coord_vals': [90],
-              'cell_bounds': [89, 91]},
-             {'table_entry': 'hybrid_height',
-              'coord_vals': [0, 1],
-              'cell_bounds': [[0., 0.5], [0.5, 1.]],
-              'units': 'm',
-              },
-             ]
-
-    values = numpy.array([0.,0.], numpy.float32)
-    numpy.reshape(values, (2,1,1,1))
-    axis_ids = list()
-    for axis in axes:
-        axis_id = cmor.axis(**axis)
-        axis_ids.append(axis_id)
-
-    print 'cmor.axis calls complete'
-
-    cmor.zfactor(axis_ids[3], 'b', '', axis_ids[3:4], 'd', [0., 0.5], [[0., 0.25], [0.25, 1.]])
-    cmor.zfactor(axis_ids[3], 'orog', 'm', axis_ids[1:3], 'd', [[0.]]) 
-    print 'cmor.zfactor calls complete'
-    varid = cmor.variable('ua',
-                          'm s-1',
-                          axis_ids,
-                          missing_value = -99
-                          )
-
-    print 'cmor.variable call complete'
-    
-    cmor.write(varid, values, time_vals = [6.0])
-
-    print 'cmor.write call complete'
-
-    cmor.close()
-    
-if __name__ == '__main__':
-
-    main()
diff --git a/Test/jamie_positive.py b/Test/jamie_positive.py
deleted file mode 100644
index 01b0a73..0000000
--- a/Test/jamie_positive.py
+++ /dev/null
@@ -1,55 +0,0 @@
-#!/usr/bin/env python
-import cmor
-import numpy
-
-def main():
-    
-    cmor.setup(inpath='Tables',
-               netcdf_file_action = cmor.CMOR_REPLACE_3)
-    cmor.dataset('pre-industrial control', 'ukmo', 'HadCM3', '360_day',
-                 institute_id = 'ukmo',
-                 model_id = 'HadCM3',
-                 history = 'some global history',
-                 forcing = 'N/A',
-                 parent_experiment_id = 'N/A',
-                 branch_time = 0.,
-                 contact = 'bob')
- 
-    table = 'CMIP5_Amon'
-    cmor.load_table(table)
-    axes = [ {'table_entry': 'time',
-              'units': 'days since 2000-01-01 00:00:00',
-              },
-             {'table_entry': 'latitude',
-              'units': 'degrees_north',
-              'coord_vals': [0],
-              'cell_bounds': [-1, 1]},             
-             {'table_entry': 'longitude',
-              'units': 'degrees_east',
-              'coord_vals': [90],
-              'cell_bounds': [89, 91]},
-             ]
-
-    values = numpy.array([1.], numpy.float32)+200
-    axis_ids = list()
-    for axis in axes:
-        axis_id = cmor.axis(**axis)
-        axis_ids.append(axis_id)
-
-    for var, units, positive in (('ts', 'K', ''),
-                                 ('rsut', 'W m-2', 'up'),
-                                 ('rlut', 'W m-2', 'down'),):
-        varid = cmor.variable(var,
-                              units,
-                              axis_ids,
-                              history = 'variable history',
-                              missing_value = -99,
-                              positive = positive
-                              )
-        cmor.write(varid, values, time_vals = [15], time_bnds = [ [0,30] ])
-
-    cmor.close()
-    
-if __name__ == '__main__':
-
-    main()
diff --git a/Test/karls_test.f90 b/Test/karls_test.f90
deleted file mode 100644
index 6208bf2..0000000
--- a/Test/karls_test.f90
+++ /dev/null
@@ -1,563 +0,0 @@
-!!$pgf90 -I/work/NetCDF/5.1/include -L/work/NetCDF/5.1/lib -l netcdf -L. -l cmor Test/test_dimensionless.f90 -IModules -o cmor_test
-!!$pgf90 -g -I/pcmdi/charles_work/NetCDF/include -L/pcmdi/charles_work/NetCDF/lib -lnetcdf -module Modules -IModules -L. -lcmor -I/pcmdi/charles_work/Unidata/include -L/pcmdi/charles_work/Unidata/lib -ludunits Test/test_dimensionless.f90 -o cmor_test
-
-MODULE local_subs
-
-  USE cmor_users_functions
-  PRIVATE
-  PUBLIC read_coords, read_time, read_3d_input_files, read_2d_input_files
-CONTAINS
-  
-  SUBROUTINE read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-
-    IMPLICIT NONE
-    
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alats
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alons
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: plevs
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lat
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lon
-    
-    INTEGER :: i, ii
-    
-    ii = 0
-    DO i = 1, SIZE(alons)
-       ii = ii+1
-       alons(i) = (ii-1)*360./SIZE(alons)
-       bnds_lon(1,i) = (ii - 1.5)*360./SIZE(alons)
-       bnds_lon(2,i) = (ii - 0.5)*360./SIZE(alons)
-!!$       alons(size(alons)+1-i) = (ii-1)*360./SIZE(alons)
-!!$       bnds_lon(1,size(alons)+1-i) = (ii - 1.5)*360./SIZE(alons)
-!!$       bnds_lon(2,size(alons)+1-i) = (ii - 0.5)*360./SIZE(alons)
-!!$       alons(i) = (i-1)*360./SIZE(alons)
-!!$       bnds_lon(1,i) = (i - 1.5)*360./SIZE(alons)
-!!$        bnds_lon(2,i) = (i - 0.5)*360./SIZE(alons)
-    END DO
-    
-    DO i = 1, SIZE(alats)
-!!$       alats(i) = i*10
-!!$       bnds_lat(1,i) = i*10. - 5.
-!!$       bnds_lat(2,i) = i*10. + 5.
-       alats(i) = (size(alats)+1-i)*10
-       bnds_lat(1,i) = (size(alats)+1-i)*10 + 5.
-       bnds_lat(2,i) = (size(alats)+1-i)*10 - 5.
-    END DO
-  
-    plevs = (/100000., 92500., 85000., 70000.,&
-       60000., 50000., 40000., 30000., 25000., 20000.,&
-       15000., 10000., 7000., 5000., 3000., 2000., 1000. /)
-    RETURN
-  END SUBROUTINE read_coords
-
-  SUBROUTINE read_time(it, time, time_bnds)
-    
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    DOUBLE PRECISION, INTENT(OUT) :: time
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(2,1) :: time_bnds
-    
-    time = (it-0.5)*30.
-    time_bnds(1,1) = (it-1)*30.
-    time_bnds(2,1) = it*30.
-    
-    RETURN
-  END SUBROUTINE read_time
-  
-INCLUDE "reader_2D_3D.f90"
-
-END MODULE local_subs
-
-
-PROGRAM karls_test
-!
-!   Purpose:   To serve as a generic example of an application that
-!       uses the "Climate Model Output Rewriter" (CMOR)
-
-!    CMOR writes CF-compliant netCDF files.
-!    Its use is strongly encouraged by the IPCC and is intended for use 
-!       by those participating in many community-coordinated standard 
-!       climate model experiments (e.g., AMIP, CMIP, CFMIP, PMIP, APE,
-!       etc.)
-!
-!   Background information for this sample code:
-!
-!      Atmospheric standard output requested by IPCC are listed in 
-!   tables available on the web.  Monthly mean output is found in
-!   tables A1a and A1c.  This sample code processes only two 3-d 
-!   variables listed in table A1c ("monthly mean atmosphere 3-D data" 
-!   and only four 2-d variables listed in table A1a ("monthly mean 
-!   atmosphere + land surface 2-D (latitude, longitude) data").  The 
-!   extension to many more fields is trivial.
-!
-!      For this example, the user must fill in the sections of code that 
-!   extract the 3-d and 2-d fields from his monthly mean "history" 
-!   files (which usually contain many variables but only a single time 
-!   slice).  The CMOR code will write each field in a separate file, but 
-!   many monthly mean time-samples will be stored together.  These 
-!   constraints partially determine the structure of the code.
-!
-!
-!   Record of revisions:
-
-!       Date        Programmer(s)           Description of change
-!       ====        ==========              =====================
-!      10/22/03     Rusty Koder              Original code
-!       1/28/04     Les R. Koder             Revised to be consistent
-!                                            with evolving code design
-
-! include module that contains the user-accessible cmor functions.
-  USE cmor_users_functions
-  USE local_subs
-
-  IMPLICIT NONE
-
-  !   dimension parameters:
-  ! ---------------------------------
-  INTEGER, PARAMETER :: ntimes = 2    ! number of time samples to process
-  INTEGER, PARAMETER :: lon = 4       ! number of longitude grid cells  
-  INTEGER, PARAMETER :: lat = 3       ! number of latitude grid cells
-  INTEGER, PARAMETER :: lev2 = 17       ! number of standard pressure levels
-  INTEGER, PARAMETER :: lev = 5       ! number of standard pressure levels
-  INTEGER, PARAMETER :: n2d = 4       ! number of IPCC Table A1a fields to be
-                                      !     output.
-  INTEGER, PARAMETER :: n3d = 3       ! number of IPCC Table A1c fields to 
-                                      !     be output.  
-
-  !   Tables associating the user's variables with IPCC standard output 
-  !   variables.  The user may choose to make this association in a 
-  !   different way (e.g., by defining values of pointers that allow him 
-  !   to directly retrieve data from a data record containing many 
-  !   different variables), but in some way the user will need to map his 
-  !   model output onto the Tables specifying the MIP standard output.
-
-  ! ----------------------------------
-
-                                ! My variable names for IPCC Table A1c fields
-  CHARACTER (LEN=5), DIMENSION(n3d) :: &
-                                 varin3d=(/'CLOUD', 'U    ', 'T    '/)
-
-                                ! Units appropriate to my data
-  CHARACTER (LEN=5), DIMENSION(n3d) :: &
-                                  units3d=(/ '%    ', 'm s-1',   'K    '  /)
-
-                     ! Corresponding IPCC Table A1c entry (variable name) 
-  CHARACTER (LEN=2), DIMENSION(n3d) :: entry3d = (/ 'cl', 'ua', 'ta' /)
-
-                                ! My variable names for IPCC Table A1a fields
-  CHARACTER (LEN=8), DIMENSION(n2d) :: &
-                  varin2d=(/ 'LATENT  ', 'TSURF   ', 'SOIL_WET', 'PSURF   ' /)
-
-                                ! Units appropriate to my data
-   CHARACTER (LEN=6), DIMENSION(n2d) :: &
-                          units2d=(/ 'W m-2 ', 'K     ', 'kg m-2', 'Pa    ' /)
-
-   CHARACTER (LEN=4), DIMENSION(n2d) :: &
-                      positive2d= (/  'down',  '    ', '    ', '    '  /)
-
-                     ! Corresponding IPCC Table A1a entry (variable name) 
-  CHARACTER (LEN=5), DIMENSION(n2d) :: &
-                        entry2d = (/ 'hfls ', 'tas  ', 'mrsos', 'ps   ' /)
-
-!  uninitialized variables used in communicating with CMOR:
-!  ---------------------------------------------------------
-
-  INTEGER :: error_flag
-  INTEGER :: znondim_id, zfactor_id
-  INTEGER, DIMENSION(n2d) :: var2d_ids
-  INTEGER, DIMENSION(n3d) :: var3d_ids
-  REAL, DIMENSION(lon,lat) :: data2d
-  REAL, DIMENSION(lon,lat,lev2) :: data3d
-  DOUBLE PRECISION, DIMENSION(lat) :: alats
-  DOUBLE PRECISION, DIMENSION(lon) :: alons
-  DOUBLE PRECISION, DIMENSION(lev2) :: plevs
-  DOUBLE PRECISION, DIMENSION(1) :: time
-  DOUBLE PRECISION, DIMENSION(2,1):: bnds_time
-  DOUBLE PRECISION, DIMENSION(2,lat) :: bnds_lat
-  DOUBLE PRECISION, DIMENSION(2,lon) :: bnds_lon
-  DOUBLE PRECISION, DIMENSION(lev) :: zlevs
-  DOUBLE PRECISION, DIMENSION(lev+1) :: zlev_bnds
-  REAL, DIMENSION(lev) :: a_coeff
-  REAL, DIMENSION(lev) :: b_coeff
-  REAL :: p0
-  REAL, DIMENSION(lev+1) :: a_coeff_bnds
-  REAL, DIMENSION(lev+1) :: b_coeff_bnds
-  INTEGER :: ilon, ilat, ipres, ilev, itim,ilon2,ilat2,itim2
-
-  REAL, DIMENSION(lon,1,lat) :: dum3d
-  INTEGER :: iz
-
-  double precision ::  bt
-
-  !  Other variables:
-  !  ---------------------
-  
-  INTEGER :: it, m  
-  
-  bt=0.
-
-  ! ================================
-  !  Execution begins here:
-  ! ================================
-  
-  ! Read coordinate information from model into arrays that will be passed 
-  !   to CMOR.
-  ! Read latitude, longitude, and pressure coordinate values into 
-  !   alats, alons, and plevs, respectively.  Also generate latitude and 
-  !   longitude bounds, and store in bnds_lat and bnds_lon, respectively.
-  !   Note that all variable names in this code can be freely chosen by
-  !   the user.
-
-  !   The user must write the subroutine that fills the coordinate arrays 
-  !   and their bounds with actual data.  The following line is simply a
-  !   a place-holder for the user's code, which should replace it.
-  
-  !  *** possible user-written call ***
-  
-  call read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-  
-  ! Specify path where tables can be found and indicate that existing 
-  !    netCDF files should not be overwritten.
-  
-  error_flag = cmor_setup(inpath='Test', netcdf_file_action='replace')!,logfile='karls_test.LOG')
-  
-  ! Define dataset as output from the GICC model (first member of an
-  !   ensemble of simulations) run under IPCC 2xCO2 equilibrium
-  !   experiment conditions, and provide information to be included as 
-  !   attributes in all CF-netCDF files written as part of this dataset.
-
-  error_flag = cmor_dataset(                                   &
-       outpath='Test',                                         &
-       experiment_id='abrupt 4XCO2',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       'Geneva, Switzerland)',                                 &
-       source='GICCM1 (2002): ' //                             &
-       'atmosphere:  GICAM3 (gicam_0_brnchT_itea_2, T63L32); '// &
-       'ocean: MOM (mom3_ver_3.5.2, 2x3L15); '             //  &
-       'sea ice: GISIM4; land: GILSM2.5',                      &
-       calendar='360_day',                                      &
-       realization=1,                                          &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also '        //   &
-       'see http://www.GICC.su/giccm/doc/index.html '     //   &
-       ' 2XCO2 simulation described in Dorkey et al. '    //   &
-       '(Clim. Dyn., 2003, 323-357.)',&
-       model_id='GICCM1',forcing='TO',contact="Barry Bonds",&
-       parent_experiment_id="N/A",branch_time=bt,institute_id="PCMDI")
-  
-  !  Define all axes that will be needed
-
-  iz =  cmor_axis(  &
-       table='Tables/CMIP5_Amon',    &
-       table_entry='height2m',       &
-       units='m',                    &  
-       length=1,                     &
-       coord_vals=(/ 1.5 /) )        
-print*, 'iz = ', iz
-  
-  ilat = cmor_axis(  &
-       table='Tables/CMIP5_Amon',    &
-       table_entry='latitude',       &
-       units='degrees_north',        &  
-       length=lat,                   &
-       coord_vals=alats,             & 
-       cell_bounds=bnds_lat)        
-      
-  ilon = cmor_axis(  &
-       table='Tables/CMIP5_Amon',    &
-       table_entry='longitude',      &
-       length=lon,                   &
-       units='degrees_east',         &
-       coord_vals=alons,             &
-       cell_bounds=bnds_lon)      
-  ilat2 = cmor_axis(  &
-       table='Tables/CMIP5_Lmon',    &
-       table_entry='latitude',       &
-       units='degrees_north',        &  
-       length=lat,                   &
-       coord_vals=alats,             & 
-       cell_bounds=bnds_lat)        
-      
-  ilon2 = cmor_axis(  &
-       table='Tables/CMIP5_Lmon',    &
-       table_entry='longitude',      &
-       length=lon,                   &
-       units='degrees_east',         &
-       coord_vals=alons,             &
-       cell_bounds=bnds_lon)      
-        
-  print*, 'plevs:',plevs
-  ipres = cmor_axis(  &
-       table='Tables/CMIP5_Amon',    &
-       table_entry='plevs',       &
-       units='Pa',                   &
-       length=lev2,                   &
-       coord_vals=plevs)
-
-  !   note that the time axis is defined next, but the time coordinate 
-  !   values and bounds will be passed to cmor through function 
-  !   cmor_write (later, below).
-
-  itim = cmor_axis(  &
-       table='Tables/CMIP5_Amon',    &
-       table_entry='time',           &
-       units='days since 2030-1-1',  &
-       length=ntimes,                &
-       interval='1 month')
-  itim2 = cmor_axis(  &
-       table='Tables/CMIP5_Lmon',    &
-       table_entry='time',           &
-       units='days since 2030-1-1',  &
-       length=ntimes,                &
-       interval='1 month')
-  
-  !  define model eta levels (although these must be provided, they will
-  !    actually be replaced by a+b before writing the netCDF file)
-  zlevs = (/ 0.1, 0.3, 0.55, 0.7, 0.9 /)
-  zlev_bnds=(/ 0.,.2, .42, .62, .8, 1. /)
-
-  ilev = cmor_axis(  &
-       table='Tables/CMIP5_Amon',    &
-       table_entry='standard_hybrid_sigma',       &
-       length=lev,                   &
-       units = '1', &
-       coord_vals=zlevs,             &
-       cell_bounds=zlev_bnds)
-
-  !   define z-factors needed to transform from model level to pressure
-  p0 = 1.e5
-  a_coeff = (/ 0.1, 0.2, 0.3, 0.22, 0.1 /)
-  b_coeff = (/ 0.0, 0.1, 0.2, 0.5, 0.8 /)
-
-  a_coeff_bnds=(/0.,.15, .25, .25, .16, 0./)
-  b_coeff_bnds=(/0.,.05, .15, .35, .65, 1./)
-
-  error_flag = cmor_zfactor(  &
-       zaxis_id=ilev,                      &
-       zfactor_name='p0',                  &
-       units='Pa',                         &
-       zfactor_values = p0)
-
-  error_flag = cmor_zfactor(  &
-       zaxis_id=ilev,                       & 
-       zfactor_name='b',                    &
-       axis_ids= (/ ilev /),                &
-       zfactor_values = b_coeff,            &
-       zfactor_bounds = b_coeff_bnds  )
-
-  error_flag = cmor_zfactor(  &
-       zaxis_id=ilev,                       &
-       zfactor_name='a',                    &
-       axis_ids= (/ ilev /),                &
-       zfactor_values = a_coeff,            &
-       zfactor_bounds = a_coeff_bnds )
-
-  zfactor_id = cmor_zfactor(  &
-       zaxis_id=ilev,                         &
-       zfactor_name='ps',                     &
-       axis_ids=(/ ilon, ilat, itim /),       &
-       units='Pa' )
-
-  !  Define the only field to be written that is a function of model level
-  !    (appearing in IPCC table A1c)
-
-  var3d_ids(1) = cmor_variable(    &
-       table='Tables/CMIP5_Amon',  &
-       table_entry=entry3d(1),     &
-       units=units3d(1),           &
-       axis_ids=(/ ilon, ilat, ilev, itim /),  &
-       missing_value=1.0e28, &
-       original_name=varin3d(1))
-  
-  !  Define variables appearing in IPCC table A1c that are a function of pressure
-  !         (3-d variables)
-  
-  DO m=2,n3d
-     var3d_ids(m) = cmor_variable(    &
-          table='Tables/CMIP5_Amon',  &
-          table_entry=entry3d(m),     &
-          units=units3d(m),           &
-          axis_ids=(/ ilon, ilat, ipres, itim /), &
-          missing_value=1.0e28,       &
-          original_name=varin3d(m))
-     print*, 'got var3did:',var3d_ids(m),entry3d(m)
-  ENDDO
-  
-
-  !  Define variables appearing in IPCC table A1a (2-d variables)
-  
-  DO m=1,n2d
-     print*, 'Defining:',m,entry2d(m)
-     IF (m.eq.2) then
-!!$
-     var2d_ids(m) = cmor_variable(    &
-          table='Tables/CMIP5_Amon',  &
-          table_entry=entry2d(m),     & 
-          units=units2d(m),           & 
-          axis_ids=(/ ilon, iz, ilat, itim  /), &
-          missing_value=1.0e28,       &
-          positive=positive2d(m),     &
-          original_name=varin2d(m))   
-
-  else if (m.eq.3) then
-     var2d_ids(m) = cmor_variable(    &
-          table='Tables/CMIP5_Lmon',  &
-          table_entry=entry2d(m),     & 
-          units=units2d(m),           & 
-          axis_ids=(/ ilon2, ilat2, itim2 /), &
-          missing_value=1.0e28,       &
-          positive=positive2d(m),     &
-          original_name=varin2d(m))   
-  else
-     var2d_ids(m) = cmor_variable(    &
-          table='Tables/CMIP5_Amon',  &
-          table_entry=entry2d(m),     & 
-          units=units2d(m),           & 
-          axis_ids=(/ ilon, ilat, itim /), &
-          missing_value=1.0e28,       &
-          positive=positive2d(m),     &
-          original_name=varin2d(m))   
-  endif
-  ENDDO
-
-  PRINT*, ' '
-  PRINT*, 'completed everything up to writing output fields '
-  PRINT*, ' '
-
-  !  Loop through history files (each containing several different fields, 
-  !       but only a single month of data, averaged over the month).  Then 
-  !       extract fields of interest and write these to netCDF files (with 
-  !       one field per file, but all months included in the loop).
-  
-  time_loop: DO it=1, ntimes
-     
-     ! In the following loops over the 3d and 2d fields, the user-written    
-     ! subroutines (read_3d_input_files and read_2d_input_files) retrieve 
-     ! the requested IPCC table A1c and table A1a fields and store them in 
-     ! data3d and data2d, respectively.  In addition a user-written code 
-     ! (read_time) retrieves the time and time-bounds associated with the 
-     ! time sample (in units of 'days since 1970-1-1', consistent with the 
-     ! axis definitions above).  The bounds are set to the beginning and 
-     ! the end of the month retrieved, indicating the averaging period.
-     
-     ! The user must write a code to obtain the times and time-bounds for
-     !   the time slice.  The following line is simply a place-holder for
-     !   the user's code, which should replace it.
-     
-    call read_time(it, time(1), bnds_time)
-
-    call read_3d_input_files(it, varin3d(1), data3d)
-
-    print*, 'yep ',entry3d(1),shape(data3d)
-    error_flag = cmor_write(                                  &
-         var_id        = var3d_ids(1),                        &
-         data          = data3d,                              &
-         ntimes_passed = 1,                                   &
-         time_vals     = time,                                &
-         time_bnds     = bnds_time   )
-    print*, 'passed'
-    call read_2d_input_files(it, varin2d(4), data2d)                  
-
-    error_flag = cmor_write(                                  &
-         var_id        = zfactor_id,                          &
-         data          = data2d,                              &
-         ntimes_passed = 1,                                   &
-         time_vals     = time,                                &
-         time_bnds     = bnds_time,                           &
-         store_with    = var3d_ids(1) )
-
-    ! Cycle through the 3-d fields (stored on pressure levels), 
-    ! and retrieve the requested variable and append each to the 
-    ! appropriate netCDF file.
-
-    DO m=2,n3d
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-
-        call read_3d_input_files(it, varin3d(m), data3d)
-       
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-        print*, 'm,dsh:',m,shape(data3d),entry3d(m),' ',varin3d(m),var3d_ids(m)
-        error_flag = cmor_write(                                  &
-             var_id        = var3d_ids(m),                        &
-             data          = data3d,                              &
-             ntimes_passed = 1,                                   &
-             time_vals     = time,                                &
-             time_bnds     = bnds_time  )
-        print*, 'Done------------------------------------------------------------------'
-        
-        IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) ' Error encountered writing IPCC Table A1c ' &
-                // 'field ', entry3d(m), ', which I call ', varin3d(m)
-           write(*,*) ' Was processing time sample: ', time
-                      
-        END IF
-
-     END DO
-     
-     ! Cycle through the 2-d fields, retrieve the requested variable and 
-     ! append each to the appropriate netCDF file.
-     
-     DO m=1,n2d
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-        
-        call read_2d_input_files(it, varin2d(m), data2d)                  
-
-        IF (m == 2) then
-           dum3d(:,1,:) = data2d
-           error_flag = cmor_write(                                  &
-                var_id        = var2d_ids(m),                        &
-                data          = dum3d(:,1,:),                               &
-                ntimes_passed = 1,                                   &
-                time_vals     = time,                                &
-                time_bnds     = bnds_time  )
-
-        ELSE
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-
-        error_flag = cmor_write(                                  &
-             var_id        = var2d_ids(m),                        &
-             data          = data2d,                              &
-             ntimes_passed = 1,                                   &
-             time_vals     = time,                                &
-             time_bnds     = bnds_time  )
-       ENDIF
-        
-       IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) ' Error encountered writing IPCC Table A1a ' &
-                // 'field ', entry2d(m), ', which I call ', varin2d(m)
-           write(*,*) ' Was processing time sample: ', time 
-                      
-        END IF
-        
-     END DO
-     
-  END DO time_loop
-  
-  !   Close all files opened by CMOR.
-  
-  error_flag = cmor_close()  
-
-  print*, ' '
-  print*, '******************************'
-  print*, ' '
-  print*, 'ipcc_test_code executed to completion '   
-  print*, ' '
-  print*, '******************************'
-  
-END PROGRAM karls_test
-
diff --git a/Test/main_prog.f90 b/Test/main_prog.f90
deleted file mode 100644
index f2e1618..0000000
--- a/Test/main_prog.f90
+++ /dev/null
@@ -1,454 +0,0 @@
-!!$pgf90 -I/work/NetCDF/5.1/include -L/work/NetCDF/5.1/lib -l netcdf -L. -l cmor Test/main_prog.f90 -IModules -o cmor_test
-!!$pgf90 -g -I/pcmdi/charles_work/NetCDF//include -L/pcmdi/charles_work/NetCDF//lib -lnetcdf -module Modules -IModules -L. -lcmor Test/main_prog.f90 -o cmor_test
-
-MODULE local_subs
-
-  PRIVATE
-  PUBLIC read_coords, read_time, read_3d_input_files, read_2d_input_files
-CONTAINS
-  
-  SUBROUTINE read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-
-    IMPLICIT NONE
-    
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alats
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alons
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: plevs
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lat
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lon
-    
-    INTEGER :: i
-    
-    DO i = 1, SIZE(alons)
-       alons(i) = (i-1)*360./SIZE(alons)
-       bnds_lon(1,i) = (i - 1.5)*360./SIZE(alons)
-        bnds_lon(2,i) = (i - 0.5)*360./SIZE(alons)
-    END DO
-    
-    DO i = 1, SIZE(alats)
-       alats(i) = i*10
-       bnds_lat(1,i) = i*10. - 5.
-       bnds_lat(2,i) = i*10. + 5.
-    END DO
-  
-    DO i = 1, SIZE(plevs)
-       plevs(i) = i*1.0e4
-    END DO
-          plevs = (/100000., 92500., 85000., 70000.,&
-       60000., 50000., 40000., 30000., 25000., 20000.,&
-       15000., 10000., 7000., 5000., 3000., 2000., 1000. /)
-  
-
-    RETURN
-  END SUBROUTINE read_coords
-
-  SUBROUTINE read_time(it, time, time_bnds)
-    
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    DOUBLE PRECISION, INTENT(OUT) :: time
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(2) :: time_bnds
-    
-    time = (it-0.5)*30.
-    time_bnds(1) = (it-1)*30.
-    time_bnds(2) = it*30.
-    
-    RETURN
-  END SUBROUTINE read_time
-  
-INCLUDE "reader_2D_3D.f90"
-
-END MODULE local_subs
-
-
-PROGRAM mip_contribution
-!
-!   Purpose:   To serve as a generic example of an application that
-!       uses the "Climate Model Output Rewriter" (CMOR)
-
-!    CMOR writes CF-compliant netCDF files.
-!    Its use is required by many community-coordinated standard 
-!       climate model experiments (e.g., AMIP, CMIP, CFMIP, APE, and
-!       IPCC scenario runs)
-!
-!   Background information for this sample code:
-!
-!      Standard output requested by AMIP is listed in 6 different 
-!   tables.  This sample code processes only 2 variables listed in AMIP 
-!   Table 1a ("3-d" fields, containing monthly mean data that are a 
-!   function of longitude, latitude, pressure and time) and only 3 
-!   variables in AMIP Table 2 ("2-d" fields, containing monthly mean 
-!   data that are a function of longitude, latitude, and time).  The 
-!   extension to many more fields is trivial.
-!
-!      For this example, the user must fill in the sections of code that 
-!   extract the 3-d and 2-d fields from his monthly mean "history" 
-!   files (which usually contain many variables but only a single time 
-!   slice).  The CMOR code will write each field in a separate file, but 
-!   many monthly mean time-samples will be stored together.  These 
-!   constraints partially determine the structure of the code.
-!
-!   Record of revisions:
-
-!       Date        Programmer(s)           Description of change
-!       ====        ==========              =====================
-!      10/22/03     Rusty Koder              Original code
-!       1/28/04     Les R. Koder             Revised to be consistent
-!                                            with evolving code design
-
-! include module that contains the user-accessible cmor functions.
-  USE cmor_users_functions
-  USE local_subs
-
-  IMPLICIT NONE
-
-  !   dimension parameters:
-  ! ---------------------------------
-  INTEGER, PARAMETER :: ntimes = 2    ! number of time samples to process
-  INTEGER, PARAMETER :: lon = 4       ! number of longitude grid cells  
-  INTEGER, PARAMETER :: lat = 3       ! number of latitude grid cells
-  INTEGER, PARAMETER :: lev = 17       ! number of standard pressure levels
-  INTEGER, PARAMETER :: n2d = 3       ! number of AMIP Table 2 fields to be
-                                      !     output.
-  INTEGER, PARAMETER :: n3d = 2       ! number of AMIP Table 1a fields to 
-                                      !     be output.  
-
-  !   Tables associating the user's variables with AMIP standard output 
-  !   variables.  The user may choose to make this association in a 
-  !   different way (e.g., by defining values of pointers that allow him 
-  !   to directly retrieve data from a data record containing many 
-  !   different variables), but in some way the user will need to map his 
-  !   model output onto the Tables specifying the MIP standard output.
-
-  ! ----------------------------------
-
-                                ! My variable names for Table 1a fields
-  CHARACTER (LEN=2), DIMENSION(n3d) :: varin3d=(/ 'U', 'T'/)
-                                ! Units appropriate to my data
-  CHARACTER (LEN=5), DIMENSION(n3d) :: &
-                                  units3d=(/ 'm s-1',   'K    '  /)
-  CHARACTER (LEN=4), DIMENSION(n3d) ::  &
-                              positive3d= (/   '',       '' /)
-                     ! Corresponding AMIP Table 1a entry (variable name) 
-  CHARACTER (LEN=2), DIMENSION(n3d) :: entry3d = (/ 'ua', 'ta' /)
-
-                                ! My variable names for Table 2 fields
-  CHARACTER (LEN=8), DIMENSION(n2d) :: &
-                          varin2d=(/ 'LATENT  ', 'TSURF   ', 'SOIL_WET' /)
-                                ! Units appropriate to my data
-   CHARACTER (LEN=6), DIMENSION(n2d) :: &
-                          units2d=(/ 'W m-2 ', 'K     ', 'kg m-2' /)
-   CHARACTER (LEN=4), DIMENSION(n2d) :: &
-                      positive2d= (/  'down',  '    ',       '    ' /)
-                     ! Corresponding AMIP Table 2 entry (variable name) 
-  CHARACTER (LEN=5), DIMENSION(n2d) :: &
-                        entry2d = (/ 'hfls ', 'tas  ', 'mrsos' /)
-
-!  uninitialized variables used in communicating with CMOR:
-!  ---------------------------------------------------------
-
-  INTEGER :: error_flag
-  INTEGER, DIMENSION(3) :: axis2d_ids
-  INTEGER, DIMENSION(3) :: axis2d_ids2
-  INTEGER, DIMENSION(4) :: axis3d_ids
-  INTEGER, DIMENSION(n2d) :: var2d_ids
-  INTEGER, DIMENSION(n3d) :: var3d_ids
-  REAL, DIMENSION(lon,lat) :: data2d
-  REAL, DIMENSION(lon,lat,lev) :: data3d
-  DOUBLE PRECISION, DIMENSION(lat) :: alats
-  DOUBLE PRECISION, DIMENSION(lon) :: alons
-  DOUBLE PRECISION, DIMENSION(lev) :: plevs
-  DOUBLE PRECISION :: time,bt
-  DOUBLE PRECISION, DIMENSION(2):: bnds_time
-  DOUBLE PRECISION, DIMENSION(2,lat) :: bnds_lat
-  DOUBLE PRECISION, DIMENSION(2,lon) :: bnds_lon
-
-!!$  REAL, DIMENSION(lat*lon*lev) :: tmp3d
-!!$  REAL, DIMENSION(lat*lon) :: tmp2d
-
-  !  Other variables:
-  !  ---------------------
-  
-  INTEGER :: it, m
-  
-  bt=0.
-
-  ! ================================
-  !  Execution begins here:
-  ! ================================
-  
-  ! Read coordinate information from model into arrays that will be passed 
-  !   to CMOR.
-  ! Read latitude, longitude, and pressure coordinate values into 
-  !   alats, alons, and plevs, respectively.  Also generate latitude and 
-  !   longitude bounds, and store in bnds_lat and bnds_lon, respectively.
-  
-  !   The user must write the subroutine that fills the coordinate arrays 
-  !   and their bounds with actual data.  The following line is simply a
-  !   a place-holder for the user's code, which should replace it.
-  
-  !  *** possible user-written call ***	
-  
-  print*, 'calling read_coords '
-
-  call read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-
-  print*, 'returned from read_coords'
-  
-  ! Specify path where tables can be found, indicate that existing netCDF 
-  !    files should not be overwritten, and instruct CMOR to error exit on 
-  !    encountering errors of any severity.
-  
-  error_flag = cmor_setup(inpath='Test',   &
-       netcdf_file_action='replace',                                       &
-       set_verbosity=1,                                                    &
-       exit_control=1)
-  
-  ! Define dataset as output from the GICC model (first member of an
-  !   ensemble of simulations) runcmor_write under IPCC 2xCO2 equilibrium
-  !   experiment conditions, and provide information to be included as 
-  !   attributes in all CF-netCDF files written as part of this dataset.
-
-  print*, 'calling cmor_dataset'
-  error_flag = cmor_dataset(                                   &
-       outpath='Test',         &
-       experiment_id='abrupt 4XCO2',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       'Geneva, Switzerland)',                                 &
-       source='GICCM1  2002(giccm_0_brnchT_itea_2, T63L32)',    &
-       calendar='360_day',                                      &
-       realization=1,                                          &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also ' //          &
-       'see http://www.GICC.su/giccm/doc/index.html '  //      &
-       ' 2XCO2 simulation described in Dorkey et al. '//       &
-       '(Clim. Dyn., 2003, 323-357.)', model_id="GICCM1", &
-       forcing='TO',contact="Barry Bonds",institute_id="PCMDI",&
-       parent_experiment_id="N/A",branch_time=bt)
-  
-  print*, 'returned from cmor_dataset'
-
-  !  Define axes for 3-d fields
-
-  print*, 'defining 3-d axes'
-   axis2d_ids2(1) = cmor_axis(  &
-       table='Tables/CMIP5_Lmon',    &
-       table_entry='latitude',       &
-       units='degrees_north',        &  
-       length=lat,                   &
-       coord_vals=alats,             & 
-       cell_bounds=bnds_lat)              
-  axis2d_ids2(2) = cmor_axis(  &
-       table='Tables/CMIP5_Lmon',    &
-       table_entry='longitude',      &
-       length=lon,                   &
-       units='degrees_east',         &
-       coord_vals=alons,             &
-       cell_bounds=bnds_lon)              
-  axis2d_ids2(3) = cmor_axis(  &
-       table='Tables/CMIP5_Lmon',    &
-       table_entry='time',           &
-       units='days since 1979-1-1',  &
-       length=ntimes,                &
-       interval='1 month')
- 
-  axis3d_ids(2) = cmor_axis(  &
-       table='Tables/CMIP5_Amon',    &
-       table_entry='latitude',       &
-       units='degrees_north',        &  
-       length=lat,                   &
-       coord_vals=alats,             & 
-       cell_bounds=bnds_lat)              
-  axis3d_ids(1) = cmor_axis(  &
-       table='Tables/CMIP5_Amon',    &
-       table_entry='longitude',      &
-       length=lon,                   &
-       units='degrees_east',         &
-       coord_vals=alons,             &
-       cell_bounds=bnds_lon)              
-  axis3d_ids(3) = cmor_axis(  &
-       table='Tables/CMIP5_Amon',    &
-       table_entry='plevs',       &
-       units='Pa',                   &
-       length=lev,                   &
-       coord_vals=plevs)
-  !   note that the time axis is defined next, but the time coordinate 
-  !   values and bounds will be passed to cmor through function 
-  !   cmor_write (below).
-print*, 'before time '
-  axis3d_ids(4) = cmor_axis(  &
-       table='Tables/CMIP5_Amon',    &
-       table_entry='time',           &
-       units='days since 1979-1-1',  &
-       length=ntimes,                &
-       interval='1 month')
-  
-  print*, 'finished defining 3-d axes'
-
-  !  Define axes for 2-d fields
-  
-  print*, 'defining 2-d axes'
-
-  axis2d_ids(1) = axis3d_ids(1)          
-  axis2d_ids(2) = axis3d_ids(2)           
-  axis2d_ids(3) = axis3d_ids(4)
-  
-print*, 'finished defining 2-d axes'
-
-  !  Define variables found in AMIP table 1a (3-d variables)
-  
-  DO m=1,n3d
-     var3d_ids(m) = cmor_variable(    &   
-          table='Tables/CMIP5_Amon',  &
-          table_entry=entry3d(m),     &
-          units=units3d(m),           &
-          axis_ids=axis3d_ids,        &
-          missing_value=1.0e20,       &
-          positive=positive3d(m),     &
-          original_name=varin3d(m))
-  ENDDO
-  
-
-  !  Define variables found in AMIP table 2a (2-d variables)
-  
-  DO m=1,n2d
-     if (m.eq.3) then
-        var2d_ids(m) = cmor_variable(    &
-             table='Tables/CMIP5_Lmon',  & 
-             table_entry=entry2d(m),     & 
-!!$          file_suffix='1979-2001',    &
-             units=units2d(m),           & 
-             axis_ids=axis2d_ids2,       &
-             missing_value=1.0e20,       &
-             positive=positive2d(m),     &
-             original_name=varin2d(m))  
-     else 
-     var2d_ids(m) = cmor_variable(    &
-          table='Tables/CMIP5_Amon',  & 
-          table_entry=entry2d(m),     & 
-          units=units2d(m),           & 
-          axis_ids=axis2d_ids,        &
-          missing_value=1.0e20,       &
-          positive=positive2d(m),     &
-          original_name=varin2d(m))   
-  endif
-  ENDDO
-
-print*, 'completed everything up to writing output fields '
-  
-  !  Loop through history files (each containing several different fields, 
-  !       but only a single month of data, averaged over the month).  Then 
-  !       extract fields of interest and write these to netCDF files (with 
-  !       one field per file, but all months included in the loop).
-  
-  time_loop: DO it=1, ntimes
-     
-     ! In the following loops over the 3d and 2d fields, the user-written    
-     ! subroutines (read_3d_input_files and read_2d_input_files) retrieve 
-     ! the requested AMIP table 1a and table 2 fields and store them in 
-     ! data3d and data2d, respectively.  In addition a user-written code 
-     ! (read_time) retrieves the time and time-bounds associated with the 
-     ! time sample (in units of 'days since 1970-1-1', consistent with the 
-     ! axis definitions above).  The bounds are set to the beginning and 
-     ! the end of the month retrieved, indicating the averaging period.
-     
-     ! The user must write a code to obtain the times and time-bounds for
-     !   the time slice.  The following line is simply a place-holder for
-     !   the user's code, which should replace it.
-     
-    call read_time(it, time, bnds_time)
-     
-     ! Cycle through the 3-d fields, retrieve the requested variable and 
-     ! append each to the appropriate netCDF file.
-    
- 
-
-    DO m=1,n3d
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-
-        call read_3d_input_files(it, varin3d(m), data3d)
-
-       
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-        
-        error_flag = cmor_write(                                  &
-             var_id        = var3d_ids(m),                        &
-             data          = RESHAPE(data3d, (/ lat*lon*lev /)),  &
-             ntimes_passed = 1,                                   &
-             time_vals     = (/ time /),                          &
-             time_bnds     = RESHAPE(bnds_time, (/ 2,1 /)))
-        
-print*, 'after writing variable, ', var3d_ids(m)
-print*, '    error flag = ', error_flag
-
-        IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) ' Error encountered writing AMIP Table 1a ' &
-                // 'field ', entry3d(m), ', which I call ', varin3d(m)
-           write(*,*) ' Was processing time sample: ', time
-           
-!!$            error_flag = cmor_error_trace(device=0)
-           
-        END IF
-
-     END DO
-     
-     ! Cycle through the 2-d fields, retrieve the requested variable and 
-     ! append each to the appropriate netCDF file.
-     
-     DO m=1,n2d
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-        
-        call read_2d_input_files(it, varin2d(m), data2d)                  
-
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-
-        error_flag = cmor_write(                                  &
-             var_id        = var2d_ids(m),                        &
-             data          = RESHAPE(data2d, (/ lat*lon /)),      &
-             ntimes_passed = 1,                                   &
-             time_vals     = (/ time /),                          &
-             time_bnds     = RESHAPE(bnds_time, (/ 2,1 /)))
-        
-print*, 'after writing variable, ', var2d_ids(m)
-print*, '    error flag = ', error_flag
-       IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) ' Error encountered writing AMIP Table 2 ' &
-                // 'field ', entry2d(m), ', which I call ', varin2d(m)
-           write(*,*) ' Was processing time sample: ', time 
-           
-!!$            error_flag = cmor_error_trace(device=0)
-           
-        END IF
-        
-     END DO
-     
-  END DO time_loop
-  
-  !   Close all files opened by CMOR.
-  
-  error_flag = cmor_close()  
-
-print*, '******************************'
-print*, ' '
-print*, 'CMOR COMPLETED SUCCESSFULLY '   
-print*, ' '
-print*, '******************************'
-
-END PROGRAM mip_contribution
-
diff --git a/Test/mytest.f90 b/Test/mytest.f90
deleted file mode 100644
index b84ed26..0000000
--- a/Test/mytest.f90
+++ /dev/null
@@ -1,182 +0,0 @@
-program main
-
-  USE cmor_users_functions
-  implicit none
-
-  integer ncid
-
-  type dims
-     integer n
-     character(256) name
-     character(256) units
-     double precision, DIMENSION(:), pointer :: values
-     double precision, DIMENSION(:,:), pointer :: bounds     
-     type(dims), pointer :: next
-  end type dims
-  character(256) filein
-  type(dims), pointer :: mydims,current
-  integer ndim,i,j,ntot
-!  integer, allocatable, dimension(:):: arrayin
-  double precision, allocatable, dimension(:):: arrayin
-  integer, dimension(7):: dimlength = (/ (1,i=1,7) /)
-  integer, PARAMETER::verbosity = 2
-  integer ierr
-  integer, allocatable, dimension(:) :: myaxis
-  integer myvar
-
-  print*, 'hi enter test file case'
-  filein='Test/tas.asc'
-  read(5,'(A)') filein
-  open(unit=23,file=filein,form='formatted') 
-  call allocate_dims(23,mydims,ndim)
-  allocate(myaxis(ndim))
-  current=>mydims
-  ntot=1
-  do i =1,ndim
-     ntot=ntot*current%n
-     current=>current%next
-  enddo
-  call read_ascii(23,mydims, ndim,ntot,arrayin)
-  
-  
-!!$!! Ok here is the part where we define or variable/axis,etc... 
-!!$!! Assuming that Karl's code is ok...
-!!$
-  
-  print*,'CMOR SETUP'
-!!$  
-  ierr = cmor_setup(inpath='Test',   &
-       netcdf_file_action='replace',                                       &
-       set_verbosity=1,                                                    &
-       exit_control=1)
-    
-  print*,'CMOR DATASET'
-  ierr = cmor_dataset(                                   &
-       outpath='Test',         &
-       experiment_id='abrupt 4XCO2',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       ' Geneva, Switzerland)',                                &
-       source='GICCM  2002(giccm_0_brnchT_itea_2, T63L32)',    &
-       calendar='noleap',                                      &
-       realization=1,                                          &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also ' //          &
-       'see http://www.GICC.su/giccm/doc/index.html '  //      &
-       ' 2XCO2 simulation described in Dorkey et al. '//       &
-       '(Clim. Dyn., 2003, 323-357.)' )
-  
-  current=>mydims
-  do i = 0,ndim-1
-     print*,'CMOR AXIS',i,'AAAAAAA**************************'
-     print*, 'Name:',trim(adjustl(current%name)),'--',trim(adjustl(mydims%name))
-     print*, current%units
-     print*, current%n,size(current%values)
-     print*, current%values(1:min(4,size(current%values)))
-     print*, current%bounds(1:2,1:min(4,size(current%values)))
-     if (i==0) then
-        myaxis(ndim-i)=cmor_axis('CMOR_SAMPLE_TABLE', &
-             table_entry=current%name,&
-             units=current%units,&
-             length=current%n)
-     else
-        myaxis(ndim-i)=cmor_axis('CMOR_SAMPLE_TABLE', &
-             table_entry=current%name,&
-             units=current%units,&
-             length=current%n,&
-             coord_vals=current%values,&
-             cell_bounds=current%bounds)
-     endif
-     current=>current%next
-  enddo
-
-  print*,'CMOR VAR'
-  myvar=cmor_variable('CMOR_SAMPLE_TABLE',&
-       'tas',&
-       'K',&
-       myaxis,&
-       missing_value=1.e20)
-
-!! figures out length of dimension other than time
-
-
-
-  j=ntot/mydims%n
-  print*, '&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'
-  do i=1,mydims%n !! write times one at a time
-!!$     print*,'before:', arrayin(j*(i-1)+1),j*(i-1)+1,j,i,ntot
-     print*, 'size of arrayin',size(arrayin(j*(i-1)+1:j*i))
-     ierr = cmor_write( &
-          var_id        = myvar,                        &
-          data          = arrayin(j*(i-1)+1:j*i), &
-          ntimes_passed = 1,                              &
-          time_vals     = mydims%values(i:i),                         &
-          time_bnds     = mydims%bounds(1:2,i:i) &
-          )
-  enddo
-
-  ierr = cmor_close()  
-
- 
-contains
-  subroutine allocate_dims(file_id,mydims,ndim)
-    implicit none
-    integer i,n,j,tmp,file_id
-    integer, intent(inout)::ndim
-    type(dims) , pointer :: tmpdims,mydims
-    read(file_id,'(I4)') ndim
-!!$    allocate(dimlength(ndim))
-    n=1
-    allocate(mydims)
-    tmpdims=>mydims
-    do i = 1, ndim
-       read(file_id,'(I4)') tmp
-       dimlength(8-i)=tmp
-       allocate(tmpdims%values(tmp))
-       allocate(tmpdims%bounds(2,tmp))
-       tmpdims%n=tmp
-       allocate(tmpdims%next)
-       tmpdims=>tmpdims%next
-       n=n*tmp
-    enddo
-    deallocate(tmpdims)
-    allocate(arrayin(n))
-  end subroutine allocate_dims
-  
-  subroutine read_ascii(file_unit,mydims,ndim,ntot,arrayin)
-    implicit none
-    type(dims), pointer::  mydims
-!    integer, dimension(ntot),intent(inout) :: arrayin
-    double precision, dimension(ntot),intent(inout) :: arrayin
-    type(dims), pointer ::  current
-    integer, intent(in)::ndim,file_unit
-    integer n,ntot,i,j,k
-    
-    current=>mydims
-    ntot=1
-    do i =1,ndim
-       n=current%n
-       ntot=ntot*n
-       read(file_unit,*) current%name
-       print*, 'NAME is:',current%name,trim(adjustl(mydims%name)),n,ntot
-       read(file_unit,'(A)') current%units
-       read(file_unit,*) (current%values(j),j=1,n)
-       read(file_unit,*) ((current%bounds(j,k),j=1,2),k=1,n)
-       print*, current%values(1),current%values(n)
-       print*, current%bounds(1,1),current%bounds(2,1)
-       print*, current%bounds(1,n),current%bounds(2,n)
-       current=>current%next
-    enddo
-    print *, 'ntot:',ntot
-       read(file_unit,*) (arrayin(i),i=1,ntot)
-
-print* ,trim(adjustl(mydims%name))
-print*,'done reading'
-  end subroutine read_ascii
-
-end program main
-
diff --git a/Test/mytest_3d_i_2.f90 b/Test/mytest_3d_i_2.f90
deleted file mode 100644
index 55a7c96..0000000
--- a/Test/mytest_3d_i_2.f90
+++ /dev/null
@@ -1,194 +0,0 @@
-program main
-
-  USE cmor_users_functions
-  implicit none
-
-  integer ncid
-
-  type dims
-     integer n
-     character(256) name
-     character(256) units
-     double precision, DIMENSION(:), pointer :: values
-     double precision, DIMENSION(:,:), pointer :: bounds     
-     type(dims), pointer :: next
-  end type dims
-  character(256) filein
-  type(dims), pointer :: mydims,current
-  integer ndim,i,j,ntot,k,l
-!  double precision, allocatable, dimension(:,:,:,:):: arrayin
-  integer, allocatable, dimension(:,:,:,:):: arrayin
-  integer, dimension(7):: dimlength = (/ (1,i=1,7) /)
-  integer, PARAMETER::verbosity = 2
-  integer ierr
-  integer, allocatable, dimension(:) :: myaxis
-  integer myvar
-  real amin,amax
-
-  print*, 'hi'
-  filein='Test/ta.asc'
-  open(unit=23,file=filein,form='formatted') 
-  call allocate_dims(23,mydims,ndim,dimlength)
-  allocate(myaxis(ndim))
-  allocate(arrayin(dimlength(1),dimlength(2),dimlength(3),dimlength(4)))
-  print*,'allocatedat:',shape(arrayin),dimlength(1),dimlength(2),dimlength(3)
-  current=>mydims
-  ntot=1
-  do i =1,ndim
-     ntot=ntot*current%n
-     current=>current%next
-  enddo
-  call read_ascii(23,mydims, ndim,ntot,arrayin)
-!!$!! Ok here is the part where we define or variable/axis,etc... 
-!!$!! Assuming that Karl's code is ok...
-!!$
-  
-  print*,'CMOR SETUP'
-!!$  
-  ierr = cmor_setup(inpath='Test',   &
-       netcdf_file_action='replace',                                       &
-       set_verbosity=1,                                                    &
-       exit_control=1)
-    
-  print*,'CMOR DATASET'
-  ierr = cmor_dataset(                                   &
-       outpath='Test',         &
-       experiment_id='2xCO2 equilibrium experiment',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       ' Geneva, Switzerland)',                                &
-       source='GICCM  2002(giccm_0_brnchT_itea_2, T63L32)',    &
-       calendar='noleap',                                      &
-       realization=1,                                          &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also ' //          &
-       'see http://www.GICC.su/giccm/doc/index.html '  //      &
-       ' 2XCO2 simulation described in Dorkey et al. '//       &
-       '(Clim. Dyn., 2003, 323-357.)' )
-  
-  current=>mydims
-  do i = 0,ndim-1
-     print*,'CMOR AXIS',i,'AAAAAAA*************************************************************************'
-     print*, 'Name:',trim(adjustl(current%name))
-!!$     print*, current%units
-!!$     print*, current%n,size(current%values)
-!!$     print*, current%values(1:min(4,size(current%values)))
-!!$     print*, current%bounds(1:2,1:min(4,size(current%values)))
-     if (trim(adjustl(current%name)).eq.'time') then
-        print*, 'time found'
-     myaxis(ndim-i)=cmor_axis('CMOR_SAMPLE_TABLE', &
-          table_entry=current%name,&
-          units=current%units,&
-          length=current%n,&
-!!$          coord_vals=current%values,&
-!!$          cell_bounds=current%bounds, &
-          interval='20 minutes')
-     else
-     myaxis(ndim-i)=cmor_axis('CMOR_SAMPLE_TABLE', &
-          table_entry=current%name,&
-          units=current%units,&
-          length=current%n,&
-          coord_vals=current%values,&
-          cell_bounds=current%bounds)
-        print*, 'not time'
-     endif
-     current=>current%next
-  enddo
-
-  print*,'CMOR VARCMOR VARCMOR VARCMOR VARCMOR VARCMOR VARCMOR VARCMOR VARCMOR VARCMOR VARCMOR VARCMOR VARCMOR VARCMOR VARCMOR VARCMOR VARCMOR VARCMOR VARCMOR VARCMOR VARCMOR VARCMOR VARCMOR VARCMOR VAR'
-  myvar=cmor_variable('CMOR_SAMPLE_TABLE',&
-       'ta',&
-       'K',&
-       myaxis,&
-       missing_value=120)
-
-!! figures out length of dimension other than time
-
-  j=ntot/mydims%n
-  print*, '&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'
-  print*,'before:', shape(arrayin),mydims%n
-  print*,'before:', shape(arrayin(:,i,:))
-  print*, 'time before:',mydims%next%values(i:i)
-  do i = 1, mydims%n
-
-     amin=1.e20
-     amax=-1.e20
-     do j=1, size(arrayin,2)
-        do k= 1, size(arrayin,3)
-           do l = 1, size(arrayin,4)
-              if (arrayin(i,j,k,l).lt.amin) amin=arrayin(i,j,k,l)
-              if (arrayin(i,j,k,l).gt.amax) amax=arrayin(i,j,k,l)
-           end do
-        enddo
-     enddo
-
-     print*, 'Array for',i,' min,max :',amin,amax
-     ierr = cmor_write( &
-          var_id        = myvar, &
-          data          = arrayin(i,:,:,:), &
-          ntimes_passed = 1,   &
-          time_vals     = mydims%values(i:i),  &
-          time_bnds     = mydims%bounds(:,i:i) &
-          )
-  enddo
-  ierr = cmor_close()
-
-contains
-  subroutine allocate_dims(file_id,mydims,ndim,dimlength)
-    implicit none
-    integer i,n,j,tmp,file_id
-    integer, intent(inout)::ndim
-    integer, intent(inout):: dimlength(7)
-    type(dims) , pointer :: tmpdims,mydims
-    read(file_id,'I') ndim
-!!$    allocate(dimlength(ndim))
-    n=1
-    allocate(mydims)
-    tmpdims=>mydims
-    do i = 1, ndim
-       read(file_id,'I') tmp
-!!$print*,'allocatedat:',tmp
-       dimlength(4-i)=tmp
-       allocate(tmpdims%values(tmp))
-       allocate(tmpdims%bounds(2,tmp))
-       tmpdims%n=tmp
-       allocate(tmpdims%next)
-       tmpdims=>tmpdims%next
-       n=n*tmp
-    enddo
-    deallocate(tmpdims)
-  end subroutine allocate_dims
-  
-  subroutine read_ascii(file_unit,mydims,ndim,ntot,arrayin)
-    implicit none
-    type(dims), pointer::  mydims
-!    double precision, dimension(:,:,:),intent(inout) :: arrayin
-    integer, dimension(:,:,:,:),intent(inout) :: arrayin
-    integer, dimension(ndim)
-    type(dims), pointer ::  current
-    integer, intent(in)::ndim,file_unit
-    integer n,ntot,i,j,k,l
-    
-    current=>mydims
-    ntot=1
-    do i =1,ndim
-       n=current%n
-       ntot=ntot*n
-       read(23,*) (current%name)
-       print*, 'NAME is:',current%name,trim(adjustl(mydims%name))
-       read(23,*) (current%units)
-       read(23,*) (current%values(j),j=1,n)
-       read(23,*) ((current%bounds(j,k),j=1,2),k=1,n)
-       print*, current%bounds(1,1),current%bounds(1,2)
-       current=>current%next
-    enddo
-    read(file_unit,*) (((arrayin(j,k,l),j=1,size(arrayin,1)),k=1,size(arrayin,2)),l=1,size(arrayin,3))
-print* ,trim(adjustl(mydims%name))
-  end subroutine read_ascii
-
-end program main
-
diff --git a/Test/mytest_3d_r.f90 b/Test/mytest_3d_r.f90
deleted file mode 100644
index c611f04..0000000
--- a/Test/mytest_3d_r.f90
+++ /dev/null
@@ -1,182 +0,0 @@
-program main
-
-  USE cmor_users_functions
-  implicit none
-
-  integer ncid
-
-  type dims
-     integer n
-     character(256) name
-     character(256) units
-     double precision, DIMENSION(:), pointer :: values
-     double precision, DIMENSION(:,:), pointer :: bounds     
-     type(dims), pointer :: next
-  end type dims
-  character(256) filein
-  type(dims), pointer :: mydims,current
-  integer ndim,i,j,ntot
-!  double precision, allocatable, dimension(:,:,:):: arrayin
-  real, allocatable, dimension(:,:,:):: arrayin
-  integer, dimension(7):: dimlength = (/ (1,i=1,7) /)
-  integer, PARAMETER::verbosity = 2
-  integer ierr
-  integer, allocatable, dimension(:) :: myaxis
-  integer myvar
-  real mymiss
-
-  print*, 'hi'
-  filein='Test/tas_3d_r.asc'
-  open(unit=23,file=filein,form='formatted') 
-  call allocate_dims(23,mydims,ndim,dimlength)
-  allocate(myaxis(ndim))
-  allocate(arrayin(dimlength(1),dimlength(2),dimlength(3)))
-  print*,'allocatedat:',shape(arrayin),dimlength(1),dimlength(2),dimlength(3)
-  current=>mydims
-  ntot=1
-  do i =1,ndim
-     ntot=ntot*current%n
-     current=>current%next
-  enddo
-  call read_ascii(23,mydims, ndim,ntot,arrayin)
-  
-  
-!!$!! Ok here is the part where we define or variable/axis,etc... 
-!!$!! Assuming that Karl's code is ok...
-!!$
-  
-  print*,'CMOR SETUP'
-!!$  
-  ierr = cmor_setup(inpath='Test',   &
-       netcdf_file_action='replace',                                       &
-       set_verbosity=1,                                                    &
-       exit_control=1)
-    
-  print*,'CMOR DATASET'
-  ierr = cmor_dataset(                                   &
-       outpath='Test',         &
-       experiment_id='2xCO2 equilibrium experiment',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       ' Geneva, Switzerland)',                                &
-       source='GICCM  2002(giccm_0_brnchT_itea_2, T63L32)',    &
-       calendar='noleap',                                      &
-       realization=1,                                          &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also ' //          &
-       'see http://www.GICC.su/giccm/doc/index.html '  //      &
-       ' 2XCO2 simulation described in Dorkey et al. '//       &
-       '(Clim. Dyn., 2003, 323-357.)' )
-  
-  current=>mydims
-  do i = 0,ndim-1
-     print*,'CMOR AXIS',i,'AAAAAAA*************************************************************************'
-     print*, 'Name:',trim(adjustl(current%name))
-!!$     print*, current%units
-!!$     print*, current%n,size(current%values)
-!!$     print*, current%values(1:min(4,size(current%values)))
-!!$     print*, current%bounds(1:2,1:min(4,size(current%values)))
-     if (trim(adjustl(current%name)).eq.'time') then
-        print*, 'time found'
-     myaxis(ndim-i)=cmor_axis('CMOR_SAMPLE_TABLE', &
-          table_entry=current%name,&
-          units=current%units,&
-          length=current%n,&
-!!$          coord_vals=current%values,&
-!!$          cell_bounds=current%bounds, &
-          interval='20 minutes')
-     else
-     myaxis(ndim-i)=cmor_axis('CMOR_SAMPLE_TABLE', &
-          table_entry=current%name,&
-          units=current%units,&
-          length=current%n,&
-          coord_vals=current%values,&
-          cell_bounds=current%bounds)
-        print*, 'not time'
-     endif
-     current=>current%next
-  enddo
-
-  mymiss=1.e20
-  print*,'CMOR VARCMOR VARCMOR VARCMOR',mymiss
-  myvar=cmor_variable('CMOR_SAMPLE_TABLE',&
-       'tas',&
-       'K',&
-       myaxis,&
-       missing_value=mymiss)
-
-!! figures out length of dimension other than time
-
-  j=ntot/mydims%n
-  print*, '&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'
-  print*,'before:', shape(arrayin),mydims%n
-  print*,'before:', shape(arrayin(:,:,i))
-  print*, 'time before:',mydims%values(i:i)
-  ierr = cmor_write( &
-       var_id        = myvar, &
-       data          = arrayin, &
-       ntimes_passed = mydims%next%n,   &
-       time_vals     = mydims%next%values,  &
-       time_bnds     = mydims%next%bounds &
-       )
-
-  ierr = cmor_close()
-
-contains
-  subroutine allocate_dims(file_id,mydims,ndim,dimlength)
-    implicit none
-    integer i,n,j,tmp,file_id
-    integer, intent(inout)::ndim
-    integer, intent(inout):: dimlength(7)
-    type(dims) , pointer :: tmpdims,mydims
-    read(file_id,'(I8)') ndim
-!!$    allocate(dimlength(ndim))
-    n=1
-    allocate(mydims)
-    tmpdims=>mydims
-    do i = 1, ndim
-       read(file_id,'(I8)') tmp
-!!$print*,'allocatedat:',tmp
-       dimlength(4-i)=tmp
-       allocate(tmpdims%values(tmp))
-       allocate(tmpdims%bounds(2,tmp))
-       tmpdims%n=tmp
-       allocate(tmpdims%next)
-       tmpdims=>tmpdims%next
-       n=n*tmp
-    enddo
-    deallocate(tmpdims)
-  end subroutine allocate_dims
-  
-  subroutine read_ascii(file_unit,mydims,ndim,ntot,arrayin)
-    implicit none
-    type(dims), pointer::  mydims
-!    double precision, dimension(:,:,:),intent(inout) :: arrayin
-    real, dimension(:,:,:),intent(inout) :: arrayin
-    type(dims), pointer ::  current
-    integer, intent(in)::ndim,file_unit
-    integer n,ntot,i,j,k,l
-    
-    current=>mydims
-    ntot=1
-    do i =1,ndim
-       n=current%n
-       ntot=ntot*n
-       read(23,*) (current%name)
-       print*, 'NAME is:',current%name,trim(adjustl(mydims%name))
-       read(23,*) (current%units)
-       read(23,*) (current%values(j),j=1,n)
-       read(23,*) ((current%bounds(j,k),j=1,2),k=1,n)
-       print*, current%bounds(1,1),current%bounds(1,2)
-       current=>current%next
-    enddo
-    read(file_unit,*) (((arrayin(j,k,l),j=1,size(arrayin,1)),k=1,size(arrayin,2)),l=1,size(arrayin,3))
-print* ,trim(adjustl(mydims%name))
-  end subroutine read_ascii
-
-end program main
-
diff --git a/Test/mytest_3d_r_2.f90 b/Test/mytest_3d_r_2.f90
deleted file mode 100644
index b0b0390..0000000
--- a/Test/mytest_3d_r_2.f90
+++ /dev/null
@@ -1,196 +0,0 @@
-program main
-
-  USE cmor_users_functions
-  implicit none
-
-  integer ncid
-
-  type dims
-     integer n
-     character(256) name
-     character(256) units
-     double precision, DIMENSION(:), pointer :: values
-     double precision, DIMENSION(:,:), pointer :: bounds     
-     type(dims), pointer :: next
-  end type dims
-  character(256) filein
-  type(dims), pointer :: mydims,current
-  integer ndim,i,j,ntot,k,l
-!  double precision, allocatable, dimension(:,:,:,:):: arrayin
-  real, allocatable, dimension(:,:,:,:):: arrayin
-  integer, dimension(7):: dimlength = (/ (1,i=1,7) /)
-  integer, PARAMETER::verbosity = 2
-  integer ierr
-  integer, allocatable, dimension(:) :: myaxis
-  integer myvar
-  real amin,amax,mymiss
-
-  print*, 'hi'
-  filein='Test/ta_3D_r_2.asc'
-  open(unit=23,file=filein,form='formatted') 
-  call allocate_dims(23,mydims,ndim,dimlength)
-  allocate(myaxis(ndim))
-  allocate(arrayin(dimlength(1),dimlength(2),dimlength(3),dimlength(4)))
-  print*,'allocatedat:',shape(arrayin),dimlength(1),dimlength(2),dimlength(3),dimlength(4)
-  current=>mydims
-  ntot=1
-  do i =1,ndim
-     ntot=ntot*current%n
-     current=>current%next
-  enddo
-  call read_ascii(23,mydims, ndim,ntot,arrayin)
-!!$!! Ok here is the part where we define or variable/axis,etc... 
-!!$!! Assuming that Karl's code is ok...
-!!$
-  
-  print*,'CMOR SETUP'
-!!$  
-  ierr = cmor_setup(inpath='Test',   &
-       netcdf_file_action='replace',                                       &
-       set_verbosity=1,                                                    &
-       exit_control=1)
-    
-  print*,'CMOR DATASET'
-  ierr = cmor_dataset(                                   &
-       outpath='Test',         &
-       experiment_id='2xCO2 equilibrium experiment',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       ' Geneva, Switzerland)',                                &
-       source='GICCM  2002(giccm_0_brnchT_itea_2, T63L32)',    &
-       calendar='noleap',                                      &
-       realization=1,                                          &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also ' //          &
-       'see http://www.GICC.su/giccm/doc/index.html '  //      &
-       ' 2XCO2 simulation described in Dorkey et al. '//       &
-       '(Clim. Dyn., 2003, 323-357.)' )
-  
-  current=>mydims
-  do i = 0,ndim-1
-     print*,'CMOR AXIS',i,'AAAAAAA*************************************************************************'
-     print*, 'Name:',trim(adjustl(current%name))
-!!$     print*, current%units
-!!$     print*, current%n,size(current%values)
-!!$     print*, current%values(1:min(4,size(current%values)))
-!!$     print*, current%bounds(1:2,1:min(4,size(current%values)))
-     if (trim(adjustl(current%name)).eq.'time') then
-        print*, 'time found'
-     myaxis(ndim-i)=cmor_axis('CMOR_SAMPLE_TABLE', &
-          table_entry=current%name,&
-          units=current%units,&
-          length=current%n,&
-!!$          coord_vals=current%values,&
-!!$          cell_bounds=current%bounds, &
-          interval='20 minutes')
-     else
-     myaxis(ndim-i)=cmor_axis('CMOR_SAMPLE_TABLE', &
-          table_entry=current%name,&
-          units=current%units,&
-          length=current%n,&
-          coord_vals=current%values,&
-          cell_bounds=current%bounds)
-        print*, 'not time'
-     endif
-     current=>current%next
-  enddo
-
-  print*,'CMOR VARCMOR VARCMOR VARCMOR'
-
-  mymiss=1.e20
-  myvar=cmor_variable('CMOR_SAMPLE_TABLE',&
-       'ta',&
-       'K',&
-       myaxis,&
-       missing_value=mymiss)
-
-!! figures out length of dimension other than time
-
-  j=ntot/mydims%n
-!!$  print*, '&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'
-!!$  print*,'before:', shape(arrayin),mydims%n
-!!$  print*,'before:', shape(arrayin(:,i,:))
-!!$  print*, 'time before:',mydims%next%values(i:i)
-  do i = 1, mydims%n
-
-     amin=1.e20
-     amax=-1.e20
-     do j=1, size(arrayin,2)
-        do k= 1, size(arrayin,3)
-           do l = 1, size(arrayin,4)
-              if (arrayin(j,k,l,i).lt.amin) amin=arrayin(i,j,k,l)
-              if (arrayin(j,k,l,i).gt.amax) amax=arrayin(i,j,k,l)
-           end do
-        enddo
-     enddo
-
-     print*, 'Array for',i,' min,max :',amin,amax,'Ssub',shape(arrayin(:,:,:,i)),'S',shape(arrayin)
-     ierr = cmor_write( &
-          var_id        = myvar, &
-          data          = arrayin(:,:,:,i), &
-          ntimes_passed = 1,   &
-          time_vals     = mydims%values(i:i),  &
-          time_bnds     = mydims%bounds(:,i:i) &
-          )
-  enddo
-  ierr = cmor_close()
-
-contains
-  subroutine allocate_dims(file_id,mydims,ndim,dimlength)
-    implicit none
-    integer i,n,j,tmp,file_id
-    integer, intent(inout)::ndim
-    integer, intent(inout):: dimlength(7)
-    type(dims) , pointer :: tmpdims,mydims
-    read(file_id,'(i8)') ndim
-!!$    allocate(dimlength(ndim))
-    n=1
-    allocate(mydims)
-    tmpdims=>mydims
-    do i = 1, ndim
-       read(file_id,'(I8)') tmp
-!!$print*,'allocatedat:',tmp
-       dimlength(5-i)=tmp
-       allocate(tmpdims%values(tmp))
-       allocate(tmpdims%bounds(2,tmp))
-       tmpdims%n=tmp
-       allocate(tmpdims%next)
-       tmpdims=>tmpdims%next
-       n=n*tmp
-    enddo
-    deallocate(tmpdims)
-  end subroutine allocate_dims
-  
-  subroutine read_ascii(file_unit,mydims,ndim,ntot,arrayin)
-    implicit none
-    type(dims), pointer::  mydims
-!    double precision, dimension(:,:,:),intent(inout) :: arrayin
-    real, dimension(:,:,:,:),intent(inout) :: arrayin
-!    integer, dimension(ndim)
-    type(dims), pointer ::  current
-    integer, intent(in)::ndim,file_unit
-    integer n,ntot,i,j,k,l,m
-    
-    current=>mydims
-    ntot=1
-    do i =1,ndim
-       n=current%n
-       ntot=ntot*n
-       read(23,*) (current%name)
-       print*, 'NAME is:',current%name,trim(adjustl(mydims%name))
-       read(23,*) (current%units)
-       read(23,*) (current%values(j),j=1,n)
-       read(23,*) ((current%bounds(j,k),j=1,2),k=1,n)
-       print*, current%bounds(1,1),current%bounds(1,2)
-       current=>current%next
-    enddo
-    read(file_unit,*) ((((arrayin(j,k,l,m),j=1,size(arrayin,1)),k=1,size(arrayin,2)),l=1,size(arrayin,3)),m=1,size(arrayin,4))
-print* ,trim(adjustl(mydims%name))
-  end subroutine read_ascii
-
-end program main
-
diff --git a/Test/mytest_4d_d_big_array_2.f90 b/Test/mytest_4d_d_big_array_2.f90
deleted file mode 100644
index 8b5e2bd..0000000
--- a/Test/mytest_4d_d_big_array_2.f90
+++ /dev/null
@@ -1,207 +0,0 @@
-program main
-
-  USE cmor_users_functions
-  implicit none
-
-  integer ncid
-
-  type dims
-     integer n
-     character(256) name
-     character(256) units
-     double precision, DIMENSION(:), pointer :: values
-     double precision, DIMENSION(:,:), pointer :: bounds     
-     type(dims), pointer :: next
-  end type dims
-  character(256) filein
-  type(dims), pointer :: mydims,current
-  integer ndim,i,j,ntot,k,l
-  double precision, allocatable, dimension(:,:,:,:):: arrayin
-!  real, allocatable, dimension(:,:,:,:):: arrayin
-  double precision, allocatable :: bigarray(:)
-  integer, dimension(7):: dimlength = (/ (1,i=1,7) /)
-  integer, PARAMETER::verbosity = 2
-  integer ierr
-  integer, allocatable, dimension(:) :: myaxis
-  integer myvar
-  real amin,amax,mymiss
-  double precision bt
-  bt=0.
-  print*, 'Test Code: hi'
-  filein='Test/ta_4D_r.asc'
-  open(unit=23,file=filein,form='formatted') 
-  call allocate_dims(23,mydims,ndim,dimlength)
-  allocate(myaxis(ndim))
-  allocate(arrayin(dimlength(1),dimlength(2),dimlength(3),dimlength(4)))
-  allocate(bigarray(dimlength(1)*dimlength(2)*5*dimlength(3)*dimlength(4)))
-  print*,'Test Code: allocate data    :',shape(arrayin),'dims:',dimlength(1),dimlength(2),dimlength(3),dimlength(4)
-  print*,'Test Code: allocate data big:',shape(bigarray)
-  current=>mydims
-  ntot=1
-  do i =1,ndim
-     ntot=ntot*current%n
-     current=>current%next
-  enddo
-  call read_ascii(23,mydims, ndim,ntot,arrayin)
-!!$!! Ok here is the part where we define or variable/axis,etc... 
-!!$!! Assuming that Karl's code is ok...
-!!$
-
-  print*, 'Test Code: putting everything into the big array contiguous fortran order means faster moving is first element'
-  bigarray=666. ! initialize bigarray at some bad value
-  ierr=1
-  do l = 1, dimlength(4)
-     do k = 1, dimlength(3)
-        do j = 1, dimlength(2)
-           do i = 1, dimlength(1)
-              bigarray(ierr)=arrayin(i,j,k,l)
-              ierr=ierr+1
-           enddo
-        enddo
-     enddo
-  enddo
-
-  print*,'Test Code: CMOR SETUP'
-!!$  
-  ierr = cmor_setup(inpath='Test',   &
-       netcdf_file_action='replace',                                       &
-       set_verbosity=1,                                                    &
-       exit_control=1)
-    
-  print*,'Test Code: CMOR DATASET'
-  ierr = cmor_dataset(                                   &
-       outpath='Test',         &
-       experiment_id='abrupt 4XCO2',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       ' Geneva, Switzerland)',                                &
-       source='GICCM1  2002(giccm_0_brnchT_itea_2, T63L32)',    &
-       calendar='360_day',                                      &
-       realization=1,                                          &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also ' //          &
-       'see http://www.GICC.su/giccm/doc/index.html '  //      &
-       ' 2XCO2 simulation described in Dorkey et al. '//       &
-       '(Clim. Dyn., 2003, 323-357.)', model_id="GICCM1", &
-       forcing='TO',contact="Barry Bonds",institute_id="PCMDI",&
-       parent_experiment_id="N/A",branch_time=bt)
-
-  current=>mydims
-  do i = 0,ndim-1
-     print*,'Test Code: CMOR AXIS',i,'AAAAAAA*************************************************************************'
-     print*, 'Test Code: Name:',trim(adjustl(current%name))
-!!$     print*, 'Test Code: ',current%units
-!!$     print*, 'Test Code: ',current%n,size(current%values)
-!!$     print*, 'Test Code: ',current%values(1:min(4,size(current%values)))
-!!$     print*, 'Test Code: ',current%bounds(1:2,1:min(4,size(current%values)))
-     if (trim(adjustl(current%name)).eq.'time') then
-        print*, 'Test Code: time found'
-        myaxis(ndim-i)=cmor_axis('Tables/CMIP5_Amon', &
-          table_entry=current%name,&
-          units=current%units,&
-          length=current%n,&
-!!$          coord_vals=current%values,&
-!!$          cell_bounds=current%bounds, &
-          interval='30 days')
-     else
-     myaxis(ndim-i)=cmor_axis('Tables/CMIP5_Amon', &
-          table_entry=current%name,&
-          units=current%units,&
-          length=current%n,&
-          coord_vals=current%values,&
-          cell_bounds=current%bounds)
-        print*, 'Test Code: not time'
-     endif
-     current=>current%next
-  enddo
-
-  print*,'Test Code: CMOR VARCMOR VARCMOR VARCMOR'
-
-  mymiss=1.e20
-  myvar=cmor_variable('Tables/CMIP5_Amon',&
-       'ta',&
-       'K',&
-       myaxis,&
-       missing_value=mymiss)
-
-!! figures out length of dimension other than time
-
-  j=ntot/mydims%n
-!!$  print*, 'Test Code: &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'
-!!$  print*,'Test Code: before:', shape(arrayin),mydims%n
-!!$  print*,'Test Code: before:', shape(arrayin(:,i,:))
-!!$  print*, 'Test Code: time before:',mydims%next%values(i:i)
-  current=>mydims%next%next
-print*, 'Test Code: values:',current%values
-print*, 'Test Code: bounds:',current%bounds
-print*, 'Test Code: N:',current%n
-  ierr = cmor_write( &
-       var_id        = myvar, &
-       data          = bigarray, &
-       ntimes_passed = current%n, &
-       time_vals     = current%values,  &
-       time_bnds     = current%bounds &
-       )
-  ierr = cmor_close()
-
-contains
-  subroutine allocate_dims(file_id,mydims,ndim,dimlength)
-    implicit none
-    integer i,n,j,tmp,file_id
-    integer, intent(inout)::ndim
-    integer, intent(inout):: dimlength(7)
-    type(dims) , pointer :: tmpdims,mydims
-    read(file_id,'(i8)') ndim
-!!$    allocate(dimlength(ndim))
-    n=1
-    allocate(mydims)
-    tmpdims=>mydims
-    do i = 1, ndim
-       read(file_id,'(I8)') tmp
-!!$print*,'Test Code: allocatedat:',tmp
-       dimlength(5-i)=tmp
-       allocate(tmpdims%values(tmp))
-       allocate(tmpdims%bounds(2,tmp))
-       tmpdims%n=tmp
-       allocate(tmpdims%next)
-       tmpdims=>tmpdims%next
-       n=n*tmp
-    enddo
-    deallocate(tmpdims)
-  end subroutine allocate_dims
-  
-  subroutine read_ascii(file_unit,mydims,ndim,ntot,arrayin)
-    implicit none
-    type(dims), pointer::  mydims
-    double precision, dimension(:,:,:,:),intent(inout) :: arrayin
-!    real, dimension(:,:,:,:),intent(inout) :: arrayin
-    type(dims), pointer ::  current
-    integer, intent(in)::ndim,file_unit
-    integer n,ntot,i,j,k,l,m
-    
-    current=>mydims
-    ntot=1
-    do i =1,ndim
-       n=current%n
-       ntot=ntot*n
-       read(file_unit,'(A)') current%name
-       print*, 'Test Code: NAME is:',current%name,trim(adjustl(mydims%name))
-       if (current%name.eq."pressure") current%name="plevs"
-       read(file_unit,'(A)') current%units
-       read(file_unit,*) (current%values(j),j=1,n)
-       read(file_unit,*) ((current%bounds(j,k),j=1,2),k=1,n)
-       print*, 'Test Code: ',current%bounds(1,1),current%bounds(1,2)
-       current=>current%next
-    enddo
-print*, 'Test Code: arrayin shape:',shape(arrayin)
-    read(file_unit,*) ((((arrayin(j,k,l,m),j=1,size(arrayin,1)),k=1,size(arrayin,2)),l=1,size(arrayin,3)),m=1,size(arrayin,4))
-print*, 'Test Code: done!'
-print* ,'Test Code: ',trim(adjustl(mydims%name))
-  end subroutine read_ascii
-
-end program main
-
diff --git a/Test/mytest_4d_d_big_array_3.f90 b/Test/mytest_4d_d_big_array_3.f90
deleted file mode 100644
index 460bce3..0000000
--- a/Test/mytest_4d_d_big_array_3.f90
+++ /dev/null
@@ -1,207 +0,0 @@
-program main
-
-  USE cmor_users_functions
-  implicit none
-
-  integer ncid
-
-  type dims
-     integer n
-     character(256) name
-     character(256) units
-     double precision, DIMENSION(:), pointer :: values
-     double precision, DIMENSION(:,:), pointer :: bounds     
-     type(dims), pointer :: next
-  end type dims
-  character(256) filein
-  type(dims), pointer :: mydims,current
-  integer ndim,i,j,ntot,k,l
-  double precision, allocatable, dimension(:,:,:,:):: arrayin
-!  real, allocatable, dimension(:,:,:,:):: arrayin
-  double precision, allocatable :: bigarray(:,:,:,:,:)
-  integer, dimension(7):: dimlength = (/ (1,i=1,7) /)
-  integer, PARAMETER::verbosity = 2
-  integer ierr
-  integer, allocatable, dimension(:) :: myaxis
-  integer myvar
-  real amin,amax,mymiss
-  double precision bt
-  bt=0.
-  print*, 'Test Code: hi'
-  filein='Test/ta_4D_r.asc'
-  open(unit=23,file=filein,form='formatted') 
-  call allocate_dims(23,mydims,ndim,dimlength)
-  allocate(myaxis(ndim))
-  allocate(arrayin(dimlength(1),dimlength(2),dimlength(3),dimlength(4)))
-  allocate(bigarray(dimlength(1),dimlength(2),dimlength(3),dimlength(4),5))
-  print*,'Test Code: allocate data    :',shape(arrayin),'dims:',dimlength(1),dimlength(2),dimlength(3),dimlength(4)
-  print*,'Test Code: allocate data big:',shape(bigarray)
-  current=>mydims
-  ntot=1
-  do i =1,ndim
-     ntot=ntot*current%n
-     current=>current%next
-  enddo
-  call read_ascii(23,mydims, ndim,ntot,arrayin)
-!!$!! Ok here is the part where we define or variable/axis,etc... 
-!!$!! Assuming that Karl's code is ok...
-!!$
-
-  print*, 'Test Code: putting everything into the big array contiguous fortran order means faster moving is first element'
-  bigarray=666. ! initialize bigarray at some bad value
-  ierr=1
-  do l = 1, dimlength(4)
-     do k = 1, dimlength(3)
-        do j = 1, dimlength(2)
-           do i = 1, dimlength(1)
-              bigarray(i,j,k,l,1)=arrayin(i,j,k,l)
-              ierr=ierr+1
-           enddo
-        enddo
-     enddo
-  enddo
-
-  print*,'Test Code: CMOR SETUP'
-!!$  
-  ierr = cmor_setup(inpath='Test',   &
-       netcdf_file_action='replace',                                       &
-       set_verbosity=1,                                                    &
-       exit_control=1)
-    
-  print*,'Test Code: CMOR DATASET'
-  ierr = cmor_dataset(                                   &
-       outpath='Test',         &
-       experiment_id='abrupt 4XCO2',           &
-       institution=                                            &
-       'GICCM1 (Generic International Climate Center, ' //       &
-       ' Geneva, Switzerland)',                                &
-       source='GICCM1  2002(giccm_0_brnchT_itea_2, T63L32)',    &
-       calendar='360_day',                                      &
-       realization=1,                                          &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also ' //          &
-       'see http://www.GICC.su/giccm/doc/index.html '  //      &
-       ' 2XCO2 simulation described in Dorkey et al. '//       &
-       '(Clim. Dyn., 2003, 323-357.)', model_id="GICCM1", &
-       forcing='TO',contact="Barry Bonds",institute_id="PCMDI",&
-       parent_experiment_id="N/A",branch_time=bt)
-  
-  current=>mydims
-  do i = 0,ndim-1
-     print*,'Test Code: CMOR AXIS',i,'AAAAAAA*************************************************************************'
-     print*, 'Test Code: Name:',trim(adjustl(current%name))
-!!$     print*, 'Test Code: ',current%units
-!!$     print*, 'Test Code: ',current%n,size(current%values)
-!!$     print*, 'Test Code: ',current%values(1:min(4,size(current%values)))
-!!$     print*, 'Test Code: ',current%bounds(1:2,1:min(4,size(current%values)))
-     if (trim(adjustl(current%name)).eq.'time') then
-        print*, 'Test Code: time found'
-        myaxis(ndim-i)=cmor_axis('Tables/CMIP5_Amon', &
-          table_entry=current%name,&
-          units=current%units,&
-          length=current%n,&
-!!$          coord_vals=current%values,&
-!!$          cell_bounds=current%bounds, &
-          interval='30 days')
-     else
-     myaxis(ndim-i)=cmor_axis('Tables/CMIP5_Amon', &
-          table_entry=current%name,&
-          units=current%units,&
-          length=current%n,&
-          coord_vals=current%values,&
-          cell_bounds=current%bounds)
-        print*, 'Test Code: not time'
-     endif
-     current=>current%next
-  enddo
-
-  print*,'Test Code: CMOR VARCMOR VARCMOR VARCMOR'
-
-  mymiss=1.e20
-  myvar=cmor_variable('Tables/CMIP5_Amon',&
-       'ta',&
-       'K',&
-       myaxis,&
-       missing_value=mymiss)
-
-!! figures out length of dimension other than time
-
-  j=ntot/mydims%n
-!!$  print*, 'Test Code: &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'
-!!$  print*,'Test Code: before:', shape(arrayin),mydims%n
-!!$  print*,'Test Code: before:', shape(arrayin(:,i,:))
-!!$  print*, 'Test Code: time before:',mydims%next%values(i:i)
-  current=>mydims%next%next
-print*, 'Test Code: values:',current%values
-print*, 'Test Code: bounds:',current%bounds
-print*, 'Test Code: N:',current%n
-  ierr = cmor_write( &
-       var_id        = myvar, &
-       data          = bigarray(:,:,:,:,1), &
-       ntimes_passed = current%n, &
-       time_vals     = current%values,  &
-       time_bnds     = current%bounds &
-       )
-  ierr = cmor_close()
-
-contains
-  subroutine allocate_dims(file_id,mydims,ndim,dimlength)
-    implicit none
-    integer i,n,j,tmp,file_id
-    integer, intent(inout)::ndim
-    integer, intent(inout):: dimlength(7)
-    type(dims) , pointer :: tmpdims,mydims
-    read(file_id,'(i8)') ndim
-!!$    allocate(dimlength(ndim))
-    n=1
-    allocate(mydims)
-    tmpdims=>mydims
-    do i = 1, ndim
-       read(file_id,'(I8)') tmp
-!!$print*,'Test Code: allocatedat:',tmp
-       dimlength(5-i)=tmp
-       allocate(tmpdims%values(tmp))
-       allocate(tmpdims%bounds(2,tmp))
-       tmpdims%n=tmp
-       allocate(tmpdims%next)
-       tmpdims=>tmpdims%next
-       n=n*tmp
-    enddo
-    deallocate(tmpdims)
-  end subroutine allocate_dims
-  
-  subroutine read_ascii(file_unit,mydims,ndim,ntot,arrayin)
-    implicit none
-    type(dims), pointer::  mydims
-    double precision, dimension(:,:,:,:),intent(inout) :: arrayin
-!    real, dimension(:,:,:,:),intent(inout) :: arrayin
-    type(dims), pointer ::  current
-    integer, intent(in)::ndim,file_unit
-    integer n,ntot,i,j,k,l,m
-    
-    current=>mydims
-    ntot=1
-    do i =1,ndim
-       n=current%n
-       ntot=ntot*n
-       read(file_unit,'(A)') current%name
-       print*, 'Test Code: NAME is:',current%name,trim(adjustl(mydims%name))
-       if (current%name.eq."pressure") current%name="plevs"
-       read(file_unit,'(A)') current%units
-       read(file_unit,*) (current%values(j),j=1,n)
-       read(file_unit,*) ((current%bounds(j,k),j=1,2),k=1,n)
-       print*, 'Test Code: ',current%bounds(1,1),current%bounds(1,2)
-       current=>current%next
-    enddo
-print*, 'Test Code: arrayin shape:',shape(arrayin)
-    read(file_unit,*) ((((arrayin(j,k,l,m),j=1,size(arrayin,1)),k=1,size(arrayin,2)),l=1,size(arrayin,3)),m=1,size(arrayin,4))
-print*, 'Test Code: done!'
-print* ,'Test Code: ',trim(adjustl(mydims%name))
-  end subroutine read_ascii
-
-end program main
-
diff --git a/Test/mytest_4d_d_big_array_4.f90 b/Test/mytest_4d_d_big_array_4.f90
deleted file mode 100644
index cf6d4a0..0000000
--- a/Test/mytest_4d_d_big_array_4.f90
+++ /dev/null
@@ -1,206 +0,0 @@
-program main
-
-  USE cmor_users_functions
-  implicit none
-
-  integer ncid
-
-  type dims
-     integer n
-     character(256) name
-     character(256) units
-     double precision, DIMENSION(:), pointer :: values
-     double precision, DIMENSION(:,:), pointer :: bounds     
-     type(dims), pointer :: next
-  end type dims
-  character(256) filein
-  type(dims), pointer :: mydims,current
-  integer ndim,i,j,ntot,k,l
-  double precision, allocatable, dimension(:,:,:,:):: arrayin
-!  real, allocatable, dimension(:,:,:,:):: arrayin
-  double precision, allocatable :: smallarray(:,:,:)
-  integer, dimension(7):: dimlength = (/ (1,i=1,7) /)
-  integer, PARAMETER::verbosity = 2
-  integer ierr
-  integer, allocatable, dimension(:) :: myaxis
-  integer myvar
-  real amin,amax,mymiss
-  double precision bt
-  bt=0.
-  print*, 'Test Code: hi'
-  filein='Test/ta_4D_r.asc'
-  open(unit=23,file=filein,form='formatted') 
-  call allocate_dims(23,mydims,ndim,dimlength)
-  allocate(myaxis(ndim))
-  allocate(arrayin(dimlength(1),dimlength(2),dimlength(3),dimlength(4)))
-  allocate(smallarray(dimlength(1)+5,dimlength(3)+6,dimlength(4)+7))
-  print*,'Test Code: allocate data    :',shape(arrayin),'dims:',dimlength(1),dimlength(2),dimlength(3),dimlength(4)
-  print*,'Test Code: allocate data big:',shape(smallarray)
-  current=>mydims
-  ntot=1
-  do i =1,ndim
-     ntot=ntot*current%n
-     current=>current%next
-  enddo
-  call read_ascii(23,mydims, ndim,ntot,arrayin)
-!!$!! Ok here is the part where we define or variable/axis,etc... 
-!!$!! Assuming that Karl's code is ok...
-!!$
-
-  print*, 'Test Code: putting everything into the big array contiguous fortran order means faster moving is first element'
-
-  print*,'Test Code: CMOR SETUP'
-!!$  
-  ierr = cmor_setup(inpath='Test',   &
-       netcdf_file_action='replace',                                       &
-       set_verbosity=1,                                                    &
-       exit_control=1)
-    
-  print*,'Test Code: CMOR DATASET'
-  ierr = cmor_dataset(                                   &
-       outpath='Test',         &
-       experiment_id='abrupt 4XCO2',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       ' Geneva, Switzerland)',                                &
-       source='GICCM1  2002(giccm_0_brnchT_itea_2, T63L32)',    &
-       calendar='360_day',                                      &
-       realization=1,                                          &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also ' //          &
-       'see http://www.GICC.su/giccm/doc/index.html '  //      &
-       ' 2XCO2 simulation described in Dorkey et al. '//       &
-       '(Clim. Dyn., 2003, 323-357.)',model_id="GICCM1", &
-       forcing='TO',contact="Barry Bonds",institute_id="PCMDI",&
-       parent_experiment_id="N/A",branch_time=bt)
-
-  current=>mydims
-  do i = 0,ndim-1
-     print*,'Test Code: CMOR AXIS',i,'AAAAAAA*************************************************************************'
-     print*, 'Test Code: Name:',trim(adjustl(current%name))
-!!$     print*, 'Test Code: ',current%units
-!!$     print*, 'Test Code: ',current%n,size(current%values)
-!!$     print*, 'Test Code: ',current%values(1:min(4,size(current%values)))
-!!$     print*, 'Test Code: ',current%bounds(1:2,1:min(4,size(current%values)))
-     if (trim(adjustl(current%name)).eq.'time') then
-        print*, 'Test Code: time found'
-  print*, 'Test Code: bounds:',current%bounds,current%units
-      myaxis(ndim-i)=cmor_axis('Tables/CMIP5_Amon', &
-          table_entry=current%name,&
-          units=current%units,&
-          length=current%n,&
-          coord_vals=current%values,&
-          cell_bounds=current%bounds, &
-          interval='1 month')
-     else
-     myaxis(ndim-i)=cmor_axis('Tables/CMIP5_Amon', &
-          table_entry=current%name,&
-          units=current%units,&
-          length=current%n,&
-          coord_vals=current%values,&
-          cell_bounds=current%bounds)
-        print*, 'Test Code: not time'
-     endif
-     current=>current%next
-  enddo
-
-  print*,'Test Code: CMOR VARCMOR VARCMOR VARCMOR'
-
-  mymiss=1.e20
-  myvar=cmor_variable('Tables/CMIP5_Amon',&
-       'ta',&
-       'K',&
-       myaxis,&
-       missing_value=mymiss)
-
-!! figures out length of dimension other than time
-
-  j=ntot/mydims%n
-!!$  print*, 'Test Code: &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'
-!!$  print*,'Test Code: before:', shape(arrayin),mydims%n
-!!$  print*,'Test Code: before:', shape(arrayin(:,i,:))
-!!$  print*, 'Test Code: time before:',mydims%next%values(i:i)
-  current=>mydims%next%next
-print*, 'Test Code: values:',current%values
-print*, 'Test Code: bounds:',current%bounds
-print*, 'Test Code: N:',current%n
-do i=1,current%n
-  smallarray=666. ! initialize smallarray at some bad value
-  ierr=1
-  !put time i into it
-  do l = 1, dimlength(4)
-     do k = 1, dimlength(3)
-        do j = 1, dimlength(1)
-           smallarray(j,k,l)=arrayin(j,i,k,l)
-        enddo
-     enddo
-  enddo
-  ierr = cmor_write( &
-       var_id        = myvar, &
-       data          = smallarray, &
-       ntimes_passed = 1 &
-       )
-enddo
-ierr = cmor_close(myvar)
-
-contains
-  subroutine allocate_dims(file_id,mydims,ndim,dimlength)
-    implicit none
-    integer i,n,j,tmp,file_id
-    integer, intent(inout)::ndim
-    integer, intent(inout):: dimlength(7)
-    type(dims) , pointer :: tmpdims,mydims
-    read(file_id,'(i8)') ndim
-!!$    allocate(dimlength(ndim))
-    n=1
-    allocate(mydims)
-    tmpdims=>mydims
-    do i = 1, ndim
-       read(file_id,'(I8)') tmp
-!!$print*,'Test Code: allocatedat:',tmp
-       dimlength(5-i)=tmp
-       allocate(tmpdims%values(tmp))
-       allocate(tmpdims%bounds(2,tmp))
-       tmpdims%n=tmp
-       allocate(tmpdims%next)
-       tmpdims=>tmpdims%next
-       n=n*tmp
-    enddo
-    deallocate(tmpdims)
-  end subroutine allocate_dims
-  
-  subroutine read_ascii(file_unit,mydims,ndim,ntot,arrayin)
-    implicit none
-    type(dims), pointer::  mydims
-    double precision, dimension(:,:,:,:),intent(inout) :: arrayin
-!    real, dimension(:,:,:,:),intent(inout) :: arrayin
-    type(dims), pointer ::  current
-    integer, intent(in)::ndim,file_unit
-    integer n,ntot,i,j,k,l,m
-    
-    current=>mydims
-    ntot=1
-    do i =1,ndim
-       n=current%n
-       ntot=ntot*n
-       read(file_unit,'(A)') current%name
-       print*, 'Test Code: NAME is:',current%name,trim(adjustl(mydims%name))
-       if (current%name.eq."pressure") current%name="plevs"
-       read(file_unit,'(A)') current%units
-       read(file_unit,*) (current%values(j),j=1,n)
-       read(file_unit,*) ((current%bounds(j,k),j=1,2),k=1,n)
-       print*, 'Test Code: ',current%bounds(1,1),current%bounds(1,2)
-       current=>current%next
-    enddo
-print*, 'Test Code: arrayin shape:',shape(arrayin)
-    read(file_unit,*) ((((arrayin(j,k,l,m),j=1,size(arrayin,1)),k=1,size(arrayin,2)),l=1,size(arrayin,3)),m=1,size(arrayin,4))
-print*, 'Test Code: done!'
-print* ,'Test Code: ',trim(adjustl(mydims%name))
-  end subroutine read_ascii
-
-end program main
-
diff --git a/Test/mytest_4d_d_big_array_5.f90 b/Test/mytest_4d_d_big_array_5.f90
deleted file mode 100644
index 26bff82..0000000
--- a/Test/mytest_4d_d_big_array_5.f90
+++ /dev/null
@@ -1,204 +0,0 @@
-program main
-
-  USE cmor_users_functions
-  implicit none
-
-  integer ncid
-
-  type dims
-     integer n
-     character(256) name
-     character(256) units
-     double precision, DIMENSION(:), pointer :: values
-     double precision, DIMENSION(:,:), pointer :: bounds     
-     type(dims), pointer :: next
-  end type dims
-  character(256) filein
-  type(dims), pointer :: mydims,current
-  integer ndim,i,j,ntot,k,l
-  double precision, allocatable, dimension(:,:,:,:):: arrayin
-!  real, allocatable, dimension(:,:,:,:):: arrayin
-  double precision, allocatable :: bigarray(:,:,:,:)
-  integer, dimension(7):: dimlength = (/ (1,i=1,7) /)
-  integer, PARAMETER::verbosity = 2
-  integer ierr
-  integer, allocatable, dimension(:) :: myaxis
-  integer myvar
-  real amin,amax,mymiss
-  double precision bt
-  bt=0.
-  print*, 'Test Code: hi'
-  filein='Test/ta_4D_r.asc'
-  open(unit=23,file=filein,form='formatted') 
-  call allocate_dims(23,mydims,ndim,dimlength)
-  allocate(myaxis(ndim))
-  allocate(arrayin(dimlength(1),dimlength(2),dimlength(3),dimlength(4)))
-  allocate(bigarray(dimlength(1)+10,dimlength(2)+10,dimlength(3)+10,dimlength(4)+10))
-  print*,'Test Code: allocate data    :',shape(arrayin),'dims:',dimlength(1),dimlength(2),dimlength(3),dimlength(4)
-  print*,'Test Code: allocate data big:',shape(bigarray)
-  current=>mydims
-  ntot=1
-  do i =1,ndim
-     ntot=ntot*current%n
-     current=>current%next
-  enddo
-  call read_ascii(23,mydims, ndim,ntot,arrayin)
-!!$!! Ok here is the part where we define or variable/axis,etc... 
-!!$!! Assuming that Karl's code is ok...
-!!$
-
-  print*, 'Test Code: putting everything into the big array contiguous fortran order means faster moving is first element'
-  bigarray=666. ! initialize bigarray at some bad value
-  ierr=1
-  do l = 1, dimlength(4)
-     do k = 1, dimlength(3)
-        do j = 1, dimlength(2)
-           do i = 1, dimlength(1)
-              bigarray(i,j,k,l)=arrayin(i,j,k,l)
-              ierr=ierr+1
-           enddo
-        enddo
-     enddo
-  enddo
-
-  print*,'Test Code: CMOR SETUP'
-!!$  
-  ierr = cmor_setup(inpath='Test',   &
-       netcdf_file_action='replace',                                       &
-       set_verbosity=1,                                                    &
-       exit_control=1)
-    
-  print*,'Test Code: CMOR DATASET'
-  ierr = cmor_dataset(                                   &
-       outpath='Test',         &
-       experiment_id='abrupt 4XCO2',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       ' Geneva, Switzerland)',                                &
-       source='GICCM1  2002(giccm_0_brnchT_itea_2, T63L32)',    &
-       calendar='noleap',                                      &
-       realization=1,                                          &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also ' //          &
-       'see http://www.GICC.su/giccm/doc/index.html '  //      &
-       ' 2XCO2 simulation described in Dorkey et al. '//       &
-       '(Clim. Dyn., 2003, 323-357.)',model_id='GICCM1', &
-       forcing='TO',contact="Barry Bonds",institute_id="PCMDI",&
-       parent_experiment_id="N/A",branch_time=bt)
-  
-  current=>mydims
-  do i = 0,ndim-1
-     print*,'Test Code: CMOR AXIS',i,'AAAAAAA*************************************************************************'
-     print*, 'Test Code: Name:',trim(adjustl(current%name))
-!!$     print*, 'Test Code: ',current%units
-!!$     print*, 'Test Code: ',current%n,size(current%values)
-!!$     print*, 'Test Code: ',current%values(1:min(4,size(current%values)))
-!!$     print*, 'Test Code: ',current%bounds(1:2,1:min(4,size(current%values)))
-     if (trim(adjustl(current%name)).eq.'time') then
-        print*, 'Test Code: time found','with ',current%n,'times'
-        myaxis(ndim-i)=cmor_axis('Tables/CMIP5_Amon', &
-          table_entry=current%name,&
-          units=current%units,&
-          length=current%n,&
-          coord_vals=current%values,&
-          cell_bounds=current%bounds, &
-          interval='31 days')
-     else
-     myaxis(ndim-i)=cmor_axis('Tables/CMIP5_Amon', &
-          table_entry=current%name,&
-          units=current%units,&
-          length=current%n,&
-          coord_vals=current%values,&
-          cell_bounds=current%bounds)
-        print*, 'Test Code: not time'
-     endif
-     current=>current%next
-  enddo
-
-  print*,'Test Code: CMOR VARCMOR VARCMOR VARCMOR'
-
-  mymiss=1.e20
-  myvar=cmor_variable('Tables/CMIP5_Amon',&
-       'ta',&
-       'K',&
-       myaxis,&
-       missing_value=mymiss)
-
-!! figures out length of dimension other than time
-
-  j=ntot/mydims%n
-!!$  print*, 'Test Code: &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'
-!!$  print*,'Test Code: before:', shape(arrayin),mydims%n
-!!$  print*,'Test Code: before:', shape(arrayin(:,i,:))
-!!$  print*, 'Test Code: time before:',mydims%next%values(i:i)
-  current=>mydims%next%next
-print*, 'Test Code: values:',current%values
-print*, 'Test Code: bounds:',current%bounds
-print*, 'Test Code: N:',current%n
-  ierr = cmor_write( &
-       var_id        = myvar, &
-       data          = bigarray &
-       )
-  ierr = cmor_close()
-
-contains
-  subroutine allocate_dims(file_id,mydims,ndim,dimlength)
-    implicit none
-    integer i,n,j,tmp,file_id
-    integer, intent(inout)::ndim
-    integer, intent(inout):: dimlength(7)
-    type(dims) , pointer :: tmpdims,mydims
-    read(file_id,'(i8)') ndim
-!!$    allocate(dimlength(ndim))
-    n=1
-    allocate(mydims)
-    tmpdims=>mydims
-    do i = 1, ndim
-       read(file_id,'(I8)') tmp
-!!$print*,'Test Code: allocatedat:',tmp
-       dimlength(5-i)=tmp
-       allocate(tmpdims%values(tmp))
-       allocate(tmpdims%bounds(2,tmp))
-       tmpdims%n=tmp
-       allocate(tmpdims%next)
-       tmpdims=>tmpdims%next
-       n=n*tmp
-    enddo
-    deallocate(tmpdims)
-  end subroutine allocate_dims
-  
-  subroutine read_ascii(file_unit,mydims,ndim,ntot,arrayin)
-    implicit none
-    type(dims), pointer::  mydims
-    double precision, dimension(:,:,:,:),intent(inout) :: arrayin
-!    real, dimension(:,:,:,:),intent(inout) :: arrayin
-    type(dims), pointer ::  current
-    integer, intent(in)::ndim,file_unit
-    integer n,ntot,i,j,k,l,m
-    
-    current=>mydims
-    ntot=1
-    do i =1,ndim
-       n=current%n
-       ntot=ntot*n
-       read(file_unit,'(A)') current%name
-       print*, 'Test Code: NAME is:',current%name,trim(adjustl(mydims%name))
-       if (current%name.eq."pressure") current%name="plevs"
-       read(file_unit,'(A)') current%units
-       read(file_unit,*) (current%values(j),j=1,n)
-       read(file_unit,*) ((current%bounds(j,k),j=1,2),k=1,n)
-       print*, 'Test Code: ',current%bounds(1,1),current%bounds(1,2)
-       current=>current%next
-    enddo
-print*, 'Test Code: arrayin shape:',shape(arrayin)
-    read(file_unit,*) ((((arrayin(j,k,l,m),j=1,size(arrayin,1)),k=1,size(arrayin,2)),l=1,size(arrayin,3)),m=1,size(arrayin,4))
-print*, 'Test Code: done!'
-print* ,'Test Code: ',trim(adjustl(mydims%name))
-  end subroutine read_ascii
-
-end program main
-
diff --git a/Test/mytest_4d_r.f90 b/Test/mytest_4d_r.f90
deleted file mode 100644
index 89ae6d2..0000000
--- a/Test/mytest_4d_r.f90
+++ /dev/null
@@ -1,189 +0,0 @@
-program main
-
-  USE cmor_users_functions
-  implicit none
-
-  integer ncid
-
-  type dims
-     integer n
-     character(256) name
-     character(256) units
-     double precision, DIMENSION(:), pointer :: values
-     double precision, DIMENSION(:,:), pointer :: bounds     
-     type(dims), pointer :: next
-  end type dims
-  character(256) filein
-  type(dims), pointer :: mydims,current
-  integer ndim,i,j,ntot,k,l
-!  double precision, allocatable, dimension(:,:,:,:):: arrayin
-  real, allocatable, dimension(:,:,:,:):: arrayin
-  integer, dimension(7):: dimlength = (/ (1,i=1,7) /)
-  integer, PARAMETER::verbosity = 2
-  integer ierr
-  integer, allocatable, dimension(:) :: myaxis
-  integer myvar
-  real amin,amax,mymiss
-  double precision bt
-  bt=0.
-  print*, 'hi'
-  filein='Test/ta_4D_r.asc'
-  open(unit=23,file=filein,form='formatted') 
-  call allocate_dims(23,mydims,ndim,dimlength)
-  allocate(myaxis(ndim))
-  allocate(arrayin(dimlength(1),dimlength(2),dimlength(3),dimlength(4)))
-  print*,'allocatedat:',shape(arrayin),dimlength(1),dimlength(2),dimlength(3),dimlength(4)
-  current=>mydims
-  ntot=1
-  do i =1,ndim
-     ntot=ntot*current%n
-     current=>current%next
-  enddo
-  call read_ascii(23,mydims, ndim,ntot,arrayin)
-!!$!! Ok here is the part where we define or variable/axis,etc... 
-!!$!! Assuming that Karl's code is ok...
-!!$
-  print*,'CMOR SETUP'
-!!$  
-  ierr = cmor_setup(inpath='Test',   &
-       netcdf_file_action='replace',                                       &
-       set_verbosity=1,                                                    &
-       exit_control=1)
-    
-  print*,'CMOR DATASET'
-  ierr = cmor_dataset(                                   &
-       outpath='Test',         &
-       experiment_id='abrupt 4XCO2',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       ' Geneva, Switzerland)',                                &
-       source='GICCM1  2002(giccm_0_brnchT_itea_2, T63L32)',    &
-       calendar='noleap',                                      &
-       realization=1,                                          &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also ' //          &
-       'see http://www.GICC.su/giccm/doc/index.html '  //      &
-       ' 2XCO2 simulation described in Dorkey et al. '//       &
-       '(Clim. Dyn., 2003, 323-357.)', &
-       model_id="GICCM1",&
-       forcing='TO',contact="Barry Bonds",institute_id="PCMDI",&
-       parent_experiment_id="N/A",branch_time=bt)
-  
-  current=>mydims
-  do i = 0,ndim-1
-     print*,'CMOR AXIS',i,'AAAAAAA*************************************************************************'
-     print*, 'Name:',trim(adjustl(current%name))
-!!$     print*, current%units
-!!$     print*, current%n,size(current%values)
-!!$     print*, current%values(1:min(4,size(current%values)))
-!!$     print*, current%bounds(1:2,1:min(4,size(current%values)))
-     if (trim(adjustl(current%name)).eq.'time') then
-        print*, 'time found'
-     myaxis(ndim-i)=cmor_axis('Tables/CMIP5_Amon', &
-          table_entry=current%name,&
-          units=current%units,&
-          length=current%n,&
-!!$          coord_vals=current%values,&
-!!$          cell_bounds=current%bounds, &
-          interval='1 month')
-     else
-     myaxis(ndim-i)=cmor_axis('Tables/CMIP5_Amon', &
-          table_entry=current%name,&
-          units=current%units,&
-          length=current%n,&
-          coord_vals=current%values,&
-          cell_bounds=current%bounds)
-        print*, 'not time'
-     endif
-     current=>current%next
-  enddo
-
-  print*,'CMOR VARCMOR VARCMOR VARCMOR'
-
-  mymiss=1.e20
-  myvar=cmor_variable('Tables/CMIP5_Amon',&
-       'ta',&
-       'K',&
-       myaxis,&
-       missing_value=mymiss)
-
-!! figures out length of dimension other than time
-
-  j=ntot/mydims%n
-!!$  print*, '&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'
-!!$  print*,'before:', shape(arrayin),mydims%n
-!!$  print*,'before:', shape(arrayin(:,i,:))
-!!$  print*, 'time before:',mydims%next%values(i:i)
-  current=>mydims%next%next
-print*, 'values:',current%values
-print*, 'bounds:',current%bounds
-print*, 'N:',current%n
-  ierr =  cmor_write( &
-       myvar, &
-       arrayin, &
-       ntimes_passed = current%n, &
-       time_vals     = current%values,  &
-       time_bnds     = current%bounds &
-       )
-  ierr = cmor_close()
-
-contains
-  subroutine allocate_dims(file_id,mydims,ndim,dimlength)
-    implicit none
-    integer i,n,j,tmp,file_id
-    integer, intent(inout)::ndim
-    integer, intent(inout):: dimlength(7)
-    type(dims) , pointer :: tmpdims,mydims
-    read(file_id,'(i8)') ndim
-!!$    allocate(dimlength(ndim))
-    n=1
-    allocate(mydims)
-    tmpdims=>mydims
-    do i = 1, ndim
-       read(file_id,'(I8)') tmp
-!!$print*,'allocatedat:',tmp
-       dimlength(5-i)=tmp
-       allocate(tmpdims%values(tmp))
-       allocate(tmpdims%bounds(2,tmp))
-       tmpdims%n=tmp
-       allocate(tmpdims%next)
-       tmpdims=>tmpdims%next
-       n=n*tmp
-    enddo
-    deallocate(tmpdims)
-  end subroutine allocate_dims
-  
-  subroutine read_ascii(file_unit,mydims,ndim,ntot,arrayin)
-    implicit none
-    type(dims), pointer::  mydims
-!    double precision, dimension(:,:,:),intent(inout) :: arrayin
-    real, dimension(:,:,:,:),intent(inout) :: arrayin
-!    integer, dimension(ndim)
-    type(dims), pointer ::  current
-    integer, intent(in)::ndim,file_unit
-    integer n,ntot,i,j,k,l,m
-    
-    current=>mydims
-    ntot=1
-    do i =1,ndim
-       n=current%n
-       ntot=ntot*n
-       read(file_unit,'(A)') current%name
-       print*, 'NAME is:',current%name,trim(adjustl(mydims%name))
-       if (current%name.eq."pressure") current%name="plevs"
-       read(file_unit,'(A)') current%units
-       read(file_unit,*) (current%values(j),j=1,n)
-       read(file_unit,*) ((current%bounds(j,k),j=1,2),k=1,n)
-       print*, current%bounds(1,1),current%bounds(1,2)
-       current=>current%next
-    enddo
-    read(file_unit,*) ((((arrayin(j,k,l,m),j=1,size(arrayin,1)),k=1,size(arrayin,2)),l=1,size(arrayin,3)),m=1,size(arrayin,4))
-print* ,trim(adjustl(mydims%name))
-  end subroutine read_ascii
-
-end program main
-
diff --git a/Test/mytest_4d_r_big_array.f90 b/Test/mytest_4d_r_big_array.f90
deleted file mode 100644
index d08d690..0000000
--- a/Test/mytest_4d_r_big_array.f90
+++ /dev/null
@@ -1,204 +0,0 @@
-program main
-
-  USE cmor_users_functions
-  implicit none
-
-  integer ncid
-
-  type dims
-     integer n
-     character(256) name
-     character(256) units
-     double precision, DIMENSION(:), pointer :: values
-     double precision, DIMENSION(:,:), pointer :: bounds     
-     type(dims), pointer :: next
-  end type dims
-  character(256) filein
-  type(dims), pointer :: mydims,current
-  integer ndim,i,j,ntot,k,l
-  double precision, allocatable, dimension(:,:,:,:):: arrayin
-!  real, allocatable, dimension(:,:,:,:):: arrayin
-  double precision, allocatable :: bigarray(:,:,:,:)
-  integer, dimension(7):: dimlength = (/ (1,i=1,7) /)
-  integer, PARAMETER::verbosity = 2
-  integer ierr
-  integer, allocatable, dimension(:) :: myaxis
-  integer myvar
-  real amin,amax,mymiss
-  double precision bt
-  bt=0.
-  print*, 'Test Code: hi'
-  filein='Test/ta_4D_r.asc'
-  open(unit=23,file=filein,form='formatted') 
-  call allocate_dims(23,mydims,ndim,dimlength)
-  allocate(myaxis(ndim))
-  allocate(arrayin(dimlength(1),dimlength(2),dimlength(3),dimlength(4)))
-  allocate(bigarray(dimlength(1)+10,dimlength(2)+10,dimlength(3)+10,dimlength(4)+10))
-  print*,'Test Code: allocate data    :',shape(arrayin),'dims:',dimlength(1),dimlength(2),dimlength(3),dimlength(4)
-  print*,'Test Code: allocate data big:',shape(bigarray)
-  current=>mydims
-  ntot=1
-  do i =1,ndim
-     ntot=ntot*current%n
-     current=>current%next
-  enddo
-  call read_ascii(23,mydims, ndim,ntot,arrayin)
-!!$!! Ok here is the part where we define or variable/axis,etc... 
-!!$!! Assuming that Karl's code is ok...
-!!$
-
-  print*, 'Test Code: putting everything into the big array'
-  bigarray=666. ! initialize bigarray at some bad value
-  do i = 1, dimlength(1)
-     do j = 1, dimlength(2)
-        do k = 1, dimlength(3)
-           do l = 1, dimlength(4)
-              bigarray(i,j,k,l)=arrayin(i,j,k,l)
-           enddo
-        enddo
-     enddo
-  enddo
-
-  print*,'Test Code: CMOR SETUP'
-!!$  
-  ierr = cmor_setup(inpath='Test',   &
-       netcdf_file_action='replace',                                       &
-       set_verbosity=1,                                                    &
-       exit_control=1)
-    
-  print*,'Test Code: CMOR DATASET'
-  ierr = cmor_dataset(                                   &
-       outpath='Test',         &
-       experiment_id='abrupt 4XCO2',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       ' Geneva, Switzerland)',                                &
-       source='GICCM1  2002(giccm_0_brnchT_itea_2, T63L32)',    &
-       calendar='360_day',                                      &
-       realization=1,                                          &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also ' //          &
-       'see http://www.GICC.su/giccm/doc/index.html '  //      &
-       ' 2XCO2 simulation described in Dorkey et al. '//       &
-       '(Clim. Dyn., 2003, 323-357.)', model_id="GICCM1", &
-       forcing='TO',contact="Barry Bonds",institute_id="PCMDI",&
-       parent_experiment_id="N/A",branch_time=bt)
-  current=>mydims
-  do i = 0,ndim-1
-     print*,'Test Code: CMOR AXIS',i,'AAAAAAA*************************************************************************'
-     print*, 'Test Code: Name:',trim(adjustl(current%name))
-!!$     print*, 'Test Code: ',current%units
-!!$     print*, 'Test Code: ',current%n,size(current%values)
-!!$     print*, 'Test Code: ',current%values(1:min(4,size(current%values)))
-!!$     print*, 'Test Code: ',current%bounds(1:2,1:min(4,size(current%values)))
-     if (trim(adjustl(current%name)).eq.'time') then
-        print*, 'Test Code: time found'
-        myaxis(ndim-i)=cmor_axis('Tables/CMIP5_Amon', &
-          table_entry=current%name,&
-          units=current%units,&
-          length=current%n,&
-!!$          coord_vals=current%values,&
-!!$          cell_bounds=current%bounds, &
-          interval='1 month')
-     else
-     myaxis(ndim-i)=cmor_axis('Tables/CMIP5_Amon', &
-          table_entry=current%name,&
-          units=current%units,&
-          length=current%n,&
-          coord_vals=current%values,&
-          cell_bounds=current%bounds)
-        print*, 'Test Code: not time'
-     endif
-     current=>current%next
-  enddo
-
-  print*,'Test Code: CMOR VARCMOR VARCMOR VARCMOR'
-
-  mymiss=1.e20
-  myvar=cmor_variable('Tables/CMIP5_Amon',&
-       'ta',&
-       'K',&
-       myaxis,&
-       missing_value=mymiss)
-
-!! figures out length of dimension other than time
-
-  j=ntot/mydims%n
-!!$  print*, 'Test Code: &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'
-!!$  print*,'Test Code: before:', shape(arrayin),mydims%n
-!!$  print*,'Test Code: before:', shape(arrayin(:,i,:))
-!!$  print*, 'Test Code: time before:',mydims%next%values(i:i)
-  current=>mydims%next%next
-print*, 'Test Code: values:',current%values
-print*, 'Test Code: bounds:',current%bounds
-print*, 'Test Code: N:',current%n
-  ierr = cmor_write( &
-       var_id        = myvar, &
-       data          = bigarray, &
-       ntimes_passed = current%n, &
-       time_vals     = current%values,  &
-       time_bnds     = current%bounds &
-       )
-  ierr = cmor_close()
-
-contains
-  subroutine allocate_dims(file_id,mydims,ndim,dimlength)
-    implicit none
-    integer i,n,j,tmp,file_id
-    integer, intent(inout)::ndim
-    integer, intent(inout):: dimlength(7)
-    type(dims) , pointer :: tmpdims,mydims
-    read(file_id,'(i8)') ndim
-!!$    allocate(dimlength(ndim))
-    n=1
-    allocate(mydims)
-    tmpdims=>mydims
-    do i = 1, ndim
-       read(file_id,'(I8)') tmp
-!!$print*,'Test Code: allocatedat:',tmp
-       dimlength(5-i)=tmp
-       allocate(tmpdims%values(tmp))
-       allocate(tmpdims%bounds(2,tmp))
-       tmpdims%n=tmp
-       allocate(tmpdims%next)
-       tmpdims=>tmpdims%next
-       n=n*tmp
-    enddo
-    deallocate(tmpdims)
-  end subroutine allocate_dims
-  
-  subroutine read_ascii(file_unit,mydims,ndim,ntot,arrayin)
-    implicit none
-    type(dims), pointer::  mydims
-    double precision, dimension(:,:,:,:),intent(inout) :: arrayin
-!    real, dimension(:,:,:,:),intent(inout) :: arrayin
-    type(dims), pointer ::  current
-    integer, intent(in)::ndim,file_unit
-    integer n,ntot,i,j,k,l,m
-    
-    current=>mydims
-    ntot=1
-    do i =1,ndim
-       n=current%n
-       ntot=ntot*n
-       read(file_unit,'(A)') current%name
-       print*, 'Test Code: NAME is:',current%name,trim(adjustl(mydims%name))
-       if (current%name.eq."pressure") current%name="plevs"
-       read(file_unit,'(A)') current%units
-       read(file_unit,*) (current%values(j),j=1,n)
-       read(file_unit,*) ((current%bounds(j,k),j=1,2),k=1,n)
-       print*, 'Test Code: ',current%bounds(1,1),current%bounds(1,2)
-       current=>current%next
-    enddo
-print*, 'Test Code: arrayin shape:',shape(arrayin)
-    read(file_unit,*) ((((arrayin(j,k,l,m),j=1,size(arrayin,1)),k=1,size(arrayin,2)),l=1,size(arrayin,3)),m=1,size(arrayin,4))
-print*, 'Test Code: done!'
-print* ,'Test Code: ',trim(adjustl(mydims%name))
-  end subroutine read_ascii
-
-end program main
-
diff --git a/Test/nc2asc.py b/Test/nc2asc.py
deleted file mode 100755
index 88f2600..0000000
--- a/Test/nc2asc.py
+++ /dev/null
@@ -1,84 +0,0 @@
-#!/usr/bin/env python
-
-import cdms2,sys, genutil
-cdms2.setAutoBounds('on')
-
-type = 'd'
-
-order='zxty'
-#order='xty'
-#order = None
-#order= 'txy'
-var ='ta'
-if len(sys.argv)>2:
-	fnm=sys.argv[1]
-	fout=sys.argv[2]
-else:
-	fnm='/ipcc/20c3m/atm/mo/%s/ncar_ccsm3_0/run1/%s_A1.20C3M_1.CCSM.atmm.1870-01_cat_1879-12.nc' % (var,var)
-	fout='Test/%s.asc' % (var)
-
-f=cdms2.open(fnm)
-
-ntimes= 3
-print 'var:',var
-#s=f(var,time=slice(0,3),latitude=(-20,20),order=order,squeeze=1)
-if order is not None:
-	if order.find('z')>-1:
-		s=f(var,time=slice(0,ntimes),order=order,squeeze=1,longitude=(-180,180,'con'),level=slice(5,12))
-		print s.getLevel()[:]
-	else:
-		s=f(var,time=slice(0,ntimes),order=order,squeeze=1,longitude=(-180,180,'con'))
-else:
-	s=f(var,time=slice(0,ntimes),squeeze=1)
-#s=s[:,::4,::4]
-print 'Read in',s.shape
-try:
-	p=s.getLevel()
-	p.id='pressure'
-	p.units='Pa'
-except:
-	pass
-#print genutil.minmax(s)
-f.close()
-
-f=open(fout,'w')
-
-ndim=s.rank()
-print 'Dumping'
-print >>f, s.id
-print >>f, s.units
-print >>f, ndim
-
-for i in range(ndim):
-    ax=s.getAxis(i)
-    print >>f, len(ax)
-	
-for i in range(ndim):
-    ax=s.getAxis(i)
-    if ax.isLatitude():
-	    print >>f, 'latitude'
-    elif ax.isLongitude():
-	    print >>f,'longitude'
-    else:
-	    print >>f, ax.id
-    print >>f, ax.units
-    print  ax.id
-    print  ax.units
-    for j in ax[:]:
-        print >>f, j,
-    print >>f
-    for j in ax.getBounds().flat[:]:
-        print >>f, j,
-    print >>f
-f.flush()
-
-s=s.filled(120).astype(type)
-s=s.flat
-j=0
-for i in s[:]:
-    print >>f, i,
-    j+=1
-print >>f
-print j,s[-1]
-
-f.close()
diff --git a/Test/noinput b/Test/noinput
deleted file mode 100644
index afcf4f8..0000000
--- a/Test/noinput
+++ /dev/null
@@ -1,2 +0,0 @@
-Test/tas.asc
-
diff --git a/Test/old_cmor_tables/climatology_test_code.f90 b/Test/old_cmor_tables/climatology_test_code.f90
deleted file mode 100644
index a274be6..0000000
--- a/Test/old_cmor_tables/climatology_test_code.f90
+++ /dev/null
@@ -1,355 +0,0 @@
-!!$pgf90 -I/work/NetCDF/5.1/include -L/work/NetCDF/5.1/lib -l netcdf -L. -l cmor Test/test_dimensionless.f90 -IModules -o cmor_test
-!!$pgf90 -g -I/pcmdi/charles_work/NetCDF/include -L/pcmdi/charles_work/NetCDF/lib -lnetcdf -module Modules -IModules -L. -lcmor -I/pcmdi/charles_work/Unidata/include -L/pcmdi/charles_work/Unidata/lib -ludunits Test/test_dimensionless.f90 -o cmor_test
-
-MODULE local_subs
-
-  USE cmor_users_functions
-  PRIVATE
-  PUBLIC read_coords, read_time, read_3d_input_files, read_2d_input_files
-CONTAINS
-  
-  SUBROUTINE read_coords(alats, alons, bnds_lat, bnds_lon)
-
-    IMPLICIT NONE
-    
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alats
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alons
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lat
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lon
-    
-    INTEGER :: i
-    
-    DO i = 1, SIZE(alons)
-       alons(i) = (i-1)*360./SIZE(alons)
-       bnds_lon(1,i) = (i - 1.5)*360./SIZE(alons)
-       bnds_lon(2,i) = (i - 0.5)*360./SIZE(alons)
-    END DO
-    
-    DO i = 1, SIZE(alats)
-       alats(i) = (size(alats)+1-i)*10
-       bnds_lat(1,i) = (size(alats)+1-i)*10 + 5.
-       bnds_lat(2,i) = (size(alats)+1-i)*10 - 5.
-    END DO
-      
-    RETURN
-  END SUBROUTINE read_coords
-
-  SUBROUTINE read_time(it, time, time_bnds)
-    
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: time
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: time_bnds
-
-    INTEGER :: i
-    
-    DO i=1,SIZE(time)
-       time(i) = (it-1)*30.+ (i-.5)/SIZE(time)
-       time_bnds(1,i) = (it-1)*30.+ (i-1)*1.0/SIZE(time)
-       time_bnds(2,i) = (it-1)*30.+ i*1.0/SIZE(time) + 29.
-       print*, i,time_bnds(1,i),time(i),time_bnds(2,i)
-    END DO
-    
-    RETURN
-  END SUBROUTINE read_time
-  
-
-  SUBROUTINE read_2d_input_files(it, varname, field)
-
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    CHARACTER(len=*), INTENT(IN) :: varname
-    REAL, INTENT(OUT), DIMENSION(:,:,:) :: field
-    
-    INTEGER :: i, j, k
-    REAL :: factor, offset
-    CHARACTER(len=LEN(varname)) :: tmp
-    
-    tmp = TRIM(ADJUSTL(varname))
-
-    factor = 2.2
-    offset = -220.
-    
-    DO k=1,SIZE(field,3)
-       DO j=1,SIZE(field, 2)
-          DO i=1,SIZE(field, 1)
-             field(i,size(field,2)+1-j,k) = ((k-1)*0.005 + (j-1)*16 + (i-1)*4 + it)*factor - offset
-          END DO
-       END DO
-    END DO
-
-  END SUBROUTINE read_2d_input_files
-
-END MODULE local_subs
-
-
-PROGRAM ipcc_test_code
-!
-!   Purpose:   To serve as a generic example of an application that
-!       uses the "Climate Model Output Rewriter" (CMOR)
-
-!    CMOR writes CF-compliant netCDF files.
-!    Its use is strongly encouraged by the IPCC and is intended for use 
-!       by those participating in many community-coordinated standard 
-!       climate model experiments (e.g., AMIP, CMIP, CFMIP, PMIP, APE,
-!       etc.)
-!
-!   Background information for this sample code:
-!
-!      Atmospheric standard output requested by IPCC are listed in 
-!   tables available on the web.  Monthly mean output is found in
-!   tables A1a and A1c.  This sample code processes only two 3-d 
-!   variables listed in table A1c ("monthly mean atmosphere 3-D data" 
-!   and only four 2-d variables listed in table A1a ("monthly mean 
-!   atmosphere + land surface 2-D (latitude, longitude) data").  The 
-!   extension to many more fields is trivial.
-!
-!      For this example, the user must fill in the sections of code that 
-!   extract the 3-d and 2-d fields from his monthly mean "history" 
-!   files (which usually contain many variables but only a single time 
-!   slice).  The CMOR code will write each field in a separate file, but 
-!   many monthly mean time-samples will be stored together.  These 
-!   constraints partially determine the structure of the code.
-!
-!
-!   Record of revisions:
-
-!       Date        Programmer(s)           Description of change
-!       ====        ==========              =====================
-!      10/22/03     Rusty Koder              Original code
-!       1/28/04     Les R. Koder             Revised to be consistent
-!                                            with evolving code design
-
-! include module that contains the user-accessible cmor functions.
-  USE cmor_users_functions
-  USE local_subs
-
-  IMPLICIT NONE
-
-  !   dimension parameters:
-  ! ---------------------------------
-  INTEGER, PARAMETER :: ntimes = 2    ! number of time samples to process
-  INTEGER, PARAMETER :: lon = 4       ! number of longitude grid cells  
-  INTEGER, PARAMETER :: lat = 3       ! number of latitude grid cells
-  INTEGER, PARAMETER :: n2d = 1       ! number of IPCC Table A1a fields to be
-                                      !     output.
-  !   Tables associating the user's variables with IPCC standard output 
-  !   variables.  The user may choose to make this association in a 
-  !   different way (e.g., by defining values of pointers that allow him 
-  !   to directly retrieve data from a data record containing many 
-  !   different variables), but in some way the user will need to map his 
-  !   model output onto the Tables specifying the MIP standard output.
-
-  ! ----------------------------------
-
-                                ! My variable names for IPCC Table A1a fields
-  CHARACTER (LEN=4), DIMENSION(n2d) :: &
-                  varin2d=(/  'TSURF' /)
-
-                                ! Units appropriate to my data
-   CHARACTER (LEN=1), DIMENSION(n2d) :: &
-                          units2d=(/ 'K'/)
-
-   CHARACTER (LEN=4), DIMENSION(n2d) :: &
-                      positive2d= (/  '    ' /)
-
-                     ! Corresponding IPCC Table A1a entry (variable name) 
-  CHARACTER (LEN=10), DIMENSION(n2d) :: &
-                        entry2d = (/ 'tasDiurnal' /)
-
-!  uninitialized variables used in communicating with CMOR:
-!  ---------------------------------------------------------
-
-  INTEGER :: error_flag
-  INTEGER, DIMENSION(n2d) :: var2d_ids
-  REAL, DIMENSION(lon,lat,24) :: data2d
-  DOUBLE PRECISION, DIMENSION(lat) :: alats
-  DOUBLE PRECISION, DIMENSION(lon) :: alons
-  DOUBLE PRECISION, DIMENSION(24) :: time
-  DOUBLE PRECISION, DIMENSION(2,24):: bnds_time
-  DOUBLE PRECISION, DIMENSION(2,lat) :: bnds_lat
-  DOUBLE PRECISION, DIMENSION(2,lon) :: bnds_lon
-  INTEGER :: ilon, ilat, ipres, itim
-
-
-  !  Other variables:
-  !  ---------------------
-  
-  INTEGER :: it, m  
-  
-  ! ================================
-  !  Execution begins here:
-  ! ================================
-  
-  ! Read coordinate information from model into arrays that will be passed 
-  !   to CMOR.
-  ! Read latitude, longitude, and pressure coordinate values into 
-  !   alats, alons, and plevs, respectively.  Also generate latitude and 
-  !   longitude bounds, and store in bnds_lat and bnds_lon, respectively.
-  !   Note that all variable names in this code can be freely chosen by
-  !   the user.
-
-  !   The user must write the subroutine that fills the coordinate arrays 
-  !   and their bounds with actual data.  The following line is simply a
-  !   a place-holder for the user's code, which should replace it.
-  
-  !  *** possible user-written call ***
-  
-  call read_coords(alats, alons, bnds_lat, bnds_lon)
-  
-  ! Specify path where tables can be found and indicate that existing 
-  !    netCDF files should not be overwritten.
-  
-  error_flag = cmor_setup(inpath='Test', netcdf_file_action='replace',logfile="climatology_test_code.LOG")
-  
-  ! Define dataset as output from the GICC model (first member of an
-  !   ensemble of simulations) run under IPCC 2xCO2 equilibrium
-  !   experiment conditions, and provide information to be included as 
-  !   attributes in all CF-netCDF files written as part of this dataset.
-
-  error_flag = cmor_dataset(                                   &
-       outpath='Test',                                         &
-       experiment_id='2xCO2 equilibrium experiment',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       'Geneva, Switzerland)',                                 &
-       source='GICCM1 (2002): ' //                             &
-       'atmosphere:  GICAM3 (gicam_0_brnchT_itea_2, T63L32); '// &
-       'ocean: MOM (mom3_ver_3.5.2, 2x3L15); '             //  &
-       'sea ice: GISIM4; land: GILSM2.5',                      &
-       calendar='360_day',                                      &
-       realization=1,                                          &
-       contact = 'Rusty Koder (koder at middle_earth.net) ',      &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also '        //   &
-       'see http://www.GICC.su/giccm/doc/index.html '     //   &
-       ' 2XCO2 simulation described in Dorkey et al. '    //   &
-       '(Clim. Dyn., 2003, 323-357.)', &
-       model_id = 'pcmdi-01', &
-       forcing = 'atm')
-  
-  !  Define all axes that will be needed
-
-  ilat = cmor_axis(  &
-       table='climatology_test_table_A',    &
-       table_entry='latitude',       &
-       units='degrees_north',        &  
-       length=lat,                   &
-       coord_vals=alats,             & 
-       cell_bounds=bnds_lat)        
-      
-  ilon = cmor_axis(  &
-       table='climatology_test_table_A',    &
-       table_entry='longitude',      &
-       length=lon,                   &
-       units='degrees_east',         &
-       coord_vals=alons,             &
-       cell_bounds=bnds_lon)      
-        
-  !   note that the time axis is defined next, but the time coordinate 
-  !   values and bounds will be passed to cmor through function 
-  !   cmor_write (later, below).
-
-  itim = cmor_axis(  &
-       table='climatology_test_table_A',    &
-       table_entry='time',           &
-       units='days since 2030-1-1',  &
-       length=ntimes*24                &
-       )
-  
-
-  !  Define variables appearing in IPCC table A1a (2-d variables)
-  
-  DO m=1,n2d
-     var2d_ids(m) = cmor_variable(    &
-          table='climatology_test_table_A',  &
-          table_entry=entry2d(m),     & 
-          units=units2d(m),           & 
-          axis_ids=(/ ilon, ilat, itim /), &
-          missing_value=1.0e28,       &
-          positive=positive2d(m),     &
-          original_name=varin2d(m))   
-  ENDDO
-
-  PRINT*, ' '
-  PRINT*, 'completed everything up to writing output fields '
-  PRINT*, ' '
-
-  !  Loop through history files (each containing several different fields, 
-  !       but only a single month of data, averaged over the month).  Then 
-  !       extract fields of interest and write these to netCDF files (with 
-  !       one field per file, but all months included in the loop).
-  
-  time_loop: DO it=1, ntimes
-     
-     ! In the following loops over the 3d and 2d fields, the user-written    
-     ! subroutines (read_3d_input_files and read_2d_input_files) retrieve 
-     ! the requested IPCC table A1c and table A1a fields and store them in 
-     ! data3d and data2d, respectively.  In addition a user-written code 
-     ! (read_time) retrieves the time and time-bounds associated with the 
-     ! time sample (in units of 'days since 1970-1-1', consistent with the 
-     ! axis definitions above).  The bounds are set to the beginning and 
-     ! the end of the month retrieved, indicating the averaging period.
-     
-     ! The user must write a code to obtain the times and time-bounds for
-     !   the time slice.  The following line is simply a place-holder for
-     !   the user's code, which should replace it.
-     
-     call read_time(it, time, bnds_time)
-
-     
-     ! Cycle through the 2-d fields, retrieve the requested variable and 
-     ! append each to the appropriate netCDF file.
-     
-     DO m=1,n2d
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-        
-        call read_2d_input_files(it, varin2d(m), data2d)                  
-
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-
-        print*, 'CALLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL'
-        print*, 'times:',time(1),time(2)
-        print*, 'btimes:',bnds_time(1,1),bnds_time(2,1),bnds_time(1,2),bnds_time(2,2)
-        error_flag = cmor_write(                                  &
-             var_id        = var2d_ids(m),                        &
-             data          = data2d,                              &
-             ntimes_passed = 24,                                   &
-             time_vals     = time,                                &
-             time_bnds     = bnds_time  )
-        
-       IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) ' Error encountered writing climatology test Table A ' &
-                // 'field ', entry2d(m), ', which I call ', varin2d(m)
-           write(*,*) ' Was processing time sample: ', time 
-                      
-        END IF
-        
-     END DO
-     
-  END DO time_loop
-  
-  !   Close all files opened by CMOR.
-  
-  error_flag = cmor_close()  
-
-  print*, ' '
-  print*, '******************************'
-  print*, ' '
-  print*, 'ipcc_test_code executed to completion '   
-  print*, ' '
-  print*, '******************************'
-  
-END PROGRAM ipcc_test_code
-
diff --git a/Test/old_cmor_tables/ipcc_test_code.f90 b/Test/old_cmor_tables/ipcc_test_code.f90
deleted file mode 100644
index b57f7b2..0000000
--- a/Test/old_cmor_tables/ipcc_test_code.f90
+++ /dev/null
@@ -1,550 +0,0 @@
-!!$pgf90 -I/work/NetCDF/5.1/include -L/work/NetCDF/5.1/lib -l netcdf -L. -l cmor Test/test_dimensionless.f90 -IModules -o cmor_test
-!!$pgf90 -g -I/pcmdi/charles_work/NetCDF/include -L/pcmdi/charles_work/NetCDF/lib -lnetcdf -module Modules -IModules -L. -lcmor -I/pcmdi/charles_work/Unidata/include -L/pcmdi/charles_work/Unidata/lib -ludunits Test/test_dimensionless.f90 -o cmor_test
-
-MODULE local_subs
-
-  USE cmor_users_functions
-  PRIVATE
-  PUBLIC read_coords, read_time, read_3d_input_files, read_2d_input_files
-CONTAINS
-  
-  SUBROUTINE read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-
-    IMPLICIT NONE
-    
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alats
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alons
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: plevs
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lat
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lon
-    
-    INTEGER :: i
-    
-    DO i = 1, SIZE(alons)
-       alons(i) = (i-1)*360./SIZE(alons)
-       bnds_lon(1,i) = (i - 1.5)*360./SIZE(alons)
-       bnds_lon(2,i) = (i - 0.5)*360./SIZE(alons)
-    END DO
-    
-    DO i = 1, SIZE(alats)
-       alats(i) = (size(alats)+1-i)*10
-       bnds_lat(1,i) = (size(alats)+1-i)*10 + 5.
-       bnds_lat(2,i) = (size(alats)+1-i)*10 - 5.
-    END DO
-  
-    DO i = 1, SIZE(plevs)
-       plevs(i) = i*1.0e4
-    END DO
-    
-    RETURN
-  END SUBROUTINE read_coords
-
-  SUBROUTINE read_time(it, time, time_bnds)
-    
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    DOUBLE PRECISION, INTENT(OUT) :: time
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(2,1) :: time_bnds
-    
-    time = (it-0.5)*30.
-    time_bnds(1,1) = (it-1)*30.
-    time_bnds(2,1) = it*30.
-    
-    RETURN
-  END SUBROUTINE read_time
-  
-  SUBROUTINE read_3d_input_files(it, varname, field)
-
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    CHARACTER(len=*), INTENT(IN) :: varname
-    REAL, INTENT(OUT), DIMENSION(:,:,:) :: field
-    
-    INTEGER :: i, j, k
-    REAL :: factor, offset
-    CHARACTER(len=LEN(varname)) :: tmp
-    
-    tmp = TRIM(ADJUSTL(varname))
-    SELECT CASE (tmp)
-    CASE ('CLOUD')  
-       factor = 0.1
-       offset = -50.
-    CASE ('U')  
-       factor = 1.
-       offset = 100.
-    CASE ('T')
-       factor = 0.5
-       offset = -150.
-    END SELECT
-    
-    DO k=1,SIZE(field, 3)
-       DO j=1,SIZE(field, 2)
-          DO i=1,SIZE(field, 1)
-             field(i,j,k) = ((k-1)*64 + (j-1)*16 + (i-1)*4 + it)*factor - offset
-          END DO
-       END DO
-    END DO
-    
-  END SUBROUTINE read_3d_input_files
-  
-  SUBROUTINE read_2d_input_files(it, varname, field)
-
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    CHARACTER(len=*), INTENT(IN) :: varname
-    REAL, INTENT(OUT), DIMENSION(:,:) :: field
-    
-    INTEGER :: i, j
-    REAL :: factor, offset
-    CHARACTER(len=LEN(varname)) :: tmp
-    
-    tmp = TRIM(ADJUSTL(varname))
-    SELECT CASE (tmp)
-    CASE ('LATENT')  
-       
-       factor = 1.
-       offset = 20.
-    CASE ('TSURF')
-       factor = 2.0
-       offset = -220.
-    CASE ('SOIL_WET')
-       factor = 10.
-       offset = 0.
-    CASE ('PSURF')
-       factor = 100.
-       offset = -9.7e4
-    END SELECT
-    
-    DO j=1,SIZE(field, 2)
-       DO i=1,SIZE(field, 1)
-          field(i,size(field,2)+1-j) = ((j-1)*16 + (i-1)*4 + it)*factor - offset
-       END DO
-    END DO
-
-  END SUBROUTINE read_2d_input_files
-
-END MODULE local_subs
-
-
-PROGRAM ipcc_test_code
-!
-!   Purpose:   To serve as a generic example of an application that
-!       uses the "Climate Model Output Rewriter" (CMOR)
-
-!    CMOR writes CF-compliant netCDF files.
-!    Its use is strongly encouraged by the IPCC and is intended for use 
-!       by those participating in many community-coordinated standard 
-!       climate model experiments (e.g., AMIP, CMIP, CFMIP, PMIP, APE,
-!       etc.)
-!
-!   Background information for this sample code:
-!
-!      Atmospheric standard output requested by IPCC are listed in 
-!   tables available on the web.  Monthly mean output is found in
-!   tables A1a and A1c.  This sample code processes only two 3-d 
-!   variables listed in table A1c ("monthly mean atmosphere 3-D data" 
-!   and only four 2-d variables listed in table A1a ("monthly mean 
-!   atmosphere + land surface 2-D (latitude, longitude) data").  The 
-!   extension to many more fields is trivial.
-!
-!      For this example, the user must fill in the sections of code that 
-!   extract the 3-d and 2-d fields from his monthly mean "history" 
-!   files (which usually contain many variables but only a single time 
-!   slice).  The CMOR code will write each field in a separate file, but 
-!   many monthly mean time-samples will be stored together.  These 
-!   constraints partially determine the structure of the code.
-!
-!
-!   Record of revisions:
-
-!       Date        Programmer(s)           Description of change
-!       ====        ==========              =====================
-!      10/22/03     Rusty Koder              Original code
-!       1/28/04     Les R. Koder             Revised to be consistent
-!                                            with evolving code design
-
-! include module that contains the user-accessible cmor functions.
-  USE cmor_users_functions
-  USE local_subs
-
-  IMPLICIT NONE
-
-  !   dimension parameters:
-  ! ---------------------------------
-  INTEGER, PARAMETER :: ntimes = 2    ! number of time samples to process
-  INTEGER, PARAMETER :: lon = 4       ! number of longitude grid cells  
-  INTEGER, PARAMETER :: lat = 3       ! number of latitude grid cells
-  INTEGER, PARAMETER :: lev = 5       ! number of standard pressure levels
-  INTEGER, PARAMETER :: n2d = 4       ! number of IPCC Table A1a fields to be
-                                      !     output.
-  INTEGER, PARAMETER :: n3d = 3       ! number of IPCC Table A1c fields to 
-                                      !     be output.  
-
-  !   Tables associating the user's variables with IPCC standard output 
-  !   variables.  The user may choose to make this association in a 
-  !   different way (e.g., by defining values of pointers that allow him 
-  !   to directly retrieve data from a data record containing many 
-  !   different variables), but in some way the user will need to map his 
-  !   model output onto the Tables specifying the MIP standard output.
-
-  ! ----------------------------------
-
-                                ! My variable names for IPCC Table A1c fields
-  CHARACTER (LEN=5), DIMENSION(n3d) :: &
-                                 varin3d=(/'CLOUD', 'U    ', 'T    '/)
-
-                                ! Units appropriate to my data
-  CHARACTER (LEN=5), DIMENSION(n3d) :: &
-                                  units3d=(/ '%    ', 'm s-1',   'K    '  /)
-
-                     ! Corresponding IPCC Table A1c entry (variable name) 
-  CHARACTER (LEN=2), DIMENSION(n3d) :: entry3d = (/ 'cl', 'ua', 'ta' /)
-
-                                ! My variable names for IPCC Table A1a fields
-  CHARACTER (LEN=8), DIMENSION(n2d) :: &
-                  varin2d=(/ 'LATENT  ', 'TSURF   ', 'SOIL_WET', 'PSURF   ' /)
-
-                                ! Units appropriate to my data
-   CHARACTER (LEN=6), DIMENSION(n2d) :: &
-                          units2d=(/ 'W m-2 ', 'K     ', 'kg m-2', 'Pa    ' /)
-
-   CHARACTER (LEN=4), DIMENSION(n2d) :: &
-                      positive2d= (/  'down',  '    ', '    ', '    '  /)
-
-                     ! Corresponding IPCC Table A1a entry (variable name) 
-  CHARACTER (LEN=5), DIMENSION(n2d) :: &
-                        entry2d = (/ 'hfls ', 'tas  ', 'mrsos', 'ps   ' /)
-
-!  uninitialized variables used in communicating with CMOR:
-!  ---------------------------------------------------------
-
-  INTEGER :: error_flag
-  INTEGER :: znondim_id, zfactor_id
-  INTEGER, DIMENSION(n2d) :: var2d_ids
-  INTEGER, DIMENSION(n3d) :: var3d_ids
-  REAL, DIMENSION(lon,lat) :: data2d
-  REAL, DIMENSION(lon,lat,lev) :: data3d
-  DOUBLE PRECISION, DIMENSION(lat) :: alats
-  DOUBLE PRECISION, DIMENSION(lon) :: alons
-  DOUBLE PRECISION, DIMENSION(lev) :: plevs
-  DOUBLE PRECISION, DIMENSION(1) :: time
-  DOUBLE PRECISION, DIMENSION(2,1):: bnds_time
-  DOUBLE PRECISION, DIMENSION(2,lat) :: bnds_lat
-  DOUBLE PRECISION, DIMENSION(2,lon) :: bnds_lon
-  DOUBLE PRECISION, DIMENSION(lev) :: zlevs
-  DOUBLE PRECISION, DIMENSION(lev+1) :: zlev_bnds
-  REAL, DIMENSION(lev) :: a_coeff
-  REAL, DIMENSION(lev) :: b_coeff
-  REAL :: p0
-  REAL, DIMENSION(lev+1) :: a_coeff_bnds
-  REAL, DIMENSION(lev+1) :: b_coeff_bnds
-  INTEGER :: ilon, ilat, ipres, ilev, itim
-
-  character(256)::  outpath
-  
-  !  Other variables:
-  !  ---------------------
-  
-  INTEGER :: it, m  
-  
-  ! ================================
-  !  Execution begins here:
-  ! ================================
-  
-  ! Read coordinate information from model into arrays that will be passed 
-  !   to CMOR.
-  ! Read latitude, longitude, and pressure coordinate values into 
-  !   alats, alons, and plevs, respectively.  Also generate latitude and 
-  !   longitude bounds, and store in bnds_lat and bnds_lon, respectively.
-  !   Note that all variable names in this code can be freely chosen by
-  !   the user.
-
-  !   The user must write the subroutine that fills the coordinate arrays 
-  !   and their bounds with actual data.  The following line is simply a
-  !   a place-holder for the user's code, which should replace it.
-  
-  !  *** possible user-written call ***
-  
-  call read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-  
-  ! Specify path where tables can be found and indicate that existing 
-  !    netCDF files should not be overwritten.
-  
-  error_flag = cmor_setup(inpath='Test', netcdf_file_action='replace')
-  
-  ! Define dataset as output from the GICC model (first member of an
-  !   ensemble of simulations) run under IPCC 2xCO2 equilibrium
-  !   experiment conditions, and provide information to be included as 
-  !   attributes in all CF-netCDF files written as part of this dataset.
-
-  error_flag = cmor_dataset(                                   &
-       outpath='Test',                                         &
-       experiment_id='2xCO2 equilibrium experiment',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       'Geneva, Switzerland)',                                 &
-       source='GICCM1 (2002): ' //                             &
-       'atmosphere:  GICAM3 (gicam_0_brnchT_itea_2, T63L32); '// &
-       'ocean: MOM (mom3_ver_3.5.2, 2x3L15); '             //  &
-       'sea ice: GISIM4; land: GILSM2.5',                      &
-       calendar='360_day',                                      &
-       realization=1,                                          &
-       contact = 'Rusty Koder (koder at middle_earth.net) ',      &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also '        //   &
-       'see http://www.GICC.su/giccm/doc/index.html '     //   &
-       ' 2XCO2 simulation described in Dorkey et al. '    //   &
-       '(Clim. Dyn., 2003, 323-357.)' )
-  
-  !  Define all axes that will be needed
-
-  ilat = cmor_axis(  &
-       table='IPCC_test_table_A',    &
-       table_entry='latitude',       &
-       units='degrees_north',        &  
-       length=lat,                   &
-       coord_vals=alats,             & 
-       cell_bounds=bnds_lat)        
-      
-  ilon = cmor_axis(  &
-       table='IPCC_test_table_A',    &
-       table_entry='longitude',      &
-       length=lon,                   &
-       units='degrees_east',         &
-       coord_vals=alons,             &
-       cell_bounds=bnds_lon)      
-        
-  ipres = cmor_axis(  &
-       table='IPCC_test_table_A',    &
-       table_entry='pressure',       &
-       units='Pa',                   &
-       length=lev,                   &
-       coord_vals=plevs)
-
-  !   note that the time axis is defined next, but the time coordinate 
-  !   values and bounds will be passed to cmor through function 
-  !   cmor_write (later, below).
-
-  itim = cmor_axis(  &
-       table='IPCC_test_table_A',    &
-       table_entry='time',           &
-       units='days since 2030-1-1',  &
-       length=ntimes,                &
-       interval='20 minutes')
-  
-  !  define model eta levels (although these must be provided, they will
-  !    actually be replaced by a+b before writing the netCDF file)
-  zlevs = (/ 0.1, 0.3, 0.55, 0.7, 0.9 /)
-  zlev_bnds=(/ 0.,.2, .42, .62, .8, 1. /)
-
-  ilev = cmor_axis(  &
-       table='IPCC_test_table_A',    &
-       table_entry='standard_hybrid_sigma',       &
-       units='1', &
-       length=lev,                   &
-       coord_vals=zlevs,             &
-       cell_bounds=zlev_bnds)
-
-  !   define z-factors needed to transform from model level to pressure
-  p0 = 1.e5
-  a_coeff = (/ 0.1, 0.2, 0.3, 0.22, 0.1 /)
-  b_coeff = (/ 0.0, 0.1, 0.2, 0.5, 0.8 /)
-
-  a_coeff_bnds=(/0.,.15, .25, .25, .16, 0./)
-  b_coeff_bnds=(/0.,.05, .15, .35, .65, 1./)
-
-  error_flag = cmor_zfactor(  &
-       zaxis_id=ilev,                      &
-       zfactor_name='p0',                  &
-       units='Pa',                         &
-       zfactor_values = p0)
-
-  error_flag = cmor_zfactor(  &
-       zaxis_id=ilev,                       & 
-       zfactor_name='b',                    &
-       axis_ids= (/ ilev /),                &
-       zfactor_values = b_coeff,            &
-       zfactor_bounds = b_coeff_bnds  )
-
-  error_flag = cmor_zfactor(  &
-       zaxis_id=ilev,                       &
-       zfactor_name='a',                    &
-       axis_ids= (/ ilev /),                &
-       zfactor_values = a_coeff,            &
-       zfactor_bounds = a_coeff_bnds )
-
-  zfactor_id = cmor_zfactor(  &
-       zaxis_id=ilev,                         &
-       zfactor_name='ps',                     &
-       axis_ids=(/ ilon, ilat, itim /),       &
-       units='Pa' )
-
-  !  Define the only field to be written that is a function of model level
-  !    (appearing in IPCC table A1c)
-
-  var3d_ids(1) = cmor_variable(    &
-       table='IPCC_test_table_A',  &
-       table_entry=entry3d(1),     &
-       units=units3d(1),           &
-       axis_ids=(/ ilon, ilat, ilev, itim /),  &
-       missing_value=1.0e28, &
-       original_name=varin3d(1))
-  
-  !  Define variables appearing in IPCC table A1c that are a function of pressure
-  !         (3-d variables)
-  
-  DO m=2,n3d
-     var3d_ids(m) = cmor_variable(    &
-          table='IPCC_test_table_A',  &
-          table_entry=entry3d(m),     &
-          units=units3d(m),           &
-          axis_ids=(/ ilon, ilat, ipres, itim /), &
-          missing_value=1.0e28,       &
-          original_name=varin3d(m))
-  ENDDO
-  
-
-  !  Define variables appearing in IPCC table A1a (2-d variables)
-  
-  DO m=1,n2d
-     var2d_ids(m) = cmor_variable(    &
-          table='IPCC_test_table_A',  &
-          table_entry=entry2d(m),     & 
-          units=units2d(m),           & 
-          axis_ids=(/ ilon, ilat, itim /), &
-          missing_value=1.0e28,       &
-          positive=positive2d(m),     &
-          original_name=varin2d(m))   
-  ENDDO
-
-  PRINT*, ' '
-  PRINT*, 'completed everything up to writing output fields '
-  PRINT*, ' '
-
-  !  Loop through history files (each containing several different fields, 
-  !       but only a single month of data, averaged over the month).  Then 
-  !       extract fields of interest and write these to netCDF files (with 
-  !       one field per file, but all months included in the loop).
-  
-  time_loop: DO it=1, ntimes
-     
-     ! In the following loops over the 3d and 2d fields, the user-written    
-     ! subroutines (read_3d_input_files and read_2d_input_files) retrieve 
-     ! the requested IPCC table A1c and table A1a fields and store them in 
-     ! data3d and data2d, respectively.  In addition a user-written code 
-     ! (read_time) retrieves the time and time-bounds associated with the 
-     ! time sample (in units of 'days since 1970-1-1', consistent with the 
-     ! axis definitions above).  The bounds are set to the beginning and 
-     ! the end of the month retrieved, indicating the averaging period.
-     
-     ! The user must write a code to obtain the times and time-bounds for
-     !   the time slice.  The following line is simply a place-holder for
-     !   the user's code, which should replace it.
-     
-    call read_time(it, time(1), bnds_time)
-
-    call read_3d_input_files(it, varin3d(1), data3d)
-
-    error_flag = cmor_write(                                  &
-         var_id        = var3d_ids(1),                        &
-         data          = data3d,                              &
-         ntimes_passed = 1,                                   &
-         time_vals     = time,                                &
-         time_bnds     = bnds_time   )
-
-    call read_2d_input_files(it, varin2d(4), data2d)                  
-
-    error_flag = cmor_write(                                  &
-         var_id        = zfactor_id,                          &
-         data          = data2d,                              &
-         ntimes_passed = 1,                                   &
-         time_vals     = time,                                &
-         time_bnds     = bnds_time,                           &
-         store_with    = var3d_ids(1) )
-
-    ! Cycle through the 3-d fields (stored on pressure levels), 
-    ! and retrieve the requested variable and append each to the 
-    ! appropriate netCDF file.
-
-    DO m=2,n3d
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-
-        call read_3d_input_files(it, varin3d(m), data3d)
-       
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-        call cmor_create_output_path(var3d_ids(m),outpath)
-        print*, 'Ok we will dump that at: ',outpath
-        error_flag = cmor_write(                                  &
-             var_id        = var3d_ids(m),                        &
-             data          = data3d,                              &
-             ntimes_passed = 1,                                   &
-             time_vals     = time,                                &
-             time_bnds     = bnds_time  )
-        
-        IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) ' Error encountered writing IPCC Table A1c ' &
-                // 'field ', entry3d(m), ', which I call ', varin3d(m)
-           write(*,*) ' Was processing time sample: ', time
-                      
-        END IF
-
-     END DO
-     
-     ! Cycle through the 2-d fields, retrieve the requested variable and 
-     ! append each to the appropriate netCDF file.
-     
-     DO m=1,n2d
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-        
-        call read_2d_input_files(it, varin2d(m), data2d)                  
-
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-
-        error_flag = cmor_write(                                  &
-             var_id        = var2d_ids(m),                        &
-             data          = data2d,                              &
-             ntimes_passed = 1,                                   &
-             time_vals     = time,                                &
-             time_bnds     = bnds_time  )
-        
-       IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) ' Error encountered writing IPCC Table A1a ' &
-                // 'field ', entry2d(m), ', which I call ', varin2d(m)
-           write(*,*) ' Was processing time sample: ', time 
-                      
-        END IF
-        
-     END DO
-     
-  END DO time_loop
-  
-  !   Close all files opened by CMOR.
-  
-  error_flag = cmor_close()  
-
-  print*, ' '
-  print*, '******************************'
-  print*, ' '
-  print*, 'ipcc_test_code executed to completion '   
-  print*, ' '
-  print*, '******************************'
-  
-END PROGRAM ipcc_test_code
-
diff --git a/Test/old_cmor_tables/karls_test.f90 b/Test/old_cmor_tables/karls_test.f90
deleted file mode 100644
index dcd6a65..0000000
--- a/Test/old_cmor_tables/karls_test.f90
+++ /dev/null
@@ -1,604 +0,0 @@
-!!$pgf90 -I/work/NetCDF/5.1/include -L/work/NetCDF/5.1/lib -l netcdf -L. -l cmor Test/test_dimensionless.f90 -IModules -o cmor_test
-!!$pgf90 -g -I/pcmdi/charles_work/NetCDF/include -L/pcmdi/charles_work/NetCDF/lib -lnetcdf -module Modules -IModules -L. -lcmor -I/pcmdi/charles_work/Unidata/include -L/pcmdi/charles_work/Unidata/lib -ludunits Test/test_dimensionless.f90 -o cmor_test
-
-MODULE local_subs
-
-  USE cmor_users_functions
-  PRIVATE
-  PUBLIC read_coords, read_time, read_3d_input_files, read_2d_input_files
-CONTAINS
-  
-  SUBROUTINE read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-
-    IMPLICIT NONE
-    
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alats
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alons
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: plevs
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lat
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lon
-    
-    INTEGER :: i, ii
-    
-    ii = 0
-    DO i = 1, SIZE(alons)
-       ii = ii+1
-       alons(i) = (ii-1)*360./SIZE(alons)
-       bnds_lon(1,i) = (ii - 1.5)*360./SIZE(alons)
-       bnds_lon(2,i) = (ii - 0.5)*360./SIZE(alons)
-!!$       alons(size(alons)+1-i) = (ii-1)*360./SIZE(alons)
-!!$       bnds_lon(1,size(alons)+1-i) = (ii - 1.5)*360./SIZE(alons)
-!!$       bnds_lon(2,size(alons)+1-i) = (ii - 0.5)*360./SIZE(alons)
-!!$       alons(i) = (i-1)*360./SIZE(alons)
-!!$       bnds_lon(1,i) = (i - 1.5)*360./SIZE(alons)
-!!$        bnds_lon(2,i) = (i - 0.5)*360./SIZE(alons)
-    END DO
-    
-    DO i = 1, SIZE(alats)
-!!$       alats(i) = i*10
-!!$       bnds_lat(1,i) = i*10. - 5.
-!!$       bnds_lat(2,i) = i*10. + 5.
-       alats(i) = (size(alats)+1-i)*10
-       bnds_lat(1,i) = (size(alats)+1-i)*10 + 5.
-       bnds_lat(2,i) = (size(alats)+1-i)*10 - 5.
-    END DO
-  
-    DO i = 1, SIZE(plevs)
-       plevs(i) = i*1.0e4
-    END DO
-    
-    RETURN
-  END SUBROUTINE read_coords
-
-  SUBROUTINE read_time(it, time, time_bnds)
-    
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    DOUBLE PRECISION, INTENT(OUT) :: time
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(2,1) :: time_bnds
-    
-    time = (it-0.5)*30.
-    time_bnds(1,1) = (it-1)*30.
-    time_bnds(2,1) = it*30.
-    
-    RETURN
-  END SUBROUTINE read_time
-  
-  SUBROUTINE read_3d_input_files(it, varname, field)
-    
-    IMPLICIT NONE
-
-    INTEGER, INTENT(IN) :: it
-    CHARACTER(len=*), INTENT(IN) :: varname
-    REAL, INTENT(OUT), DIMENSION(:,:,:) :: field
-    
-    INTEGER :: i, j, k
-    REAL :: factor, offset
-    CHARACTER(len=LEN(varname)) :: tmp
-    
-    tmp = TRIM(ADJUSTL(varname))
-    SELECT CASE (tmp)
-    CASE ('CLOUD')  
-       factor = 0.1
-       offset = -50.
-    CASE ('U')  
-       factor = 1.
-       offset = 100.
-    CASE ('T')
-       factor = 0.5
-       offset = -150.
-    END SELECT
-    
-    DO k=1,SIZE(field, 3)
-       DO j=1,SIZE(field, 2)
-          DO i=1,SIZE(field, 1)
-             field(i,j,k) = ((k-1)*64 + (j-1)*16 + (i-1)*4 + it)*factor - offset
-          END DO
-       END DO
-    END DO
-    
-  END SUBROUTINE read_3d_input_files
-  
-  SUBROUTINE read_2d_input_files(it, varname, field) 
-
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    CHARACTER(len=*), INTENT(IN) :: varname
-    REAL, INTENT(OUT), DIMENSION(:,:) :: field
-    
-    INTEGER :: i, j, ii
-    REAL :: factor, offset
-    CHARACTER(len=LEN(varname)) :: tmp
-    
-    tmp = TRIM(ADJUSTL(varname))
-    SELECT CASE (tmp)
-    CASE ('LATENT')  
-       
-       factor = 1.
-       offset = 20.
-    CASE ('TSURF')
-       factor = 2.0
-       offset = -220.
-    CASE ('SOIL_WET')
-       factor = 10.
-       offset = 0.
-    CASE ('PSURF')
-       factor = 100.
-       offset = -9.7e4
-    END SELECT
-    
-    DO j=1,SIZE(field, 2)
-       ii = 0
-       DO i=1,SIZE(field, 1)
-          ii = ii + 1
-          if (ii>size(field,1)) ii = 1
-          field(i,size(field,2)+1-j) = ((j-1)*16 + (ii-1)*4 + it)*factor - offset
-!!$          field(size(field,1)+1-i,size(field,2)+1-j) = ((j-1)*16 + (ii-1)*4 + it)*factor - offset
-!          field(i,size(field,2)+1-j) = ((j-1)*16 + (i-1)*4 + it)*factor - offset
-!          field(i,j) = ((j-1)*16 + (i-1)*4 + it)*factor - offset
-       END DO
-    END DO
-
-  END SUBROUTINE read_2d_input_files
-
-END MODULE local_subs
-
-
-PROGRAM karls_test
-!
-!   Purpose:   To serve as a generic example of an application that
-!       uses the "Climate Model Output Rewriter" (CMOR)
-
-!    CMOR writes CF-compliant netCDF files.
-!    Its use is strongly encouraged by the IPCC and is intended for use 
-!       by those participating in many community-coordinated standard 
-!       climate model experiments (e.g., AMIP, CMIP, CFMIP, PMIP, APE,
-!       etc.)
-!
-!   Background information for this sample code:
-!
-!      Atmospheric standard output requested by IPCC are listed in 
-!   tables available on the web.  Monthly mean output is found in
-!   tables A1a and A1c.  This sample code processes only two 3-d 
-!   variables listed in table A1c ("monthly mean atmosphere 3-D data" 
-!   and only four 2-d variables listed in table A1a ("monthly mean 
-!   atmosphere + land surface 2-D (latitude, longitude) data").  The 
-!   extension to many more fields is trivial.
-!
-!      For this example, the user must fill in the sections of code that 
-!   extract the 3-d and 2-d fields from his monthly mean "history" 
-!   files (which usually contain many variables but only a single time 
-!   slice).  The CMOR code will write each field in a separate file, but 
-!   many monthly mean time-samples will be stored together.  These 
-!   constraints partially determine the structure of the code.
-!
-!
-!   Record of revisions:
-
-!       Date        Programmer(s)           Description of change
-!       ====        ==========              =====================
-!      10/22/03     Rusty Koder              Original code
-!       1/28/04     Les R. Koder             Revised to be consistent
-!                                            with evolving code design
-
-! include module that contains the user-accessible cmor functions.
-  USE cmor_users_functions
-  USE local_subs
-
-  IMPLICIT NONE
-
-  !   dimension parameters:
-  ! ---------------------------------
-  INTEGER, PARAMETER :: ntimes = 2    ! number of time samples to process
-  INTEGER, PARAMETER :: lon = 4       ! number of longitude grid cells  
-  INTEGER, PARAMETER :: lat = 3       ! number of latitude grid cells
-  INTEGER, PARAMETER :: lev = 5       ! number of standard pressure levels
-  INTEGER, PARAMETER :: n2d = 4       ! number of IPCC Table A1a fields to be
-                                      !     output.
-  INTEGER, PARAMETER :: n3d = 3       ! number of IPCC Table A1c fields to 
-                                      !     be output.  
-
-  !   Tables associating the user's variables with IPCC standard output 
-  !   variables.  The user may choose to make this association in a 
-  !   different way (e.g., by defining values of pointers that allow him 
-  !   to directly retrieve data from a data record containing many 
-  !   different variables), but in some way the user will need to map his 
-  !   model output onto the Tables specifying the MIP standard output.
-
-  ! ----------------------------------
-
-                                ! My variable names for IPCC Table A1c fields
-  CHARACTER (LEN=5), DIMENSION(n3d) :: &
-                                 varin3d=(/'CLOUD', 'U    ', 'T    '/)
-
-                                ! Units appropriate to my data
-  CHARACTER (LEN=5), DIMENSION(n3d) :: &
-                                  units3d=(/ '%    ', 'm s-1',   'K    '  /)
-
-                     ! Corresponding IPCC Table A1c entry (variable name) 
-  CHARACTER (LEN=2), DIMENSION(n3d) :: entry3d = (/ 'cl', 'ua', 'ta' /)
-
-                                ! My variable names for IPCC Table A1a fields
-  CHARACTER (LEN=8), DIMENSION(n2d) :: &
-                  varin2d=(/ 'LATENT  ', 'TSURF   ', 'SOIL_WET', 'PSURF   ' /)
-
-                                ! Units appropriate to my data
-   CHARACTER (LEN=6), DIMENSION(n2d) :: &
-                          units2d=(/ 'W m-2 ', 'K     ', 'kg m-2', 'Pa    ' /)
-
-   CHARACTER (LEN=4), DIMENSION(n2d) :: &
-                      positive2d= (/  'down',  '    ', '    ', '    '  /)
-
-                     ! Corresponding IPCC Table A1a entry (variable name) 
-  CHARACTER (LEN=5), DIMENSION(n2d) :: &
-                        entry2d = (/ 'hfls ', 'tas  ', 'mrsos', 'ps   ' /)
-
-!  uninitialized variables used in communicating with CMOR:
-!  ---------------------------------------------------------
-
-  INTEGER :: error_flag
-  INTEGER :: znondim_id, zfactor_id
-  INTEGER, DIMENSION(n2d) :: var2d_ids
-  INTEGER, DIMENSION(n3d) :: var3d_ids
-  REAL, DIMENSION(lon,lat) :: data2d
-  REAL, DIMENSION(lon,lat,lev) :: data3d
-  DOUBLE PRECISION, DIMENSION(lat) :: alats
-  DOUBLE PRECISION, DIMENSION(lon) :: alons
-  DOUBLE PRECISION, DIMENSION(lev) :: plevs
-  DOUBLE PRECISION, DIMENSION(1) :: time
-  DOUBLE PRECISION, DIMENSION(2,1):: bnds_time
-  DOUBLE PRECISION, DIMENSION(2,lat) :: bnds_lat
-  DOUBLE PRECISION, DIMENSION(2,lon) :: bnds_lon
-  DOUBLE PRECISION, DIMENSION(lev) :: zlevs
-  DOUBLE PRECISION, DIMENSION(lev+1) :: zlev_bnds
-  REAL, DIMENSION(lev) :: a_coeff
-  REAL, DIMENSION(lev) :: b_coeff
-  REAL :: p0
-  REAL, DIMENSION(lev+1) :: a_coeff_bnds
-  REAL, DIMENSION(lev+1) :: b_coeff_bnds
-  INTEGER :: ilon, ilat, ipres, ilev, itim
-
-  REAL, DIMENSION(lon,1,lat) :: dum3d
-  INTEGER :: iz
-
-
-  !  Other variables:
-  !  ---------------------
-  
-  INTEGER :: it, m  
-  
-  ! ================================
-  !  Execution begins here:
-  ! ================================
-  
-  ! Read coordinate information from model into arrays that will be passed 
-  !   to CMOR.
-  ! Read latitude, longitude, and pressure coordinate values into 
-  !   alats, alons, and plevs, respectively.  Also generate latitude and 
-  !   longitude bounds, and store in bnds_lat and bnds_lon, respectively.
-  !   Note that all variable names in this code can be freely chosen by
-  !   the user.
-
-  !   The user must write the subroutine that fills the coordinate arrays 
-  !   and their bounds with actual data.  The following line is simply a
-  !   a place-holder for the user's code, which should replace it.
-  
-  !  *** possible user-written call ***
-  
-  call read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-  
-  ! Specify path where tables can be found and indicate that existing 
-  !    netCDF files should not be overwritten.
-  
-  error_flag = cmor_setup(inpath='Test', netcdf_file_action='replace',logfile='karls_test.LOG')
-  
-  ! Define dataset as output from the GICC model (first member of an
-  !   ensemble of simulations) run under IPCC 2xCO2 equilibrium
-  !   experiment conditions, and provide information to be included as 
-  !   attributes in all CF-netCDF files written as part of this dataset.
-
-  error_flag = cmor_dataset(                                   &
-       outpath='Test',                                         &
-       experiment_id='2xCO2 equilibrium experiment',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       'Geneva, Switzerland)',                                 &
-       source='GICCM1 (2002): ' //                             &
-       'atmosphere:  GICAM3 (gicam_0_brnchT_itea_2, T63L32); '// &
-       'ocean: MOM (mom3_ver_3.5.2, 2x3L15); '             //  &
-       'sea ice: GISIM4; land: GILSM2.5',                      &
-       calendar='360_day',                                      &
-       realization=1,                                          &
-       contact = 'Rusty Koder (koder at middle_earth.net) ',      &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also '        //   &
-       'see http://www.GICC.su/giccm/doc/index.html '     //   &
-       ' 2XCO2 simulation described in Dorkey et al. '    //   &
-       '(Clim. Dyn., 2003, 323-357.)',&
-       model_id='pcmdi-a01',forcing='atm')
-  
-  !  Define all axes that will be needed
-
-  iz =  cmor_axis(  &
-       table='IPCC_test_table_A',    &
-       table_entry='height1',       &
-       units='m',                    &  
-       length=1,                     &
-       coord_vals=(/ 1.5 /) )        
-print*, 'iz = ', iz
-  
-  ilat = cmor_axis(  &
-       table='IPCC_test_table_A',    &
-       table_entry='latitude',       &
-       units='degrees_north',        &  
-       length=lat,                   &
-       coord_vals=alats,             & 
-       cell_bounds=bnds_lat)        
-      
-  ilon = cmor_axis(  &
-       table='IPCC_test_table_A',    &
-       table_entry='longitude',      &
-       length=lon,                   &
-       units='degrees_east',         &
-       coord_vals=alons,             &
-       cell_bounds=bnds_lon)      
-        
-  ipres = cmor_axis(  &
-       table='IPCC_test_table_A',    &
-       table_entry='pressure',       &
-       units='Pa',                   &
-       length=lev,                   &
-       coord_vals=plevs)
-
-  !   note that the time axis is defined next, but the time coordinate 
-  !   values and bounds will be passed to cmor through function 
-  !   cmor_write (later, below).
-
-  itim = cmor_axis(  &
-       table='IPCC_test_table_A',    &
-       table_entry='time',           &
-       units='days since 2030-1-1',  &
-       length=ntimes,                &
-       interval='1 month')
-  
-  !  define model eta levels (although these must be provided, they will
-  !    actually be replaced by a+b before writing the netCDF file)
-  zlevs = (/ 0.1, 0.3, 0.55, 0.7, 0.9 /)
-  zlev_bnds=(/ 0.,.2, .42, .62, .8, 1. /)
-
-  ilev = cmor_axis(  &
-       table='IPCC_test_table_A',    &
-       table_entry='standard_hybrid_sigma',       &
-       length=lev,                   &
-       units = '1', &
-       coord_vals=zlevs,             &
-       cell_bounds=zlev_bnds)
-
-  !   define z-factors needed to transform from model level to pressure
-  p0 = 1.e5
-  a_coeff = (/ 0.1, 0.2, 0.3, 0.22, 0.1 /)
-  b_coeff = (/ 0.0, 0.1, 0.2, 0.5, 0.8 /)
-
-  a_coeff_bnds=(/0.,.15, .25, .25, .16, 0./)
-  b_coeff_bnds=(/0.,.05, .15, .35, .65, 1./)
-
-  error_flag = cmor_zfactor(  &
-       zaxis_id=ilev,                      &
-       zfactor_name='p0',                  &
-       units='Pa',                         &
-       zfactor_values = p0)
-
-  error_flag = cmor_zfactor(  &
-       zaxis_id=ilev,                       & 
-       zfactor_name='b',                    &
-       axis_ids= (/ ilev /),                &
-       zfactor_values = b_coeff,            &
-       zfactor_bounds = b_coeff_bnds  )
-
-  error_flag = cmor_zfactor(  &
-       zaxis_id=ilev,                       &
-       zfactor_name='a',                    &
-       axis_ids= (/ ilev /),                &
-       zfactor_values = a_coeff,            &
-       zfactor_bounds = a_coeff_bnds )
-
-  zfactor_id = cmor_zfactor(  &
-       zaxis_id=ilev,                         &
-       zfactor_name='ps',                     &
-       axis_ids=(/ ilon, ilat, itim /),       &
-       units='Pa' )
-
-  !  Define the only field to be written that is a function of model level
-  !    (appearing in IPCC table A1c)
-
-  var3d_ids(1) = cmor_variable(    &
-       table='IPCC_test_table_A',  &
-       table_entry=entry3d(1),     &
-       units=units3d(1),           &
-       axis_ids=(/ ilon, ilat, ilev, itim /),  &
-       missing_value=1.0e28, &
-       original_name=varin3d(1))
-  
-  !  Define variables appearing in IPCC table A1c that are a function of pressure
-  !         (3-d variables)
-  
-  DO m=2,n3d
-     var3d_ids(m) = cmor_variable(    &
-          table='IPCC_test_table_A',  &
-          table_entry=entry3d(m),     &
-          units=units3d(m),           &
-          axis_ids=(/ ilon, ilat, ipres, itim /), &
-          missing_value=1.0e28,       &
-          original_name=varin3d(m))
-     print*, 'got var3did:',var3d_ids(m),entry3d(m)
-  ENDDO
-  
-
-  !  Define variables appearing in IPCC table A1a (2-d variables)
-  
-  DO m=1,n2d
-     IF (m==2) then
-!!$
-     var2d_ids(m) = cmor_variable(    &
-          table='IPCC_test_table_A',  &
-          table_entry=entry2d(m),     & 
-          units=units2d(m),           & 
-          axis_ids=(/ ilon, iz, ilat, itim  /), &
-          missing_value=1.0e28,       &
-          positive=positive2d(m),     &
-          original_name=varin2d(m))   
-
-  else
-     var2d_ids(m) = cmor_variable(    &
-          table='IPCC_test_table_A',  &
-          table_entry=entry2d(m),     & 
-          units=units2d(m),           & 
-          axis_ids=(/ ilon, ilat, itim /), &
-          missing_value=1.0e28,       &
-          positive=positive2d(m),     &
-          original_name=varin2d(m))   
-  endif
-  ENDDO
-
-  PRINT*, ' '
-  PRINT*, 'completed everything up to writing output fields '
-  PRINT*, ' '
-
-  !  Loop through history files (each containing several different fields, 
-  !       but only a single month of data, averaged over the month).  Then 
-  !       extract fields of interest and write these to netCDF files (with 
-  !       one field per file, but all months included in the loop).
-  
-  time_loop: DO it=1, ntimes
-     
-     ! In the following loops over the 3d and 2d fields, the user-written    
-     ! subroutines (read_3d_input_files and read_2d_input_files) retrieve 
-     ! the requested IPCC table A1c and table A1a fields and store them in 
-     ! data3d and data2d, respectively.  In addition a user-written code 
-     ! (read_time) retrieves the time and time-bounds associated with the 
-     ! time sample (in units of 'days since 1970-1-1', consistent with the 
-     ! axis definitions above).  The bounds are set to the beginning and 
-     ! the end of the month retrieved, indicating the averaging period.
-     
-     ! The user must write a code to obtain the times and time-bounds for
-     !   the time slice.  The following line is simply a place-holder for
-     !   the user's code, which should replace it.
-     
-    call read_time(it, time(1), bnds_time)
-
-    call read_3d_input_files(it, varin3d(1), data3d)
-
-    print*, 'yep ',entry3d(1),shape(data3d)
-    error_flag = cmor_write(                                  &
-         var_id        = var3d_ids(1),                        &
-         data          = data3d,                              &
-         ntimes_passed = 1,                                   &
-         time_vals     = time,                                &
-         time_bnds     = bnds_time   )
-    print*, 'passed'
-    call read_2d_input_files(it, varin2d(4), data2d)                  
-
-    error_flag = cmor_write(                                  &
-         var_id        = zfactor_id,                          &
-         data          = data2d,                              &
-         ntimes_passed = 1,                                   &
-         time_vals     = time,                                &
-         time_bnds     = bnds_time,                           &
-         store_with    = var3d_ids(1) )
-
-    ! Cycle through the 3-d fields (stored on pressure levels), 
-    ! and retrieve the requested variable and append each to the 
-    ! appropriate netCDF file.
-
-    DO m=2,n3d
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-
-        call read_3d_input_files(it, varin3d(m), data3d)
-       
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-        print*, 'm,dsh:',m,shape(data3d),entry3d(m),' ',varin3d(m),var3d_ids(m)
-        error_flag = cmor_write(                                  &
-             var_id        = var3d_ids(m),                        &
-             data          = data3d,                              &
-             ntimes_passed = 1,                                   &
-             time_vals     = time,                                &
-             time_bnds     = bnds_time  )
-        print*, 'Done------------------------------------------------------------------'
-        
-        IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) ' Error encountered writing IPCC Table A1c ' &
-                // 'field ', entry3d(m), ', which I call ', varin3d(m)
-           write(*,*) ' Was processing time sample: ', time
-                      
-        END IF
-
-     END DO
-     
-     ! Cycle through the 2-d fields, retrieve the requested variable and 
-     ! append each to the appropriate netCDF file.
-     
-     DO m=1,n2d
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-        
-        call read_2d_input_files(it, varin2d(m), data2d)                  
-
-        IF (m == 2) then
-           dum3d(:,1,:) = data2d
-           error_flag = cmor_write(                                  &
-                var_id        = var2d_ids(m),                        &
-                data          = dum3d(:,1,:),                               &
-                ntimes_passed = 1,                                   &
-                time_vals     = time,                                &
-                time_bnds     = bnds_time  )
-
-        ELSE
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-
-        error_flag = cmor_write(                                  &
-             var_id        = var2d_ids(m),                        &
-             data          = data2d,                              &
-             ntimes_passed = 1,                                   &
-             time_vals     = time,                                &
-             time_bnds     = bnds_time  )
-       ENDIF
-        
-       IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) ' Error encountered writing IPCC Table A1a ' &
-                // 'field ', entry2d(m), ', which I call ', varin2d(m)
-           write(*,*) ' Was processing time sample: ', time 
-                      
-        END IF
-        
-     END DO
-     
-  END DO time_loop
-  
-  !   Close all files opened by CMOR.
-  
-  error_flag = cmor_close()  
-
-  print*, ' '
-  print*, '******************************'
-  print*, ' '
-  print*, 'ipcc_test_code executed to completion '   
-  print*, ' '
-  print*, '******************************'
-  
-END PROGRAM karls_test
-
diff --git a/Test/old_cmor_tables/main_prog.f90 b/Test/old_cmor_tables/main_prog.f90
deleted file mode 100644
index 44ce0ce..0000000
--- a/Test/old_cmor_tables/main_prog.f90
+++ /dev/null
@@ -1,472 +0,0 @@
-!!$pgf90 -I/work/NetCDF/5.1/include -L/work/NetCDF/5.1/lib -l netcdf -L. -l cmor Test/main_prog.f90 -IModules -o cmor_test
-!!$pgf90 -g -I/pcmdi/charles_work/NetCDF//include -L/pcmdi/charles_work/NetCDF//lib -lnetcdf -module Modules -IModules -L. -lcmor Test/main_prog.f90 -o cmor_test
-
-MODULE local_subs
-
-  PRIVATE
-  PUBLIC read_coords, read_time, read_3d_input_files, read_2d_input_files
-CONTAINS
-  
-  SUBROUTINE read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-
-    IMPLICIT NONE
-    
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alats
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alons
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: plevs
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lat
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lon
-    
-    INTEGER :: i
-    
-    DO i = 1, SIZE(alons)
-       alons(i) = (i-1)*360./SIZE(alons)
-       bnds_lon(1,i) = (i - 1.5)*360./SIZE(alons)
-        bnds_lon(2,i) = (i - 0.5)*360./SIZE(alons)
-    END DO
-    
-    DO i = 1, SIZE(alats)
-       alats(i) = i*10
-       bnds_lat(1,i) = i*10. - 5.
-       bnds_lat(2,i) = i*10. + 5.
-    END DO
-  
-    DO i = 1, SIZE(plevs)
-       plevs(i) = i*1.0e4
-    END DO
-    
-    RETURN
-  END SUBROUTINE read_coords
-
-  SUBROUTINE read_time(it, time, time_bnds)
-    
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    DOUBLE PRECISION, INTENT(OUT) :: time
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(2) :: time_bnds
-    
-    time = (it-0.5)*30.
-    time_bnds(1) = (it-1)*30.
-    time_bnds(2) = it*30.
-    
-    RETURN
-  END SUBROUTINE read_time
-  
-  SUBROUTINE read_3d_input_files(it, varname, field)
-    
-    INTEGER, INTENT(IN) :: it
-    CHARACTER(len=*), INTENT(IN) :: varname
-    REAL, INTENT(OUT), DIMENSION(:,:,:) :: field
-    
-    INTEGER :: i, j, k
-    REAL :: factor, offset
-    
-    SELECT CASE (TRIM(ADJUSTL(varname)))
-    CASE ('U')  
-       factor = 1.
-       offset = 100.
-    CASE ('T')
-       factor = 0.5
-       offset = -150.
-    END SELECT
-    
-    DO k=1,SIZE(field, 3)
-       DO j=1,SIZE(field, 2)
-          DO i=1,SIZE(field, 1)
-             field(i,j,k) = ((k-1)*64 + (j-1)*16 + (i-1)*4 + it)*factor - offset
-          END DO
-       END DO
-    END DO
-    
-  END SUBROUTINE read_3d_input_files
-  
-  SUBROUTINE read_2d_input_files(it, varname, field)                  
-    
-    INTEGER, INTENT(IN) :: it
-    CHARACTER(len=*), INTENT(IN) :: varname
-    REAL, INTENT(OUT), DIMENSION(:,:) :: field
-    
-    INTEGER :: i, j
-    REAL :: factor, offset
-    
-    
-    SELECT CASE (TRIM(ADJUSTL(varname)))
-    CASE ('LATENT')  
-       
-       factor = 1.5
-       offset = 20.
-    CASE ('TSURF')
-       factor = 2.2
-       offset = -220.
-    CASE ('SOIL_WET')
-       factor = 10.
-       offset = 0.
-    END SELECT
-    
-    DO j=1,SIZE(field, 2)
-       DO i=1,SIZE(field, 1)
-          field(i,j) = ((j-1)*16 + (i-1)*4 + it)*factor - offset
-       END DO
-    END DO
-
-  END SUBROUTINE read_2d_input_files
-
-END MODULE local_subs
-
-
-PROGRAM mip_contribution
-!
-!   Purpose:   To serve as a generic example of an application that
-!       uses the "Climate Model Output Rewriter" (CMOR)
-
-!    CMOR writes CF-compliant netCDF files.
-!    Its use is required by many community-coordinated standard 
-!       climate model experiments (e.g., AMIP, CMIP, CFMIP, APE, and
-!       IPCC scenario runs)
-!
-!   Background information for this sample code:
-!
-!      Standard output requested by AMIP is listed in 6 different 
-!   tables.  This sample code processes only 2 variables listed in AMIP 
-!   Table 1a ("3-d" fields, containing monthly mean data that are a 
-!   function of longitude, latitude, pressure and time) and only 3 
-!   variables in AMIP Table 2 ("2-d" fields, containing monthly mean 
-!   data that are a function of longitude, latitude, and time).  The 
-!   extension to many more fields is trivial.
-!
-!      For this example, the user must fill in the sections of code that 
-!   extract the 3-d and 2-d fields from his monthly mean "history" 
-!   files (which usually contain many variables but only a single time 
-!   slice).  The CMOR code will write each field in a separate file, but 
-!   many monthly mean time-samples will be stored together.  These 
-!   constraints partially determine the structure of the code.
-!
-!   Record of revisions:
-
-!       Date        Programmer(s)           Description of change
-!       ====        ==========              =====================
-!      10/22/03     Rusty Koder              Original code
-!       1/28/04     Les R. Koder             Revised to be consistent
-!                                            with evolving code design
-
-! include module that contains the user-accessible cmor functions.
-  USE cmor_users_functions
-  USE local_subs
-
-  IMPLICIT NONE
-
-  !   dimension parameters:
-  ! ---------------------------------
-  INTEGER, PARAMETER :: ntimes = 2    ! number of time samples to process
-  INTEGER, PARAMETER :: lon = 4       ! number of longitude grid cells  
-  INTEGER, PARAMETER :: lat = 3       ! number of latitude grid cells
-  INTEGER, PARAMETER :: lev = 5       ! number of standard pressure levels
-  INTEGER, PARAMETER :: n2d = 3       ! number of AMIP Table 2 fields to be
-                                      !     output.
-  INTEGER, PARAMETER :: n3d = 2       ! number of AMIP Table 1a fields to 
-                                      !     be output.  
-
-  !   Tables associating the user's variables with AMIP standard output 
-  !   variables.  The user may choose to make this association in a 
-  !   different way (e.g., by defining values of pointers that allow him 
-  !   to directly retrieve data from a data record containing many 
-  !   different variables), but in some way the user will need to map his 
-  !   model output onto the Tables specifying the MIP standard output.
-
-  ! ----------------------------------
-
-                                ! My variable names for Table 1a fields
-  CHARACTER (LEN=2), DIMENSION(n3d) :: varin3d=(/ 'U', 'T'/)
-                                ! Units appropriate to my data
-  CHARACTER (LEN=5), DIMENSION(n3d) :: &
-                                  units3d=(/ 'm s-1',   'K    '  /)
-  CHARACTER (LEN=4), DIMENSION(n3d) ::  &
-                              positive3d= (/   '',       '' /)
-                     ! Corresponding AMIP Table 1a entry (variable name) 
-  CHARACTER (LEN=2), DIMENSION(n3d) :: entry3d = (/ 'ua', 'ta' /)
-
-                                ! My variable names for Table 2 fields
-  CHARACTER (LEN=8), DIMENSION(n2d) :: &
-                          varin2d=(/ 'LATENT  ', 'TSURF   ', 'SOIL_WET' /)
-                                ! Units appropriate to my data
-   CHARACTER (LEN=6), DIMENSION(n2d) :: &
-                          units2d=(/ 'W m-2 ', 'K     ', 'kg m-2' /)
-   CHARACTER (LEN=4), DIMENSION(n2d) :: &
-                      positive2d= (/  'down',  '    ',       '    ' /)
-                     ! Corresponding AMIP Table 2 entry (variable name) 
-  CHARACTER (LEN=5), DIMENSION(n2d) :: &
-                        entry2d = (/ 'hfls ', 'tas  ', 'mrsos' /)
-
-!  uninitialized variables used in communicating with CMOR:
-!  ---------------------------------------------------------
-
-  INTEGER :: error_flag
-  INTEGER, DIMENSION(3) :: axis2d_ids
-  INTEGER, DIMENSION(4) :: axis3d_ids
-  INTEGER, DIMENSION(n2d) :: var2d_ids
-  INTEGER, DIMENSION(n3d) :: var3d_ids
-  REAL, DIMENSION(lon,lat) :: data2d
-  REAL, DIMENSION(lon,lat,lev) :: data3d
-  DOUBLE PRECISION, DIMENSION(lat) :: alats
-  DOUBLE PRECISION, DIMENSION(lon) :: alons
-  DOUBLE PRECISION, DIMENSION(lev) :: plevs
-  DOUBLE PRECISION :: time
-  DOUBLE PRECISION, DIMENSION(2):: bnds_time
-  DOUBLE PRECISION, DIMENSION(2,lat) :: bnds_lat
-  DOUBLE PRECISION, DIMENSION(2,lon) :: bnds_lon
-
-!!$  REAL, DIMENSION(lat*lon*lev) :: tmp3d
-!!$  REAL, DIMENSION(lat*lon) :: tmp2d
-
-  !  Other variables:
-  !  ---------------------
-  
-  INTEGER :: it, m
-  
-  
-  ! ================================
-  !  Execution begins here:
-  ! ================================
-  
-  ! Read coordinate information from model into arrays that will be passed 
-  !   to CMOR.
-  ! Read latitude, longitude, and pressure coordinate values into 
-  !   alats, alons, and plevs, respectively.  Also generate latitude and 
-  !   longitude bounds, and store in bnds_lat and bnds_lon, respectively.
-  
-  !   The user must write the subroutine that fills the coordinate arrays 
-  !   and their bounds with actual data.  The following line is simply a
-  !   a place-holder for the user's code, which should replace it.
-  
-  !  *** possible user-written call ***	
-  
-  print*, 'calling read_coords '
-
-  call read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-
-  print*, 'returned from read_coords'
-  
-  ! Specify path where tables can be found, indicate that existing netCDF 
-  !    files should not be overwritten, and instruct CMOR to error exit on 
-  !    encountering errors of any severity.
-  
-  error_flag = cmor_setup(inpath='Test',   &
-       netcdf_file_action='replace',                                       &
-       set_verbosity=1,                                                    &
-       exit_control=1)
-  
-  ! Define dataset as output from the GICC model (first member of an
-  !   ensemble of simulations) runcmor_write under IPCC 2xCO2 equilibrium
-  !   experiment conditions, and provide information to be included as 
-  !   attributes in all CF-netCDF files written as part of this dataset.
-
-  print*, 'calling cmor_dataset'
-  error_flag = cmor_dataset(                                   &
-       outpath='Test',         &
-       experiment_id='2xCO2 equilibrium experiment',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       'Geneva, Switzerland)',                                 &
-       source='GICCM  2002(giccm_0_brnchT_itea_2, T63L32)',    &
-       calendar='360_day',                                      &
-       realization=1,                                          &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also ' //          &
-       'see http://www.GICC.su/giccm/doc/index.html '  //      &
-       ' 2XCO2 simulation described in Dorkey et al. '//       &
-       '(Clim. Dyn., 2003, 323-357.)', model_id="pcmdi-08a", &
-       forcing="co2")
-  
-  print*, 'returned from cmor_dataset'
-
-  !  Define axes for 3-d fields
-
-  print*, 'defining 3-d axes'
-  
-  axis3d_ids(2) = cmor_axis(  &
-       table='CMOR_SAMPLE_TABLE',    &
-       table_entry='latitude',       &
-       units='degrees_north',        &  
-       length=lat,                   &
-       coord_vals=alats,             & 
-       cell_bounds=bnds_lat)              
-  axis3d_ids(1) = cmor_axis(  &
-       table='CMOR_SAMPLE_TABLE',    &
-       table_entry='longitude',      &
-       length=lon,                   &
-       units='degrees_east',         &
-       coord_vals=alons,             &
-       cell_bounds=bnds_lon)              
-  axis3d_ids(3) = cmor_axis(  &
-       table='CMOR_SAMPLE_TABLE',    &
-       table_entry='pressure',       &
-       units='Pa',                   &
-       length=lev,                   &
-       coord_vals=plevs)
-  !   note that the time axis is defined next, but the time coordinate 
-  !   values and bounds will be passed to cmor through function 
-  !   cmor_write (below).
-print*, 'before time '
-  axis3d_ids(4) = cmor_axis(  &
-       table='CMOR_SAMPLE_TABLE',    &
-       table_entry='time',           &
-       units='days since 1979-1-1',  &
-       length=ntimes,                &
-       interval='1 month')
-  
-  print*, 'finished defining 3-d axes'
-
-  !  Define axes for 2-d fields
-  
-  print*, 'defining 2-d axes'
-
-  axis2d_ids(1) = axis3d_ids(1)          
-  axis2d_ids(2) = axis3d_ids(2)           
-  axis2d_ids(3) = axis3d_ids(4)
-  
-print*, 'finished defining 2-d axes'
-
-  !  Define variables found in AMIP table 1a (3-d variables)
-  
-  DO m=1,n3d
-     var3d_ids(m) = cmor_variable(    &   
-          table='CMOR_SAMPLE_TABLE',  &
-          table_entry=entry3d(m),     &
-          units=units3d(m),           &
-          axis_ids=axis3d_ids,        &
-          missing_value=1.0e20,       &
-          positive=positive3d(m),     &
-          original_name=varin3d(m))
-  ENDDO
-  
-
-  !  Define variables found in AMIP table 2a (2-d variables)
-  
-  DO m=1,n2d
-     var2d_ids(m) = cmor_variable(    &
-          table='CMOR_SAMPLE_TABLE',  & 
-          table_entry=entry2d(m),     & 
-          units=units2d(m),           & 
-          axis_ids=axis2d_ids,        &
-          missing_value=1.0e20,       &
-          positive=positive2d(m),     &
-          original_name=varin2d(m))   
-  ENDDO
-
-print*, 'completed everything up to writing output fields '
-  
-  !  Loop through history files (each containing several different fields, 
-  !       but only a single month of data, averaged over the month).  Then 
-  !       extract fields of interest and write these to netCDF files (with 
-  !       one field per file, but all months included in the loop).
-  
-  time_loop: DO it=1, ntimes
-     
-     ! In the following loops over the 3d and 2d fields, the user-written    
-     ! subroutines (read_3d_input_files and read_2d_input_files) retrieve 
-     ! the requested AMIP table 1a and table 2 fields and store them in 
-     ! data3d and data2d, respectively.  In addition a user-written code 
-     ! (read_time) retrieves the time and time-bounds associated with the 
-     ! time sample (in units of 'days since 1970-1-1', consistent with the 
-     ! axis definitions above).  The bounds are set to the beginning and 
-     ! the end of the month retrieved, indicating the averaging period.
-     
-     ! The user must write a code to obtain the times and time-bounds for
-     !   the time slice.  The following line is simply a place-holder for
-     !   the user's code, which should replace it.
-     
-    call read_time(it, time, bnds_time)
-     
-     ! Cycle through the 3-d fields, retrieve the requested variable and 
-     ! append each to the appropriate netCDF file.
-    
- 
-
-    DO m=1,n3d
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-
-        call read_3d_input_files(it, varin3d(m), data3d)
-
-       
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-        
-        error_flag = cmor_write(                                  &
-             var_id        = var3d_ids(m),                        &
-             data          = RESHAPE(data3d, (/ lat*lon*lev /)),  &
-             ntimes_passed = 1,                                   &
-             time_vals     = (/ time /),                          &
-             time_bnds     = RESHAPE(bnds_time, (/ 2,1 /)))
-        
-print*, 'after writing variable, ', var3d_ids(m)
-print*, '    error flag = ', error_flag
-
-        IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) ' Error encountered writing AMIP Table 1a ' &
-                // 'field ', entry3d(m), ', which I call ', varin3d(m)
-           write(*,*) ' Was processing time sample: ', time
-           
-!!$            error_flag = cmor_error_trace(device=0)
-           
-        END IF
-
-     END DO
-     
-     ! Cycle through the 2-d fields, retrieve the requested variable and 
-     ! append each to the appropriate netCDF file.
-     
-     DO m=1,n2d
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-        
-        call read_2d_input_files(it, varin2d(m), data2d)                  
-
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-
-        error_flag = cmor_write(                                  &
-             var_id        = var2d_ids(m),                        &
-             data          = RESHAPE(data2d, (/ lat*lon /)),      &
-             ntimes_passed = 1,                                   &
-             time_vals     = (/ time /),                          &
-             time_bnds     = RESHAPE(bnds_time, (/ 2,1 /)))
-        
-print*, 'after writing variable, ', var2d_ids(m)
-print*, '    error flag = ', error_flag
-       IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) ' Error encountered writing AMIP Table 2 ' &
-                // 'field ', entry2d(m), ', which I call ', varin2d(m)
-           write(*,*) ' Was processing time sample: ', time 
-           
-!!$            error_flag = cmor_error_trace(device=0)
-           
-        END IF
-        
-     END DO
-     
-  END DO time_loop
-  
-  !   Close all files opened by CMOR.
-  
-  error_flag = cmor_close()  
-
-print*, '******************************'
-print*, ' '
-print*, 'CMOR COMPLETED SUCCESSFULLY '   
-print*, ' '
-print*, '******************************'
-
-END PROGRAM mip_contribution
-
diff --git a/Test/old_cmor_tables/mytest.f90 b/Test/old_cmor_tables/mytest.f90
deleted file mode 100644
index b94cced..0000000
--- a/Test/old_cmor_tables/mytest.f90
+++ /dev/null
@@ -1,182 +0,0 @@
-program main
-
-  USE cmor_users_functions
-  implicit none
-
-  integer ncid
-
-  type dims
-     integer n
-     character(256) name
-     character(256) units
-     double precision, DIMENSION(:), pointer :: values
-     double precision, DIMENSION(:,:), pointer :: bounds     
-     type(dims), pointer :: next
-  end type dims
-  character(256) filein
-  type(dims), pointer :: mydims,current
-  integer ndim,i,j,ntot
-!  integer, allocatable, dimension(:):: arrayin
-  double precision, allocatable, dimension(:):: arrayin
-  integer, dimension(7):: dimlength = (/ (1,i=1,7) /)
-  integer, PARAMETER::verbosity = 2
-  integer ierr
-  integer, allocatable, dimension(:) :: myaxis
-  integer myvar
-
-  print*, 'hi enter test file case'
-  filein='Test/tas.asc'
-  read(5,'(A)') filein
-  open(unit=23,file=filein,form='formatted') 
-  call allocate_dims(23,mydims,ndim)
-  allocate(myaxis(ndim))
-  current=>mydims
-  ntot=1
-  do i =1,ndim
-     ntot=ntot*current%n
-     current=>current%next
-  enddo
-  call read_ascii(23,mydims, ndim,ntot,arrayin)
-  
-  
-!!$!! Ok here is the part where we define or variable/axis,etc... 
-!!$!! Assuming that Karl's code is ok...
-!!$
-  
-  print*,'CMOR SETUP'
-!!$  
-  ierr = cmor_setup(inpath='Test',   &
-       netcdf_file_action='replace',                                       &
-       set_verbosity=1,                                                    &
-       exit_control=1)
-    
-  print*,'CMOR DATASET'
-  ierr = cmor_dataset(                                   &
-       outpath='Test',         &
-       experiment_id='2xCO2 equilibrium experiment',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       ' Geneva, Switzerland)',                                &
-       source='GICCM  2002(giccm_0_brnchT_itea_2, T63L32)',    &
-       calendar='noleap',                                      &
-       realization=1,                                          &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also ' //          &
-       'see http://www.GICC.su/giccm/doc/index.html '  //      &
-       ' 2XCO2 simulation described in Dorkey et al. '//       &
-       '(Clim. Dyn., 2003, 323-357.)' )
-  
-  current=>mydims
-  do i = 0,ndim-1
-     print*,'CMOR AXIS',i,'AAAAAAA**************************'
-     print*, 'Name:',trim(adjustl(current%name)),'--',trim(adjustl(mydims%name))
-     print*, current%units
-     print*, current%n,size(current%values)
-     print*, current%values(1:min(4,size(current%values)))
-     print*, current%bounds(1:2,1:min(4,size(current%values)))
-     if (i==0) then
-        myaxis(ndim-i)=cmor_axis('CMOR_SAMPLE_TABLE', &
-             table_entry=current%name,&
-             units=current%units,&
-             length=current%n)
-     else
-        myaxis(ndim-i)=cmor_axis('CMOR_SAMPLE_TABLE', &
-             table_entry=current%name,&
-             units=current%units,&
-             length=current%n,&
-             coord_vals=current%values,&
-             cell_bounds=current%bounds)
-     endif
-     current=>current%next
-  enddo
-
-  print*,'CMOR VAR'
-  myvar=cmor_variable('CMOR_SAMPLE_TABLE',&
-       'tas',&
-       'K',&
-       myaxis,&
-       missing_value=1.e20)
-
-!! figures out length of dimension other than time
-
-
-
-  j=ntot/mydims%n
-  print*, '&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'
-  do i=1,mydims%n !! write times one at a time
-!!$     print*,'before:', arrayin(j*(i-1)+1),j*(i-1)+1,j,i,ntot
-     print*, 'size of arrayin',size(arrayin(j*(i-1)+1:j*i))
-     ierr = cmor_write( &
-          var_id        = myvar,                        &
-          data          = arrayin(j*(i-1)+1:j*i), &
-          ntimes_passed = 1,                              &
-          time_vals     = mydims%values(i:i),                         &
-          time_bnds     = mydims%bounds(1:2,i:i) &
-          )
-  enddo
-
-  ierr = cmor_close()  
-
- 
-contains
-  subroutine allocate_dims(file_id,mydims,ndim)
-    implicit none
-    integer i,n,j,tmp,file_id
-    integer, intent(inout)::ndim
-    type(dims) , pointer :: tmpdims,mydims
-    read(file_id,'(I4)') ndim
-!!$    allocate(dimlength(ndim))
-    n=1
-    allocate(mydims)
-    tmpdims=>mydims
-    do i = 1, ndim
-       read(file_id,'(I4)') tmp
-       dimlength(8-i)=tmp
-       allocate(tmpdims%values(tmp))
-       allocate(tmpdims%bounds(2,tmp))
-       tmpdims%n=tmp
-       allocate(tmpdims%next)
-       tmpdims=>tmpdims%next
-       n=n*tmp
-    enddo
-    deallocate(tmpdims)
-    allocate(arrayin(n))
-  end subroutine allocate_dims
-  
-  subroutine read_ascii(file_unit,mydims,ndim,ntot,arrayin)
-    implicit none
-    type(dims), pointer::  mydims
-!    integer, dimension(ntot),intent(inout) :: arrayin
-    double precision, dimension(ntot),intent(inout) :: arrayin
-    type(dims), pointer ::  current
-    integer, intent(in)::ndim,file_unit
-    integer n,ntot,i,j,k
-    
-    current=>mydims
-    ntot=1
-    do i =1,ndim
-       n=current%n
-       ntot=ntot*n
-       read(file_unit,*) current%name
-       print*, 'NAME is:',current%name,trim(adjustl(mydims%name)),n,ntot
-       read(file_unit,'(A)') current%units
-       read(file_unit,*) (current%values(j),j=1,n)
-       read(file_unit,*) ((current%bounds(j,k),j=1,2),k=1,n)
-       print*, current%values(1),current%values(n)
-       print*, current%bounds(1,1),current%bounds(2,1)
-       print*, current%bounds(1,n),current%bounds(2,n)
-       current=>current%next
-    enddo
-    print *, 'ntot:',ntot
-       read(file_unit,*) (arrayin(i),i=1,ntot)
-
-print* ,trim(adjustl(mydims%name))
-print*,'done reading'
-  end subroutine read_ascii
-
-end program main
-
diff --git a/Test/old_cmor_tables/mytest_3d_i_2.f90 b/Test/old_cmor_tables/mytest_3d_i_2.f90
deleted file mode 100644
index 55a7c96..0000000
--- a/Test/old_cmor_tables/mytest_3d_i_2.f90
+++ /dev/null
@@ -1,194 +0,0 @@
-program main
-
-  USE cmor_users_functions
-  implicit none
-
-  integer ncid
-
-  type dims
-     integer n
-     character(256) name
-     character(256) units
-     double precision, DIMENSION(:), pointer :: values
-     double precision, DIMENSION(:,:), pointer :: bounds     
-     type(dims), pointer :: next
-  end type dims
-  character(256) filein
-  type(dims), pointer :: mydims,current
-  integer ndim,i,j,ntot,k,l
-!  double precision, allocatable, dimension(:,:,:,:):: arrayin
-  integer, allocatable, dimension(:,:,:,:):: arrayin
-  integer, dimension(7):: dimlength = (/ (1,i=1,7) /)
-  integer, PARAMETER::verbosity = 2
-  integer ierr
-  integer, allocatable, dimension(:) :: myaxis
-  integer myvar
-  real amin,amax
-
-  print*, 'hi'
-  filein='Test/ta.asc'
-  open(unit=23,file=filein,form='formatted') 
-  call allocate_dims(23,mydims,ndim,dimlength)
-  allocate(myaxis(ndim))
-  allocate(arrayin(dimlength(1),dimlength(2),dimlength(3),dimlength(4)))
-  print*,'allocatedat:',shape(arrayin),dimlength(1),dimlength(2),dimlength(3)
-  current=>mydims
-  ntot=1
-  do i =1,ndim
-     ntot=ntot*current%n
-     current=>current%next
-  enddo
-  call read_ascii(23,mydims, ndim,ntot,arrayin)
-!!$!! Ok here is the part where we define or variable/axis,etc... 
-!!$!! Assuming that Karl's code is ok...
-!!$
-  
-  print*,'CMOR SETUP'
-!!$  
-  ierr = cmor_setup(inpath='Test',   &
-       netcdf_file_action='replace',                                       &
-       set_verbosity=1,                                                    &
-       exit_control=1)
-    
-  print*,'CMOR DATASET'
-  ierr = cmor_dataset(                                   &
-       outpath='Test',         &
-       experiment_id='2xCO2 equilibrium experiment',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       ' Geneva, Switzerland)',                                &
-       source='GICCM  2002(giccm_0_brnchT_itea_2, T63L32)',    &
-       calendar='noleap',                                      &
-       realization=1,                                          &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also ' //          &
-       'see http://www.GICC.su/giccm/doc/index.html '  //      &
-       ' 2XCO2 simulation described in Dorkey et al. '//       &
-       '(Clim. Dyn., 2003, 323-357.)' )
-  
-  current=>mydims
-  do i = 0,ndim-1
-     print*,'CMOR AXIS',i,'AAAAAAA*************************************************************************'
-     print*, 'Name:',trim(adjustl(current%name))
-!!$     print*, current%units
-!!$     print*, current%n,size(current%values)
-!!$     print*, current%values(1:min(4,size(current%values)))
-!!$     print*, current%bounds(1:2,1:min(4,size(current%values)))
-     if (trim(adjustl(current%name)).eq.'time') then
-        print*, 'time found'
-     myaxis(ndim-i)=cmor_axis('CMOR_SAMPLE_TABLE', &
-          table_entry=current%name,&
-          units=current%units,&
-          length=current%n,&
-!!$          coord_vals=current%values,&
-!!$          cell_bounds=current%bounds, &
-          interval='20 minutes')
-     else
-     myaxis(ndim-i)=cmor_axis('CMOR_SAMPLE_TABLE', &
-          table_entry=current%name,&
-          units=current%units,&
-          length=current%n,&
-          coord_vals=current%values,&
-          cell_bounds=current%bounds)
-        print*, 'not time'
-     endif
-     current=>current%next
-  enddo
-
-  print*,'CMOR VARCMOR VARCMOR VARCMOR VARCMOR VARCMOR VARCMOR VARCMOR VARCMOR VARCMOR VARCMOR VARCMOR VARCMOR VARCMOR VARCMOR VARCMOR VARCMOR VARCMOR VARCMOR VARCMOR VARCMOR VARCMOR VARCMOR VARCMOR VAR'
-  myvar=cmor_variable('CMOR_SAMPLE_TABLE',&
-       'ta',&
-       'K',&
-       myaxis,&
-       missing_value=120)
-
-!! figures out length of dimension other than time
-
-  j=ntot/mydims%n
-  print*, '&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'
-  print*,'before:', shape(arrayin),mydims%n
-  print*,'before:', shape(arrayin(:,i,:))
-  print*, 'time before:',mydims%next%values(i:i)
-  do i = 1, mydims%n
-
-     amin=1.e20
-     amax=-1.e20
-     do j=1, size(arrayin,2)
-        do k= 1, size(arrayin,3)
-           do l = 1, size(arrayin,4)
-              if (arrayin(i,j,k,l).lt.amin) amin=arrayin(i,j,k,l)
-              if (arrayin(i,j,k,l).gt.amax) amax=arrayin(i,j,k,l)
-           end do
-        enddo
-     enddo
-
-     print*, 'Array for',i,' min,max :',amin,amax
-     ierr = cmor_write( &
-          var_id        = myvar, &
-          data          = arrayin(i,:,:,:), &
-          ntimes_passed = 1,   &
-          time_vals     = mydims%values(i:i),  &
-          time_bnds     = mydims%bounds(:,i:i) &
-          )
-  enddo
-  ierr = cmor_close()
-
-contains
-  subroutine allocate_dims(file_id,mydims,ndim,dimlength)
-    implicit none
-    integer i,n,j,tmp,file_id
-    integer, intent(inout)::ndim
-    integer, intent(inout):: dimlength(7)
-    type(dims) , pointer :: tmpdims,mydims
-    read(file_id,'I') ndim
-!!$    allocate(dimlength(ndim))
-    n=1
-    allocate(mydims)
-    tmpdims=>mydims
-    do i = 1, ndim
-       read(file_id,'I') tmp
-!!$print*,'allocatedat:',tmp
-       dimlength(4-i)=tmp
-       allocate(tmpdims%values(tmp))
-       allocate(tmpdims%bounds(2,tmp))
-       tmpdims%n=tmp
-       allocate(tmpdims%next)
-       tmpdims=>tmpdims%next
-       n=n*tmp
-    enddo
-    deallocate(tmpdims)
-  end subroutine allocate_dims
-  
-  subroutine read_ascii(file_unit,mydims,ndim,ntot,arrayin)
-    implicit none
-    type(dims), pointer::  mydims
-!    double precision, dimension(:,:,:),intent(inout) :: arrayin
-    integer, dimension(:,:,:,:),intent(inout) :: arrayin
-    integer, dimension(ndim)
-    type(dims), pointer ::  current
-    integer, intent(in)::ndim,file_unit
-    integer n,ntot,i,j,k,l
-    
-    current=>mydims
-    ntot=1
-    do i =1,ndim
-       n=current%n
-       ntot=ntot*n
-       read(23,*) (current%name)
-       print*, 'NAME is:',current%name,trim(adjustl(mydims%name))
-       read(23,*) (current%units)
-       read(23,*) (current%values(j),j=1,n)
-       read(23,*) ((current%bounds(j,k),j=1,2),k=1,n)
-       print*, current%bounds(1,1),current%bounds(1,2)
-       current=>current%next
-    enddo
-    read(file_unit,*) (((arrayin(j,k,l),j=1,size(arrayin,1)),k=1,size(arrayin,2)),l=1,size(arrayin,3))
-print* ,trim(adjustl(mydims%name))
-  end subroutine read_ascii
-
-end program main
-
diff --git a/Test/old_cmor_tables/mytest_3d_r.f90 b/Test/old_cmor_tables/mytest_3d_r.f90
deleted file mode 100644
index c611f04..0000000
--- a/Test/old_cmor_tables/mytest_3d_r.f90
+++ /dev/null
@@ -1,182 +0,0 @@
-program main
-
-  USE cmor_users_functions
-  implicit none
-
-  integer ncid
-
-  type dims
-     integer n
-     character(256) name
-     character(256) units
-     double precision, DIMENSION(:), pointer :: values
-     double precision, DIMENSION(:,:), pointer :: bounds     
-     type(dims), pointer :: next
-  end type dims
-  character(256) filein
-  type(dims), pointer :: mydims,current
-  integer ndim,i,j,ntot
-!  double precision, allocatable, dimension(:,:,:):: arrayin
-  real, allocatable, dimension(:,:,:):: arrayin
-  integer, dimension(7):: dimlength = (/ (1,i=1,7) /)
-  integer, PARAMETER::verbosity = 2
-  integer ierr
-  integer, allocatable, dimension(:) :: myaxis
-  integer myvar
-  real mymiss
-
-  print*, 'hi'
-  filein='Test/tas_3d_r.asc'
-  open(unit=23,file=filein,form='formatted') 
-  call allocate_dims(23,mydims,ndim,dimlength)
-  allocate(myaxis(ndim))
-  allocate(arrayin(dimlength(1),dimlength(2),dimlength(3)))
-  print*,'allocatedat:',shape(arrayin),dimlength(1),dimlength(2),dimlength(3)
-  current=>mydims
-  ntot=1
-  do i =1,ndim
-     ntot=ntot*current%n
-     current=>current%next
-  enddo
-  call read_ascii(23,mydims, ndim,ntot,arrayin)
-  
-  
-!!$!! Ok here is the part where we define or variable/axis,etc... 
-!!$!! Assuming that Karl's code is ok...
-!!$
-  
-  print*,'CMOR SETUP'
-!!$  
-  ierr = cmor_setup(inpath='Test',   &
-       netcdf_file_action='replace',                                       &
-       set_verbosity=1,                                                    &
-       exit_control=1)
-    
-  print*,'CMOR DATASET'
-  ierr = cmor_dataset(                                   &
-       outpath='Test',         &
-       experiment_id='2xCO2 equilibrium experiment',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       ' Geneva, Switzerland)',                                &
-       source='GICCM  2002(giccm_0_brnchT_itea_2, T63L32)',    &
-       calendar='noleap',                                      &
-       realization=1,                                          &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also ' //          &
-       'see http://www.GICC.su/giccm/doc/index.html '  //      &
-       ' 2XCO2 simulation described in Dorkey et al. '//       &
-       '(Clim. Dyn., 2003, 323-357.)' )
-  
-  current=>mydims
-  do i = 0,ndim-1
-     print*,'CMOR AXIS',i,'AAAAAAA*************************************************************************'
-     print*, 'Name:',trim(adjustl(current%name))
-!!$     print*, current%units
-!!$     print*, current%n,size(current%values)
-!!$     print*, current%values(1:min(4,size(current%values)))
-!!$     print*, current%bounds(1:2,1:min(4,size(current%values)))
-     if (trim(adjustl(current%name)).eq.'time') then
-        print*, 'time found'
-     myaxis(ndim-i)=cmor_axis('CMOR_SAMPLE_TABLE', &
-          table_entry=current%name,&
-          units=current%units,&
-          length=current%n,&
-!!$          coord_vals=current%values,&
-!!$          cell_bounds=current%bounds, &
-          interval='20 minutes')
-     else
-     myaxis(ndim-i)=cmor_axis('CMOR_SAMPLE_TABLE', &
-          table_entry=current%name,&
-          units=current%units,&
-          length=current%n,&
-          coord_vals=current%values,&
-          cell_bounds=current%bounds)
-        print*, 'not time'
-     endif
-     current=>current%next
-  enddo
-
-  mymiss=1.e20
-  print*,'CMOR VARCMOR VARCMOR VARCMOR',mymiss
-  myvar=cmor_variable('CMOR_SAMPLE_TABLE',&
-       'tas',&
-       'K',&
-       myaxis,&
-       missing_value=mymiss)
-
-!! figures out length of dimension other than time
-
-  j=ntot/mydims%n
-  print*, '&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'
-  print*,'before:', shape(arrayin),mydims%n
-  print*,'before:', shape(arrayin(:,:,i))
-  print*, 'time before:',mydims%values(i:i)
-  ierr = cmor_write( &
-       var_id        = myvar, &
-       data          = arrayin, &
-       ntimes_passed = mydims%next%n,   &
-       time_vals     = mydims%next%values,  &
-       time_bnds     = mydims%next%bounds &
-       )
-
-  ierr = cmor_close()
-
-contains
-  subroutine allocate_dims(file_id,mydims,ndim,dimlength)
-    implicit none
-    integer i,n,j,tmp,file_id
-    integer, intent(inout)::ndim
-    integer, intent(inout):: dimlength(7)
-    type(dims) , pointer :: tmpdims,mydims
-    read(file_id,'(I8)') ndim
-!!$    allocate(dimlength(ndim))
-    n=1
-    allocate(mydims)
-    tmpdims=>mydims
-    do i = 1, ndim
-       read(file_id,'(I8)') tmp
-!!$print*,'allocatedat:',tmp
-       dimlength(4-i)=tmp
-       allocate(tmpdims%values(tmp))
-       allocate(tmpdims%bounds(2,tmp))
-       tmpdims%n=tmp
-       allocate(tmpdims%next)
-       tmpdims=>tmpdims%next
-       n=n*tmp
-    enddo
-    deallocate(tmpdims)
-  end subroutine allocate_dims
-  
-  subroutine read_ascii(file_unit,mydims,ndim,ntot,arrayin)
-    implicit none
-    type(dims), pointer::  mydims
-!    double precision, dimension(:,:,:),intent(inout) :: arrayin
-    real, dimension(:,:,:),intent(inout) :: arrayin
-    type(dims), pointer ::  current
-    integer, intent(in)::ndim,file_unit
-    integer n,ntot,i,j,k,l
-    
-    current=>mydims
-    ntot=1
-    do i =1,ndim
-       n=current%n
-       ntot=ntot*n
-       read(23,*) (current%name)
-       print*, 'NAME is:',current%name,trim(adjustl(mydims%name))
-       read(23,*) (current%units)
-       read(23,*) (current%values(j),j=1,n)
-       read(23,*) ((current%bounds(j,k),j=1,2),k=1,n)
-       print*, current%bounds(1,1),current%bounds(1,2)
-       current=>current%next
-    enddo
-    read(file_unit,*) (((arrayin(j,k,l),j=1,size(arrayin,1)),k=1,size(arrayin,2)),l=1,size(arrayin,3))
-print* ,trim(adjustl(mydims%name))
-  end subroutine read_ascii
-
-end program main
-
diff --git a/Test/old_cmor_tables/mytest_3d_r_2.f90 b/Test/old_cmor_tables/mytest_3d_r_2.f90
deleted file mode 100644
index b0b0390..0000000
--- a/Test/old_cmor_tables/mytest_3d_r_2.f90
+++ /dev/null
@@ -1,196 +0,0 @@
-program main
-
-  USE cmor_users_functions
-  implicit none
-
-  integer ncid
-
-  type dims
-     integer n
-     character(256) name
-     character(256) units
-     double precision, DIMENSION(:), pointer :: values
-     double precision, DIMENSION(:,:), pointer :: bounds     
-     type(dims), pointer :: next
-  end type dims
-  character(256) filein
-  type(dims), pointer :: mydims,current
-  integer ndim,i,j,ntot,k,l
-!  double precision, allocatable, dimension(:,:,:,:):: arrayin
-  real, allocatable, dimension(:,:,:,:):: arrayin
-  integer, dimension(7):: dimlength = (/ (1,i=1,7) /)
-  integer, PARAMETER::verbosity = 2
-  integer ierr
-  integer, allocatable, dimension(:) :: myaxis
-  integer myvar
-  real amin,amax,mymiss
-
-  print*, 'hi'
-  filein='Test/ta_3D_r_2.asc'
-  open(unit=23,file=filein,form='formatted') 
-  call allocate_dims(23,mydims,ndim,dimlength)
-  allocate(myaxis(ndim))
-  allocate(arrayin(dimlength(1),dimlength(2),dimlength(3),dimlength(4)))
-  print*,'allocatedat:',shape(arrayin),dimlength(1),dimlength(2),dimlength(3),dimlength(4)
-  current=>mydims
-  ntot=1
-  do i =1,ndim
-     ntot=ntot*current%n
-     current=>current%next
-  enddo
-  call read_ascii(23,mydims, ndim,ntot,arrayin)
-!!$!! Ok here is the part where we define or variable/axis,etc... 
-!!$!! Assuming that Karl's code is ok...
-!!$
-  
-  print*,'CMOR SETUP'
-!!$  
-  ierr = cmor_setup(inpath='Test',   &
-       netcdf_file_action='replace',                                       &
-       set_verbosity=1,                                                    &
-       exit_control=1)
-    
-  print*,'CMOR DATASET'
-  ierr = cmor_dataset(                                   &
-       outpath='Test',         &
-       experiment_id='2xCO2 equilibrium experiment',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       ' Geneva, Switzerland)',                                &
-       source='GICCM  2002(giccm_0_brnchT_itea_2, T63L32)',    &
-       calendar='noleap',                                      &
-       realization=1,                                          &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also ' //          &
-       'see http://www.GICC.su/giccm/doc/index.html '  //      &
-       ' 2XCO2 simulation described in Dorkey et al. '//       &
-       '(Clim. Dyn., 2003, 323-357.)' )
-  
-  current=>mydims
-  do i = 0,ndim-1
-     print*,'CMOR AXIS',i,'AAAAAAA*************************************************************************'
-     print*, 'Name:',trim(adjustl(current%name))
-!!$     print*, current%units
-!!$     print*, current%n,size(current%values)
-!!$     print*, current%values(1:min(4,size(current%values)))
-!!$     print*, current%bounds(1:2,1:min(4,size(current%values)))
-     if (trim(adjustl(current%name)).eq.'time') then
-        print*, 'time found'
-     myaxis(ndim-i)=cmor_axis('CMOR_SAMPLE_TABLE', &
-          table_entry=current%name,&
-          units=current%units,&
-          length=current%n,&
-!!$          coord_vals=current%values,&
-!!$          cell_bounds=current%bounds, &
-          interval='20 minutes')
-     else
-     myaxis(ndim-i)=cmor_axis('CMOR_SAMPLE_TABLE', &
-          table_entry=current%name,&
-          units=current%units,&
-          length=current%n,&
-          coord_vals=current%values,&
-          cell_bounds=current%bounds)
-        print*, 'not time'
-     endif
-     current=>current%next
-  enddo
-
-  print*,'CMOR VARCMOR VARCMOR VARCMOR'
-
-  mymiss=1.e20
-  myvar=cmor_variable('CMOR_SAMPLE_TABLE',&
-       'ta',&
-       'K',&
-       myaxis,&
-       missing_value=mymiss)
-
-!! figures out length of dimension other than time
-
-  j=ntot/mydims%n
-!!$  print*, '&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'
-!!$  print*,'before:', shape(arrayin),mydims%n
-!!$  print*,'before:', shape(arrayin(:,i,:))
-!!$  print*, 'time before:',mydims%next%values(i:i)
-  do i = 1, mydims%n
-
-     amin=1.e20
-     amax=-1.e20
-     do j=1, size(arrayin,2)
-        do k= 1, size(arrayin,3)
-           do l = 1, size(arrayin,4)
-              if (arrayin(j,k,l,i).lt.amin) amin=arrayin(i,j,k,l)
-              if (arrayin(j,k,l,i).gt.amax) amax=arrayin(i,j,k,l)
-           end do
-        enddo
-     enddo
-
-     print*, 'Array for',i,' min,max :',amin,amax,'Ssub',shape(arrayin(:,:,:,i)),'S',shape(arrayin)
-     ierr = cmor_write( &
-          var_id        = myvar, &
-          data          = arrayin(:,:,:,i), &
-          ntimes_passed = 1,   &
-          time_vals     = mydims%values(i:i),  &
-          time_bnds     = mydims%bounds(:,i:i) &
-          )
-  enddo
-  ierr = cmor_close()
-
-contains
-  subroutine allocate_dims(file_id,mydims,ndim,dimlength)
-    implicit none
-    integer i,n,j,tmp,file_id
-    integer, intent(inout)::ndim
-    integer, intent(inout):: dimlength(7)
-    type(dims) , pointer :: tmpdims,mydims
-    read(file_id,'(i8)') ndim
-!!$    allocate(dimlength(ndim))
-    n=1
-    allocate(mydims)
-    tmpdims=>mydims
-    do i = 1, ndim
-       read(file_id,'(I8)') tmp
-!!$print*,'allocatedat:',tmp
-       dimlength(5-i)=tmp
-       allocate(tmpdims%values(tmp))
-       allocate(tmpdims%bounds(2,tmp))
-       tmpdims%n=tmp
-       allocate(tmpdims%next)
-       tmpdims=>tmpdims%next
-       n=n*tmp
-    enddo
-    deallocate(tmpdims)
-  end subroutine allocate_dims
-  
-  subroutine read_ascii(file_unit,mydims,ndim,ntot,arrayin)
-    implicit none
-    type(dims), pointer::  mydims
-!    double precision, dimension(:,:,:),intent(inout) :: arrayin
-    real, dimension(:,:,:,:),intent(inout) :: arrayin
-!    integer, dimension(ndim)
-    type(dims), pointer ::  current
-    integer, intent(in)::ndim,file_unit
-    integer n,ntot,i,j,k,l,m
-    
-    current=>mydims
-    ntot=1
-    do i =1,ndim
-       n=current%n
-       ntot=ntot*n
-       read(23,*) (current%name)
-       print*, 'NAME is:',current%name,trim(adjustl(mydims%name))
-       read(23,*) (current%units)
-       read(23,*) (current%values(j),j=1,n)
-       read(23,*) ((current%bounds(j,k),j=1,2),k=1,n)
-       print*, current%bounds(1,1),current%bounds(1,2)
-       current=>current%next
-    enddo
-    read(file_unit,*) ((((arrayin(j,k,l,m),j=1,size(arrayin,1)),k=1,size(arrayin,2)),l=1,size(arrayin,3)),m=1,size(arrayin,4))
-print* ,trim(adjustl(mydims%name))
-  end subroutine read_ascii
-
-end program main
-
diff --git a/Test/old_cmor_tables/mytest_4d_d_big_array_2.f90 b/Test/old_cmor_tables/mytest_4d_d_big_array_2.f90
deleted file mode 100644
index 49a21e2..0000000
--- a/Test/old_cmor_tables/mytest_4d_d_big_array_2.f90
+++ /dev/null
@@ -1,204 +0,0 @@
-program main
-
-  USE cmor_users_functions
-  implicit none
-
-  integer ncid
-
-  type dims
-     integer n
-     character(256) name
-     character(256) units
-     double precision, DIMENSION(:), pointer :: values
-     double precision, DIMENSION(:,:), pointer :: bounds     
-     type(dims), pointer :: next
-  end type dims
-  character(256) filein
-  type(dims), pointer :: mydims,current
-  integer ndim,i,j,ntot,k,l
-  double precision, allocatable, dimension(:,:,:,:):: arrayin
-!  real, allocatable, dimension(:,:,:,:):: arrayin
-  double precision, allocatable :: bigarray(:)
-  integer, dimension(7):: dimlength = (/ (1,i=1,7) /)
-  integer, PARAMETER::verbosity = 2
-  integer ierr
-  integer, allocatable, dimension(:) :: myaxis
-  integer myvar
-  real amin,amax,mymiss
-
-  print*, 'Test Code: hi'
-  filein='Test/ta_4D_r.asc'
-  open(unit=23,file=filein,form='formatted') 
-  call allocate_dims(23,mydims,ndim,dimlength)
-  allocate(myaxis(ndim))
-  allocate(arrayin(dimlength(1),dimlength(2),dimlength(3),dimlength(4)))
-  allocate(bigarray(dimlength(1)*dimlength(2)*5*dimlength(3)*dimlength(4)))
-  print*,'Test Code: allocate data    :',shape(arrayin),'dims:',dimlength(1),dimlength(2),dimlength(3),dimlength(4)
-  print*,'Test Code: allocate data big:',shape(bigarray)
-  current=>mydims
-  ntot=1
-  do i =1,ndim
-     ntot=ntot*current%n
-     current=>current%next
-  enddo
-  call read_ascii(23,mydims, ndim,ntot,arrayin)
-!!$!! Ok here is the part where we define or variable/axis,etc... 
-!!$!! Assuming that Karl's code is ok...
-!!$
-
-  print*, 'Test Code: putting everything into the big array contiguous fortran order means faster moving is first element'
-  bigarray=666. ! initialize bigarray at some bad value
-  ierr=1
-  do l = 1, dimlength(4)
-     do k = 1, dimlength(3)
-        do j = 1, dimlength(2)
-           do i = 1, dimlength(1)
-              bigarray(ierr)=arrayin(i,j,k,l)
-              ierr=ierr+1
-           enddo
-        enddo
-     enddo
-  enddo
-
-  print*,'Test Code: CMOR SETUP'
-!!$  
-  ierr = cmor_setup(inpath='Test',   &
-       netcdf_file_action='replace',                                       &
-       set_verbosity=1,                                                    &
-       exit_control=1)
-    
-  print*,'Test Code: CMOR DATASET'
-  ierr = cmor_dataset(                                   &
-       outpath='Test',         &
-       experiment_id='2xCO2 equilibrium experiment',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       ' Geneva, Switzerland)',                                &
-       source='GICCM  2002(giccm_0_brnchT_itea_2, T63L32)',    &
-       calendar='360_day',                                      &
-       realization=1,                                          &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also ' //          &
-       'see http://www.GICC.su/giccm/doc/index.html '  //      &
-       ' 2XCO2 simulation described in Dorkey et al. '//       &
-       '(Clim. Dyn., 2003, 323-357.)', model_id="pcmdi-08a", &
-       forcing="atm" )
-  
-  current=>mydims
-  do i = 0,ndim-1
-     print*,'Test Code: CMOR AXIS',i,'AAAAAAA*************************************************************************'
-     print*, 'Test Code: Name:',trim(adjustl(current%name))
-!!$     print*, 'Test Code: ',current%units
-!!$     print*, 'Test Code: ',current%n,size(current%values)
-!!$     print*, 'Test Code: ',current%values(1:min(4,size(current%values)))
-!!$     print*, 'Test Code: ',current%bounds(1:2,1:min(4,size(current%values)))
-     if (trim(adjustl(current%name)).eq.'time') then
-        print*, 'Test Code: time found'
-        myaxis(ndim-i)=cmor_axis('CMOR_SAMPLE_TABLE', &
-          table_entry=current%name,&
-          units=current%units,&
-          length=current%n,&
-!!$          coord_vals=current%values,&
-!!$          cell_bounds=current%bounds, &
-          interval='30 days')
-     else
-     myaxis(ndim-i)=cmor_axis('CMOR_SAMPLE_TABLE', &
-          table_entry=current%name,&
-          units=current%units,&
-          length=current%n,&
-          coord_vals=current%values,&
-          cell_bounds=current%bounds)
-        print*, 'Test Code: not time'
-     endif
-     current=>current%next
-  enddo
-
-  print*,'Test Code: CMOR VARCMOR VARCMOR VARCMOR'
-
-  mymiss=1.e20
-  myvar=cmor_variable('CMOR_SAMPLE_TABLE',&
-       'ta',&
-       'K',&
-       myaxis,&
-       missing_value=mymiss)
-
-!! figures out length of dimension other than time
-
-  j=ntot/mydims%n
-!!$  print*, 'Test Code: &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'
-!!$  print*,'Test Code: before:', shape(arrayin),mydims%n
-!!$  print*,'Test Code: before:', shape(arrayin(:,i,:))
-!!$  print*, 'Test Code: time before:',mydims%next%values(i:i)
-  current=>mydims%next%next
-print*, 'Test Code: values:',current%values
-print*, 'Test Code: bounds:',current%bounds
-print*, 'Test Code: N:',current%n
-  ierr = cmor_write( &
-       var_id        = myvar, &
-       data          = bigarray, &
-       ntimes_passed = current%n, &
-       time_vals     = current%values,  &
-       time_bnds     = current%bounds &
-       )
-  ierr = cmor_close()
-
-contains
-  subroutine allocate_dims(file_id,mydims,ndim,dimlength)
-    implicit none
-    integer i,n,j,tmp,file_id
-    integer, intent(inout)::ndim
-    integer, intent(inout):: dimlength(7)
-    type(dims) , pointer :: tmpdims,mydims
-    read(file_id,'(i8)') ndim
-!!$    allocate(dimlength(ndim))
-    n=1
-    allocate(mydims)
-    tmpdims=>mydims
-    do i = 1, ndim
-       read(file_id,'(I8)') tmp
-!!$print*,'Test Code: allocatedat:',tmp
-       dimlength(5-i)=tmp
-       allocate(tmpdims%values(tmp))
-       allocate(tmpdims%bounds(2,tmp))
-       tmpdims%n=tmp
-       allocate(tmpdims%next)
-       tmpdims=>tmpdims%next
-       n=n*tmp
-    enddo
-    deallocate(tmpdims)
-  end subroutine allocate_dims
-  
-  subroutine read_ascii(file_unit,mydims,ndim,ntot,arrayin)
-    implicit none
-    type(dims), pointer::  mydims
-    double precision, dimension(:,:,:,:),intent(inout) :: arrayin
-!    real, dimension(:,:,:,:),intent(inout) :: arrayin
-    type(dims), pointer ::  current
-    integer, intent(in)::ndim,file_unit
-    integer n,ntot,i,j,k,l,m
-    
-    current=>mydims
-    ntot=1
-    do i =1,ndim
-       n=current%n
-       ntot=ntot*n
-       read(file_unit,'(A)') current%name
-       print*, 'Test Code: NAME is:',current%name,trim(adjustl(mydims%name))
-       read(file_unit,'(A)') current%units
-       read(file_unit,*) (current%values(j),j=1,n)
-       read(file_unit,*) ((current%bounds(j,k),j=1,2),k=1,n)
-       print*, 'Test Code: ',current%bounds(1,1),current%bounds(1,2)
-       current=>current%next
-    enddo
-print*, 'Test Code: arrayin shape:',shape(arrayin)
-    read(file_unit,*) ((((arrayin(j,k,l,m),j=1,size(arrayin,1)),k=1,size(arrayin,2)),l=1,size(arrayin,3)),m=1,size(arrayin,4))
-print*, 'Test Code: done!'
-print* ,'Test Code: ',trim(adjustl(mydims%name))
-  end subroutine read_ascii
-
-end program main
-
diff --git a/Test/old_cmor_tables/mytest_4d_d_big_array_3.f90 b/Test/old_cmor_tables/mytest_4d_d_big_array_3.f90
deleted file mode 100644
index b62c229..0000000
--- a/Test/old_cmor_tables/mytest_4d_d_big_array_3.f90
+++ /dev/null
@@ -1,204 +0,0 @@
-program main
-
-  USE cmor_users_functions
-  implicit none
-
-  integer ncid
-
-  type dims
-     integer n
-     character(256) name
-     character(256) units
-     double precision, DIMENSION(:), pointer :: values
-     double precision, DIMENSION(:,:), pointer :: bounds     
-     type(dims), pointer :: next
-  end type dims
-  character(256) filein
-  type(dims), pointer :: mydims,current
-  integer ndim,i,j,ntot,k,l
-  double precision, allocatable, dimension(:,:,:,:):: arrayin
-!  real, allocatable, dimension(:,:,:,:):: arrayin
-  double precision, allocatable :: bigarray(:,:,:,:,:)
-  integer, dimension(7):: dimlength = (/ (1,i=1,7) /)
-  integer, PARAMETER::verbosity = 2
-  integer ierr
-  integer, allocatable, dimension(:) :: myaxis
-  integer myvar
-  real amin,amax,mymiss
-
-  print*, 'Test Code: hi'
-  filein='Test/ta_4D_r.asc'
-  open(unit=23,file=filein,form='formatted') 
-  call allocate_dims(23,mydims,ndim,dimlength)
-  allocate(myaxis(ndim))
-  allocate(arrayin(dimlength(1),dimlength(2),dimlength(3),dimlength(4)))
-  allocate(bigarray(dimlength(1),dimlength(2),dimlength(3),dimlength(4),5))
-  print*,'Test Code: allocate data    :',shape(arrayin),'dims:',dimlength(1),dimlength(2),dimlength(3),dimlength(4)
-  print*,'Test Code: allocate data big:',shape(bigarray)
-  current=>mydims
-  ntot=1
-  do i =1,ndim
-     ntot=ntot*current%n
-     current=>current%next
-  enddo
-  call read_ascii(23,mydims, ndim,ntot,arrayin)
-!!$!! Ok here is the part where we define or variable/axis,etc... 
-!!$!! Assuming that Karl's code is ok...
-!!$
-
-  print*, 'Test Code: putting everything into the big array contiguous fortran order means faster moving is first element'
-  bigarray=666. ! initialize bigarray at some bad value
-  ierr=1
-  do l = 1, dimlength(4)
-     do k = 1, dimlength(3)
-        do j = 1, dimlength(2)
-           do i = 1, dimlength(1)
-              bigarray(i,j,k,l,1)=arrayin(i,j,k,l)
-              ierr=ierr+1
-           enddo
-        enddo
-     enddo
-  enddo
-
-  print*,'Test Code: CMOR SETUP'
-!!$  
-  ierr = cmor_setup(inpath='Test',   &
-       netcdf_file_action='replace',                                       &
-       set_verbosity=1,                                                    &
-       exit_control=1)
-    
-  print*,'Test Code: CMOR DATASET'
-  ierr = cmor_dataset(                                   &
-       outpath='Test',         &
-       experiment_id='2xCO2 equilibrium experiment',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       ' Geneva, Switzerland)',                                &
-       source='GICCM  2002(giccm_0_brnchT_itea_2, T63L32)',    &
-       calendar='360_day',                                      &
-       realization=1,                                          &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also ' //          &
-       'see http://www.GICC.su/giccm/doc/index.html '  //      &
-       ' 2XCO2 simulation described in Dorkey et al. '//       &
-       '(Clim. Dyn., 2003, 323-357.)', model_id="pcmdi-08a", &
-       forcing = 'atm' )
-  
-  current=>mydims
-  do i = 0,ndim-1
-     print*,'Test Code: CMOR AXIS',i,'AAAAAAA*************************************************************************'
-     print*, 'Test Code: Name:',trim(adjustl(current%name))
-!!$     print*, 'Test Code: ',current%units
-!!$     print*, 'Test Code: ',current%n,size(current%values)
-!!$     print*, 'Test Code: ',current%values(1:min(4,size(current%values)))
-!!$     print*, 'Test Code: ',current%bounds(1:2,1:min(4,size(current%values)))
-     if (trim(adjustl(current%name)).eq.'time') then
-        print*, 'Test Code: time found'
-        myaxis(ndim-i)=cmor_axis('CMOR_SAMPLE_TABLE', &
-          table_entry=current%name,&
-          units=current%units,&
-          length=current%n,&
-!!$          coord_vals=current%values,&
-!!$          cell_bounds=current%bounds, &
-          interval='30 days')
-     else
-     myaxis(ndim-i)=cmor_axis('CMOR_SAMPLE_TABLE', &
-          table_entry=current%name,&
-          units=current%units,&
-          length=current%n,&
-          coord_vals=current%values,&
-          cell_bounds=current%bounds)
-        print*, 'Test Code: not time'
-     endif
-     current=>current%next
-  enddo
-
-  print*,'Test Code: CMOR VARCMOR VARCMOR VARCMOR'
-
-  mymiss=1.e20
-  myvar=cmor_variable('CMOR_SAMPLE_TABLE',&
-       'ta',&
-       'K',&
-       myaxis,&
-       missing_value=mymiss)
-
-!! figures out length of dimension other than time
-
-  j=ntot/mydims%n
-!!$  print*, 'Test Code: &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'
-!!$  print*,'Test Code: before:', shape(arrayin),mydims%n
-!!$  print*,'Test Code: before:', shape(arrayin(:,i,:))
-!!$  print*, 'Test Code: time before:',mydims%next%values(i:i)
-  current=>mydims%next%next
-print*, 'Test Code: values:',current%values
-print*, 'Test Code: bounds:',current%bounds
-print*, 'Test Code: N:',current%n
-  ierr = cmor_write( &
-       var_id        = myvar, &
-       data          = bigarray(:,:,:,:,1), &
-       ntimes_passed = current%n, &
-       time_vals     = current%values,  &
-       time_bnds     = current%bounds &
-       )
-  ierr = cmor_close()
-
-contains
-  subroutine allocate_dims(file_id,mydims,ndim,dimlength)
-    implicit none
-    integer i,n,j,tmp,file_id
-    integer, intent(inout)::ndim
-    integer, intent(inout):: dimlength(7)
-    type(dims) , pointer :: tmpdims,mydims
-    read(file_id,'(i8)') ndim
-!!$    allocate(dimlength(ndim))
-    n=1
-    allocate(mydims)
-    tmpdims=>mydims
-    do i = 1, ndim
-       read(file_id,'(I8)') tmp
-!!$print*,'Test Code: allocatedat:',tmp
-       dimlength(5-i)=tmp
-       allocate(tmpdims%values(tmp))
-       allocate(tmpdims%bounds(2,tmp))
-       tmpdims%n=tmp
-       allocate(tmpdims%next)
-       tmpdims=>tmpdims%next
-       n=n*tmp
-    enddo
-    deallocate(tmpdims)
-  end subroutine allocate_dims
-  
-  subroutine read_ascii(file_unit,mydims,ndim,ntot,arrayin)
-    implicit none
-    type(dims), pointer::  mydims
-    double precision, dimension(:,:,:,:),intent(inout) :: arrayin
-!    real, dimension(:,:,:,:),intent(inout) :: arrayin
-    type(dims), pointer ::  current
-    integer, intent(in)::ndim,file_unit
-    integer n,ntot,i,j,k,l,m
-    
-    current=>mydims
-    ntot=1
-    do i =1,ndim
-       n=current%n
-       ntot=ntot*n
-       read(file_unit,'(A)') current%name
-       print*, 'Test Code: NAME is:',current%name,trim(adjustl(mydims%name))
-       read(file_unit,'(A)') current%units
-       read(file_unit,*) (current%values(j),j=1,n)
-       read(file_unit,*) ((current%bounds(j,k),j=1,2),k=1,n)
-       print*, 'Test Code: ',current%bounds(1,1),current%bounds(1,2)
-       current=>current%next
-    enddo
-print*, 'Test Code: arrayin shape:',shape(arrayin)
-    read(file_unit,*) ((((arrayin(j,k,l,m),j=1,size(arrayin,1)),k=1,size(arrayin,2)),l=1,size(arrayin,3)),m=1,size(arrayin,4))
-print*, 'Test Code: done!'
-print* ,'Test Code: ',trim(adjustl(mydims%name))
-  end subroutine read_ascii
-
-end program main
-
diff --git a/Test/old_cmor_tables/mytest_4d_d_big_array_4.f90 b/Test/old_cmor_tables/mytest_4d_d_big_array_4.f90
deleted file mode 100644
index 3ddcbeb..0000000
--- a/Test/old_cmor_tables/mytest_4d_d_big_array_4.f90
+++ /dev/null
@@ -1,203 +0,0 @@
-program main
-
-  USE cmor_users_functions
-  implicit none
-
-  integer ncid
-
-  type dims
-     integer n
-     character(256) name
-     character(256) units
-     double precision, DIMENSION(:), pointer :: values
-     double precision, DIMENSION(:,:), pointer :: bounds     
-     type(dims), pointer :: next
-  end type dims
-  character(256) filein
-  type(dims), pointer :: mydims,current
-  integer ndim,i,j,ntot,k,l
-  double precision, allocatable, dimension(:,:,:,:):: arrayin
-!  real, allocatable, dimension(:,:,:,:):: arrayin
-  double precision, allocatable :: smallarray(:,:,:)
-  integer, dimension(7):: dimlength = (/ (1,i=1,7) /)
-  integer, PARAMETER::verbosity = 2
-  integer ierr
-  integer, allocatable, dimension(:) :: myaxis
-  integer myvar
-  real amin,amax,mymiss
-
-  print*, 'Test Code: hi'
-  filein='Test/ta_4D_r.asc'
-  open(unit=23,file=filein,form='formatted') 
-  call allocate_dims(23,mydims,ndim,dimlength)
-  allocate(myaxis(ndim))
-  allocate(arrayin(dimlength(1),dimlength(2),dimlength(3),dimlength(4)))
-  allocate(smallarray(dimlength(1)+5,dimlength(3)+6,dimlength(4)+7))
-  print*,'Test Code: allocate data    :',shape(arrayin),'dims:',dimlength(1),dimlength(2),dimlength(3),dimlength(4)
-  print*,'Test Code: allocate data big:',shape(smallarray)
-  current=>mydims
-  ntot=1
-  do i =1,ndim
-     ntot=ntot*current%n
-     current=>current%next
-  enddo
-  call read_ascii(23,mydims, ndim,ntot,arrayin)
-!!$!! Ok here is the part where we define or variable/axis,etc... 
-!!$!! Assuming that Karl's code is ok...
-!!$
-
-  print*, 'Test Code: putting everything into the big array contiguous fortran order means faster moving is first element'
-
-  print*,'Test Code: CMOR SETUP'
-!!$  
-  ierr = cmor_setup(inpath='Test',   &
-       netcdf_file_action='replace',                                       &
-       set_verbosity=1,                                                    &
-       exit_control=1)
-    
-  print*,'Test Code: CMOR DATASET'
-  ierr = cmor_dataset(                                   &
-       outpath='Test',         &
-       experiment_id='2xCO2 equilibrium experiment',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       ' Geneva, Switzerland)',                                &
-       source='GICCM  2002(giccm_0_brnchT_itea_2, T63L32)',    &
-       calendar='360_day',                                      &
-       realization=1,                                          &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also ' //          &
-       'see http://www.GICC.su/giccm/doc/index.html '  //      &
-       ' 2XCO2 simulation described in Dorkey et al. '//       &
-       '(Clim. Dyn., 2003, 323-357.)',model_id="pcmdi-08a", &
-       forcing='co2' )
-  
-  current=>mydims
-  do i = 0,ndim-1
-     print*,'Test Code: CMOR AXIS',i,'AAAAAAA*************************************************************************'
-     print*, 'Test Code: Name:',trim(adjustl(current%name))
-!!$     print*, 'Test Code: ',current%units
-!!$     print*, 'Test Code: ',current%n,size(current%values)
-!!$     print*, 'Test Code: ',current%values(1:min(4,size(current%values)))
-!!$     print*, 'Test Code: ',current%bounds(1:2,1:min(4,size(current%values)))
-     if (trim(adjustl(current%name)).eq.'time') then
-        print*, 'Test Code: time found'
-  print*, 'Test Code: bounds:',current%bounds,current%units
-      myaxis(ndim-i)=cmor_axis('CMOR_SAMPLE_TABLE', &
-          table_entry=current%name,&
-          units=current%units,&
-          length=current%n,&
-          coord_vals=current%values,&
-          cell_bounds=current%bounds, &
-          interval='1 month')
-     else
-     myaxis(ndim-i)=cmor_axis('CMOR_SAMPLE_TABLE', &
-          table_entry=current%name,&
-          units=current%units,&
-          length=current%n,&
-          coord_vals=current%values,&
-          cell_bounds=current%bounds)
-        print*, 'Test Code: not time'
-     endif
-     current=>current%next
-  enddo
-
-  print*,'Test Code: CMOR VARCMOR VARCMOR VARCMOR'
-
-  mymiss=1.e20
-  myvar=cmor_variable('CMOR_SAMPLE_TABLE',&
-       'ta',&
-       'K',&
-       myaxis,&
-       missing_value=mymiss)
-
-!! figures out length of dimension other than time
-
-  j=ntot/mydims%n
-!!$  print*, 'Test Code: &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'
-!!$  print*,'Test Code: before:', shape(arrayin),mydims%n
-!!$  print*,'Test Code: before:', shape(arrayin(:,i,:))
-!!$  print*, 'Test Code: time before:',mydims%next%values(i:i)
-  current=>mydims%next%next
-print*, 'Test Code: values:',current%values
-print*, 'Test Code: bounds:',current%bounds
-print*, 'Test Code: N:',current%n
-do i=1,current%n
-  smallarray=666. ! initialize smallarray at some bad value
-  ierr=1
-  !put time i into it
-  do l = 1, dimlength(4)
-     do k = 1, dimlength(3)
-        do j = 1, dimlength(1)
-           smallarray(j,k,l)=arrayin(j,i,k,l)
-        enddo
-     enddo
-  enddo
-  ierr = cmor_write( &
-       var_id        = myvar, &
-       data          = smallarray, &
-       ntimes_passed = 1 &
-       )
-enddo
-ierr = cmor_close(myvar)
-
-contains
-  subroutine allocate_dims(file_id,mydims,ndim,dimlength)
-    implicit none
-    integer i,n,j,tmp,file_id
-    integer, intent(inout)::ndim
-    integer, intent(inout):: dimlength(7)
-    type(dims) , pointer :: tmpdims,mydims
-    read(file_id,'(i8)') ndim
-!!$    allocate(dimlength(ndim))
-    n=1
-    allocate(mydims)
-    tmpdims=>mydims
-    do i = 1, ndim
-       read(file_id,'(I8)') tmp
-!!$print*,'Test Code: allocatedat:',tmp
-       dimlength(5-i)=tmp
-       allocate(tmpdims%values(tmp))
-       allocate(tmpdims%bounds(2,tmp))
-       tmpdims%n=tmp
-       allocate(tmpdims%next)
-       tmpdims=>tmpdims%next
-       n=n*tmp
-    enddo
-    deallocate(tmpdims)
-  end subroutine allocate_dims
-  
-  subroutine read_ascii(file_unit,mydims,ndim,ntot,arrayin)
-    implicit none
-    type(dims), pointer::  mydims
-    double precision, dimension(:,:,:,:),intent(inout) :: arrayin
-!    real, dimension(:,:,:,:),intent(inout) :: arrayin
-    type(dims), pointer ::  current
-    integer, intent(in)::ndim,file_unit
-    integer n,ntot,i,j,k,l,m
-    
-    current=>mydims
-    ntot=1
-    do i =1,ndim
-       n=current%n
-       ntot=ntot*n
-       read(file_unit,'(A)') current%name
-       print*, 'Test Code: NAME is:',current%name,trim(adjustl(mydims%name))
-       read(file_unit,'(A)') current%units
-       read(file_unit,*) (current%values(j),j=1,n)
-       read(file_unit,*) ((current%bounds(j,k),j=1,2),k=1,n)
-       print*, 'Test Code: ',current%bounds(1,1),current%bounds(1,2)
-       current=>current%next
-    enddo
-print*, 'Test Code: arrayin shape:',shape(arrayin)
-    read(file_unit,*) ((((arrayin(j,k,l,m),j=1,size(arrayin,1)),k=1,size(arrayin,2)),l=1,size(arrayin,3)),m=1,size(arrayin,4))
-print*, 'Test Code: done!'
-print* ,'Test Code: ',trim(adjustl(mydims%name))
-  end subroutine read_ascii
-
-end program main
-
diff --git a/Test/old_cmor_tables/mytest_4d_d_big_array_5.f90 b/Test/old_cmor_tables/mytest_4d_d_big_array_5.f90
deleted file mode 100644
index 0a8ecab..0000000
--- a/Test/old_cmor_tables/mytest_4d_d_big_array_5.f90
+++ /dev/null
@@ -1,201 +0,0 @@
-program main
-
-  USE cmor_users_functions
-  implicit none
-
-  integer ncid
-
-  type dims
-     integer n
-     character(256) name
-     character(256) units
-     double precision, DIMENSION(:), pointer :: values
-     double precision, DIMENSION(:,:), pointer :: bounds     
-     type(dims), pointer :: next
-  end type dims
-  character(256) filein
-  type(dims), pointer :: mydims,current
-  integer ndim,i,j,ntot,k,l
-  double precision, allocatable, dimension(:,:,:,:):: arrayin
-!  real, allocatable, dimension(:,:,:,:):: arrayin
-  double precision, allocatable :: bigarray(:,:,:,:)
-  integer, dimension(7):: dimlength = (/ (1,i=1,7) /)
-  integer, PARAMETER::verbosity = 2
-  integer ierr
-  integer, allocatable, dimension(:) :: myaxis
-  integer myvar
-  real amin,amax,mymiss
-
-  print*, 'Test Code: hi'
-  filein='Test/ta_4D_r.asc'
-  open(unit=23,file=filein,form='formatted') 
-  call allocate_dims(23,mydims,ndim,dimlength)
-  allocate(myaxis(ndim))
-  allocate(arrayin(dimlength(1),dimlength(2),dimlength(3),dimlength(4)))
-  allocate(bigarray(dimlength(1)+10,dimlength(2)+10,dimlength(3)+10,dimlength(4)+10))
-  print*,'Test Code: allocate data    :',shape(arrayin),'dims:',dimlength(1),dimlength(2),dimlength(3),dimlength(4)
-  print*,'Test Code: allocate data big:',shape(bigarray)
-  current=>mydims
-  ntot=1
-  do i =1,ndim
-     ntot=ntot*current%n
-     current=>current%next
-  enddo
-  call read_ascii(23,mydims, ndim,ntot,arrayin)
-!!$!! Ok here is the part where we define or variable/axis,etc... 
-!!$!! Assuming that Karl's code is ok...
-!!$
-
-  print*, 'Test Code: putting everything into the big array contiguous fortran order means faster moving is first element'
-  bigarray=666. ! initialize bigarray at some bad value
-  ierr=1
-  do l = 1, dimlength(4)
-     do k = 1, dimlength(3)
-        do j = 1, dimlength(2)
-           do i = 1, dimlength(1)
-              bigarray(i,j,k,l)=arrayin(i,j,k,l)
-              ierr=ierr+1
-           enddo
-        enddo
-     enddo
-  enddo
-
-  print*,'Test Code: CMOR SETUP'
-!!$  
-  ierr = cmor_setup(inpath='Test',   &
-       netcdf_file_action='replace',                                       &
-       set_verbosity=1,                                                    &
-       exit_control=1)
-    
-  print*,'Test Code: CMOR DATASET'
-  ierr = cmor_dataset(                                   &
-       outpath='Test',         &
-       experiment_id='2xCO2 equilibrium experiment',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       ' Geneva, Switzerland)',                                &
-       source='GICCM  2002(giccm_0_brnchT_itea_2, T63L32)',    &
-       calendar='noleap',                                      &
-       realization=1,                                          &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also ' //          &
-       'see http://www.GICC.su/giccm/doc/index.html '  //      &
-       ' 2XCO2 simulation described in Dorkey et al. '//       &
-       '(Clim. Dyn., 2003, 323-357.)',model_id='pcmdi-08a', &
-       forcing='atm' )
-  
-  current=>mydims
-  do i = 0,ndim-1
-     print*,'Test Code: CMOR AXIS',i,'AAAAAAA*************************************************************************'
-     print*, 'Test Code: Name:',trim(adjustl(current%name))
-!!$     print*, 'Test Code: ',current%units
-!!$     print*, 'Test Code: ',current%n,size(current%values)
-!!$     print*, 'Test Code: ',current%values(1:min(4,size(current%values)))
-!!$     print*, 'Test Code: ',current%bounds(1:2,1:min(4,size(current%values)))
-     if (trim(adjustl(current%name)).eq.'time') then
-        print*, 'Test Code: time found','with ',current%n,'times'
-        myaxis(ndim-i)=cmor_axis('CMOR_SAMPLE_TABLE', &
-          table_entry=current%name,&
-          units=current%units,&
-          length=current%n,&
-          coord_vals=current%values,&
-          cell_bounds=current%bounds, &
-          interval='31 days')
-     else
-     myaxis(ndim-i)=cmor_axis('CMOR_SAMPLE_TABLE', &
-          table_entry=current%name,&
-          units=current%units,&
-          length=current%n,&
-          coord_vals=current%values,&
-          cell_bounds=current%bounds)
-        print*, 'Test Code: not time'
-     endif
-     current=>current%next
-  enddo
-
-  print*,'Test Code: CMOR VARCMOR VARCMOR VARCMOR'
-
-  mymiss=1.e20
-  myvar=cmor_variable('CMOR_SAMPLE_TABLE',&
-       'ta',&
-       'K',&
-       myaxis,&
-       missing_value=mymiss)
-
-!! figures out length of dimension other than time
-
-  j=ntot/mydims%n
-!!$  print*, 'Test Code: &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'
-!!$  print*,'Test Code: before:', shape(arrayin),mydims%n
-!!$  print*,'Test Code: before:', shape(arrayin(:,i,:))
-!!$  print*, 'Test Code: time before:',mydims%next%values(i:i)
-  current=>mydims%next%next
-print*, 'Test Code: values:',current%values
-print*, 'Test Code: bounds:',current%bounds
-print*, 'Test Code: N:',current%n
-  ierr = cmor_write( &
-       var_id        = myvar, &
-       data          = bigarray &
-       )
-  ierr = cmor_close()
-
-contains
-  subroutine allocate_dims(file_id,mydims,ndim,dimlength)
-    implicit none
-    integer i,n,j,tmp,file_id
-    integer, intent(inout)::ndim
-    integer, intent(inout):: dimlength(7)
-    type(dims) , pointer :: tmpdims,mydims
-    read(file_id,'(i8)') ndim
-!!$    allocate(dimlength(ndim))
-    n=1
-    allocate(mydims)
-    tmpdims=>mydims
-    do i = 1, ndim
-       read(file_id,'(I8)') tmp
-!!$print*,'Test Code: allocatedat:',tmp
-       dimlength(5-i)=tmp
-       allocate(tmpdims%values(tmp))
-       allocate(tmpdims%bounds(2,tmp))
-       tmpdims%n=tmp
-       allocate(tmpdims%next)
-       tmpdims=>tmpdims%next
-       n=n*tmp
-    enddo
-    deallocate(tmpdims)
-  end subroutine allocate_dims
-  
-  subroutine read_ascii(file_unit,mydims,ndim,ntot,arrayin)
-    implicit none
-    type(dims), pointer::  mydims
-    double precision, dimension(:,:,:,:),intent(inout) :: arrayin
-!    real, dimension(:,:,:,:),intent(inout) :: arrayin
-    type(dims), pointer ::  current
-    integer, intent(in)::ndim,file_unit
-    integer n,ntot,i,j,k,l,m
-    
-    current=>mydims
-    ntot=1
-    do i =1,ndim
-       n=current%n
-       ntot=ntot*n
-       read(file_unit,'(A)') current%name
-       print*, 'Test Code: NAME is:',current%name,trim(adjustl(mydims%name))
-       read(file_unit,'(A)') current%units
-       read(file_unit,*) (current%values(j),j=1,n)
-       read(file_unit,*) ((current%bounds(j,k),j=1,2),k=1,n)
-       print*, 'Test Code: ',current%bounds(1,1),current%bounds(1,2)
-       current=>current%next
-    enddo
-print*, 'Test Code: arrayin shape:',shape(arrayin)
-    read(file_unit,*) ((((arrayin(j,k,l,m),j=1,size(arrayin,1)),k=1,size(arrayin,2)),l=1,size(arrayin,3)),m=1,size(arrayin,4))
-print*, 'Test Code: done!'
-print* ,'Test Code: ',trim(adjustl(mydims%name))
-  end subroutine read_ascii
-
-end program main
-
diff --git a/Test/old_cmor_tables/mytest_4d_r.f90 b/Test/old_cmor_tables/mytest_4d_r.f90
deleted file mode 100644
index 8e99756..0000000
--- a/Test/old_cmor_tables/mytest_4d_r.f90
+++ /dev/null
@@ -1,185 +0,0 @@
-program main
-
-  USE cmor_users_functions
-  implicit none
-
-  integer ncid
-
-  type dims
-     integer n
-     character(256) name
-     character(256) units
-     double precision, DIMENSION(:), pointer :: values
-     double precision, DIMENSION(:,:), pointer :: bounds     
-     type(dims), pointer :: next
-  end type dims
-  character(256) filein
-  type(dims), pointer :: mydims,current
-  integer ndim,i,j,ntot,k,l
-!  double precision, allocatable, dimension(:,:,:,:):: arrayin
-  real, allocatable, dimension(:,:,:,:):: arrayin
-  integer, dimension(7):: dimlength = (/ (1,i=1,7) /)
-  integer, PARAMETER::verbosity = 2
-  integer ierr
-  integer, allocatable, dimension(:) :: myaxis
-  integer myvar
-  real amin,amax,mymiss
-
-  print*, 'hi'
-  filein='Test/ta_4D_r.asc'
-  open(unit=23,file=filein,form='formatted') 
-  call allocate_dims(23,mydims,ndim,dimlength)
-  allocate(myaxis(ndim))
-  allocate(arrayin(dimlength(1),dimlength(2),dimlength(3),dimlength(4)))
-  print*,'allocatedat:',shape(arrayin),dimlength(1),dimlength(2),dimlength(3),dimlength(4)
-  current=>mydims
-  ntot=1
-  do i =1,ndim
-     ntot=ntot*current%n
-     current=>current%next
-  enddo
-  call read_ascii(23,mydims, ndim,ntot,arrayin)
-!!$!! Ok here is the part where we define or variable/axis,etc... 
-!!$!! Assuming that Karl's code is ok...
-!!$
-  print*,'CMOR SETUP'
-!!$  
-  ierr = cmor_setup(inpath='Test',   &
-       netcdf_file_action='replace',                                       &
-       set_verbosity=1,                                                    &
-       exit_control=1)
-    
-  print*,'CMOR DATASET'
-  ierr = cmor_dataset(                                   &
-       outpath='Test',         &
-       experiment_id='2xCO2 equilibrium experiment',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       ' Geneva, Switzerland)',                                &
-       source='GICCM  2002(giccm_0_brnchT_itea_2, T63L32)',    &
-       calendar='noleap',                                      &
-       realization=1,                                          &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also ' //          &
-       'see http://www.GICC.su/giccm/doc/index.html '  //      &
-       ' 2XCO2 simulation described in Dorkey et al. '//       &
-       '(Clim. Dyn., 2003, 323-357.)', &
-       model_id="pcmdi-a08",forcing="CO2")
-  
-  current=>mydims
-  do i = 0,ndim-1
-     print*,'CMOR AXIS',i,'AAAAAAA*************************************************************************'
-     print*, 'Name:',trim(adjustl(current%name))
-!!$     print*, current%units
-!!$     print*, current%n,size(current%values)
-!!$     print*, current%values(1:min(4,size(current%values)))
-!!$     print*, current%bounds(1:2,1:min(4,size(current%values)))
-     if (trim(adjustl(current%name)).eq.'time') then
-        print*, 'time found'
-     myaxis(ndim-i)=cmor_axis('CMOR_SAMPLE_TABLE', &
-          table_entry=current%name,&
-          units=current%units,&
-          length=current%n,&
-!!$          coord_vals=current%values,&
-!!$          cell_bounds=current%bounds, &
-          interval='1 month')
-     else
-     myaxis(ndim-i)=cmor_axis('CMOR_SAMPLE_TABLE', &
-          table_entry=current%name,&
-          units=current%units,&
-          length=current%n,&
-          coord_vals=current%values,&
-          cell_bounds=current%bounds)
-        print*, 'not time'
-     endif
-     current=>current%next
-  enddo
-
-  print*,'CMOR VARCMOR VARCMOR VARCMOR'
-
-  mymiss=1.e20
-  myvar=cmor_variable('CMOR_SAMPLE_TABLE',&
-       'ta',&
-       'K',&
-       myaxis,&
-       missing_value=mymiss)
-
-!! figures out length of dimension other than time
-
-  j=ntot/mydims%n
-!!$  print*, '&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'
-!!$  print*,'before:', shape(arrayin),mydims%n
-!!$  print*,'before:', shape(arrayin(:,i,:))
-!!$  print*, 'time before:',mydims%next%values(i:i)
-  current=>mydims%next%next
-print*, 'values:',current%values
-print*, 'bounds:',current%bounds
-print*, 'N:',current%n
-  ierr =  cmor_write( &
-       myvar, &
-       arrayin, &
-       ntimes_passed = current%n, &
-       time_vals     = current%values,  &
-       time_bnds     = current%bounds &
-       )
-  ierr = cmor_close()
-
-contains
-  subroutine allocate_dims(file_id,mydims,ndim,dimlength)
-    implicit none
-    integer i,n,j,tmp,file_id
-    integer, intent(inout)::ndim
-    integer, intent(inout):: dimlength(7)
-    type(dims) , pointer :: tmpdims,mydims
-    read(file_id,'(i8)') ndim
-!!$    allocate(dimlength(ndim))
-    n=1
-    allocate(mydims)
-    tmpdims=>mydims
-    do i = 1, ndim
-       read(file_id,'(I8)') tmp
-!!$print*,'allocatedat:',tmp
-       dimlength(5-i)=tmp
-       allocate(tmpdims%values(tmp))
-       allocate(tmpdims%bounds(2,tmp))
-       tmpdims%n=tmp
-       allocate(tmpdims%next)
-       tmpdims=>tmpdims%next
-       n=n*tmp
-    enddo
-    deallocate(tmpdims)
-  end subroutine allocate_dims
-  
-  subroutine read_ascii(file_unit,mydims,ndim,ntot,arrayin)
-    implicit none
-    type(dims), pointer::  mydims
-!    double precision, dimension(:,:,:),intent(inout) :: arrayin
-    real, dimension(:,:,:,:),intent(inout) :: arrayin
-!    integer, dimension(ndim)
-    type(dims), pointer ::  current
-    integer, intent(in)::ndim,file_unit
-    integer n,ntot,i,j,k,l,m
-    
-    current=>mydims
-    ntot=1
-    do i =1,ndim
-       n=current%n
-       ntot=ntot*n
-       read(file_unit,'(A)') current%name
-       print*, 'NAME is:',current%name,trim(adjustl(mydims%name))
-       read(file_unit,'(A)') current%units
-       read(file_unit,*) (current%values(j),j=1,n)
-       read(file_unit,*) ((current%bounds(j,k),j=1,2),k=1,n)
-       print*, current%bounds(1,1),current%bounds(1,2)
-       current=>current%next
-    enddo
-    read(file_unit,*) ((((arrayin(j,k,l,m),j=1,size(arrayin,1)),k=1,size(arrayin,2)),l=1,size(arrayin,3)),m=1,size(arrayin,4))
-print* ,trim(adjustl(mydims%name))
-  end subroutine read_ascii
-
-end program main
-
diff --git a/Test/old_cmor_tables/mytest_4d_r_big_array.f90 b/Test/old_cmor_tables/mytest_4d_r_big_array.f90
deleted file mode 100644
index 48d5bd9..0000000
--- a/Test/old_cmor_tables/mytest_4d_r_big_array.f90
+++ /dev/null
@@ -1,202 +0,0 @@
-program main
-
-  USE cmor_users_functions
-  implicit none
-
-  integer ncid
-
-  type dims
-     integer n
-     character(256) name
-     character(256) units
-     double precision, DIMENSION(:), pointer :: values
-     double precision, DIMENSION(:,:), pointer :: bounds     
-     type(dims), pointer :: next
-  end type dims
-  character(256) filein
-  type(dims), pointer :: mydims,current
-  integer ndim,i,j,ntot,k,l
-  double precision, allocatable, dimension(:,:,:,:):: arrayin
-!  real, allocatable, dimension(:,:,:,:):: arrayin
-  double precision, allocatable :: bigarray(:,:,:,:)
-  integer, dimension(7):: dimlength = (/ (1,i=1,7) /)
-  integer, PARAMETER::verbosity = 2
-  integer ierr
-  integer, allocatable, dimension(:) :: myaxis
-  integer myvar
-  real amin,amax,mymiss
-
-  print*, 'Test Code: hi'
-  filein='Test/ta_4D_r.asc'
-  open(unit=23,file=filein,form='formatted') 
-  call allocate_dims(23,mydims,ndim,dimlength)
-  allocate(myaxis(ndim))
-  allocate(arrayin(dimlength(1),dimlength(2),dimlength(3),dimlength(4)))
-  allocate(bigarray(dimlength(1)+10,dimlength(2)+10,dimlength(3)+10,dimlength(4)+10))
-  print*,'Test Code: allocate data    :',shape(arrayin),'dims:',dimlength(1),dimlength(2),dimlength(3),dimlength(4)
-  print*,'Test Code: allocate data big:',shape(bigarray)
-  current=>mydims
-  ntot=1
-  do i =1,ndim
-     ntot=ntot*current%n
-     current=>current%next
-  enddo
-  call read_ascii(23,mydims, ndim,ntot,arrayin)
-!!$!! Ok here is the part where we define or variable/axis,etc... 
-!!$!! Assuming that Karl's code is ok...
-!!$
-
-  print*, 'Test Code: putting everything into the big array'
-  bigarray=666. ! initialize bigarray at some bad value
-  do i = 1, dimlength(1)
-     do j = 1, dimlength(2)
-        do k = 1, dimlength(3)
-           do l = 1, dimlength(4)
-              bigarray(i,j,k,l)=arrayin(i,j,k,l)
-           enddo
-        enddo
-     enddo
-  enddo
-
-  print*,'Test Code: CMOR SETUP'
-!!$  
-  ierr = cmor_setup(inpath='Test',   &
-       netcdf_file_action='replace',                                       &
-       set_verbosity=1,                                                    &
-       exit_control=1)
-    
-  print*,'Test Code: CMOR DATASET'
-  ierr = cmor_dataset(                                   &
-       outpath='Test',         &
-       experiment_id='2xCO2 equilibrium experiment',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       ' Geneva, Switzerland)',                                &
-       source='GICCM  2002(giccm_0_brnchT_itea_2, T63L32)',    &
-       calendar='360_day',                                      &
-       realization=1,                                          &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also ' //          &
-       'see http://www.GICC.su/giccm/doc/index.html '  //      &
-       ' 2XCO2 simulation described in Dorkey et al. '//       &
-       '(Clim. Dyn., 2003, 323-357.)', model_id="pcmdi-08a", &
-       forcing="atm" )
-  
-  current=>mydims
-  do i = 0,ndim-1
-     print*,'Test Code: CMOR AXIS',i,'AAAAAAA*************************************************************************'
-     print*, 'Test Code: Name:',trim(adjustl(current%name))
-!!$     print*, 'Test Code: ',current%units
-!!$     print*, 'Test Code: ',current%n,size(current%values)
-!!$     print*, 'Test Code: ',current%values(1:min(4,size(current%values)))
-!!$     print*, 'Test Code: ',current%bounds(1:2,1:min(4,size(current%values)))
-     if (trim(adjustl(current%name)).eq.'time') then
-        print*, 'Test Code: time found'
-        myaxis(ndim-i)=cmor_axis('CMOR_SAMPLE_TABLE', &
-          table_entry=current%name,&
-          units=current%units,&
-          length=current%n,&
-!!$          coord_vals=current%values,&
-!!$          cell_bounds=current%bounds, &
-          interval='1 month')
-     else
-     myaxis(ndim-i)=cmor_axis('CMOR_SAMPLE_TABLE', &
-          table_entry=current%name,&
-          units=current%units,&
-          length=current%n,&
-          coord_vals=current%values,&
-          cell_bounds=current%bounds)
-        print*, 'Test Code: not time'
-     endif
-     current=>current%next
-  enddo
-
-  print*,'Test Code: CMOR VARCMOR VARCMOR VARCMOR'
-
-  mymiss=1.e20
-  myvar=cmor_variable('CMOR_SAMPLE_TABLE',&
-       'ta',&
-       'K',&
-       myaxis,&
-       missing_value=mymiss)
-
-!! figures out length of dimension other than time
-
-  j=ntot/mydims%n
-!!$  print*, 'Test Code: &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'
-!!$  print*,'Test Code: before:', shape(arrayin),mydims%n
-!!$  print*,'Test Code: before:', shape(arrayin(:,i,:))
-!!$  print*, 'Test Code: time before:',mydims%next%values(i:i)
-  current=>mydims%next%next
-print*, 'Test Code: values:',current%values
-print*, 'Test Code: bounds:',current%bounds
-print*, 'Test Code: N:',current%n
-  ierr = cmor_write( &
-       var_id        = myvar, &
-       data          = bigarray, &
-       ntimes_passed = current%n, &
-       time_vals     = current%values,  &
-       time_bnds     = current%bounds &
-       )
-  ierr = cmor_close()
-
-contains
-  subroutine allocate_dims(file_id,mydims,ndim,dimlength)
-    implicit none
-    integer i,n,j,tmp,file_id
-    integer, intent(inout)::ndim
-    integer, intent(inout):: dimlength(7)
-    type(dims) , pointer :: tmpdims,mydims
-    read(file_id,'(i8)') ndim
-!!$    allocate(dimlength(ndim))
-    n=1
-    allocate(mydims)
-    tmpdims=>mydims
-    do i = 1, ndim
-       read(file_id,'(I8)') tmp
-!!$print*,'Test Code: allocatedat:',tmp
-       dimlength(5-i)=tmp
-       allocate(tmpdims%values(tmp))
-       allocate(tmpdims%bounds(2,tmp))
-       tmpdims%n=tmp
-       allocate(tmpdims%next)
-       tmpdims=>tmpdims%next
-       n=n*tmp
-    enddo
-    deallocate(tmpdims)
-  end subroutine allocate_dims
-  
-  subroutine read_ascii(file_unit,mydims,ndim,ntot,arrayin)
-    implicit none
-    type(dims), pointer::  mydims
-    double precision, dimension(:,:,:,:),intent(inout) :: arrayin
-!    real, dimension(:,:,:,:),intent(inout) :: arrayin
-    type(dims), pointer ::  current
-    integer, intent(in)::ndim,file_unit
-    integer n,ntot,i,j,k,l,m
-    
-    current=>mydims
-    ntot=1
-    do i =1,ndim
-       n=current%n
-       ntot=ntot*n
-       read(file_unit,'(A)') current%name
-       print*, 'Test Code: NAME is:',current%name,trim(adjustl(mydims%name))
-       read(file_unit,'(A)') current%units
-       read(file_unit,*) (current%values(j),j=1,n)
-       read(file_unit,*) ((current%bounds(j,k),j=1,2),k=1,n)
-       print*, 'Test Code: ',current%bounds(1,1),current%bounds(1,2)
-       current=>current%next
-    enddo
-print*, 'Test Code: arrayin shape:',shape(arrayin)
-    read(file_unit,*) ((((arrayin(j,k,l,m),j=1,size(arrayin,1)),k=1,size(arrayin,2)),l=1,size(arrayin,3)),m=1,size(arrayin,4))
-print*, 'Test Code: done!'
-print* ,'Test Code: ',trim(adjustl(mydims%name))
-  end subroutine read_ascii
-
-end program main
-
diff --git a/Test/old_cmor_tables/rewrite_harvardf_data.f90 b/Test/old_cmor_tables/rewrite_harvardf_data.f90
deleted file mode 100644
index 68651ce..0000000
--- a/Test/old_cmor_tables/rewrite_harvardf_data.f90
+++ /dev/null
@@ -1,113 +0,0 @@
-      program rewrite_harvardf_data
-
-!  Use CMOR routines to rewrite Harvard Forest obs data into CF-standard netCDF.
-!  Start with data in easy-to-read ASCII text (Mathematica input) format, which
-!  was produced by the script read_harvard_forest_obs_dat.py.
-
-!  Note: first line of each input data file is ASCII text to be skipped over.
-
-!		Curt Covey		January 2006
-
-USE cmor_users_functions
-
-      character(len = 25) :: input_file   = 'Test/tas_harvardf.txt'
-      character(len = 20) :: output_file  = 'tas_harvardf.nc'
-      character(len = 20) :: units_string = 'K'
-!     character(len = 20) :: input_table  = 'IPCC_test_table_A'
-!!$      character(len = 20) :: input_table  = 'IPCC_table_A2'
-      character(len = 20) :: input_table  = 'Test/Curts_table'
-
-      character :: first_line    ! throwaway
-
-      integer   :: iaxis(3)      ! identifier for axes (time, latitude, longitude)
-
-!!$      integer, parameter :: ndatalines = 4383 ! # lines in file that contain data
-      integer, parameter :: ndatalines = 10 ! # lines in file that contain data
-                                              ! ( = total # lines in file - 1)
-      integer, parameter :: np1 = ndatalines + 1
-
-      double precision      :: lat(1)        ! single-member array to hold latitude
-      double precision      :: lon(1)        ! single-member array to hold longitude
-      double precision      :: t(ndatalines) ! array to hold time coordinate
-      double precision      :: tbounds(np1)  ! array to hold time coordinate cell bounds
-      real      :: x(ndatalines,1,1) ! array to hold data from each input data file
-!    -Harvard Forest is located at 42.5 deg N, 72.2 deg W ...
-      lat(1) = 42.5d0
-      lon(1) = -72.2d0
-!     ... and is 3000 acres ~ a circle with radius of 0.02 deg lat/lon:
-      latlonrad = 0.02
-      do i = 1, ndatalines
-         t(i)       = i - 1.0  ! time coord  = "days since" =  0,       1, ...
-         tbounds(i) = i - 1.5  ! time bounds =           -0.5,    +0.5,    ...
-      enddo
-      tbounds(np1) = ndatalines - 0.5
-
-      print *, 'Opening ', input_file, '...'
-      open(10, file = input_file)
-      read(10, '(A)') first_line
-      print    '(A)', 'First line begins with: ', first_line
-      do i = 1, ndatalines
-         read(10, '(F6.2)') x(i,1,1)
-!        print *, x(i,1,1)
-      enddo
-
-      print *, 'Initializing CMOR ...'
-      ierrorflag = cmor_setup(netcdf_file_action = 'replace')
-
-      print *, 'Identifying output data sets for CMOR ...'
-      ierrorflag = cmor_dataset(                               &
-                      outpath       = 'Test',                    &
-                      experiment_id =                          &
-      'climate of the 20th Century experiment (20C3M)',        &
-                      institution   =                          &
-      'Berkeley CAS (Center for Atmospheric Science)',         &
-                      source        =                          &
-      'ftp://ftp.as.harvard.edu/pub/nigec/HU_Wofsy/hf_data',   &
-                      calendar      = 'gregorian',             &
-                      contact       =                          &
-      'Jasmin John, Berkeley CAS <jjohn at berkeley.edu>')
-
-!     print *, ' ** Time coordinate vector:', t
-!     print *, ' ** Time bounds vector:',     tbounds
-
-      print *, 'Defining coordinates for CMOR output data ...',t
-      iaxis(1)   = cmor_axis(                                  &
-                      table       = input_table,               &
-                      table_entry = 'time',                    &
-                      units       = 'days since 1992-1-1',     &
-                      length      = ndatalines,                &
-                      coord_vals  = t,                         &
-                      cell_bounds = tbounds)
-
-      iaxis(2)   = cmor_axis(                                  &
-                      table       = input_table,               &
-                      table_entry = 'latitude',                &
-                      units       = 'degrees_north',           &
-                      length      = 1,                         &
-                      coord_vals  = lat)                       
-
-      iaxis(3)   = cmor_axis(                                  &
-                      table       = input_table,               &
-                      table_entry = 'longitude',               &
-                      units       = 'degrees_east',            &
-                      length      = 1,                         &
-                      coord_vals  = lon)
-
-      print *, 'Defining CMOR output data variables ...'
-      ivarb     =  cmor_variable(                              &
-                      table       = input_table,               &
-                      table_entry = 'tas',                     &
-                      units       = units_string,              &
-                      axis_ids    = iaxis)
-
-!!$      print *, ' ** Data vector:', x
-
-      print *, 'Writing CMOR output ...',shape(x)
-      ierrorflag = cmor_write(                                 &
-                      var_id    = ivarb,                       &
-                      data      = x(:,1,1))
-
-      print *, 'Closing file(s) created by CMOR ...'
-      ierrorflag = cmor_close()
-
-      end program rewrite_harvardf_data
diff --git a/Test/old_cmor_tables/test1.f90 b/Test/old_cmor_tables/test1.f90
deleted file mode 100644
index f6d2b20..0000000
--- a/Test/old_cmor_tables/test1.f90
+++ /dev/null
@@ -1,473 +0,0 @@
-!!$pgf90 -I/work/NetCDF/5.1/include -L/work/NetCDF/5.1/lib -l netcdf -L. -l cmor Test/test1.f90 -IModules -o cmor_test
-!!$pgf90 -g -I/pcmdi/charles_work/NetCDF//include -L/pcmdi/charles_work/NetCDF//lib -lnetcdf -module Modules -IModules -L. -lcmor Test/test1.f90 -o cmor_test
-
-MODULE local_subs
-
-  PRIVATE
-  PUBLIC read_coords, read_time, read_3d_input_files, read_2d_input_files
-CONTAINS
-  
-  SUBROUTINE read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-
-    IMPLICIT NONE
-    
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alats
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alons
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: plevs
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lat
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lon
-    
-    INTEGER :: i
-    
-    DO i = 1, SIZE(alons)
-       alons(i) = (i-1)*360./SIZE(alons)
-       bnds_lon(1,i) = (i - 1.5)*360./SIZE(alons)
-       bnds_lon(2,i) = (i - 0.5)*360./SIZE(alons)
-    END DO
-    
-    DO i = 1, SIZE(alats)
-       alats(i) = i*10
-       bnds_lat(1,i) = i*10. - 5.
-       bnds_lat(2,i) = i*10. + 5.
-    END DO
-    
-    DO i = 1, SIZE(plevs)
-       plevs(i) = i*1.0e4
-    END DO
-    
-    RETURN
-  END SUBROUTINE read_coords
-
-  SUBROUTINE read_time(it, time, time_bnds)
-    
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    DOUBLE PRECISION, INTENT(OUT) :: time
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(2) :: time_bnds
-    
-    time = (it-0.5)*30.
-    time_bnds(1) = (it-1)*30.
-    time_bnds(2) = it*30.
-    
-    RETURN
-  END SUBROUTINE read_time
-  
-  SUBROUTINE read_3d_input_files(it, varname, field)
-    
-    INTEGER, INTENT(IN) :: it
-    CHARACTER(len=*), INTENT(IN) :: varname
-    REAL, INTENT(OUT), DIMENSION(:,:,:) :: field
-    
-    INTEGER :: i, j, k
-    REAL :: factor, offset
-    
-    SELECT CASE (TRIM(ADJUSTL(varname)))
-    CASE ('U')  
-       factor = 1.
-       offset = 100.
-    CASE ('T')
-       factor = 0.5
-       offset = -150.
-    END SELECT
-    
-    DO k=1,SIZE(field, 1)
-       DO j=1,SIZE(field, 3)
-          DO i=1,SIZE(field, 2)
-             field(k,i,j) = ((k-1)*64 + (j-1)*16 + (i-1)*4 + it)*factor - offset
-          END DO
-       END DO
-    END DO
-    
-  END SUBROUTINE read_3d_input_files
-  
-  SUBROUTINE read_2d_input_files(it, varname, field)                  
-    
-    INTEGER, INTENT(IN) :: it
-    CHARACTER(len=*), INTENT(IN) :: varname
-    REAL, INTENT(OUT), DIMENSION(:,:) :: field
-    
-    INTEGER :: i, j
-    REAL :: factor, offset
-    
-    
-    SELECT CASE (TRIM(ADJUSTL(varname)))
-    CASE ('LATENT')  
-       
-       factor = 1.5
-       offset = 20.
-    CASE ('TSURF')
-       factor = 2.2
-       offset = -220.
-    CASE ('SOIL_WET')
-       factor = 10.
-       offset = 0.
-    END SELECT
-    
-    DO j=1,SIZE(field, 1)
-       DO i=1,SIZE(field, 2)
-          field(j,i) = ((j-1)*16 + (i-1)*4 + it)*factor - offset
-       END DO
-    END DO
-
-  END SUBROUTINE read_2d_input_files
-
-END MODULE local_subs
-
-
-PROGRAM mip_contribution
-!
-!   Purpose:   To serve as a generic example of an application that
-!       uses the "Climate Model Output Rewriter" (CMOR)
-
-!    CMOR writes CF-compliant netCDF files.
-!    Its use is required by many community-coordinated standard 
-!       climate model experiments (e.g., AMIP, CMIP, CFMIP, APE, and
-!       IPCC scenario runs)
-!
-!   Background information for this sample code:
-!
-!      Standard output requested by AMIP is listed in 6 different 
-!   tables.  This sample code processes only 2 variables listed in AMIP 
-!   Table 1a ("3-d" fields, containing monthly mean data that are a 
-!   function of longitude, latitude, pressure and time) and only 3 
-!   variables in AMIP Table 2 ("2-d" fields, containing monthly mean 
-!   data that are a function of longitude, latitude, and time).  The 
-!   extension to many more fields is trivial.
-!
-!      For this example, the user must fill in the sections of code that 
-!   extract the 3-d and 2-d fields from his monthly mean "history" 
-!   files (which usually contain many variables but only a single time 
-!   slice).  The CMOR code will write each field in a separate file, but 
-!   many monthly mean time-samples will be stored together.  These 
-!   constraints partially determine the structure of the code.
-!
-!   Record of revisions:
-
-!       Date        Programmer(s)           Description of change
-!       ====        ==========              =====================
-!      10/22/03     Rusty Koder              Original code
-!       1/28/04     Les R. Koder             Revised to be consistent
-!                                            with evolving code design
-
-! include module that contains the user-accessible cmor functions.
-  USE cmor_users_functions
-  USE local_subs
-
-  IMPLICIT NONE
-
-  !   dimension parameters:
-  ! ---------------------------------
-  INTEGER, PARAMETER :: ntimes = 2    ! number of time samples to process
-  INTEGER, PARAMETER :: lon = 4       ! number of longitude grid cells  
-  INTEGER, PARAMETER :: lat = 3       ! number of latitude grid cells
-  INTEGER, PARAMETER :: lev = 5       ! number of standard pressure levels
-  INTEGER, PARAMETER :: n2d = 3       ! number of AMIP Table 2 fields to be
-                                      !     output.
-  INTEGER, PARAMETER :: n3d = 2       ! number of AMIP Table 1a fields to 
-                                      !     be output.  
-
-  !   Tables associating the user's variables with AMIP standard output 
-  !   variables.  The user may choose to make this association in a 
-  !   different way (e.g., by defining values of pointers that allow him 
-  !   to directly retrieve data from a data record containing many 
-  !   different variables), but in some way the user will need to map his 
-  !   model output onto the Tables specifying the MIP standard output.
-
-  ! ----------------------------------
-
-                                ! My variable names for Table 1a fields
-  CHARACTER (LEN=2), DIMENSION(n3d) :: varin3d=(/ 'U', 'T'/)
-                                ! Units appropriate to my data
-  CHARACTER (LEN=5), DIMENSION(n3d) :: &
-                                  units3d=(/ 'm s-1',   'K    '  /)
-  CHARACTER (LEN=4), DIMENSION(n3d) ::  &
-                              positive3d= (/   '',       '' /)
-                     ! Corresponding AMIP Table 1a entry (variable name) 
-  CHARACTER (LEN=2), DIMENSION(n3d) :: entry3d = (/ 'ua', 'ta' /)
-
-                                ! My variable names for Table 2 fields
-  CHARACTER (LEN=8), DIMENSION(n2d) :: &
-                          varin2d=(/ 'LATENT  ', 'TSURF   ', 'SOIL_WET' /)
-                                ! Units appropriate to my data
-   CHARACTER (LEN=6), DIMENSION(n2d) :: &
-                          units2d=(/ 'W m-2 ', 'K     ', 'kg m-2' /)
-   CHARACTER (LEN=4), DIMENSION(n2d) :: &
-                      positive2d= (/  'down',  '    ',       '    ' /)
-! Corresponding AMIP Table 2 entry (variable name) 
-  CHARACTER (LEN=5), DIMENSION(n2d) :: &
-                        entry2d = (/ 'hfls ', 'tas  ', 'mrsos' /)
-
-!  uninitialized variables used in communicating with CMOR:
-!  ---------------------------------------------------------
-
-  INTEGER :: error_flag
-  INTEGER, DIMENSION(3) :: axis2d_ids
-  INTEGER, DIMENSION(4) :: axis3d_ids
-  INTEGER, DIMENSION(n2d) :: var2d_ids
-  INTEGER, DIMENSION(n3d) :: var3d_ids
-  REAL, DIMENSION(lat,lon) :: data2d
-  REAL, DIMENSION(lev,lon,lat) :: data3d
-  DOUBLE PRECISION, DIMENSION(lat) :: alats
-  DOUBLE PRECISION, DIMENSION(lon) :: alons
-  DOUBLE PRECISION, DIMENSION(lev) :: plevs
-  DOUBLE PRECISION :: time
-  DOUBLE PRECISION, DIMENSION(2):: bnds_time
-  DOUBLE PRECISION, DIMENSION(2,lat) :: bnds_lat
-  DOUBLE PRECISION, DIMENSION(2,lon) :: bnds_lon
-
-!!$  REAL, DIMENSION(lat*lon*lev) :: tmp3d
-!!$  REAL, DIMENSION(lat*lon) :: tmp2d
-
-  !  Other variables:
-  !  ---------------------
-  
-  INTEGER :: it, m
-  
-  
-  ! ================================
-  !  Execution begins here:
-  ! ================================
-  
-  ! Read coordinate information from model into arrays that will be passed 
-  !   to CMOR.
-  ! Read latitude, longitude, and pressure coordinate values into 
-  !   alats, alons, and plevs, respectively.  Also generate latitude and 
-  !   longitude bounds, and store in bnds_lat and bnds_lon, respectively.
-  
-  !   The user must write the subroutine that fills the coordinate arrays 
-  !   and their bounds with actual data.  The following line is simply a
-  !   a place-holder for the user's code, which should replace it.
-  
-  !  *** possible user-written call ***	
-  
-  print*, 'calling read_coords '
-
-  call read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-
-  print*, 'returned from read_coords'
-  
-  ! Specify path where tables can be found, indicate that existing netCDF 
-  !    files should not be overwritten, and instruct CMOR to error exit on 
-  !    encountering errors of any severity.
-  
-  error_flag = cmor_setup(inpath='Test',   &
-       netcdf_file_action='replace',                                       &
-       set_verbosity=1,                                                    &
-       exit_control=1)
-  
-  ! Define dataset as output from the GICC model (first member of an
-  !   ensemble of simulations) runcmor_write under IPCC 2xCO2 equilibrium experiment 
-  !   conditions, and provide information to be included as attributes in 
-  !   all CF-netCDF files written as part of this dataset.
-
-  print*, 'calling cmor_dataset'
-  error_flag = cmor_dataset(                                   &
-       outpath='Test',         &
-       experiment_id='2xCO2 equilibrium experiment',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       ' Geneva, Switzerland)',                                &
-       source='GICCM  2002(giccm_0_brnchT_itea_2, T63L32)',    &
-       calendar='360_day',                                      &
-       realization=1,                                          &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also ' //          &
-       'see http://www.GICC.su/giccm/doc/index.html '  //      &
-       ' 2XCO2 simulation described in Dorkey et al. '//       &
-       '(Clim. Dyn., 2003, 323-357.)',model_id="pcmdi-08a", &
-       forcing="co2")
-  
-  print*, 'returned from cmor_dataset'
-
-  !  Define axes for 3-d fields
-
-  print*, 'defining 3-d axes'
-  
-  axis3d_ids(3) = cmor_axis(  &
-       table='CMOR_SAMPLE_TABLE',    &
-       table_entry='latitude',       &
-       units='degrees_north',        &  
-       length=lat,                   &
-       coord_vals=alats,             & 
-       cell_bounds=bnds_lat)              
-  axis3d_ids(2) = cmor_axis(  &
-       table='CMOR_SAMPLE_TABLE',    &
-       table_entry='longitude',      &
-       length=lon,                   &
-       units='degrees_east',         &
-       coord_vals=alons,             &
-       cell_bounds=bnds_lon)              
-  axis3d_ids(1) = cmor_axis(  &
-       table='CMOR_SAMPLE_TABLE',    &
-       table_entry='pressure',       &
-       units='Pa',                   &
-       length=lev,                   &
-       coord_vals=plevs)
-  !   note that the time axis is defined next, but the time coordinate 
-  !   values and bounds will be passed to cmor through function 
-  !   cmor_write (below).
-print*, 'before time '
-  axis3d_ids(4) = cmor_axis(  &
-       table='CMOR_SAMPLE_TABLE',    &
-       table_entry='time',           &
-       units='days since 1979-1-1',  &
-       length=ntimes,                &
-       interval='1 month')
-  
-  print*, 'finished defining 3-d axes'
-
-  !  Define axes for 2-d fields
-  
-  print*, 'defining 2-d axes'
-
-  axis2d_ids(1) = axis3d_ids(3)          
-  axis2d_ids(2) = axis3d_ids(2)           
-  axis2d_ids(3) = axis3d_ids(4)
-  
-print*, 'finished defining 2-d axes'
-
-  !  Define variables found in AMIP table 1a (3-d variables)
-  
-  DO m=1,n3d
-     var3d_ids(m) = cmor_variable(    &   
-          table='CMOR_SAMPLE_TABLE',  &
-          table_entry=entry3d(m),     &
-!!$          file_suffix='1979-2001',    &
-          units=units3d(m),           &
-          axis_ids=axis3d_ids,        &
-          missing_value=1.0e20,       &
-          positive=positive3d(m),     &
-          original_name=varin3d(m))
-  ENDDO
-  
-
-  !  Define variables found in AMIP table 2a (2-d variables)
-  
-  DO m=1,n2d
-     var2d_ids(m) = cmor_variable(    &
-          table='CMOR_SAMPLE_TABLE',  & 
-          table_entry=entry2d(m),     & 
-!!$          file_suffix='1979-2001',    &
-          units=units2d(m),           & 
-          axis_ids=axis2d_ids,        &
-          missing_value=1.0e20,       &
-          positive=positive2d(m),     &
-          original_name=varin2d(m))   
-  ENDDO
-
-print*, 'completed everything up to writing output fields '
-  
-  !  Loop through history files (each containing several different fields, 
-  !       but only a single month of data, averaged over the month).  Then 
-  !       extract fields of interest and write these to netCDF files (with 
-  !       one field per file, but all months included in the loop).
-  
-  time_loop: DO it=1, ntimes
-     
-     ! In the following loops over the 3d and 2d fields, the user-written    
-     ! subroutines (read_3d_input_files and read_2d_input_files) retrieve 
-     ! the requested AMIP table 1a and table 2 fields and store them in 
-     ! data3d and data2d, respectively.  In addition a user-written code 
-     ! (read_time) retrieves the time and time-bounds associated with the 
-     ! time sample (in units of 'days since 1970-1-1', consistent with the 
-     ! axis definitions above).  The bounds are set to the beginning and 
-     ! the end of the month retrieved, indicating the averaging period.
-     
-     ! The user must write a code to obtain the times and time-bounds for
-     !   the time slice.  The following line is simply a place-holder for
-     !   the user's code, which should replace it.
-     
-    call read_time(it, time, bnds_time)
-     
-     ! Cycle through the 3-d fields, retrieve the requested variable and 
-     ! append each to the appropriate netCDF file.
-    
- 
-
-    DO m=1,n3d
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-
-        call read_3d_input_files(it, varin3d(m), data3d)
-
-       
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-        print*, RESHAPE(bnds_time, (/ 2,1 /))
-        error_flag = cmor_write(var_id =        var3d_ids(m),   &
-                                data =          RESHAPE(data3d, (/ lat*lon*lev /)),          &
-                                ntimes_passed = 1,              &
-                                time_vals =     (/ time /),           &
-                                time_bnds =     RESHAPE(bnds_time, (/ 2,1 /)))
-
-print*, 'after writing variable, ', var3d_ids(m)
-print*, '    error flag = ', error_flag
-
-        IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) ' Error encountered writing AMIP Table 1a ' &
-                // 'field ', entry3d(m), ', which I call ', varin3d(m)
-           write(*,*) ' Was processing time sample: ', time
-           
-!!$            error_flag = cmor_error_trace(device=0)
-           
-        END IF
-
-     END DO
-     
-     ! Cycle through the 2-d fields, retrieve the requested variable and 
-     ! append each to the appropriate netCDF file.
-     
-     DO m=1,n2d
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-        
-        call read_2d_input_files(it, varin2d(m), data2d)                  
-
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-
-        print*, RESHAPE(bnds_time, (/ 2,1 /))
-        error_flag = cmor_write(var_id =        var2d_ids(m),   &
-                                data =          RESHAPE(data2d, (/ lat*lon /)),        &
-                                ntimes_passed = 1,              &
-                                time_vals =     (/ time /),           &
-                                time_bnds =     RESHAPE(bnds_time, (/ 2,1 /)))
-        
-print*, 'after writing variable, ', var2d_ids(m)
-print*, '    error flag = ', error_flag
-       IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) ' Error encountered writing AMIP Table 2 ' &
-                // 'field ', entry2d(m), ', which I call ', varin2d(m)
-           write(*,*) ' Was processing time sample: ', time 
-           
-!!$            error_flag = cmor_error_trace(device=0)
-           
-        END IF
-        
-     END DO
-     
-  END DO time_loop
-  
-  !   Close all files opened by CMOR.
-  
-  error_flag = cmor_close()  
-
-print*, '******************************'
-print*, ' '
-print*, 'CMOR COMPLETED SUCCESSFULLY '   
-print*, ' '
-print*, '******************************'
-
-END PROGRAM mip_contribution
-
diff --git a/Test/old_cmor_tables/test2.f90 b/Test/old_cmor_tables/test2.f90
deleted file mode 100644
index b6a0acb..0000000
--- a/Test/old_cmor_tables/test2.f90
+++ /dev/null
@@ -1,477 +0,0 @@
-!!$pgf90 -I/work/NetCDF/5.1/include -L/work/NetCDF/5.1/lib -l netcdf -L. -l cmor Test/test1.f90 -IModules -o cmor_test
-!!$pgf90 -g -I/pcmdi/charles_work/NetCDF//include -L/pcmdi/charles_work/NetCDF//lib -lnetcdf -module Modules -IModules -L. -lcmor Test/test1.f90 -o cmor_test
-
-MODULE local_subs
-
-  PRIVATE
-  PUBLIC read_coords, read_time, read_3d_input_files, read_2d_input_files
-CONTAINS
-  
-  SUBROUTINE read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-
-    IMPLICIT NONE
-    
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alats
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alons
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: plevs
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lat
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lon
-    
-    INTEGER :: i, irev
-    
-    DO i = 1, SIZE(alons)
-       irev = SIZE(alons)+1-i
-       alons(irev) = (i-1)*360./SIZE(alons)
-       bnds_lon(1,irev) = (i - 1.5)*360./SIZE(alons)
-       bnds_lon(2,irev) = (i - 0.5)*360./SIZE(alons)
-       print*, i,irev,alons(irev),bnds_lon(1,irev),bnds_lon(2,irev)
-    END DO
-    
-    DO i = 1, SIZE(alats)
-       alats(i) = i*10
-       bnds_lat(1,i) = i*10. - 5.
-       bnds_lat(2,i) = i*10. + 5.
-    END DO
-  
-    DO i = 1, SIZE(plevs)
-       plevs(i) = i*1.0e4
-    END DO
-    
-    RETURN
-  END SUBROUTINE read_coords
-
-  SUBROUTINE read_time(it, time, time_bnds)
-    
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    DOUBLE PRECISION, INTENT(OUT) :: time
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(2) :: time_bnds
-    
-    time = (it-0.5)*30.
-    time_bnds(1) = (it-1)*30.
-    time_bnds(2) = it*30.
-    
-    RETURN
-  END SUBROUTINE read_time
-  
-  SUBROUTINE read_3d_input_files(it, varname, field)
-    
-    INTEGER, INTENT(IN) :: it
-    CHARACTER(len=*), INTENT(IN) :: varname
-    REAL, INTENT(OUT), DIMENSION(:,:,:) :: field
-    
-    INTEGER :: i, j, k, irev
-    REAL :: factor, offset
-    
-    SELECT CASE (TRIM(ADJUSTL(varname)))
-    CASE ('U')  
-       factor = 1.
-       offset = 100.
-    CASE ('T')
-       factor = 0.5
-       offset = -150.
-    END SELECT
-    
-    DO k=1,SIZE(field, 1)
-       DO j=1,SIZE(field, 3)
-          DO i=1,SIZE(field, 2)
-             irev = SIZE(field, 2) + 1 - i
-             field(k,irev,j) = ((k-1)*64 + (j-1)*16 + (i-1)*4 + it)*factor - offset
-          END DO
-       END DO
-    END DO
-    
-  END SUBROUTINE read_3d_input_files
-  
-  SUBROUTINE read_2d_input_files(it, varname, field)                  
-    
-    INTEGER, INTENT(IN) :: it
-    CHARACTER(len=*), INTENT(IN) :: varname
-    REAL, INTENT(OUT), DIMENSION(:,:) :: field
-    
-    INTEGER :: i, j, irev
-    REAL :: factor, offset
-    
-    
-    SELECT CASE (TRIM(ADJUSTL(varname)))
-    CASE ('LATENT')  
-       
-       factor = 1.5
-       offset = 20.
-    CASE ('TSURF')
-       factor = 2.2
-       offset = -220.
-    CASE ('SOIL_WET')
-       factor = 10.
-       offset = 0.
-    END SELECT
-    
-    DO j=1,SIZE(field, 1)
-       DO i=1,SIZE(field, 2)
-          irev = SIZE(field, 2) + 1 - i
-          field(j,irev) = ((j-1)*16 + (i-1)*4 + it)*factor - offset
-       END DO
-    END DO
-
-  END SUBROUTINE read_2d_input_files
-
-END MODULE local_subs
-
-
-PROGRAM mip_contribution
-!
-!   Purpose:   To serve as a generic example of an application that
-!       uses the "Climate Model Output Rewriter" (CMOR)
-
-!    CMOR writes CF-compliant netCDF files.
-!    Its use is required by many community-coordinated standard 
-!       climate model experiments (e.g., AMIP, CMIP, CFMIP, APE, and
-!       IPCC scenario runs)
-!
-!   Background information for this sample code:
-!
-!      Standard output requested by AMIP is listed in 6 different 
-!   tables.  This sample code processes only 2 variables listed in AMIP 
-!   Table 1a ("3-d" fields, containing monthly mean data that are a 
-!   function of longitude, latitude, pressure and time) and only 3 
-!   variables in AMIP Table 2 ("2-d" fields, containing monthly mean 
-!   data that are a function of longitude, latitude, and time).  The 
-!   extension to many more fields is trivial.
-!
-!      For this example, the user must fill in the sections of code that 
-!   extract the 3-d and 2-d fields from his monthly mean "history" 
-!   files (which usually contain many variables but only a single time 
-!   slice).  The CMOR code will write each field in a separate file, but 
-!   many monthly mean time-samples will be stored together.  These 
-!   constraints partially determine the structure of the code.
-!
-!   Record of revisions:
-
-!       Date        Programmer(s)           Description of change
-!       ====        ==========              =====================
-!      10/22/03     Rusty Koder              Original code
-!       1/28/04     Les R. Koder             Revised to be consistent
-!                                            with evolving code design
-
-! include module that contains the user-accessible cmor functions.
-  USE cmor_users_functions
-  USE local_subs
-
-  IMPLICIT NONE
-
-  !   dimension parameters:
-  ! ---------------------------------
-  INTEGER, PARAMETER :: ntimes = 2    ! number of time samples to process
-  INTEGER, PARAMETER :: lon = 4       ! number of longitude grid cells  
-  INTEGER, PARAMETER :: lat = 3       ! number of latitude grid cells
-  INTEGER, PARAMETER :: lev = 5       ! number of standard pressure levels
-  INTEGER, PARAMETER :: n2d = 3       ! number of AMIP Table 2 fields to be
-                                      !     output.
-  INTEGER, PARAMETER :: n3d = 2       ! number of AMIP Table 1a fields to 
-                                      !     be output.  
-
-  !   Tables associating the user's variables with AMIP standard output 
-  !   variables.  The user may choose to make this association in a 
-  !   different way (e.g., by defining values of pointers that allow him 
-  !   to directly retrieve data from a data record containing many 
-  !   different variables), but in some way the user will need to map his 
-  !   model output onto the Tables specifying the MIP standard output.
-
-  ! ----------------------------------
-
-                                ! My variable names for Table 1a fields
-  CHARACTER (LEN=2), DIMENSION(n3d) :: varin3d=(/ 'U', 'T'/)
-                                ! Units appropriate to my data
-  CHARACTER (LEN=5), DIMENSION(n3d) :: &
-                                  units3d=(/ 'm s-1',   'K    '  /)
-  CHARACTER (LEN=4), DIMENSION(n3d) ::  &
-                              positive3d= (/   '',       '' /)
-                     ! Corresponding AMIP Table 1a entry (variable name) 
-  CHARACTER (LEN=2), DIMENSION(n3d) :: entry3d = (/ 'ua', 'ta' /)
-
-                                ! My variable names for Table 2 fields
-  CHARACTER (LEN=8), DIMENSION(n2d) :: &
-                          varin2d=(/ 'LATENT  ', 'TSURF   ', 'SOIL_WET' /)
-                                ! Units appropriate to my data
-   CHARACTER (LEN=6), DIMENSION(n2d) :: &
-                          units2d=(/ 'W m-2 ', 'K     ', 'kg m-2' /)
-   CHARACTER (LEN=4), DIMENSION(n2d) :: &
-                      positive2d= (/  'down',  '    ',       '    ' /)
-                     ! Corresponding AMIP Table 2 entry (variable name) 
-  CHARACTER (LEN=5), DIMENSION(n2d) :: &
-                        entry2d = (/ 'hfls ', 'tas  ', 'mrsos' /)
-
-!  uninitialized variables used in communicating with CMOR:
-!  ---------------------------------------------------------
-
-  INTEGER :: error_flag
-  INTEGER, DIMENSION(3) :: axis2d_ids
-  INTEGER, DIMENSION(4) :: axis3d_ids
-  INTEGER, DIMENSION(n2d) :: var2d_ids
-  INTEGER, DIMENSION(n3d) :: var3d_ids
-  REAL, DIMENSION(lat,lon) :: data2d
-  REAL, DIMENSION(lev,lon,lat) :: data3d
-  DOUBLE PRECISION, DIMENSION(lat) :: alats
-  DOUBLE PRECISION, DIMENSION(lon) :: alons
-  DOUBLE PRECISION, DIMENSION(lev) :: plevs
-  DOUBLE PRECISION :: time
-  DOUBLE PRECISION, DIMENSION(2):: bnds_time
-  DOUBLE PRECISION, DIMENSION(2,lat) :: bnds_lat
-  DOUBLE PRECISION, DIMENSION(2,lon) :: bnds_lon
-
-!!$  REAL, DIMENSION(lat*lon*lev) :: tmp3d
-!!$  REAL, DIMENSION(lat*lon) :: tmp2d
-
-  !  Other variables:
-  !  ---------------------
-  
-  INTEGER :: it, m
-  
-  
-  ! ================================
-  !  Execution begins here:
-  ! ================================
-  
-  ! Read coordinate information from model into arrays that will be passed 
-  !   to CMOR.
-  ! Read latitude, longitude, and pressure coordinate values into 
-  !   alats, alons, and plevs, respectively.  Also generate latitude and 
-  !   longitude bounds, and store in bnds_lat and bnds_lon, respectively.
-  
-  !   The user must write the subroutine that fills the coordinate arrays 
-  !   and their bounds with actual data.  The following line is simply a
-  !   a place-holder for the user's code, which should replace it.
-  
-  !  *** possible user-written call ***	
-  
-  print*, 'calling read_coords '
-
-  call read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-
-  print*, 'returned from read_coords'
-  
-  ! Specify path where tables can be found, indicate that existing netCDF 
-  !    files should not be overwritten, and instruct CMOR to error exit on 
-  !    encountering errors of any severity.
-  
-  error_flag = cmor_setup(inpath='Test',   &
-       netcdf_file_action='replace',                                       &
-       set_verbosity=1,                                                    &
-       exit_control=1)
-  
-  ! Define dataset as output from the GICC model (first member of an
-  !   ensemble of simulations) runcmor_write under IPCC 2xCO2 equilibrium experiment 
-  !   conditions, and provide information to be included as attributes in 
-  !   all CF-netCDF files written as part of this dataset.
-
-  print*, 'calling cmor_dataset'
-  error_flag = cmor_dataset(                                   &
-       outpath='Test',         &
-       experiment_id='2xCO2 equilibrium experiment',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       ' Geneva, Switzerland)',                                &
-       source='GICCM  2002(giccm_0_brnchT_itea_2, T63L32)',    &
-       calendar='360_day',                                      &
-       realization=1,                                          &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also ' //          &
-       'see http://www.GICC.su/giccm/doc/index.html '  //      &
-       ' 2XCO2 simulation described in Dorkey et al. '//       &
-       '(Clim. Dyn., 2003, 323-357.)' , &
-       model_id="pcmdi-01a",forcing="atm")
-  
-  print*, 'returned from cmor_dataset'
-
-  !  Define axes for 3-d fields
-
-  print*, 'defining 3-d axes'
-  
-  axis3d_ids(3) = cmor_axis(  &
-       table='CMOR_SAMPLE_TABLE',    &
-       table_entry='latitude',       &
-       units='degrees_north',        &  
-       length=lat,                   &
-       coord_vals=alats,             & 
-       cell_bounds=bnds_lat)     
-  print*, 'alons:',alons         
-  print*, 'blons:',bnds_lon         
-  axis3d_ids(2) = cmor_axis(  &
-       table='CMOR_SAMPLE_TABLE',    &
-       table_entry='longitude',      &
-       length=lon,                   &
-       units='degrees_east',         &
-       coord_vals=alons,             &
-       cell_bounds=bnds_lon)              
-  axis3d_ids(1) = cmor_axis(  &
-       table='CMOR_SAMPLE_TABLE',    &
-       table_entry='pressure',       &
-       units='Pa',                   &
-       length=lev,                   &
-       coord_vals=plevs)
-  !   note that the time axis is defined next, but the time coordinate 
-  !   values and bounds will be passed to cmor through function 
-  !   cmor_write (below).
-print*, 'before time '
-  axis3d_ids(4) = cmor_axis(  &
-       table='CMOR_SAMPLE_TABLE',    &
-       table_entry='time',           &
-       units='days since 1979-1-1',  &
-       length=ntimes,                &
-       interval='1 month')
-  
-  print*, 'finished defining 3-d axes'
-
-  !  Define axes for 2-d fields
-  
-  print*, 'defining 2-d axes'
-
-  axis2d_ids(1) = axis3d_ids(3)          
-  axis2d_ids(2) = axis3d_ids(2)           
-  axis2d_ids(3) = axis3d_ids(4)
-  
-print*, 'finished defining 2-d axes'
-
-  !  Define variables found in AMIP table 1a (3-d variables)
-  
-  DO m=1,n3d
-     var3d_ids(m) = cmor_variable(    &   
-          table='CMOR_SAMPLE_TABLE',  &
-          table_entry=entry3d(m),     &
-          units=units3d(m),           &
-          axis_ids=axis3d_ids,        &
-          missing_value=1.0e20,       &
-          positive=positive3d(m),     &
-          original_name=varin3d(m))
-  ENDDO
-  
-
-  !  Define variables found in AMIP table 2a (2-d variables)
-  
-  DO m=1,n2d
-     var2d_ids(m) = cmor_variable(    &
-          table='CMOR_SAMPLE_TABLE',  & 
-          table_entry=entry2d(m),     & 
-          units=units2d(m),           & 
-          axis_ids=axis2d_ids,        &
-          missing_value=1.0e20,       &
-          positive=positive2d(m),     &
-          original_name=varin2d(m))   
-  ENDDO
-
-print*, 'completed everything up to writing output fields '
-  
-  !  Loop through history files (each containing several different fields, 
-  !       but only a single month of data, averaged over the month).  Then 
-  !       extract fields of interest and write these to netCDF files (with 
-  !       one field per file, but all months included in the loop).
-  
-  time_loop: DO it=1, ntimes
-     
-     ! In the following loops over the 3d and 2d fields, the user-written    
-     ! subroutines (read_3d_input_files and read_2d_input_files) retrieve 
-     ! the requested AMIP table 1a and table 2 fields and store them in 
-     ! data3d and data2d, respectively.  In addition a user-written code 
-     ! (read_time) retrieves the time and time-bounds associated with the 
-     ! time sample (in units of 'days since 1970-1-1', consistent with the 
-     ! axis definitions above).  The bounds are set to the beginning and 
-     ! the end of the month retrieved, indicating the averaging period.
-     
-     ! The user must write a code to obtain the times and time-bounds for
-     !   the time slice.  The following line is simply a place-holder for
-     !   the user's code, which should replace it.
-     
-    call read_time(it, time, bnds_time)
-     
-     ! Cycle through the 3-d fields, retrieve the requested variable and 
-     ! append each to the appropriate netCDF file.
-    
- 
-
-    DO m=1,n3d
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-
-        call read_3d_input_files(it, varin3d(m), data3d)
-
-       
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-        
-        error_flag = cmor_write(var_id =        var3d_ids(m),   &
-                                data =          RESHAPE(data3d, (/ lat*lon*lev /)),          &
-                                file_suffix='User-suffix-1979-2001',    &
-                                ntimes_passed = 1,              &
-                                time_vals =     (/ time /),           &
-                                time_bnds =     RESHAPE(bnds_time, (/ 2,1 /)))
-
-print*, 'after writing variable, ', var3d_ids(m)
-print*, '    error flag = ', error_flag
-
-        IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) ' Error encountered writing AMIP Table 1a ' &
-                // 'field ', entry3d(m), ', which I call ', varin3d(m)
-           write(*,*) ' Was processing time sample: ', time
-           
-!!$            error_flag = cmor_error_trace(device=0)
-           
-        END IF
-
-     END DO
-     
-     ! Cycle through the 2-d fields, retrieve the requested variable and 
-     ! append each to the appropriate netCDF file.
-     
-     DO m=1,n2d
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-        
-        call read_2d_input_files(it, varin2d(m), data2d)                  
-
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-
-        error_flag = cmor_write(var_id =        var2d_ids(m),   &
-                                data =          RESHAPE(data2d, (/ lat*lon /)),        &
-                                ntimes_passed = 1,              &
-                                time_vals =     (/ time /),           &
-                                time_bnds =     RESHAPE(bnds_time, (/ 2,1 /)))
-        
-print*, 'after writing variable, ', var2d_ids(m)
-print*, '    error flag = ', error_flag
-       IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) ' Error encountered writing AMIP Table 2 ' &
-                // 'field ', entry2d(m), ', which I call ', varin2d(m)
-           write(*,*) ' Was processing time sample: ', time 
-           
-!!$            error_flag = cmor_error_trace(device=0)
-           
-        END IF
-        
-     END DO
-     
-  END DO time_loop
-  
-  !   Close all files opened by CMOR.
-  
-  error_flag = cmor_close()  
-
-print*, '******************************'
-print*, ' '
-print*, 'CMOR COMPLETED SUCCESSFULLY '   
-print*, ' '
-print*, '******************************'
-
-END PROGRAM mip_contribution
-
diff --git a/Test/old_cmor_tables/test3.f90 b/Test/old_cmor_tables/test3.f90
deleted file mode 100644
index 4da8723..0000000
--- a/Test/old_cmor_tables/test3.f90
+++ /dev/null
@@ -1,481 +0,0 @@
-!!$pgf90 -I/work/NetCDF/5.1/include -L/work/NetCDF/5.1/lib -l netcdf -L. -l cmor Test/test1.f90 -IModules -o cmor_test
-!!$pgf90 -g -I/pcmdi/charles_work/NetCDF//include -L/pcmdi/charles_work/NetCDF//lib -lnetcdf -module Modules -IModules -L. -lcmor Test/test1.f90 -o cmor_test
-
-MODULE local_subs
-
-  PRIVATE
-  PUBLIC read_coords, read_time, read_3d_input_files, read_2d_input_files
-CONTAINS
-  
-  SUBROUTINE read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-
-    IMPLICIT NONE
-    
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alats
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alons
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: plevs
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lat
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lon
-    
-    INTEGER :: i, irev, ioff
-    
-    DO i = 1, SIZE(alons)
-       irev = SIZE(alons)+1-i
-       ioff = irev +2
-       if (ioff>SIZE(alons)) ioff = ioff - SIZE(alons)
-       alons(ioff) = (i-1)*360./SIZE(alons)
-       bnds_lon(1,ioff) = (i - 1.5)*360./SIZE(alons)
-       bnds_lon(2,ioff) = (i - 0.5)*360./SIZE(alons)
-    END DO
-    
-    DO i = 1, SIZE(alats)
-       alats(i) = i*10
-       bnds_lat(1,i) = i*10. - 5.
-       bnds_lat(2,i) = i*10. + 5.
-    END DO
-  
-    DO i = 1, SIZE(plevs)
-       plevs(i) = i*1.0e4
-    END DO
-    
-    RETURN
-  END SUBROUTINE read_coords
-
-  SUBROUTINE read_time(it, time, time_bnds)
-    
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    DOUBLE PRECISION, INTENT(OUT) :: time
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(2) :: time_bnds
-    
-    time = (it-0.5)*30.
-    time_bnds(1) = (it-1)*30.
-    time_bnds(2) = it*30.
-    
-    RETURN
-  END SUBROUTINE read_time
-  
-  SUBROUTINE read_3d_input_files(it, varname, field)
-    
-    INTEGER, INTENT(IN) :: it
-    CHARACTER(len=*), INTENT(IN) :: varname
-    REAL, INTENT(OUT), DIMENSION(:,:,:) :: field
-    
-    INTEGER :: i, j, k, irev, ioff
-    REAL :: factor, offset
-    
-    SELECT CASE (TRIM(ADJUSTL(varname)))
-    CASE ('U')  
-       factor = 1.
-       offset = 100.
-    CASE ('T')
-       factor = 0.5
-       offset = -150.
-    END SELECT
-    
-    DO k=1,SIZE(field, 1)
-       DO j=1,SIZE(field, 3)
-          DO i=1,SIZE(field, 2)
-             irev = SIZE(field, 2) + 1 - i
-             ioff = irev + 2
-             IF (ioff > SIZE(field,2)) ioff = ioff - SIZE(field,2)
-             field(k,ioff,j) = ((k-1)*64 + (j-1)*16 + (i-1)*4 + it)*factor - offset
-          END DO
-       END DO
-    END DO
-    
-  END SUBROUTINE read_3d_input_files
-  
-  SUBROUTINE read_2d_input_files(it, varname, field)                  
-    
-    INTEGER, INTENT(IN) :: it
-    CHARACTER(len=*), INTENT(IN) :: varname
-    REAL, INTENT(OUT), DIMENSION(:,:) :: field
-    
-    INTEGER :: i, j, irev, ioff
-    REAL :: factor, offset
-    
-    
-    SELECT CASE (TRIM(ADJUSTL(varname)))
-    CASE ('LATENT')  
-       
-       factor = 1.5
-       offset = 20.
-    CASE ('TSURF')
-       factor = 2.2
-       offset = -220.
-    CASE ('SOIL_WET')
-       factor = 10.
-       offset = 0.
-    END SELECT
-    
-    DO j=1,SIZE(field, 1)
-       DO i=1,SIZE(field, 2)
-          irev = SIZE(field, 2) + 1 - i
-          ioff = irev + 2
-          IF (ioff > SIZE(field,2)) ioff = ioff - SIZE(field,2)
-         field(j,ioff) = ((j-1)*16 + (i-1)*4 + it)*factor - offset
-       END DO
-    END DO
-
-  END SUBROUTINE read_2d_input_files
-
-END MODULE local_subs
-
-
-PROGRAM mip_contribution
-!
-!   Purpose:   To serve as a generic example of an application that
-!       uses the "Climate Model Output Rewriter" (CMOR)
-
-!    CMOR writes CF-compliant netCDF files.
-!    Its use is required by many community-coordinated standard 
-!       climate model experiments (e.g., AMIP, CMIP, CFMIP, APE, and
-!       IPCC scenario runs)
-!
-!   Background information for this sample code:
-!
-!      Standard output requested by AMIP is listed in 6 different 
-!   tables.  This sample code processes only 2 variables listed in AMIP 
-!   Table 1a ("3-d" fields, containing monthly mean data that are a 
-!   function of longitude, latitude, pressure and time) and only 3 
-!   variables in AMIP Table 2 ("2-d" fields, containing monthly mean 
-!   data that are a function of longitude, latitude, and time).  The 
-!   extension to many more fields is trivial.
-!
-!      For this example, the user must fill in the sections of code that 
-!   extract the 3-d and 2-d fields from his monthly mean "history" 
-!   files (which usually contain many variables but only a single time 
-!   slice).  The CMOR code will write each field in a separate file, but 
-!   many monthly mean time-samples will be stored together.  These 
-!   constraints partially determine the structure of the code.
-!
-!   Record of revisions:
-
-!       Date        Programmer(s)           Description of change
-!       ====        ==========              =====================
-!      10/22/03     Rusty Koder              Original code
-!       1/28/04     Les R. Koder             Revised to be consistent
-!                                            with evolving code design
-
-! include module that contains the user-accessible cmor functions.
-  USE cmor_users_functions
-  USE local_subs
-
-  IMPLICIT NONE
-
-  !   dimension parameters:
-  ! ---------------------------------
-  INTEGER, PARAMETER :: ntimes = 2    ! number of time samples to process
-  INTEGER, PARAMETER :: lon = 4       ! number of longitude grid cells  
-  INTEGER, PARAMETER :: lat = 3       ! number of latitude grid cells
-  INTEGER, PARAMETER :: lev = 5       ! number of standard pressure levels
-  INTEGER, PARAMETER :: n2d = 3       ! number of AMIP Table 2 fields to be
-                                      !     output.
-  INTEGER, PARAMETER :: n3d = 2       ! number of AMIP Table 1a fields to 
-                                      !     be output.  
-
-  !   Tables associating the user's variables with AMIP standard output 
-  !   variables.  The user may choose to make this association in a 
-  !   different way (e.g., by defining values of pointers that allow him 
-  !   to directly retrieve data from a data record containing many 
-  !   different variables), but in some way the user will need to map his 
-  !   model output onto the Tables specifying the MIP standard output.
-
-  ! ----------------------------------
-
-                                ! My variable names for Table 1a fields
-  CHARACTER (LEN=2), DIMENSION(n3d) :: varin3d=(/ 'U', 'T'/)
-                                ! Units appropriate to my data
-  CHARACTER (LEN=5), DIMENSION(n3d) :: &
-                                  units3d=(/ 'm s-1',   'K    '  /)
-  CHARACTER (LEN=4), DIMENSION(n3d) ::  &
-                              positive3d= (/   '    ',       '    ' /)
-                     ! Corresponding AMIP Table 1a entry (variable name) 
-  CHARACTER (LEN=2), DIMENSION(n3d) :: entry3d = (/ 'ua', 'ta' /)
-
-                                ! My variable names for Table 2 fields
-  CHARACTER (LEN=8), DIMENSION(n2d) :: &
-                          varin2d=(/ 'LATENT  ', 'TSURF   ', 'SOIL_WET' /)
-                                ! Units appropriate to my data
-   CHARACTER (LEN=6), DIMENSION(n2d) :: &
-                          units2d=(/ 'W m-2 ', 'K     ', 'kg m-2' /)
-   CHARACTER (LEN=4), DIMENSION(n2d) :: &
-                      positive2d= (/  'down',  '    ',       '    ' /)
-                     ! Corresponding AMIP Table 2 entry (variable name) 
-  CHARACTER (LEN=5), DIMENSION(n2d) :: &
-                        entry2d = (/ 'hfls ', 'tas  ', 'mrsos' /)
-
-!  uninitialized variables used in communicating with CMOR:
-!  ---------------------------------------------------------
-
-  INTEGER :: error_flag
-  INTEGER, DIMENSION(3) :: axis2d_ids
-  INTEGER, DIMENSION(4) :: axis3d_ids
-  INTEGER, DIMENSION(n2d) :: var2d_ids
-  INTEGER, DIMENSION(n3d) :: var3d_ids
-  REAL, DIMENSION(lat,lon) :: data2d
-  REAL, DIMENSION(lev,lon,lat) :: data3d
-  DOUBLE PRECISION, DIMENSION(lat) :: alats
-  DOUBLE PRECISION, DIMENSION(lon) :: alons
-  DOUBLE PRECISION, DIMENSION(lev) :: plevs
-  DOUBLE PRECISION :: time
-  DOUBLE PRECISION, DIMENSION(2):: bnds_time
-  DOUBLE PRECISION, DIMENSION(2,lat) :: bnds_lat
-  DOUBLE PRECISION, DIMENSION(2,lon) :: bnds_lon
-
-!!$  REAL, DIMENSION(lat*lon*lev) :: tmp3d
-!!$  REAL, DIMENSION(lat*lon) :: tmp2d
-
-  !  Other variables:
-  !  ---------------------
-  
-  INTEGER :: it, m
-  
-  
-  ! ================================
-  !  Execution begins here:
-  ! ================================
-  
-  ! Read coordinate information from model into arrays that will be passed 
-  !   to CMOR.
-  ! Read latitude, longitude, and pressure coordinate values into 
-  !   alats, alons, and plevs, respectively.  Also generate latitude and 
-  !   longitude bounds, and store in bnds_lat and bnds_lon, respectively.
-  
-  !   The user must write the subroutine that fills the coordinate arrays 
-  !   and their bounds with actual data.  The following line is simply a
-  !   a place-holder for the user's code, which should replace it.
-  
-  !  *** possible user-written call ***	
-  
-  print*, 'calling read_coords '
-
-  call read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-
-  print*, 'returned from read_coords'
-  
-  ! Specify path where tables can be found, indicate that existing netCDF 
-  !    files should not be overwritten, and instruct CMOR to error exit on 
-  !    encountering errors of any severity.
-  
-  error_flag = cmor_setup(inpath='Test',   &
-       netcdf_file_action='replace',                                       &
-       set_verbosity=1,                                                    &
-       exit_control=1)
-  
-  ! Define dataset as output from the GICC model (first member of an
-  !   ensemble of simulations) runcmor_write under IPCC 2xCO2 equilibrium experiment 
-  !   conditions, and provide information to be included as attributes in 
-  !   all CF-netCDF files written as part of this dataset.
-
-  print*, 'calling cmor_dataset'
-  error_flag = cmor_dataset(                                   &
-       outpath='Test',         &
-       experiment_id='2xCO2 equilibrium experiment',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       ' Geneva, Switzerland)',                                &
-       source='GICCM  2002(giccm_0_brnchT_itea_2, T63L32)',    &
-       calendar='360_day',                                      &
-       realization=1,                                          &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also ' //          &
-       'see http://www.GICC.su/giccm/doc/index.html '  //      &
-       ' 2XCO2 simulation described in Dorkey et al. '//       &
-       '(Clim. Dyn., 2003, 323-357.)' , &
-       model_id="pcmdi-08a",forcing="atm")
-  
-  print*, 'returned from cmor_dataset'
-
-  !  Define axes for 3-d fields
-
-  print*, 'defining 3-d axes'
-  
-  axis3d_ids(3) = cmor_axis(  &
-       table='CMOR_SAMPLE_TABLE',    &
-       table_entry='latitude',       &
-       units='degrees_north',        &  
-       length=lat,                   &
-       coord_vals=alats,             & 
-       cell_bounds=bnds_lat)              
-  axis3d_ids(2) = cmor_axis(  &
-       table='CMOR_SAMPLE_TABLE',    &
-       table_entry='longitude',      &
-       length=lon,                   &
-       units='degrees_east',         &
-       coord_vals=alons,             &
-       cell_bounds=bnds_lon)           
-  axis3d_ids(1) = cmor_axis(  &
-       table='CMOR_SAMPLE_TABLE',    &
-       table_entry='pressure',       &
-       units='Pa',                   &
-       length=lev,                   &
-       coord_vals=plevs)
-  !   note that the time axis is defined next, but the time coordinate 
-  !   values and bounds will be passed to cmor through function 
-  !   cmor_write (below).
-print*, 'before time '
-  axis3d_ids(4) = cmor_axis(  &
-       table='CMOR_SAMPLE_TABLE',    &
-       table_entry='time',           &
-       units='days since 1979-1-1',  &
-       length=ntimes,                &
-       interval='30 days')
-  
-  print*, 'finished defining 3-d axes'
-
-  !  Define axes for 2-d fields
-  
-  print*, 'defining 2-d axes'
-
-  axis2d_ids(1) = axis3d_ids(3)          
-  axis2d_ids(2) = axis3d_ids(2)           
-  axis2d_ids(3) = axis3d_ids(4)
-  
-print*, 'finished defining 2-d axes'
-
-  !  Define variables found in AMIP table 1a (3-d variables)
-  
-  DO m=1,n3d
-     var3d_ids(m) = cmor_variable(    &   
-          table='CMOR_SAMPLE_TABLE',  &
-          table_entry=entry3d(m),     &
-          units=units3d(m),           &
-          axis_ids=axis3d_ids,        &
-          missing_value=1.0e20,       &
-          positive=positive3d(m),     &
-          original_name=varin3d(m))
-  ENDDO
-  
-
-  !  Define variables found in AMIP table 2a (2-d variables)
-  
-  DO m=1,n2d
-     var2d_ids(m) = cmor_variable(    &
-          table='CMOR_SAMPLE_TABLE',  & 
-          table_entry=entry2d(m),     & 
-          units=units2d(m),           & 
-          axis_ids=axis2d_ids,        &
-          missing_value=1.0e20,       &
-          positive=positive2d(m),     &
-          original_name=varin2d(m))   
-  ENDDO
-
-print*, 'completed everything up to writing output fields '
-  
-  !  Loop through history files (each containing several different fields, 
-  !       but only a single month of data, averaged over the month).  Then 
-  !       extract fields of interest and write these to netCDF files (with 
-  !       one field per file, but all months included in the loop).
-  
-  time_loop: DO it=1, ntimes
-     
-     ! In the following loops over the 3d and 2d fields, the user-written    
-     ! subroutines (read_3d_input_files and read_2d_input_files) retrieve 
-     ! the requested AMIP table 1a and table 2 fields and store them in 
-     ! data3d and data2d, respectively.  In addition a user-written code 
-     ! (read_time) retrieves the time and time-bounds associated with the 
-     ! time sample (in units of 'days since 1970-1-1', consistent with the 
-     ! axis definitions above).  The bounds are set to the beginning and 
-     ! the end of the month retrieved, indicating the averaging period.
-     
-     ! The user must write a code to obtain the times and time-bounds for
-     !   the time slice.  The following line is simply a place-holder for
-     !   the user's code, which should replace it.
-     
-    call read_time(it, time, bnds_time)
-     
-     ! Cycle through the 3-d fields, retrieve the requested variable and 
-     ! append each to the appropriate netCDF file.
-    
- 
-
-    DO m=1,n3d
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-
-        call read_3d_input_files(it, varin3d(m), data3d)
-
-       
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-        
-        error_flag = cmor_write(var_id =        var3d_ids(m),   &
-                                file_suffix='1979-2001',    &
-                                data =          RESHAPE(data3d, (/ lat*lon*lev /)),          &
-                                ntimes_passed = 1,              &
-                                time_vals =     (/ time /),           &
-                                time_bnds =     RESHAPE(bnds_time, (/ 2,1 /)))
-
-print*, 'after writing variable, ', var3d_ids(m)
-print*, '    error flag = ', error_flag
-
-        IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) ' Error encountered writing AMIP Table 1a ' &
-                // 'field ', entry3d(m), ', which I call ', varin3d(m)
-           write(*,*) ' Was processing time sample: ', time
-           
-!!$            error_flag = cmor_error_trace(device=0)
-           
-        END IF
-
-     END DO
-     
-     ! Cycle through the 2-d fields, retrieve the requested variable and 
-     ! append each to the appropriate netCDF file.
-     
-     DO m=1,n2d
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-        
-        call read_2d_input_files(it, varin2d(m), data2d)                  
-
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-
-        error_flag = cmor_write(var_id =        var2d_ids(m),   &
-                                file_suffix='1979-2001',    &
-                                data =          RESHAPE(data2d, (/ lat*lon /)),        &
-                                ntimes_passed = 1,              &
-                                time_vals =     (/ time /),           &
-                                time_bnds =     RESHAPE(bnds_time, (/ 2,1 /)))
-        
-print*, 'after writing variable, ', var2d_ids(m)
-print*, '    error flag = ', error_flag
-       IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) ' Error encountered writing AMIP Table 2 ' &
-                // 'field ', entry2d(m), ', which I call ', varin2d(m)
-           write(*,*) ' Was processing time sample: ', time 
-           
-!!$            error_flag = cmor_error_trace(device=0)
-           
-        END IF
-        
-     END DO
-     
-  END DO time_loop
-  
-  !   Close all files opened by CMOR.
-  
-  error_flag = cmor_close()  
-
-print*, '******************************'
-print*, ' '
-print*, 'CMOR COMPLETED SUCCESSFULLY '   
-print*, ' '
-print*, '******************************'
-
-END PROGRAM mip_contribution
-
diff --git a/Test/old_cmor_tables/test4.f90 b/Test/old_cmor_tables/test4.f90
deleted file mode 100644
index 3d7a5f8..0000000
--- a/Test/old_cmor_tables/test4.f90
+++ /dev/null
@@ -1,475 +0,0 @@
-!!$pgf90 -I/work/NetCDF/5.1/include -L/work/NetCDF/5.1/lib -l netcdf -L. -l cmor Test/main_prog.f90 -IModules -L/work/Unidata/lib -ludunits -o cmor_test
-!!$pgf90 -g -I/pcmdi/charles_work/NetCDF//include -L/pcmdi/charles_work/NetCDF//lib -lnetcdf -module Modules -IModules -L. -lcmor Test/main_prog.f90 -L/pcmdi/charles_work/Unidata/lib -ludunits -o cmor_test
-
-MODULE local_subs
-
-  PRIVATE
-  PUBLIC read_coords, read_time, read_3d_input_files, read_2d_input_files
-CONTAINS
-  
-  SUBROUTINE read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-
-    IMPLICIT NONE
-    
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alats
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alons
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: plevs
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lat
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lon
-    
-    INTEGER :: i
-    
-    DO i = 1, SIZE(alons)
-       alons(i) = (i-1)*360./SIZE(alons)
-       bnds_lon(1,i) = (i - 1.5)*360./SIZE(alons)
-        bnds_lon(2,i) = (i - 0.5)*360./SIZE(alons)
-    END DO
-    
-    DO i = 1, SIZE(alats)
-       alats(i) = i*10
-       bnds_lat(1,i) = i*10. - 5.
-       bnds_lat(2,i) = i*10. + 5.
-    END DO
-  
-    DO i = 1, SIZE(plevs)
-       plevs(i) = i*1.0e4
-    END DO
-    
-    RETURN
-  END SUBROUTINE read_coords
-
-  SUBROUTINE read_time(it, time, time_bnds)
-    
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    DOUBLE PRECISION, INTENT(OUT) :: time
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(2) :: time_bnds
-    
-    time = (it-0.5)*30.
-    time_bnds(1) = (it-1)*30.
-    time_bnds(2) = it*30.
-    
-    RETURN
-  END SUBROUTINE read_time
-  
-  SUBROUTINE read_3d_input_files(it, varname, field)
-    
-    INTEGER, INTENT(IN) :: it
-    CHARACTER(len=*), INTENT(IN) :: varname
-    REAL, INTENT(OUT), DIMENSION(:,:,:) :: field
-    
-    INTEGER :: i, j, k
-    REAL :: factor, offset
-    
-    SELECT CASE (TRIM(ADJUSTL(varname)))
-    CASE ('U')  
-       factor = 1.
-       offset = 100.
-    CASE ('T')
-       factor = 0.5
-       offset = -150.
-    END SELECT
-    
-    DO k=1,SIZE(field, 3)
-       DO j=1,SIZE(field, 2)
-          DO i=1,SIZE(field, 1)
-             field(i,j,k) = ((k-1)*64 + (j-1)*16 + (i-1)*4 + it)*factor - offset
-             if (TRIM(ADJUSTL(varname)).eq.'T') field(i,j,k) = field(i,j,k)*1.8 - 459.67
-          END DO
-       END DO
-    END DO
-    
-  END SUBROUTINE read_3d_input_files
-  
-  SUBROUTINE read_2d_input_files(it, varname, field)                  
-    
-    INTEGER, INTENT(IN) :: it
-    CHARACTER(len=*), INTENT(IN) :: varname
-    REAL, INTENT(OUT), DIMENSION(:,:) :: field
-    
-    INTEGER :: i, j
-    REAL :: factor, offset
-    
-    
-    SELECT CASE (TRIM(ADJUSTL(varname)))
-    CASE ('LATENT')  
-       
-       factor = 1.5
-       offset = 20.
-    CASE ('TSURF')
-       factor = 2.2
-       offset = -220.
-    CASE ('SOIL_WET')
-       factor = 10.
-       offset = 0.
-    END SELECT
-    
-    DO j=1,SIZE(field, 2)
-       DO i=1,SIZE(field, 1)
-          field(i,j) = ((j-1)*16 + (i-1)*4 + it)*factor - offset
-       END DO
-    END DO
-
-  END SUBROUTINE read_2d_input_files
-
-END MODULE local_subs
-
-
-PROGRAM mip_contribution
-!
-!   Purpose:   To serve as a generic example of an application that
-!       uses the "Climate Model Output Rewriter" (CMOR)
-
-!    CMOR writes CF-compliant netCDF files.
-!    Its use is required by many community-coordinated standard 
-!       climate model experiments (e.g., AMIP, CMIP, CFMIP, APE, and
-!       IPCC scenario runs)
-!
-!   Background information for this sample code:
-!
-!      Standard output requested by AMIP is listed in 6 different 
-!   tables.  This sample code processes only 2 variables listed in AMIP 
-!   Table 1a ("3-d" fields, containing monthly mean data that are a 
-!   function of longitude, latitude, pressure and time) and only 3 
-!   variables in AMIP Table 2 ("2-d" fields, containing monthly mean 
-!   data that are a function of longitude, latitude, and time).  The 
-!   extension to many more fields is trivial.
-!
-!      For this example, the user must fill in the sections of code that 
-!   extract the 3-d and 2-d fields from his monthly mean "history" 
-!   files (which usually contain many variables but only a single time 
-!   slice).  The CMOR code will write each field in a separate file, but 
-!   many monthly mean time-samples will be stored together.  These 
-!   constraints partially determine the structure of the code.
-!
-!   Record of revisions:
-
-!       Date        Programmer(s)           Description of change
-!       ====        ==========              =====================
-!      10/22/03     Rusty Koder              Original code
-!       1/28/04     Les R. Koder             Revised to be consistent
-!                                            with evolving code design
-
-! include module that contains the user-accessible cmor functions.
-  USE cmor_users_functions
-  USE local_subs
-
-  IMPLICIT NONE
-
-  !   dimension parameters:
-  ! ---------------------------------
-  INTEGER, PARAMETER :: ntimes = 2    ! number of time samples to process
-  INTEGER, PARAMETER :: lon = 4       ! number of longitude grid cells  
-  INTEGER, PARAMETER :: lat = 3       ! number of latitude grid cells
-  INTEGER, PARAMETER :: lev = 5       ! number of standard pressure levels
-  INTEGER, PARAMETER :: n2d = 3       ! number of AMIP Table 2 fields to be
-                                      !     output.
-  INTEGER, PARAMETER :: n3d = 2       ! number of AMIP Table 1a fields to 
-                                      !     be output.  
-
-  !   Tables associating the user's variables with AMIP standard output 
-  !   variables.  The user may choose to make this association in a 
-  !   different way (e.g., by defining values of pointers that allow him 
-  !   to directly retrieve data from a data record containing many 
-  !   different variables), but in some way the user will need to map his 
-  !   model output onto the Tables specifying the MIP standard output.
-
-  ! ----------------------------------
-
-                                ! My variable names for Table 1a fields
-  CHARACTER (LEN=2), DIMENSION(n3d) :: varin3d=(/ 'U', 'T'/)
-                                ! Units appropriate to my data
-  CHARACTER (LEN=5), DIMENSION(n3d) :: &
-                                  units3d=(/ 'm s-1',   'degF '  /)
-  CHARACTER (LEN=4), DIMENSION(n3d) ::  &
-                              positive3d= (/   '    ',       '    ' /)
-                     ! Corresponding AMIP Table 1a entry (variable name) 
-  CHARACTER (LEN=2), DIMENSION(n3d) :: entry3d = (/ 'ua', 'ta' /)
-
-                                ! My variable names for Table 2 fields
-  CHARACTER (LEN=8), DIMENSION(n2d) :: &
-                          varin2d=(/ 'LATENT  ', 'TSURF   ', 'SOIL_WET' /)
-                                ! Units appropriate to my data
-   CHARACTER (LEN=6), DIMENSION(n2d) :: &
-                          units2d=(/ 'W m-2 ', 'K     ', 'kg m-2' /)
-   CHARACTER (LEN=4), DIMENSION(n2d) :: &
-                      positive2d= (/  'down',  '    ',       '    ' /)
-                     ! Corresponding AMIP Table 2 entry (variable name) 
-  CHARACTER (LEN=5), DIMENSION(n2d) :: &
-                        entry2d = (/ 'hfls ', 'tas  ', 'mrsos' /)
-
-!  uninitialized variables used in communicating with CMOR:
-!  ---------------------------------------------------------
-
-  INTEGER :: error_flag
-  INTEGER, DIMENSION(3) :: axis2d_ids
-  INTEGER, DIMENSION(4) :: axis3d_ids
-  INTEGER, DIMENSION(n2d) :: var2d_ids
-  INTEGER, DIMENSION(n3d) :: var3d_ids
-  REAL, DIMENSION(lon,lat) :: data2d
-  REAL, DIMENSION(lon,lat,lev) :: data3d
-  DOUBLE PRECISION, DIMENSION(lat) :: alats
-  DOUBLE PRECISION, DIMENSION(lon) :: alons
-  DOUBLE PRECISION, DIMENSION(lev) :: plevs
-  DOUBLE PRECISION :: time
-  DOUBLE PRECISION, DIMENSION(2):: bnds_time
-  DOUBLE PRECISION, DIMENSION(2,lat) :: bnds_lat
-  DOUBLE PRECISION, DIMENSION(2,lon) :: bnds_lon
-
-!!$  REAL, DIMENSION(lat*lon*lev) :: tmp3d
-!!$  REAL, DIMENSION(lat*lon) :: tmp2d
-
-  !  Other variables:
-  !  ---------------------
-  
-  INTEGER :: it, m
-  
-  character(256) outputpath
-
-  ! ================================
-  !  Execution begins here:
-  ! ================================
-  
-  ! Read coordinate information from model into arrays that will be passed 
-  !   to CMOR.
-  ! Read latitude, longitude, and pressure coordinate values into 
-  !   alats, alons, and plevs, respectively.  Also generate latitude and 
-  !   longitude bounds, and store in bnds_lat and bnds_lon, respectively.
-  
-  !   The user must write the subroutine that fills the coordinate arrays 
-  !   and their bounds with actual data.  The following line is simply a
-  !   a place-holder for the user's code, which should replace it.
-  
-  !  *** possible user-written call ***	
-  
-  print*, 'calling read_coords '
-
-  call read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-
-  print*, 'returned from read_coords'
-  
-  ! Specify path where tables can be found, indicate that existing netCDF 
-  !    files should not be overwritten, and instruct CMOR to error exit on 
-  !    encountering errors of any severity.
-  
-  error_flag = cmor_setup(inpath='Test',   &
-       netcdf_file_action='replace',                                       &
-       set_verbosity=1,                                                    &
-       exit_control=1)
-  
-  ! Define dataset as output from the GICC model (first member of an
-  !   ensemble of simulations) runcmor_write under IPCC 2xCO2 equilibrium experiment 
-  !   conditions, and provide information to be included as attributes in 
-  !   all CF-netCDF files written as part of this dataset.
-
-  print*, 'calling cmor_dataset'
-  error_flag = cmor_dataset(                                   &
-       outpath='Test',         &
-       experiment_id='2xCO2 equilibrium experiment',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       'Geneva, Switzerland)',                                 &
-       source='GICCM  2002(giccm_0_brnchT_itea_2, T63L32)',    &
-       calendar='360_day',                                      &
-       realization=1,                                          &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also ' //          &
-       'see http://www.GICC.su/giccm/doc/index.html '  //      &
-       ' 2XCO2 simulation described in Dorkey et al. '//       &
-       '(Clim. Dyn., 2003, 323-357.)' , model_id="pcmdi-08a", &
-       forcing = "atm")
-  
-  print*, 'returned from cmor_dataset'
-
-  !  Define axes for 3-d fields
-
-  print*, 'defining 3-d axes'
-  
-  axis3d_ids(2) = cmor_axis(  &
-       table='CMOR_SAMPLE_TABLE',    &
-       table_entry='latitude',       &
-       units='degrees_north',        &  
-       length=lat,                   &
-       coord_vals=alats,             & 
-       cell_bounds=bnds_lat)              
-  axis3d_ids(1) = cmor_axis(  &
-       table='CMOR_SAMPLE_TABLE',    &
-       table_entry='longitude',      &
-       length=lon,                   &
-       units='degrees_east',         &
-       coord_vals=alons,             &
-       cell_bounds=bnds_lon)              
-  axis3d_ids(3) = cmor_axis(  &
-       table='CMOR_SAMPLE_TABLE',    &
-       table_entry='pressure',       &
-       units='Pa',                   &
-       length=lev,                   &
-       coord_vals=plevs)
-  !   note that the time axis is defined next, but the time coordinate 
-  !   values and bounds will be passed to cmor through function 
-  !   cmor_write (below).
-print*, 'before time '
-  axis3d_ids(4) = cmor_axis(  &
-       table='CMOR_SAMPLE_TABLE',    &
-       table_entry='time',           &
-       units='days since 1979-1-1',  &
-       length=ntimes,                &
-       interval='31 days')
-  
-  print*, 'finished defining 3-d axes'
-
-  !  Define axes for 2-d fields
-  
-  print*, 'defining 2-d axes'
-
-  axis2d_ids(1) = axis3d_ids(1)          
-  axis2d_ids(2) = axis3d_ids(2)           
-  axis2d_ids(3) = axis3d_ids(4)
-  
-print*, 'finished defining 2-d axes'
-
-  !  Define variables found in AMIP table 1a (3-d variables)
-  
-  DO m=1,n3d
-     var3d_ids(m) = cmor_variable(    &   
-          table='CMOR_SAMPLE_TABLE',  &
-          table_entry=entry3d(m),     &
-          units=units3d(m),           &
-          axis_ids=axis3d_ids,        &
-          missing_value=1.0e20,       &
-          positive=positive3d(m),     &
-          original_name=varin3d(m))
-  ENDDO
-  
-
-  !  Define variables found in AMIP table 2a (2-d variables)
-  
-  DO m=1,n2d
-     var2d_ids(m) = cmor_variable(    &
-          table='CMOR_SAMPLE_TABLE',  & 
-          table_entry=entry2d(m),     & 
-          units=units2d(m),           & 
-          axis_ids=axis2d_ids,        &
-          missing_value=1.0e20,       &
-          positive=positive2d(m),     &
-          original_name=varin2d(m))   
-  ENDDO
-
-print*, 'completed everything up to writing output fields '
-  
-  !  Loop through history files (each containing several different fields, 
-  !       but only a single month of data, averaged over the month).  Then 
-  !       extract fields of interest and write these to netCDF files (with 
-  !       one field per file, but all months included in the loop).
-  
-  time_loop: DO it=1, ntimes
-     
-     ! In the following loops over the 3d and 2d fields, the user-written    
-     ! subroutines (read_3d_input_files and read_2d_input_files) retrieve 
-     ! the requested AMIP table 1a and table 2 fields and store them in 
-     ! data3d and data2d, respectively.  In addition a user-written code 
-     ! (read_time) retrieves the time and time-bounds associated with the 
-     ! time sample (in units of 'days since 1970-1-1', consistent with the 
-     ! axis definitions above).  The bounds are set to the beginning and 
-     ! the end of the month retrieved, indicating the averaging period.
-     
-     ! The user must write a code to obtain the times and time-bounds for
-     !   the time slice.  The following line is simply a place-holder for
-     !   the user's code, which should replace it.
-     
-    call read_time(it, time, bnds_time)
-     
-     ! Cycle through the 3-d fields, retrieve the requested variable and 
-     ! append each to the appropriate netCDF file.
-    
- 
-
-    DO m=1,n3d
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-
-        call read_3d_input_files(it, varin3d(m), data3d)
-
-       
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-        call cmor_create_output_path(var3d_ids(m),outputpath)
-        print*, 'Test Code: we are dumping this varialbe ',var3d_ids(m),'to:',outputpath
-        error_flag = cmor_write(var_id =        var3d_ids(m),   &
-                                data =          RESHAPE(data3d, (/ lat*lon*lev /)),          &
-                                ntimes_passed = 1,              &
-                                time_vals =     (/ time /),           &
-                                time_bnds =     RESHAPE(bnds_time, (/ 2,1 /)))
-
-print*, 'after writing variable, ', var3d_ids(m)
-print*, '    error flag = ', error_flag
-
-        IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) ' Error encountered writing AMIP Table 1a ' &
-                // 'field ', entry3d(m), ', which I call ', varin3d(m)
-           write(*,*) ' Was processing time sample: ', time
-           
-!!$            error_flag = cmor_error_trace(device=0)
-           
-        END IF
-
-     END DO
-     
-     ! Cycle through the 2-d fields, retrieve the requested variable and 
-     ! append each to the appropriate netCDF file.
-     
-     DO m=1,n2d
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-        
-        call read_2d_input_files(it, varin2d(m), data2d)                  
-
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-        call cmor_create_output_path(var2d_ids(m),outputpath)
-        print*, 'Test Code: we are dumping this varialbe ',var2d_ids(m),'to:',outputpath
-
-        error_flag = cmor_write(var_id =        var2d_ids(m),   &
-                                data =          RESHAPE(data2d, (/ lat*lon /)),        &
-                                ntimes_passed = 1,              &
-                                time_vals =     (/ time /),           &
-                                time_bnds =     RESHAPE(bnds_time, (/ 2,1 /)))
-        
-print*, 'after writing variable, ', var2d_ids(m)
-print*, '    error flag = ', error_flag
-       IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) ' Error encountered writing AMIP Table 2 ' &
-                // 'field ', entry2d(m), ', which I call ', varin2d(m)
-           write(*,*) ' Was processing time sample: ', time 
-           
-!!$            error_flag = cmor_error_trace(device=0)
-           
-        END IF
-        
-     END DO
-     
-  END DO time_loop
-  
-  !   Close all files opened by CMOR.
-  
-  error_flag = cmor_close()  
-
-print*, '******************************'
-print*, ' '
-print*, 'CMOR COMPLETED SUCCESSFULLY '   
-print*, ' '
-print*, '******************************'
-
-END PROGRAM mip_contribution
-
diff --git a/Test/old_cmor_tables/test_3h.f90 b/Test/old_cmor_tables/test_3h.f90
deleted file mode 100644
index 5e14471..0000000
--- a/Test/old_cmor_tables/test_3h.f90
+++ /dev/null
@@ -1,580 +0,0 @@
-!!$pgf90 -I/work/NetCDF/5.1/include -L/work/NetCDF/5.1/lib -l netcdf -L. -l cmor Test/test_dimensionless.f90 -IModules -o cmor_test
-!!$pgf90 -g -I/pcmdi/charles_work/NetCDF/include -L/pcmdi/charles_work/NetCDF/lib -lnetcdf -module Modules -IModules -L. -lcmor -I/pcmdi/charles_work/Unidata/include -L/pcmdi/charles_work/Unidata/lib -ludunits Test/test_dimensionless.f90 -o cmor_test
-
-MODULE local_subs
-
-  USE cmor_users_functions
-  PRIVATE
-  PUBLIC read_coords, read_time, read_3d_input_files, read_2d_input_files
-CONTAINS
-  
-  SUBROUTINE read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-
-    IMPLICIT NONE
-    
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alats
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alons
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: plevs
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lat
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lon
-    
-    INTEGER :: i
-    
-    DO i = 1, SIZE(alons)
-       alons(i) = (i-1)*360./SIZE(alons)
-       bnds_lon(1,i) = (i - 1.5)*360./SIZE(alons)
-       bnds_lon(2,i) = (i - 0.5)*360./SIZE(alons)
-    END DO
-    
-    DO i = 1, SIZE(alats)
-       alats(i) = (size(alats)+1-i)*10
-       bnds_lat(1,i) = (size(alats)+1-i)*10 + 5.
-       bnds_lat(2,i) = (size(alats)+1-i)*10 - 5.
-    END DO
-  
-    DO i = 1, SIZE(plevs)
-       plevs(i) = i*1.0e4
-    END DO
-    
-    RETURN
-  END SUBROUTINE read_coords
-
-  SUBROUTINE read_time(it, time, time_bnds)
-    
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    DOUBLE PRECISION, INTENT(OUT) :: time
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(2,1) :: time_bnds
-    
-    time = (it-0.5)*3
-    time_bnds(1,1) = (it-1)*3.
-    time_bnds(2,1) = it*3.
-    
-    RETURN
-  END SUBROUTINE read_time
-  
-  SUBROUTINE read_3d_input_files(it, varname, field)
-
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    CHARACTER(len=*), INTENT(IN) :: varname
-    REAL, INTENT(OUT), DIMENSION(:,:,:) :: field
-    
-    INTEGER :: i, j, k
-    REAL :: factor, offset
-    CHARACTER(len=LEN(varname)) :: tmp
-    
-    tmp = TRIM(ADJUSTL(varname))
-    SELECT CASE (tmp)
-    CASE ('CLOUD')  
-       factor = 0.1
-       offset = -50.
-    CASE ('U')  
-       factor = 1.
-       offset = 100.
-    CASE ('T')
-       factor = 0.5
-       offset = -150.
-    END SELECT
-    
-    DO k=1,SIZE(field, 3)
-       DO j=1,SIZE(field, 2)
-          DO i=1,SIZE(field, 1)
-             field(i,j,k) = ((k-1)*64 + (j-1)*16 + (i-1)*4 + it)*factor - offset
-          END DO
-       END DO
-    END DO
-    
-  END SUBROUTINE read_3d_input_files
-  
-  SUBROUTINE read_2d_input_files(it, varname, field)
-
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    CHARACTER(len=*), INTENT(IN) :: varname
-    REAL, INTENT(OUT), DIMENSION(:,:) :: field
-    
-    INTEGER :: i, j
-    REAL :: factor, offset
-    CHARACTER(len=LEN(varname)) :: tmp
-    
-    tmp = TRIM(ADJUSTL(varname))
-    SELECT CASE (tmp)
-    CASE ('LATENT')  
-       
-       factor = 3.2
-       offset = 20.
-    CASE ('TSURF')
-       factor = 2.2
-       offset = -220.
-    CASE ('SOIL_WET')
-       factor = 10.
-       offset = 0.
-    CASE ('PSURF')
-       factor = 100.
-       offset = -9.7e4
-    END SELECT
-    
-    DO j=1,SIZE(field, 2)
-       DO i=1,SIZE(field, 1)
-          field(i,size(field,2)+1-j) = ((j-1)*16 + (i-1)*4 + it)*factor - offset
-       END DO
-    END DO
-
-  END SUBROUTINE read_2d_input_files
-
-END MODULE local_subs
-
-
-PROGRAM ipcc_test_code
-!
-!   Purpose:   To serve as a generic example of an application that
-!       uses the "Climate Model Output Rewriter" (CMOR)
-
-!    CMOR writes CF-compliant netCDF files.
-!    Its use is strongly encouraged by the IPCC and is intended for use 
-!       by those participating in many community-coordinated standard 
-!       climate model experiments (e.g., AMIP, CMIP, CFMIP, PMIP, APE,
-!       etc.)
-!
-!   Background information for this sample code:
-!
-!      Atmospheric standard output requested by IPCC are listed in 
-!   tables available on the web.  Monthly mean output is found in
-!   tables A1a and A1c.  This sample code processes only two 3-d 
-!   variables listed in table A1c ("monthly mean atmosphere 3-D data" 
-!   and only four 2-d variables listed in table A1a ("monthly mean 
-!   atmosphere + land surface 2-D (latitude, longitude) data").  The 
-!   extension to many more fields is trivial.
-!
-!      For this example, the user must fill in the sections of code that 
-!   extract the 3-d and 2-d fields from his monthly mean "history" 
-!   files (which usually contain many variables but only a single time 
-!   slice).  The CMOR code will write each field in a separate file, but 
-!   many monthly mean time-samples will be stored together.  These 
-!   constraints partially determine the structure of the code.
-!
-!
-!   Record of revisions:
-
-!       Date        Programmer(s)           Description of change
-!       ====        ==========              =====================
-!      10/22/03     Rusty Koder              Original code
-!       1/28/04     Les R. Koder             Revised to be consistent
-!                                            with evolving code design
-
-! include module that contains the user-accessible cmor functions.
-  USE cmor_users_functions
-  USE local_subs
-
-  IMPLICIT NONE
-
-  !   dimension parameters:
-  ! ---------------------------------
-  INTEGER, PARAMETER :: ntimes = 2    ! number of time samples to process
-  INTEGER, PARAMETER :: lon = 4       ! number of longitude grid cells  
-  INTEGER, PARAMETER :: lat = 3       ! number of latitude grid cells
-  INTEGER, PARAMETER :: lev = 5       ! number of standard pressure levels
-  INTEGER, PARAMETER :: n2d = 3       ! number of IPCC Table A1a fields to be
-                                      !     output.
-  INTEGER, PARAMETER :: n3d = 3       ! number of IPCC Table A1c fields to 
-                                      !     be output.  
-
-  !   Tables associating the user's variables with IPCC standard output 
-  !   variables.  The user may choose to make this association in a 
-  !   different way (e.g., by defining values of pointers that allow him 
-  !   to directly retrieve data from a data record containing many 
-  !   different variables), but in some way the user will need to map his 
-  !   model output onto the Tables specifying the MIP standard output.
-
-  ! ----------------------------------
-
-                                ! My variable names for IPCC Table A1c fields
-  CHARACTER (LEN=5), DIMENSION(n3d) :: &
-                                 varin3d=(/'CLOUD', 'U    ', 'T    '/)
-
-                                ! Units appropriate to my data
-  CHARACTER (LEN=5), DIMENSION(n3d) :: &
-                                  units3d=(/ '%    ', 'm s-1',   'K    '  /)
-
-                     ! Corresponding IPCC Table A1c entry (variable name) 
-  CHARACTER (LEN=2), DIMENSION(n3d) :: entry3d = (/ 'cl', 'ua', 'ta' /)
-
-                                ! My variable names for IPCC Table A1a fields
-  CHARACTER (LEN=8), DIMENSION(n2d) :: &
-                  varin2d=(/ 'LATENT  ','PSURF   ', 'TSURF   ' /)
-
-                                ! Units appropriate to my data
-   CHARACTER (LEN=10), DIMENSION(n2d) :: &
-                          units2d=(/ 'W m-2     ', 'kg m-2 s-1', 'K         ' /)
-
-   CHARACTER (LEN=4), DIMENSION(n2d) :: &
-                      positive2d= (/  'down',  '    ', '    '  /)
-
-                     ! Corresponding IPCC Table A1a entry (variable name) 
-  CHARACTER (LEN=5), DIMENSION(n2d) :: &
-                        entry2d = (/ 'hfls ', 'pr   ',  'tas  ' /)
-
-!  uninitialized variables used in communicating with CMOR:
-!  ---------------------------------------------------------
-
-  INTEGER :: error_flag
-  INTEGER :: znondim_id, zfactor_id
-  INTEGER, DIMENSION(n2d) :: var2d_ids
-  INTEGER, DIMENSION(n3d) :: var3d_ids
-  REAL, DIMENSION(lon,lat) :: data2d
-  REAL, DIMENSION(lon,lat,lev) :: data3d
-  DOUBLE PRECISION, DIMENSION(lat) :: alats
-  DOUBLE PRECISION, DIMENSION(lon) :: alons
-  DOUBLE PRECISION, DIMENSION(lev) :: plevs
-  DOUBLE PRECISION, DIMENSION(1) :: time
-  DOUBLE PRECISION, DIMENSION(2,1):: bnds_time
-  DOUBLE PRECISION, DIMENSION(2,lat) :: bnds_lat
-  DOUBLE PRECISION, DIMENSION(2,lon) :: bnds_lon
-  DOUBLE PRECISION, DIMENSION(lev) :: zlevs
-  DOUBLE PRECISION, DIMENSION(lev+1) :: zlev_bnds
-  REAL, DIMENSION(lev) :: a_coeff
-  REAL, DIMENSION(lev) :: b_coeff
-  REAL :: p0
-  REAL, DIMENSION(lev+1) :: a_coeff_bnds
-  REAL, DIMENSION(lev+1) :: b_coeff_bnds
-  INTEGER :: ilon, ilat, ipres, ilev, itim, itim1
-
-
-  !  Other variables:
-  !  ---------------------
-  
-  INTEGER :: it, m  
-  
-  ! ================================
-  !  Execution begins here:
-  ! ================================
-  
-  ! Read coordinate information from model into arrays that will be passed 
-  !   to CMOR.
-  ! Read latitude, longitude, and pressure coordinate values into 
-  !   alats, alons, and plevs, respectively.  Also generate latitude and 
-  !   longitude bounds, and store in bnds_lat and bnds_lon, respectively.
-  !   Note that all variable names in this code can be freely chosen by
-  !   the user.
-
-  !   The user must write the subroutine that fills the coordinate arrays 
-  !   and their bounds with actual data.  The following line is simply a
-  !   a place-holder for the user's code, which should replace it.
-  
-  !  *** possible user-written call ***
-  
-  call read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-  
-  ! Specify path where tables can be found and indicate that existing 
-  !    netCDF files should not be overwritten.
-  
-  error_flag = cmor_setup(inpath='Test', netcdf_file_action='replace',logfile='test_3h.LOG')
-  
-  ! Define dataset as output from the GICC model (first member of an
-  !   ensemble of simulations) run under IPCC 2xCO2 equilibrium
-  !   experiment conditions, and provide information to be included as 
-  !   attributes in all CF-netCDF files written as part of this dataset.
-
-  error_flag = cmor_dataset(                                   &
-       outpath='Test',                                         &
-       experiment_id='2xCO2 equilibrium experiment',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       'Geneva, Switzerland)',                                 &
-       source='GICCM1 (2002): ' //                             &
-       'atmosphere:  GICAM3 (gicam_0_brnchT_itea_2, T63L32); '// &
-       'ocean: MOM (mom3_ver_3.5.2, 2x3L15); '             //  &
-       'sea ice: GISIM4; land: GILSM2.5',                      &
-       calendar='360_day',                                      &
-       realization=1,                                          &
-       contact = 'Rusty Koder (koder at middle_earth.net) ',      &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also '        //   &
-       'see http://www.GICC.su/giccm/doc/index.html '     //   &
-       ' 2XCO2 simulation described in Dorkey et al. '    //   &
-       '(Clim. Dyn., 2003, 323-357.)', model_id="pcmdi-08a", &
-       forcing="CO2" )
-  
-  !  Define all axes that will be needed
-
-  ilat = cmor_axis(  &
-       table='IPCC_table_A3',    &
-       table_entry='latitude',       &
-       units='degrees_north',        &  
-       length=lat,                   &
-       coord_vals=alats,             & 
-       cell_bounds=bnds_lat)        
-      
-  ilon = cmor_axis(  &
-       table='IPCC_table_A3',    &
-       table_entry='longitude',      &
-       length=lon,                   &
-       units='degrees_east',         &
-       coord_vals=alons,             &
-       cell_bounds=bnds_lon)      
-        
-!!$  ipres = cmor_axis(  &
-!!$       table='IPCC_table_A3',    &
-!!$       table_entry='pressure',       &
-!!$       units='Pa',                   &
-!!$       length=lev,                   &
-!!$       coord_vals=plevs)
-!!$
-  !   note that the time axis is defined next, but the time coordinate 
-  !   values and bounds will be passed to cmor through function 
-  !   cmor_write (later, below).
-
-  itim = cmor_axis(  &
-       table='IPCC_table_A3',    &
-       table_entry='time',           &
-       units='hours since 2030-1-1',  &
-       length=ntimes,                &
-       interval='3 hours')
-
-  itim1 = cmor_axis(  &
-       table='IPCC_table_A3',    &
-       table_entry='time1',           &
-       units='hours since 2030-1-1',  &
-       length=ntimes)
-!!$  
-!!$  !  define model eta levels (although these must be provided, they will
-!!$  !    actually be replaced by a+b before writing the netCDF file)
-!!$  zlevs = (/ 0.1, 0.3, 0.55, 0.7, 0.9 /)
-!!$  zlev_bnds=(/ 0.,.2, .42, .62, .8, 1. /)
-!!$
-!!$  ilev = cmor_axis(  &
-!!$       table='IPCC_table_A3',    &
-!!$       table_entry='standard_hybrid_sigma',       &
-!!$       length=lev,                   &
-!!$       coord_vals=zlevs,             &
-!!$       cell_bounds=zlev_bnds)
-!!$
-!!$  !   define z-factors needed to transform from model level to pressure
-!!$  p0 = 1.e5
-!!$  a_coeff = (/ 0.1, 0.2, 0.3, 0.22, 0.1 /)
-!!$  b_coeff = (/ 0.0, 0.1, 0.2, 0.5, 0.8 /)
-!!$
-!!$  a_coeff_bnds=(/0.,.15, .25, .25, .16, 0./)
-!!$  b_coeff_bnds=(/0.,.05, .15, .35, .65, 1./)
-!!$
-!!$  error_flag = cmor_zfactor(  &
-!!$       zaxis_id=ilev,                      &
-!!$       zfactor_name='p0',                  &
-!!$       units='Pa',                         &
-!!$       zfactor_values = p0)
-!!$
-!!$  error_flag = cmor_zfactor(  &
-!!$       zaxis_id=ilev,                       & 
-!!$       zfactor_name='b',                    &
-!!$       axis_ids= (/ ilev /),                &
-!!$       zfactor_values = b_coeff,            &
-!!$       zfactor_bounds = b_coeff_bnds  )
-!!$
-!!$  error_flag = cmor_zfactor(  &
-!!$       zaxis_id=ilev,                       &
-!!$       zfactor_name='a',                    &
-!!$       axis_ids= (/ ilev /),                &
-!!$       zfactor_values = a_coeff,            &
-!!$       zfactor_bounds = a_coeff_bnds )
-!!$
-!!$  zfactor_id = cmor_zfactor(  &
-!!$       zaxis_id=ilev,                         &
-!!$       zfactor_name='ps',                     &
-!!$       axis_ids=(/ ilon, ilat, itim /),       &
-!!$       units='Pa' )
-!!$
-!!$  !  Define the only field to be written that is a function of model level
-!!$  !    (appearing in IPCC table A1c)
-!!$
-!!$  var3d_ids(1) = cmor_variable(    &
-!!$       table='IPCC_table_A3',  &
-!!$       table_entry=entry3d(1),     &
-!!$       units=units3d(1),           &
-!!$       axis_ids=(/ ilon, ilat, ilev, itim /),  &
-!!$       missing_value=1.0e28, &
-!!$       original_name=varin3d(1))
-!!$  
-!!$  !  Define variables appearing in IPCC table A1c that are a function of pressure
-!!$  !         (3-d variables)
-!!$  
-!!$  DO m=2,n3d
-!!$     var3d_ids(m) = cmor_variable(    &
-!!$          table='IPCC_table_A3',  &
-!!$          table_entry=entry3d(m),     &
-!!$          units=units3d(m),           &
-!!$          axis_ids=(/ ilon, ilat, ipres, itim /), &
-!!$          missing_value=1.0e28,       &
-!!$          original_name=varin3d(m))
-!!$  ENDDO
-!!$  
-
-  !  Define variables appearing in IPCC table A1a (2-d variables)
-  
-  DO m=1,n2d
-
-     IF (m==2) THEN
-
-        var2d_ids(m) = cmor_variable(    &
-             table='IPCC_table_A3',  &
-             table_entry=entry2d(m),     & 
-             units=units2d(m),           & 
-             axis_ids=(/ ilon, ilat, itim /), &
-             missing_value=1.0e28,       &
-             positive=positive2d(m),     &
-             original_name=varin2d(m))   
-
-     ELSE
-        var2d_ids(m) = cmor_variable(    &
-             table='IPCC_table_A3',  &
-             table_entry=entry2d(m),     & 
-             units=units2d(m),           & 
-             axis_ids=(/ ilon, ilat, itim1 /), &
-             missing_value=1.0e28,       &
-             positive=positive2d(m),     &
-             original_name=varin2d(m))  
-
-     END IF
-
-  ENDDO
-
-  PRINT*, ' '
-  PRINT*, 'completed everything up to writing output fields '
-  PRINT*, ' '
-
-  !  Loop through history files (each containing several different fields, 
-  !       but only a single month of data, averaged over the month).  Then 
-  !       extract fields of interest and write these to netCDF files (with 
-  !       one field per file, but all months included in the loop).
-  
-  time_loop: DO it=1, ntimes
-     
-     ! In the following loops over the 3d and 2d fields, the user-written    
-     ! subroutines (read_3d_input_files and read_2d_input_files) retrieve 
-     ! the requested IPCC table A1c and table A1a fields and store them in 
-     ! data3d and data2d, respectively.  In addition a user-written code 
-     ! (read_time) retrieves the time and time-bounds associated with the 
-     ! time sample (in units of 'days since 1970-1-1', consistent with the 
-     ! axis definitions above).  The bounds are set to the beginning and 
-     ! the end of the month retrieved, indicating the averaging period.
-     
-     ! The user must write a code to obtain the times and time-bounds for
-     !   the time slice.  The following line is simply a place-holder for
-     !   the user's code, which should replace it.
-     
-    call read_time(it, time(1), bnds_time)
-
-!!$    call read_3d_input_files(it, varin3d(1), data3d)
-!!$
-!!$    error_flag = cmor_write(                                  &
-!!$         var_id        = var3d_ids(1),                        &
-!!$         data          = data3d,                              &
-!!$         ntimes_passed = 1,                                   &
-!!$         time_vals     = time,                                &
-!!$         time_bnds     = bnds_time   )
-!!$
-!!$    call read_2d_input_files(it, varin2d(4), data2d)                  
-!!$
-!!$    error_flag = cmor_write(                                  &
-!!$         var_id        = zfactor_id,                          &
-!!$         data          = data2d,                              &
-!!$         ntimes_passed = 1,                                   &
-!!$         time_vals     = time,                                &
-!!$         time_bnds     = bnds_time,                           &
-!!$         store_with    = var3d_ids(1) )
-
-    ! Cycle through the 3-d fields (stored on pressure levels), 
-    ! and retrieve the requested variable and append each to the 
-    ! appropriate netCDF file.
-
-!!$    DO m=2,n3d
-!!$        
-!!$        ! The user must write the code that fills the arrays of data
-!!$        ! that will be passed to CMOR.  The following line is simply a
-!!$        ! a place-holder for the user's code, which should replace it.
-!!$
-!!$        call read_3d_input_files(it, varin3d(m), data3d)
-!!$       
-!!$        ! append a single time sample of data for a single field to 
-!!$        ! the appropriate netCDF file.
-!!$        
-!!$        error_flag = cmor_write(                                  &
-!!$             var_id        = var3d_ids(m),                        &
-!!$             data          = data3d,                              &
-!!$             ntimes_passed = 1,                                   &
-!!$             time_vals     = time,                                &
-!!$             time_bnds     = bnds_time  )
-!!$        
-!!$        IF (error_flag < 0) THEN
-!!$           ! write diagnostic messages to standard output device
-!!$           write(*,*) ' Error encountered writing IPCC Table A1c ' &
-!!$                // 'field ', entry3d(m), ', which I call ', varin3d(m)
-!!$           write(*,*) ' Was processing time sample: ', time
-!!$                      
-!!$        END IF
-!!$
-!!$     END DO
-!!$     
-     ! Cycle through the 2-d fields, retrieve the requested variable and 
-     ! append each to the appropriate netCDF file.
-     
-     DO m=1,n2d
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-        
-        call read_2d_input_files(it, varin2d(m), data2d)                  
-
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-
-        IF (m==2) THEN
-           print*, 'Passing times (1):',time
-           error_flag = cmor_write(                                  &
-                var_id        = var2d_ids(m),                        &
-                data          = data2d,                              &
-                ntimes_passed = 1,                                   &
-                time_vals     = time,                                &
-                time_bnds     = bnds_time  )
-        ELSE
-            print*, 'Passing times (2):',time
-          error_flag = cmor_write(                                  &
-                var_id        = var2d_ids(m),                        &
-                data          = data2d,                              &
-                ntimes_passed = 1,                                   &
-                time_vals     = time)
-        END IF
-
-       IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) ' Error encountered writing IPCC Table A1a ' &
-                // 'field ', entry2d(m), ', which I call ', varin2d(m)
-           write(*,*) ' Was processing time sample: ', time 
-                      
-        END IF
-        
-     END DO
-     
-  END DO time_loop
-  
-  !   Close all files opened by CMOR.
-  
-  error_flag = cmor_close()  
-
-  print*, ' '
-  print*, '******************************'
-  print*, ' '
-  print*, 'ipcc_test_code executed to completion '   
-  print*, ' '
-  print*, '******************************'
-  
-END PROGRAM ipcc_test_code
-
diff --git a/Test/old_cmor_tables/test_any_from_asc.f90 b/Test/old_cmor_tables/test_any_from_asc.f90
deleted file mode 100644
index d4a4f2c..0000000
--- a/Test/old_cmor_tables/test_any_from_asc.f90
+++ /dev/null
@@ -1,348 +0,0 @@
-program main
-
-  USE cmor_users_functions
-  implicit none
-
-  integer ncid
-
-  type dims
-     integer n
-     character(256) name
-     character(256) units
-     double precision, DIMENSION(:), pointer :: values
-     double precision, DIMENSION(:,:), pointer :: bounds     
-     type(dims), pointer :: next
-  end type dims
-  character(256) filein
-  type(dims), pointer :: mydims,current,ptimes
-  integer ndim,i,j,ntot
-!  real, allocatable, dimension(:,:,:):: arrayin
-  real, allocatable, dimension(:,:):: arrayin2d
-  real, allocatable, dimension(:,:,:):: arrayin3d
-  real, allocatable, dimension(:,:,:,:):: arrayin4d
-  real, allocatable, dimension(:,:,:,:,:):: arrayin5d
-  integer, dimension(7):: dimlength = (/ (1,i=1,7) /)
-  integer, PARAMETER::verbosity = 2
-  integer ierr
-  integer, allocatable, dimension(:) :: myaxis
-  integer myvar
-  character(50) :: var,units
-
-  print*, 'Test Code: Welcome to the general from ascii testing code'
-  read(5,'(A)') filein
-  open(unit=23,file=filein,form='formatted') 
-  call allocate_dims(23,mydims,ndim,dimlength,var,units)
-  allocate(myaxis(ndim))
-  current=>mydims
-  ntot=1
-  do i =1,ndim
-     ntot=ntot*current%n
-     current=>current%next
-  enddo
-  if (ndim.eq.2) then
-     allocate(arrayin2d(dimlength(1),dimlength(2)))
-     call read_ascii2d(23,mydims, ndim,ntot,arrayin2d)
-     print*,'Test Code: allocate data:',shape(arrayin2d)
-  else if (ndim.eq.3) then
-     allocate(arrayin3d(dimlength(1),dimlength(2),dimlength(3)))
-     call read_ascii3d(23,mydims, ndim,ntot,arrayin3d)
-     print*,'Test Code: allocate data:',shape(arrayin3d)
-  else if (ndim.eq.4) then
-     allocate(arrayin4d(dimlength(1),dimlength(2),dimlength(3),dimlength(4)))
-     call read_ascii4d(23,mydims, ndim,ntot,arrayin4d)
-     print*,'Test Code: allocate data:',shape(arrayin4d)
-  else if (ndim.eq.5) then
-     call read_ascii5d(23,mydims, ndim,ntot,arrayin5d)
-     allocate(arrayin5d(dimlength(1),dimlength(2),dimlength(3),dimlength(4),dimlength(5)))
-     print*,'Test Code: allocate data:',shape(arrayin5d)
-  endif
-  
-  
-!!$!! Ok here is the part where we define or variable/axis,etc... 
-!!$!! Assuming that Karl's code is ok...
-!!$
-  
-  print*,'Test Code: CMOR SETUP'
-!!$  
-  ierr = cmor_setup(inpath='Test',   &
-       netcdf_file_action='replace',                                       &
-       set_verbosity=1,                                                    &
-       exit_control=1)
-    
-  print*,'Test Code: CMOR DATASET'
-  ierr = cmor_dataset(                                   &
-       outpath='Test',         &
-       experiment_id='2xCO2 equilibrium experiment',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       ' Geneva, Switzerland)',                                &
-       source='GICCM  2002(giccm_0_brnchT_itea_2, T63L32)',    &
-       calendar='noleap',                                      &
-       realization=1,                                          &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also ' //          &
-       'see http://www.GICC.su/giccm/doc/index.html '  //      &
-       ' 2XCO2 simulation described in Dorkey et al. '//       &
-       '(Clim. Dyn., 2003, 323-357.)', &
-       model_id='pcmdi-01a',forcing='atm' )
-  
-  current=>mydims
-  do i = 0,ndim-1
-     print*,'Test Code: CMOR AXIS',i
-     print*, 'Test Code: Axis Name:',trim(adjustl(current%name))
-     if (trim(adjustl(current%name)).eq.'time') then
-        print*, 'Test Code: time found'
-        ptimes => current
-        myaxis(ndim-i)=cmor_axis('CMOR_SAMPLE_TABLE', &
-             table_entry=current%name,&
-             units=current%units,&
-             length=current%n,&
-!!$          coord_vals=current%values,&
-!!$          cell_bounds=current%bounds, &
-             interval='1 month')
-     else
-        myaxis(ndim-i)=cmor_axis('CMOR_SAMPLE_TABLE', &
-             table_entry=current%name,&
-             units=current%units,&
-             length=current%n,&
-             coord_vals=current%values,&
-             cell_bounds=current%bounds)
-        print*, 'Test Code: not time'
-     endif
-     current=>current%next
-  enddo
-  
-  print*,'Test Code: CMOR VAR'
-  myvar=cmor_variable('CMOR_SAMPLE_TABLE',&
-       var,&
-       units,&
-       myaxis,&
-       missing_value=1.e20)
-
-  !! figures out length of dimension other than time
-
-  print*, 'Test Code: time before:',ptimes%values(i:i)
-  if (ndim.eq.2) then 
-     if (ptimes%name.eq.mydims%name) then
-        do i=1,ptimes%n
-           print*, 'Test code: Write time',i,ptimes%values(i)
-           ierr = cmor_write( &
-                var_id        = myvar, &
-                data          = arrayin2d(:,i:i), &
-                ntimes_passed = 1,   &
-                time_vals     = (/ptimes%values(i)/),  &
-                time_bnds     = RESHAPE (ptimes%bounds(1:2,i), (/2,1/)) &
-                )
-        enddo
-     else
-        print*, 'Test code: Write all times at once'
-        ierr = cmor_write( &
-             var_id        = myvar, &
-             data          = arrayin2d, &
-             ntimes_passed = ptimes%n,   &
-             time_vals     = ptimes%values,  &
-             time_bnds     = ptimes%bounds &
-             )
-     endif
-  else if (ndim.eq.3) then
-     if (ptimes%name.eq.mydims%name) then
-        do i=1,ptimes%n
-           print*, 'Test code: Write time',i,ptimes%values(i)
-           ierr = cmor_write( &
-                var_id        = myvar, &
-                data          = arrayin3d(:,:,i:i), &
-                ntimes_passed = 1,   &
-                time_vals     = (/ptimes%values(i)/),  &
-                time_bnds     = RESHAPE (ptimes%bounds(1:2,i), (/2,1/)) &
-                )
-        enddo
-     else
-        print*, 'Test code: Write all times at once',ptimes%units,ptimes%values
-        ierr = cmor_write( &
-             var_id        = myvar, &
-             data          = arrayin3d, &
-             ntimes_passed = ptimes%n,   &
-             time_vals     = ptimes%values,  &
-             time_bnds     = ptimes%bounds &
-             )
-     endif
-  else if (ndim.eq.4) then
-     if (ptimes%name.eq.mydims%name) then
-        do i=1,ptimes%n
-           print*, 'Test code: Write time',i,ptimes%values(i)
-           ierr = cmor_write( &
-                var_id        = myvar, &
-                data          = arrayin4d(:,:,:,i:i), &
-                ntimes_passed = 1,   &
-                time_vals     = (/ptimes%values(i)/),  &
-                time_bnds     = RESHAPE (ptimes%bounds(1:2,i), (/2,1/)) &
-                )
-        enddo
-     else
-        print*, 'Test code: Write all times at once',ptimes%units
-        ierr = cmor_write( &
-             var_id        = myvar, &
-             data          = arrayin4d, &
-             ntimes_passed = ptimes%n,   &
-             time_vals     = ptimes%values,  &
-             time_bnds     = ptimes%bounds &
-             )
-     endif
-  else
-     if (ptimes%name.eq.mydims%name) then
-        do i=1,ptimes%n
-           print*, 'Test code: Write time',i,ptimes%values(i)
-           ierr = cmor_write( &
-                var_id        = myvar, &
-                data          = arrayin5d(:,:,:,:,i:i), &
-                ntimes_passed = 1,   &
-                time_vals     = (/ptimes%values(i)/),  &
-                time_bnds     = RESHAPE (ptimes%bounds(1:2,i), (/2,1/)) &
-                )
-        enddo
-     else
-        print*, 'Test code: Write all times at once'
-        ierr = cmor_write( &
-             var_id        = myvar, &
-             data          = arrayin5d, &
-             ntimes_passed = ptimes%n,   &
-             time_vals     = ptimes%values,  &
-             time_bnds     = ptimes%bounds &
-             )
-     endif
-  endif
-  ierr = cmor_close()
-
-contains
-  subroutine allocate_dims(file_id,mydims,ndim,dimlength,var,units)
-    implicit none
-    integer i,n,j,tmp,file_id
-    integer, intent(inout)::ndim
-    integer, intent(inout):: dimlength(7)
-    type(dims) , pointer :: tmpdims,mydims
-    character(50), intent(inout) :: var,units
-    read(file_id,'(A)') var
-    read(file_id,'(A)') units
-    read(file_id,'(I4)') ndim
-    n=1
-    allocate(mydims)
-    tmpdims=>mydims
-    do i = 1, ndim
-       read(file_id,'(I4)') tmp
-       dimlength(4-i)=tmp
-       allocate(tmpdims%values(tmp))
-       allocate(tmpdims%bounds(2,tmp))
-       tmpdims%n=tmp
-       allocate(tmpdims%next)
-       tmpdims=>tmpdims%next
-       n=n*tmp
-    enddo
-    deallocate(tmpdims)
-  end subroutine allocate_dims
-  
-  subroutine read_ascii2d(file_unit,mydims,ndim,ntot,arrayin)
-    implicit none
-    type(dims), pointer::  mydims
-    real, dimension(:,:),intent(inout) :: arrayin
-    type(dims), pointer ::  current
-    integer, intent(in)::ndim,file_unit
-    integer n,ntot,i,j,k,l
-    
-    current=>mydims
-    ntot=1
-    do i =1,ndim
-       n=current%n
-       ntot=ntot*n
-       read(file_unit,'(A)') current%name
-       print*, 'Test Code: NAME is:',current%name
-       read(file_unit,'(A)') current%units
-       print*, 'Test Code: UNITS is:',current%units
-       read(file_unit,*) (current%values(j),j=1,n)
-       read(file_unit,*) ((current%bounds(j,k),j=1,2),k=1,n)
-       print*, 'Test Code: bounds',current%bounds(1,1),current%bounds(1,2)
-       current=>current%next
-    enddo
-    read(file_unit,*) ((arrayin(j,k),j=1,size(arrayin,1)),k=1,size(arrayin,2))
-  end subroutine read_ascii2d
-  subroutine read_ascii3d(file_unit,mydims,ndim,ntot,arrayin)
-    implicit none
-    type(dims), pointer::  mydims
-    real, dimension(:,:,:),intent(inout) :: arrayin
-    type(dims), pointer ::  current
-    integer, intent(in)::ndim,file_unit
-    integer n,ntot,i,j,k,l
-    
-    current=>mydims
-    ntot=1
-    do i =1,ndim
-       n=current%n
-       ntot=ntot*n
-       read(file_unit,'(A)') current%name
-       print*, 'Test Code: NAME is:',current%name
-       read(file_unit,'(A)') current%units
-       print*, 'Test Code: UNITS is:',current%units
-       read(file_unit,*) (current%values(j),j=1,n)
-       read(file_unit,*) ((current%bounds(j,k),j=1,2),k=1,n)
-       print*, 'Test Code: bounds',current%bounds(1,1),current%bounds(1,2)
-       current=>current%next
-    enddo
-    read(file_unit,*) (((arrayin(j,k,l),j=1,size(arrayin,1)),k=1,size(arrayin,2)),l=1,size(arrayin,3))
-  end subroutine read_ascii3d
-  subroutine read_ascii4d(file_unit,mydims,ndim,ntot,arrayin)
-    implicit none
-    type(dims), pointer::  mydims
-    real, dimension(:,:,:,:),intent(inout) :: arrayin
-    type(dims), pointer ::  current
-    integer, intent(in)::ndim,file_unit
-    integer n,ntot,i,j,k,l,m
-    
-    current=>mydims
-    ntot=1
-    do i =1,ndim
-       n=current%n
-       ntot=ntot*n
-       read(file_unit,'(A)') current%name
-       print*, 'Test Code: NAME is:',current%name
-       read(file_unit,'(A)') current%units
-       print*, 'Test Code: UNITS is:',current%units
-       read(file_unit,*) (current%values(j),j=1,n)
-       read(file_unit,*) ((current%bounds(j,k),j=1,2),k=1,n)
-       print*, 'Test Code: bounds',current%bounds(1,1),current%bounds(1,2)
-       current=>current%next
-    enddo
-    read(file_unit,*) ((((arrayin(j,k,l,m),j=1,size(arrayin,1)),k=1,size(arrayin,2)),l=1,size(arrayin,3)),m=1,size(arrayin,4))
-  end subroutine read_ascii4d
-  subroutine read_ascii5d(file_unit,mydims,ndim,ntot,arrayin)
-    implicit none
-    type(dims), pointer::  mydims
-    real, dimension(:,:,:,:,:),intent(inout) :: arrayin
-    type(dims), pointer ::  current
-    integer, intent(in)::ndim,file_unit
-    integer n,ntot,i,j,k,l,m,o
-    
-    current=>mydims
-    ntot=1
-    do i =1,ndim
-       n=current%n
-       ntot=ntot*n
-       read(file_unit,'(A)') current%name
-       print*, 'Test Code: NAME is:',current%name
-       read(file_unit,'(A)') current%units
-       print*, 'Test Code: UNITS is:',current%units
-       read(file_unit,*) (current%values(j),j=1,n)
-       read(file_unit,*) ((current%bounds(j,k),j=1,2),k=1,n)
-       print*, 'Test Code: bounds',current%bounds(1,1),current%bounds(1,2)
-       current=>current%next
-    enddo
-    read(file_unit,*) (((((arrayin(j,k,l,m,o),j=1,size(arrayin,1)),&
-         k=1,size(arrayin,2)),l=1,size(arrayin,3)),m=1,size(arrayin,4)),&
-         o=1,size(arrayin,5))
-  end subroutine read_ascii5d
-
-
-end program main
-
diff --git a/Test/old_cmor_tables/test_any_from_asc_d.f90 b/Test/old_cmor_tables/test_any_from_asc_d.f90
deleted file mode 100644
index 8538ce2..0000000
--- a/Test/old_cmor_tables/test_any_from_asc_d.f90
+++ /dev/null
@@ -1,348 +0,0 @@
-program main
-
-  USE cmor_users_functions
-  implicit none
-
-  integer ncid
-
-  type dims
-     integer n
-     character(256) name
-     character(256) units
-     double precision, DIMENSION(:), pointer :: values
-     double precision, DIMENSION(:,:), pointer :: bounds     
-     type(dims), pointer :: next
-  end type dims
-  character(256) filein
-  type(dims), pointer :: mydims,current,ptimes
-  integer ndim,i,j,ntot
-!  double precision, allocatable, dimension(:,:,:):: arrayin
-  double precision, allocatable, dimension(:,:):: arrayin2d
-  double precision, allocatable, dimension(:,:,:):: arrayin3d
-  double precision, allocatable, dimension(:,:,:,:):: arrayin4d
-  double precision, allocatable, dimension(:,:,:,:,:):: arrayin5d
-  integer, dimension(7):: dimlength = (/ (1,i=1,7) /)
-  integer, PARAMETER::verbosity = 2
-  integer ierr
-  integer, allocatable, dimension(:) :: myaxis
-  integer myvar
-  character(50) :: var,units
-
-  print*, 'Test Code: Welcome to the general from ascii testing code'
-  read(5,'(A)') filein
-  open(unit=23,file=filein,form='formatted') 
-  call allocate_dims(23,mydims,ndim,dimlength,var,units)
-  allocate(myaxis(ndim))
-  current=>mydims
-  ntot=1
-  do i =1,ndim
-     ntot=ntot*current%n
-     current=>current%next
-  enddo
-  if (ndim.eq.2) then
-     allocate(arrayin2d(dimlength(1),dimlength(2)))
-     call read_ascii2d(23,mydims, ndim,ntot,arrayin2d)
-     print*,'Test Code: allocate data:',shape(arrayin2d)
-  else if (ndim.eq.3) then
-     allocate(arrayin3d(dimlength(1),dimlength(2),dimlength(3)))
-     call read_ascii3d(23,mydims, ndim,ntot,arrayin3d)
-     print*,'Test Code: allocate data:',shape(arrayin3d)
-  else if (ndim.eq.4) then
-     allocate(arrayin4d(dimlength(1),dimlength(2),dimlength(3),dimlength(4)))
-     call read_ascii4d(23,mydims, ndim,ntot,arrayin4d)
-     print*,'Test Code: allocate data:',shape(arrayin4d)
-  else if (ndim.eq.5) then
-     call read_ascii5d(23,mydims, ndim,ntot,arrayin5d)
-     allocate(arrayin5d(dimlength(1),dimlength(2),dimlength(3),dimlength(4),dimlength(5)))
-     print*,'Test Code: allocate data:',shape(arrayin5d)
-  endif
-  
-  
-!!$!! Ok here is the part where we define or variable/axis,etc... 
-!!$!! Assuming that Karl's code is ok...
-!!$
-  
-  print*,'Test Code: CMOR SETUP'
-!!$  
-  ierr = cmor_setup(inpath='Test',   &
-       netcdf_file_action='replace',                                       &
-       set_verbosity=1,                                                    &
-       exit_control=1)
-    
-  print*,'Test Code: CMOR DATASET'
-  ierr = cmor_dataset(                                   &
-       outpath='Test',         &
-       experiment_id='2xCO2 equilibrium experiment',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       ' Geneva, Switzerland)',                                &
-       source='GICCM  2002(giccm_0_brnchT_itea_2, T63L32)',    &
-       calendar='noleap',                                      &
-       realization=1,                                          &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also ' //          &
-       'see http://www.GICC.su/giccm/doc/index.html '  //      &
-       ' 2XCO2 simulation described in Dorkey et al. '//       &
-       '(Clim. Dyn., 2003, 323-357.)' ,   &
-       model_id = "pcmdi-01a",forcing="atm")
-  
-  current=>mydims
-  do i = 0,ndim-1
-     print*,'Test Code: CMOR AXIS',i
-     print*, 'Test Code: Axis Name:',trim(adjustl(current%name))
-     if (trim(adjustl(current%name)).eq.'time') then
-        print*, 'Test Code: time found'
-        ptimes => current
-        myaxis(ndim-i)=cmor_axis('CMOR_SAMPLE_TABLE', &
-             table_entry=current%name,&
-             units=current%units,&
-             length=current%n,&
-!!$          coord_vals=current%values,&
-!!$          cell_bounds=current%bounds, &
-             interval='1 month')
-     else
-        myaxis(ndim-i)=cmor_axis('CMOR_SAMPLE_TABLE', &
-             table_entry=current%name,&
-             units=current%units,&
-             length=current%n,&
-             coord_vals=current%values,&
-             cell_bounds=current%bounds)
-        print*, 'Test Code: not time'
-     endif
-     current=>current%next
-  enddo
-  
-  print*,'Test Code: CMOR VAR'
-  myvar=cmor_variable('CMOR_SAMPLE_TABLE',&
-       var,&
-       units,&
-       myaxis,&
-       missing_value=1.e20)
-
-  !! figures out length of dimension other than time
-
-  print*, 'Test Code: time before:',ptimes%values(i:i)
-  if (ndim.eq.2) then 
-     if (ptimes%name.eq.mydims%name) then
-        do i=1,ptimes%n
-           print*, 'Test code: Write time',i,ptimes%values(i)
-           ierr = cmor_write( &
-                var_id        = myvar, &
-                data          = arrayin2d(:,i:i), &
-                ntimes_passed = 1,   &
-                time_vals     = (/ptimes%values(i)/),  &
-                time_bnds     = RESHAPE (ptimes%bounds(1:2,i), (/2,1/)) &
-                )
-        enddo
-     else
-        print*, 'Test code: Write all times at once'
-        ierr = cmor_write( &
-             var_id        = myvar, &
-             data          = arrayin2d, &
-             ntimes_passed = ptimes%n,   &
-             time_vals     = ptimes%values,  &
-             time_bnds     = ptimes%bounds &
-             )
-     endif
-  else if (ndim.eq.3) then
-     if (ptimes%name.eq.mydims%name) then
-        do i=1,ptimes%n
-           print*, 'Test code: Write time',i,ptimes%values(i)
-           ierr = cmor_write( &
-                var_id        = myvar, &
-                data          = arrayin3d(:,:,i:i), &
-                ntimes_passed = 1,   &
-                time_vals     = (/ptimes%values(i)/),  &
-                time_bnds     = RESHAPE (ptimes%bounds(1:2,i), (/2,1/)) &
-                )
-        enddo
-     else
-        print*, 'Test code: Write all times at once'
-        ierr = cmor_write( &
-             var_id        = myvar, &
-             data          = arrayin3d, &
-             ntimes_passed = ptimes%n,   &
-             time_vals     = ptimes%values,  &
-             time_bnds     = ptimes%bounds &
-             )
-     endif
-  else if (ndim.eq.4) then
-     if (ptimes%name.eq.mydims%name) then
-        do i=1,ptimes%n
-           print*, 'Test code: Write time',i,ptimes%values(i)
-           ierr = cmor_write( &
-                var_id        = myvar, &
-                data          = arrayin4d(:,:,:,i:i), &
-                ntimes_passed = 1,   &
-                time_vals     = (/ptimes%values(i)/),  &
-                time_bnds     = RESHAPE (ptimes%bounds(1:2,i), (/2,1/)) &
-                )
-        enddo
-     else
-        print*, 'Test code: Write all times at once'
-        ierr = cmor_write( &
-             var_id        = myvar, &
-             data          = arrayin4d, &
-             ntimes_passed = ptimes%n,   &
-             time_vals     = ptimes%values,  &
-             time_bnds     = ptimes%bounds &
-             )
-     endif
-  else
-     if (ptimes%name.eq.mydims%name) then
-        do i=1,ptimes%n
-           print*, 'Test code: Write time',i,ptimes%values(i)
-           ierr = cmor_write( &
-                var_id        = myvar, &
-                data          = arrayin5d, &
-                ntimes_passed = 1,   &
-                time_vals     = (/ptimes%values(i)/),  &
-                time_bnds     = RESHAPE (ptimes%bounds(1:2,i), (/2,1/)) &
-                )
-        enddo
-     else
-        print*, 'Test code: Write all times at once'
-        ierr = cmor_write( &
-             var_id        = myvar, &
-             data          = arrayin5d(:,:,:,:,i:i), &
-             ntimes_passed = ptimes%n,   &
-             time_vals     = ptimes%values,  &
-             time_bnds     = ptimes%bounds &
-             )
-     endif
-  endif
-  ierr = cmor_close()
-
-contains
-  subroutine allocate_dims(file_id,mydims,ndim,dimlength,var,units)
-    implicit none
-    integer i,n,j,tmp,file_id
-    integer, intent(inout)::ndim
-    integer, intent(inout):: dimlength(7)
-    type(dims) , pointer :: tmpdims,mydims
-    character(50), intent(inout) :: var,units
-    read(file_id,'(A)') var
-    read(file_id,'(A)') units
-    read(file_id,'(I4)') ndim
-    n=1
-    allocate(mydims)
-    tmpdims=>mydims
-    do i = 1, ndim
-       read(file_id,'(I4)') tmp
-       dimlength(4-i)=tmp
-       allocate(tmpdims%values(tmp))
-       allocate(tmpdims%bounds(2,tmp))
-       tmpdims%n=tmp
-       allocate(tmpdims%next)
-       tmpdims=>tmpdims%next
-       n=n*tmp
-    enddo
-    deallocate(tmpdims)
-  end subroutine allocate_dims
-  
-  subroutine read_ascii2d(file_unit,mydims,ndim,ntot,arrayin)
-    implicit none
-    type(dims), pointer::  mydims
-    double precision, dimension(:,:),intent(inout) :: arrayin
-    type(dims), pointer ::  current
-    integer, intent(in)::ndim,file_unit
-    integer n,ntot,i,j,k,l
-    
-    current=>mydims
-    ntot=1
-    do i =1,ndim
-       n=current%n
-       ntot=ntot*n
-       read(file_unit,'(A)') current%name
-       print*, 'Test Code: NAME is:',current%name
-       read(file_unit,'(A)') current%units
-       print*, 'Test Code: UNITS is:',current%units
-       read(file_unit,*) (current%values(j),j=1,n)
-       read(file_unit,*) ((current%bounds(j,k),j=1,2),k=1,n)
-       print*, 'Test Code: bounds',current%bounds(1,1),current%bounds(1,2)
-       current=>current%next
-    enddo
-    read(file_unit,*) ((arrayin(j,k),j=1,size(arrayin,1)),k=1,size(arrayin,2))
-  end subroutine read_ascii2d
-  subroutine read_ascii3d(file_unit,mydims,ndim,ntot,arrayin)
-    implicit none
-    type(dims), pointer::  mydims
-    double precision, dimension(:,:,:),intent(inout) :: arrayin
-    type(dims), pointer ::  current
-    integer, intent(in)::ndim,file_unit
-    integer n,ntot,i,j,k,l
-    
-    current=>mydims
-    ntot=1
-    do i =1,ndim
-       n=current%n
-       ntot=ntot*n
-       read(file_unit,'(A)') current%name
-       print*, 'Test Code: NAME is:',current%name
-       read(file_unit,'(A)') current%units
-       print*, 'Test Code: UNITS is:',current%units
-       read(file_unit,*) (current%values(j),j=1,n)
-       read(file_unit,*) ((current%bounds(j,k),j=1,2),k=1,n)
-       print*, 'Test Code: bounds',current%bounds(1,1),current%bounds(1,2)
-       current=>current%next
-    enddo
-    read(file_unit,*) (((arrayin(j,k,l),j=1,size(arrayin,1)),k=1,size(arrayin,2)),l=1,size(arrayin,3))
-  end subroutine read_ascii3d
-  subroutine read_ascii4d(file_unit,mydims,ndim,ntot,arrayin)
-    implicit none
-    type(dims), pointer::  mydims
-    double precision, dimension(:,:,:,:),intent(inout) :: arrayin
-    type(dims), pointer ::  current
-    integer, intent(in)::ndim,file_unit
-    integer n,ntot,i,j,k,l,m
-    
-    current=>mydims
-    ntot=1
-    do i =1,ndim
-       n=current%n
-       ntot=ntot*n
-       read(file_unit,'(A)') current%name
-       print*, 'Test Code: NAME is:',current%name
-       read(file_unit,'(A)') current%units
-       print*, 'Test Code: UNITS is:',current%units
-       read(file_unit,*) (current%values(j),j=1,n)
-       read(file_unit,*) ((current%bounds(j,k),j=1,2),k=1,n)
-       print*, 'Test Code: bounds',current%bounds(1,1),current%bounds(1,2)
-       current=>current%next
-    enddo
-    read(file_unit,*) ((((arrayin(j,k,l,m),j=1,size(arrayin,1)),k=1,size(arrayin,2)),l=1,size(arrayin,3)),m=1,size(arrayin,4))
-  end subroutine read_ascii4d
-  subroutine read_ascii5d(file_unit,mydims,ndim,ntot,arrayin)
-    implicit none
-    type(dims), pointer::  mydims
-    double precision, dimension(:,:,:,:,:),intent(inout) :: arrayin
-    type(dims), pointer ::  current
-    integer, intent(in)::ndim,file_unit
-    integer n,ntot,i,j,k,l,m,o
-    
-    current=>mydims
-    ntot=1
-    do i =1,ndim
-       n=current%n
-       ntot=ntot*n
-       read(file_unit,'(A)') current%name
-       print*, 'Test Code: NAME is:',current%name
-       read(file_unit,'(A)') current%units
-       print*, 'Test Code: UNITS is:',current%units
-       read(file_unit,*) (current%values(j),j=1,n)
-       read(file_unit,*) ((current%bounds(j,k),j=1,2),k=1,n)
-       print*, 'Test Code: bounds',current%bounds(1,1),current%bounds(1,2)
-       current=>current%next
-    enddo
-    read(file_unit,*) (((((arrayin(j,k,l,m,o),j=1,size(arrayin,1)),&
-         k=1,size(arrayin,2)),l=1,size(arrayin,3)),m=1,size(arrayin,4)),&
-         o=1,size(arrayin,5))
-  end subroutine read_ascii5d
-
-
-end program main
-
diff --git a/Test/old_cmor_tables/test_any_from_asc_i.f90 b/Test/old_cmor_tables/test_any_from_asc_i.f90
deleted file mode 100644
index df5b4c2..0000000
--- a/Test/old_cmor_tables/test_any_from_asc_i.f90
+++ /dev/null
@@ -1,348 +0,0 @@
-program main
-
-  USE cmor_users_functions
-  implicit none
-
-  integer ncid
-
-  type dims
-     integer n
-     character(256) name
-     character(256) units
-     double precision, DIMENSION(:), pointer :: values
-     double precision, DIMENSION(:,:), pointer :: bounds     
-     type(dims), pointer :: next
-  end type dims
-  character(256) filein
-  type(dims), pointer :: mydims,current,ptimes
-  integer ndim,i,j,ntot
-!  integer, allocatable, dimension(:,:,:):: arrayin
-  integer, allocatable, dimension(:,:):: arrayin2d
-  integer, allocatable, dimension(:,:,:):: arrayin3d
-  integer, allocatable, dimension(:,:,:,:):: arrayin4d
-  integer, allocatable, dimension(:,:,:,:,:):: arrayin5d
-  integer, dimension(7):: dimlength = (/ (1,i=1,7) /)
-  integer, PARAMETER::verbosity = 2
-  integer ierr
-  integer, allocatable, dimension(:) :: myaxis
-  integer myvar
-  character(50) :: var,units
-
-  print*, 'Test Code: Welcome to the general from ascii testing code'
-  read(5,'(A)') filein
-  open(unit=23,file=filein,form='formatted') 
-  call allocate_dims(23,mydims,ndim,dimlength,var,units)
-  allocate(myaxis(ndim))
-  current=>mydims
-  ntot=1
-  do i =1,ndim
-     ntot=ntot*current%n
-     current=>current%next
-  enddo
-  if (ndim.eq.2) then
-     allocate(arrayin2d(dimlength(1),dimlength(2)))
-     call read_ascii2d(23,mydims, ndim,ntot,arrayin2d)
-     print*,'Test Code: allocate data:',shape(arrayin2d)
-  else if (ndim.eq.3) then
-     allocate(arrayin3d(dimlength(1),dimlength(2),dimlength(3)))
-     call read_ascii3d(23,mydims, ndim,ntot,arrayin3d)
-     print*,'Test Code: allocate data:',shape(arrayin3d)
-  else if (ndim.eq.4) then
-     allocate(arrayin4d(dimlength(1),dimlength(2),dimlength(3),dimlength(4)))
-     call read_ascii4d(23,mydims, ndim,ntot,arrayin4d)
-     print*,'Test Code: allocate data:',shape(arrayin4d)
-  else if (ndim.eq.5) then
-     call read_ascii5d(23,mydims, ndim,ntot,arrayin5d)
-     allocate(arrayin5d(dimlength(1),dimlength(2),dimlength(3),dimlength(4),dimlength(5)))
-     print*,'Test Code: allocate data:',shape(arrayin5d)
-  endif
-  
-  
-!!$!! Ok here is the part where we define or variable/axis,etc... 
-!!$!! Assuming that Karl's code is ok...
-!!$
-  
-  print*,'Test Code: CMOR SETUP'
-!!$  
-  ierr = cmor_setup(inpath='Test',   &
-       netcdf_file_action='replace',                                       &
-       set_verbosity=1,                                                    &
-       exit_control=1)
-    
-  print*,'Test Code: CMOR DATASET'
-  ierr = cmor_dataset(                                   &
-       outpath='Test',         &
-       experiment_id='2xCO2 equilibrium experiment',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       ' Geneva, Switzerland)',                                &
-       source='GICCM  2002(giccm_0_brnchT_itea_2, T63L32)',    &
-       calendar='noleap',                                      &
-       realization=1,                                          &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also ' //          &
-       'see http://www.GICC.su/giccm/doc/index.html '  //      &
-       ' 2XCO2 simulation described in Dorkey et al. '//       &
-       '(Clim. Dyn., 2003, 323-357.)', &
-       model_id = "pcmdi-08a", forcing="co2" )
-  
-  current=>mydims
-  do i = 0,ndim-1
-     print*,'Test Code: CMOR AXIS',i
-     print*, 'Test Code: Axis Name:',trim(adjustl(current%name))
-     if (trim(adjustl(current%name)).eq.'time') then
-        print*, 'Test Code: time found'
-        ptimes => current
-        myaxis(ndim-i)=cmor_axis('CMOR_SAMPLE_TABLE', &
-             table_entry=current%name,&
-             units=current%units,&
-             length=current%n,&
-!!$          coord_vals=current%values,&
-!!$          cell_bounds=current%bounds, &
-             interval='1 month')
-     else
-        myaxis(ndim-i)=cmor_axis('CMOR_SAMPLE_TABLE', &
-             table_entry=current%name,&
-             units=current%units,&
-             length=current%n,&
-             coord_vals=current%values,&
-             cell_bounds=current%bounds)
-        print*, 'Test Code: not time'
-     endif
-     current=>current%next
-  enddo
-  
-  print*,'Test Code: CMOR VAR',var,units
-  myvar=cmor_variable('CMOR_SAMPLE_TABLE',&
-       var,&
-       units,&
-       myaxis,&
-       missing_value=120)
-
-  !! figures out length of dimension other than time
-
-  print*, 'Test Code: time before:',ptimes%values(i:i)
-  if (ndim.eq.2) then 
-     if (ptimes%name.eq.mydims%name) then
-        do i=1,ptimes%n
-           print*, 'Test code: Write time',i,ptimes%values(i)
-           ierr = cmor_write( &
-                var_id        = myvar, &
-                data          = arrayin2d, &
-                ntimes_passed = 1,   &
-                time_vals     = (/ptimes%values(i)/),  &
-                time_bnds     = RESHAPE (ptimes%bounds(1:2,i), (/2,1/)) &
-                )
-        enddo
-     else
-        print*, 'Test code: Write all times at once'
-        ierr = cmor_write( &
-             var_id        = myvar, &
-             data          = arrayin2d, &
-             ntimes_passed = ptimes%n,   &
-             time_vals     = ptimes%values,  &
-             time_bnds     = ptimes%bounds &
-             )
-     endif
-  else if (ndim.eq.3) then
-     if (ptimes%name.eq.mydims%name) then
-        do i=1,ptimes%n
-           print*, 'Test code: Write time',i,ptimes%values(i)
-           ierr = cmor_write( &
-                var_id        = myvar, &
-                data          = arrayin3d, &
-                ntimes_passed = 1,   &
-                time_vals     = (/ptimes%values(i)/),  &
-                time_bnds     = RESHAPE (ptimes%bounds(1:2,i), (/2,1/)) &
-                )
-        enddo
-     else
-        print*, 'Test code: Write all times at once'
-        ierr = cmor_write( &
-             var_id        = myvar, &
-             data          = arrayin3d, &
-             ntimes_passed = ptimes%n,   &
-             time_vals     = ptimes%values,  &
-             time_bnds     = ptimes%bounds &
-             )
-     endif
-  else if (ndim.eq.4) then
-     if (ptimes%name.eq.mydims%name) then
-        do i=1,ptimes%n
-           print*, 'Test code: Write time',i,ptimes%values(i)
-           ierr = cmor_write( &
-                var_id        = myvar, &
-                data          = arrayin4d, &
-                ntimes_passed = 1,   &
-                time_vals     = (/ptimes%values(i)/),  &
-                time_bnds     = RESHAPE (ptimes%bounds(1:2,i), (/2,1/)) &
-                )
-        enddo
-     else
-        print*, 'Test code: Write all times at once'
-        ierr = cmor_write( &
-             var_id        = myvar, &
-             data          = arrayin4d, &
-             ntimes_passed = ptimes%n,   &
-             time_vals     = ptimes%values,  &
-             time_bnds     = ptimes%bounds &
-             )
-     endif
-  else
-     if (ptimes%name.eq.mydims%name) then
-        do i=1,ptimes%n
-           print*, 'Test code: Write time',i,ptimes%values(i)
-           ierr = cmor_write( &
-                var_id        = myvar, &
-                data          = arrayin5d, &
-                ntimes_passed = 1,   &
-                time_vals     = (/ptimes%values(i)/),  &
-                time_bnds     = RESHAPE (ptimes%bounds(1:2,i), (/2,1/)) &
-                )
-        enddo
-     else
-        print*, 'Test code: Write all times at once'
-        ierr = cmor_write( &
-             var_id        = myvar, &
-             data          = arrayin5d, &
-             ntimes_passed = ptimes%n,   &
-             time_vals     = ptimes%values,  &
-             time_bnds     = ptimes%bounds &
-             )
-     endif
-  endif
-  ierr = cmor_close()
-
-contains
-  subroutine allocate_dims(file_id,mydims,ndim,dimlength,var,units)
-    implicit none
-    integer i,n,j,tmp,file_id
-    integer, intent(inout)::ndim
-    integer, intent(inout):: dimlength(7)
-    type(dims) , pointer :: tmpdims,mydims
-     character(50), intent(inout) :: var,units
-    read(file_id,'(A)') var
-    read(file_id,'(A)') units
-   read(file_id,'(I4)') ndim
-    n=1
-    allocate(mydims)
-    tmpdims=>mydims
-    do i = 1, ndim
-       read(file_id,'(I4)') tmp
-       dimlength(4-i)=tmp
-       allocate(tmpdims%values(tmp))
-       allocate(tmpdims%bounds(2,tmp))
-       tmpdims%n=tmp
-       allocate(tmpdims%next)
-       tmpdims=>tmpdims%next
-       n=n*tmp
-    enddo
-    deallocate(tmpdims)
-  end subroutine allocate_dims
-  
-  subroutine read_ascii2d(file_unit,mydims,ndim,ntot,arrayin)
-    implicit none
-    type(dims), pointer::  mydims
-    integer, dimension(:,:),intent(inout) :: arrayin
-    type(dims), pointer ::  current
-    integer, intent(in)::ndim,file_unit
-    integer n,ntot,i,j,k,l
-    
-    current=>mydims
-    ntot=1
-    do i =1,ndim
-       n=current%n
-       ntot=ntot*n
-       read(file_unit,'(A)') current%name
-       print*, 'Test Code: NAME is:',current%name
-       read(file_unit,'(A)') current%units
-       print*, 'Test Code: UNITS is:',current%units
-       read(file_unit,*) (current%values(j),j=1,n)
-       read(file_unit,*) ((current%bounds(j,k),j=1,2),k=1,n)
-       print*, 'Test Code: bounds',current%bounds(1,1),current%bounds(1,2)
-       current=>current%next
-    enddo
-    read(file_unit,*) ((arrayin(j,k),j=1,size(arrayin,1)),k=1,size(arrayin,2))
-  end subroutine read_ascii2d
-  subroutine read_ascii3d(file_unit,mydims,ndim,ntot,arrayin)
-    implicit none
-    type(dims), pointer::  mydims
-    integer, dimension(:,:,:),intent(inout) :: arrayin
-    type(dims), pointer ::  current
-    integer, intent(in)::ndim,file_unit
-    integer n,ntot,i,j,k,l
-    
-    current=>mydims
-    ntot=1
-    do i =1,ndim
-       n=current%n
-       ntot=ntot*n
-       read(file_unit,'(A)') current%name
-       print*, 'Test Code: NAME is:',current%name
-       read(file_unit,'(A)') current%units
-       print*, 'Test Code: UNITS is:',current%units
-       read(file_unit,*) (current%values(j),j=1,n)
-       read(file_unit,*) ((current%bounds(j,k),j=1,2),k=1,n)
-       print*, 'Test Code: bounds',current%bounds(1,1),current%bounds(1,2)
-       current=>current%next
-    enddo
-    read(file_unit,*) (((arrayin(j,k,l),j=1,size(arrayin,1)),k=1,size(arrayin,2)),l=1,size(arrayin,3))
-  end subroutine read_ascii3d
-  subroutine read_ascii4d(file_unit,mydims,ndim,ntot,arrayin)
-    implicit none
-    type(dims), pointer::  mydims
-    integer, dimension(:,:,:,:),intent(inout) :: arrayin
-    type(dims), pointer ::  current
-    integer, intent(in)::ndim,file_unit
-    integer n,ntot,i,j,k,l,m
-    
-    current=>mydims
-    ntot=1
-    do i =1,ndim
-       n=current%n
-       ntot=ntot*n
-       read(file_unit,'(A)') current%name
-       print*, 'Test Code: NAME is:',current%name
-       read(file_unit,'(A)') current%units
-       print*, 'Test Code: UNITS is:',current%units
-       read(file_unit,*) (current%values(j),j=1,n)
-       read(file_unit,*) ((current%bounds(j,k),j=1,2),k=1,n)
-       print*, 'Test Code: bounds',current%bounds(1,1),current%bounds(1,2)
-       current=>current%next
-    enddo
-    read(file_unit,*) ((((arrayin(j,k,l,m),j=1,size(arrayin,1)),k=1,size(arrayin,2)),l=1,size(arrayin,3)),m=1,size(arrayin,4))
-  end subroutine read_ascii4d
-  subroutine read_ascii5d(file_unit,mydims,ndim,ntot,arrayin)
-    implicit none
-    type(dims), pointer::  mydims
-    integer, dimension(:,:,:,:,:),intent(inout) :: arrayin
-    type(dims), pointer ::  current
-    integer, intent(in)::ndim,file_unit
-    integer n,ntot,i,j,k,l,m,o
-    
-    current=>mydims
-    ntot=1
-    do i =1,ndim
-       n=current%n
-       ntot=ntot*n
-       read(file_unit,'(A)') current%name
-       print*, 'Test Code: NAME is:',current%name
-       read(file_unit,'(A)') current%units
-       print*, 'Test Code: UNITS is:',current%units
-       read(file_unit,*) (current%values(j),j=1,n)
-       read(file_unit,*) ((current%bounds(j,k),j=1,2),k=1,n)
-       print*, 'Test Code: bounds',current%bounds(1,1),current%bounds(1,2)
-       current=>current%next
-    enddo
-    read(file_unit,*) (((((arrayin(j,k,l,m,o),j=1,size(arrayin,1)),&
-         k=1,size(arrayin,2)),l=1,size(arrayin,3)),m=1,size(arrayin,4)),&
-         o=1,size(arrayin,5))
-  end subroutine read_ascii5d
-
-
-end program main
-
diff --git a/Test/old_cmor_tables/test_cmor_grid_alejandro.f90 b/Test/old_cmor_tables/test_cmor_grid_alejandro.f90
deleted file mode 100644
index 155a44c..0000000
--- a/Test/old_cmor_tables/test_cmor_grid_alejandro.f90
+++ /dev/null
@@ -1,166 +0,0 @@
-PROGRAM test_cmor_grid
-   USE cmor_users_functions
-
-   IMPLICIT NONE
-
-   INTEGER, PARAMETER :: n_sections = 3
-   INTEGER, PARAMETER :: n_points = 10
-   INTEGER, PARAMETER :: n_lev = 4
-   real, parameter :: R_UNDEF = -1.0E+30
-   INTEGER :: i, j, k, var_id,option
-!    REAL :: x(n_lev,n_points,n_sections)
-   REAL :: x(n_points,n_sections,n_lev)
-   real :: z_ax(n_lev),z_bounds(2,n_points)
-   double precision :: profile_ax(n_points),section_ax(n_sections)
-   real :: lat(n_points,n_sections),lon(n_points,n_sections)
-   real :: lat_bounds(4,n_points,n_sections),lon_bounds(4,n_points,n_sections)
-   character(len=128) :: table='Test/CMIP5_cf3hr.txt'
-   character(len=32) :: sec_units='days since 2000-01-01'
-   integer :: error_flag,height_axid,time_axid,profile_axid,grid_id,section_axid
-   real :: lat_step,lon_step
-   integer latvar_id,lonvar_id
-   integer blatvar_id,blonvar_id
-
-   print *, 'Option (0,1,other)?'
-   read(*,*) option
-
-   if (option == 0) then ! 1D grid, no time dimension
-      table='Test/CMIP5_cf3hr_0.txt'
-      sec_units='1'
-   endif
-   if (option == 1) then ! 1D grid, section as time dimension
-      table='Test/CMIP5_cf3hr_1.txt'
-      sec_units='days since 2000-01-01'
-   endif
-   
-   !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-   ! Fill in variables with some data
-   !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-   do k=1,n_sections
-     do j=1,n_points
-       do i=1,n_lev
-          x(j,k,i) = k*1000000 + 1000*j + i
-       enddo
-     enddo
-   enddo
-
-   ! Values for section axis
-   do i=1,n_sections
-     section_ax(i) = float(i)
-   enddo
-
-   ! Values for profile axis
-   do i=1,n_points
-     profile_ax(i) = float(i)
-   enddo
-      
-   ! Height of vertical levels
-   do i=1,n_lev
-     z_ax(i) = 240.0 + 480.0*(i-1)
-     z_bounds(1,i) = z_ax(i) - 240.0
-     z_bounds(2,i) = z_ax(i) + 240.0
-   enddo
-    
-   lat_step = 180.0/(n_points+2)
-   lon_step = 360.0/(n_points+2)
-   do i=1,n_points
-      lat(i,:) = -90.0 + lat_step*0.5 + lat_step*i
-      lon(i,:) =   0.0 + lon_step*0.5 + lon_step*i
-       lat_bounds(1,i,:) = lat(i,:) - lat_step*0.5
-       lat_bounds(2,i,:) = lat(i,:) - lat_step*0.5
-       lat_bounds(3,i,:) = lat(i,:) + lat_step*0.5
-       lat_bounds(4,i,:) = lat(i,:) + lat_step*0.5
-       lon_bounds(1,i,:) = lon(i,:) - lon_step*0.5
-       lon_bounds(2,i,:) = lon(i,:) + lon_step*0.5
-       lon_bounds(3,i,:) = lon(i,:) - lon_step*0.5
-       lon_bounds(4,i,:) = lon(i,:) + lon_step*0.5
-   enddo
-
-
-   !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-   ! Specify path for tables and set up other CMOR options
-   !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-   error_flag = cmor_setup(inpath='./',netcdf_file_action="replace",create_subdirectories=0)
-
-   print *, '---------------Define dataset'
-   !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-   ! Define dataset as output from COSP, and other model details
-   !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-   error_flag = cmor_dataset(outpath='Test/',experiment_id='AMIP',institution='Met Office', &
-                    source='source',calendar='360_day',realization=1,contact='alejandro.bodas at metoffice.gov.uk', &
-                    history='history',comment='En un lugar de la Mancha de cuyo nombre no quiero acordarme', &
-                    references='references',forcing="CH4",model_id="mymod-10a")
-   
-   print *, '---------------Define axis'
-   !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-   ! Define axis
-   !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-   profile_axid = cmor_axis(table=table, table_entry='location', units='1', &
-                                                       length=n_points, coord_vals=profile_ax)
-   height_axid  = cmor_axis(table=table, table_entry='height40', units='m', &
-                                                       length=n_lev, coord_vals=z_ax,cell_bounds=z_bounds)
-   section_axid  = cmor_axis(table=table, table_entry='section', units=sec_units, &
-                                                       length=n_sections, coord_vals=section_ax)
-   
-   print *, '---------------Define grid'
-   !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-   ! Define grid
-   !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-   if ((option == 0).or.(option == 1)) then
-     grid_id = cmor_grid((/profile_axid/), lat(:,1), lon(:,1))
-   else
-      print*, "AXES FOR GRID: ",(/profile_axid, section_axid/)
-     grid_id = cmor_grid((/profile_axid, section_axid/),nvertices=4)
-     print*, 'got grid:',grid_id
-     !need to add code for defining the lat lon var here
-     latvar_id = cmor_time_varying_grid_coordinate(grid_id,table_entry='latitude',units='degrees_north')
-     lonvar_id = cmor_time_varying_grid_coordinate(grid_id,table_entry='longitude',units='degrees_east')
-     blatvar_id = cmor_time_varying_grid_coordinate(grid_id,table_entry='vertices_latitude',units='degrees_north')
-     blonvar_id = cmor_time_varying_grid_coordinate(grid_id,table_entry='vertices_longitude',units='degrees_east')
-   endif
-   if (grid_id > 0) then
-        print *,  '*********** Error, grid_id: ', grid_id
-        stop
-   endif
-   
-   print *, '---------------Define variables'
-   !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-   ! Define variables. Fill in dimensions table first if needed
-   !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-   if ((option == 0).or.(option == 1)) then
-     var_id = cmor_variable(table=table, table_entry='curtain', units='1', &
-                                 axis_ids=(/grid_id,section_axid,height_axid/), missing_value=R_UNDEF)
-   else
-     var_id = cmor_variable(table=table, table_entry='curtain', units='1', &
-                                 axis_ids=(/grid_id,height_axid/), missing_value=R_UNDEF)
-   endif
-   
-   print *, '---------------Write variables'
-   !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-   ! Write variables to file
-   !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-   if ((option == 0).or.(option == 1)) then
-     error_flag = cmor_write(var_id=var_id, data=x)
-   else
-     error_flag = cmor_write(var_id=var_id, data=x)
-     error_flag = cmor_write(var_id=latvar_id, data=lat, store_with=var_id)
-     error_flag = cmor_write(var_id=lonvar_id, data=lon, store_with=var_id)
-     error_flag = cmor_write(var_id=latvar_id, data=lat, store_with=var_id)
-     error_flag = cmor_write(var_id=lonvar_id, data=lon, store_with=var_id)
-     print*, 'writing blat',blatvar_id
-     error_flag = cmor_write(var_id=blatvar_id, data=lat_bounds, store_with=var_id)
-     print*, 'writing blon',blonvar_id
-     error_flag = cmor_write(var_id=blonvar_id, data=lon_bounds, store_with=var_id)
-   endif
-   if (error_flag /= 0) then
-        print *,  '*********** Error writing variable: ', error_flag
-        stop
-   endif
-   
-   !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-   ! Close files
-   !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-   error_flag = cmor_close()
-                               
-   
- END
diff --git a/Test/old_cmor_tables/test_dimensionless.f90 b/Test/old_cmor_tables/test_dimensionless.f90
deleted file mode 100644
index 2708171..0000000
--- a/Test/old_cmor_tables/test_dimensionless.f90
+++ /dev/null
@@ -1,549 +0,0 @@
-!!$pgf90 -I/work/NetCDF/5.1/include -L/work/NetCDF/5.1/lib -l netcdf -L. -l cmor Test/test_dimensionless.f90 -IModules -o cmor_test
-!!$pgf90 -g -I/pcmdi/charles_work/NetCDF/include -L/pcmdi/charles_work/NetCDF/lib -lnetcdf -module Modules -IModules -L. -lcmor -I/pcmdi/charles_work/Unidata/include -L/pcmdi/charles_work/Unidata/lib -ludunits Test/test_dimensionless.f90 -o cmor_test
-
-MODULE local_subs
-
-  USE cmor_users_functions
-  PRIVATE
-  PUBLIC read_coords, read_time, read_3d_input_files, read_2d_input_files
-CONTAINS
-  
-  SUBROUTINE read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-
-    IMPLICIT NONE
-    
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alats
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alons
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: plevs
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lat
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lon
-    
-    INTEGER :: i
-    
-    DO i = 1, SIZE(alons)
-       alons(i) = (i-1)*360./SIZE(alons)
-       bnds_lon(1,i) = (i - 1.5)*360./SIZE(alons)
-        bnds_lon(2,i) = (i - 0.5)*360./SIZE(alons)
-    END DO
-    
-    DO i = 1, SIZE(alats)
-       alats(i) = i*10
-       bnds_lat(1,i) = i*10. - 5.
-       bnds_lat(2,i) = i*10. + 5.
-    END DO
-  
-    DO i = 1, SIZE(plevs)
-       plevs(i) = i*1.0e4
-    END DO
-    
-    RETURN
-  END SUBROUTINE read_coords
-
-  SUBROUTINE read_time(it, time, time_bnds)
-    
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    DOUBLE PRECISION, INTENT(OUT) :: time
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(2,1) :: time_bnds
-    
-    time = (it-0.5)*30.
-    time_bnds(1,1) = (it-1)*30.
-    time_bnds(2,1) = it*30.
-    
-    RETURN
-  END SUBROUTINE read_time
-  
-  SUBROUTINE read_3d_input_files(it, varname, field)
-    
-    INTEGER, INTENT(IN) :: it
-    CHARACTER(len=*), INTENT(IN) :: varname
-    REAL, INTENT(OUT), DIMENSION(:,:,:) :: field
-    
-    INTEGER :: i, j, k
-    REAL :: factor, offset
-    CHARACTER(len=LEN(varname)) :: tmp
-    
-    tmp = TRIM(ADJUSTL(varname))
-    SELECT CASE (tmp)
-    CASE ('CLOUD')  
-       factor = 0.1
-       offset = -50.
-    CASE ('U')  
-       factor = 1.
-       offset = 100.
-    CASE ('T')
-       factor = 0.5
-       offset = -150.
-    CASE ('tro3')
-       factor = 1.
-       offset = 0.
-    END SELECT
-    
-    DO k=1,SIZE(field, 1)
-       DO j=1,SIZE(field, 3)
-          DO i=1,SIZE(field, 2)
-             field(k,i,j) = ((SIZE(field, 1) - k)*64 + (j-1)*16 + (i-1)*4 + it)*factor - offset
-          END DO
-       END DO
-    END DO
-    
-  END SUBROUTINE read_3d_input_files
-  
-  SUBROUTINE read_2d_input_files(it, varname, field)                  
-    
-    INTEGER, INTENT(IN) :: it
-    CHARACTER(len=*), INTENT(IN) :: varname
-    REAL, INTENT(OUT), DIMENSION(:,:) :: field
-    
-    INTEGER :: i, j
-    REAL :: factor, offset
-    CHARACTER(len=LEN(varname)) :: tmp
-    
-    tmp = TRIM(ADJUSTL(varname))
-    SELECT CASE (tmp)
-    CASE ('LATENT')  
-       
-       factor = 2.8
-       offset = 10.
-    CASE ('TSURF')
-       factor = 2.2
-       offset = -220.
-    CASE ('SOIL_WET')
-       factor = 10.
-       offset = 0.
-    CASE ('PSURF')
-       factor = 100.
-       offset = -9.7e4
-    END SELECT
-    
-    DO j=1,SIZE(field, 2)
-       DO i=1,SIZE(field, 1)
-          field(i,j) = ((j-1)*16 + (i-1)*4 + it)*factor - offset
-       END DO
-    END DO
-
-  END SUBROUTINE read_2d_input_files
-
-END MODULE local_subs
-
-
-PROGRAM ipcc_test_code
-!
-!   Purpose:   To serve as a generic example of an application that
-!       uses the "Climate Model Output Rewriter" (CMOR)
-
-!    CMOR writes CF-compliant netCDF files.
-!    Its use is strongly encouraged by the IPCC and is intended for use 
-!       by those participating in many community-coordinated standard 
-!       climate model experiments (e.g., AMIP, CMIP, CFMIP, PMIP, APE,
-!       etc.)
-!
-!   Background information for this sample code:
-!
-!      Atmospheric standard output requested by IPCC are listed in 
-!   tables available on the web.  Monthly mean output is found in
-!   tables A1a and A1c.  This sample code processes only two 3-d 
-!   variables listed in table A1c ("monthly mean atmosphere 3-D data" 
-!   and only four 2-d variables listed in table A1a ("monthly mean 
-!   atmosphere + land surface 2-D (latitude, longitude) data").  The 
-!   extension to many more fields is trivial.
-!
-!      For this example, the user must fill in the sections of code that 
-!   extract the 3-d and 2-d fields from his monthly mean "history" 
-!   files (which usually contain many variables but only a single time 
-!   slice).  The CMOR code will write each field in a separate file, but 
-!   many monthly mean time-samples will be stored together.  These 
-!   constraints partially determine the structure of the code.
-!
-!
-!   Record of revisions:
-
-!       Date        Programmer(s)           Description of change
-!       ====        ==========              =====================
-!      10/22/03     Rusty Koder              Original code
-!       1/28/04     Les R. Koder             Revised to be consistent
-!                                            with evolving code design
-
-! include module that contains the user-accessible cmor functions.
-  USE cmor_users_functions
-  USE local_subs
-
-  IMPLICIT NONE
-
-  !   dimension parameters:
-  ! ---------------------------------
-  INTEGER, PARAMETER :: ntimes = 2    ! number of time samples to process
-  INTEGER, PARAMETER :: lon = 4       ! number of longitude grid cells  
-  INTEGER, PARAMETER :: lat = 3       ! number of latitude grid cells
-  INTEGER, PARAMETER :: lev = 5       ! number of standard pressure levels
-  INTEGER, PARAMETER :: n2d = 4       ! number of IPCC Table A1a fields to be
-                                      !     output.
-  INTEGER, PARAMETER :: n3d = 4       ! number of IPCC Table A1c fields to 
-                                      !     be output.  
-
-  !   Tables associating the user's variables with IPCC standard output 
-  !   variables.  The user may choose to make this association in a 
-  !   different way (e.g., by defining values of pointers that allow him 
-  !   to directly retrieve data from a data record containing many 
-  !   different variables), but in some way the user will need to map his 
-  !   model output onto the Tables specifying the MIP standard output.
-
-  ! ----------------------------------
-
-                                ! My variable names for IPCC Table A1c fields
-  CHARACTER (LEN=5), DIMENSION(n3d) :: &
-                                 varin3d=(/'CLOUD', 'tro3 ', 'U    ', 'T    '/)
-
-                                ! Units appropriate to my data
-  CHARACTER (LEN=5), DIMENSION(n3d) :: &
-                                  units3d=(/ '%    ', '1e-9 ',  'm s-1',   'K    '  /)
-
-                     ! Corresponding IPCC Table A1c entry (variable name) 
-  CHARACTER (LEN=4), DIMENSION(n3d) :: entry3d = (/ 'cl  ', 'tro3', 'ua  ', 'ta  ' /)
-
-                                ! My variable names for IPCC Table A1a fields
-  CHARACTER (LEN=8), DIMENSION(n2d) :: &
-                  varin2d=(/ 'LATENT  ', 'TSURF   ', 'SOIL_WET', 'PSURF   ' /)
-
-                                ! Units appropriate to my data
-   CHARACTER (LEN=6), DIMENSION(n2d) :: &
-                          units2d=(/ 'W m-2 ', 'K     ', 'kg m-2', 'Pa    ' /)
-
-   CHARACTER (LEN=4), DIMENSION(n2d) :: &
-                      positive2d= (/  'down',  '    ', '    ', '    '  /)
-
-                     ! Corresponding IPCC Table A1a entry (variable name) 
-  CHARACTER (LEN=5), DIMENSION(n2d) :: &
-                        entry2d = (/ 'hfls ', 'tas  ', 'mrsos', 'ps   ' /)
-
-!  uninitialized variables used in communicating with CMOR:
-!  ---------------------------------------------------------
-
-  INTEGER :: error_flag
-  INTEGER :: znondim_id, zfactor_id
-  INTEGER, DIMENSION(n2d) :: var2d_ids
-  INTEGER, DIMENSION(n3d) :: var3d_ids
-  REAL, DIMENSION(lon,lat) :: data2d
-  REAL, DIMENSION(lev,lon,lat) :: data3d
-  DOUBLE PRECISION, DIMENSION(lat) :: alats
-  DOUBLE PRECISION, DIMENSION(lon) :: alons
-  DOUBLE PRECISION, DIMENSION(lev) :: plevs
-  DOUBLE PRECISION, DIMENSION(1) :: time
-  DOUBLE PRECISION, DIMENSION(2,1):: bnds_time
-  DOUBLE PRECISION, DIMENSION(2,lat) :: bnds_lat
-  DOUBLE PRECISION, DIMENSION(2,lon) :: bnds_lon
-  DOUBLE PRECISION, DIMENSION(lev) :: zlevs
-  DOUBLE PRECISION, DIMENSION(lev+1) :: zlev_bnds
-  REAL, DIMENSION(lev) :: a_coeff
-  REAL, DIMENSION(lev) :: b_coeff
-  REAL :: p0
-  REAL, DIMENSION(lev+1) :: a_coeff_bnds
-  REAL, DIMENSION(lev+1) :: b_coeff_bnds
-  INTEGER :: ilon, ilat, ipres, ilev, itim
-
-
-  !  Other variables:
-  !  ---------------------
-  
-  INTEGER :: it, m  
-  
-  ! ================================
-  !  Execution begins here:
-  ! ================================
-  
-  ! Read coordinate information from model into arrays that will be passed 
-  !   to CMOR.
-  ! Read latitude, longitude, and pressure coordinate values into 
-  !   alats, alons, and plevs, respectively.  Also generate latitude and 
-  !   longitude bounds, and store in bnds_lat and bnds_lon, respectively.
-  !   Note that all variable names in this code can be freely chosen by
-  !   the user.
-
-  !   The user must write the subroutine that fills the coordinate arrays 
-  !   and their bounds with actual data.  The following line is simply a
-  !   a place-holder for the user's code, which should replace it.
-  
-  !  *** possible user-written call ***
-  
-  call read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-  
-  ! Specify path where tables can be found and indicate that existing 
-  !    netCDF files should not be overwritten.
-  
-  error_flag = cmor_setup(inpath='Test', netcdf_file_action='replace')
-  
-  ! Define dataset as output from the GICC model (first member of an
-  !   ensemble of simulations) run under IPCC 2xCO2 equilibrium
-  !   experiment conditions, and provide information to be included as 
-  !   attributes in all CF-netCDF files written as part of this dataset.
-
-  error_flag = cmor_dataset(                                   &
-       outpath='Test',                                         &
-       experiment_id='2xCO2 equilibrium experiment',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       'Geneva, Switzerland)',                                 &
-       source='GICCM1 (2002): ' //                             &
-       'atmosphere:  GICAM3 (gicam_0_brnchT_itea_2, T63L32); '// &
-       'ocean: MOM (mom3_ver_3.5.2, 2x3L15); '             //  &
-       'sea ice: GISIM4; land: GILSM2.5',                      &
-       calendar='360_day',                                      &
-       realization=1,                                          &
-       contact = 'Rusty Koder (koder at middle_earth.net) ',      &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also '        //   &
-       'see http://www.GICC.su/giccm/doc/index.html '     //   &
-       ' 2XCO2 simulation described in Dorkey et al. '    //   &
-       '(Clim. Dyn., 2003, 323-357.)', model_id="pcmdi-a08", &
-       forcing="CO2")
-  
-  !  Define all axes that will be needed
-  
-  ilat = cmor_axis(  &
-       table='IPCC_table_A1',        &
-       table_entry='latitude',       &
-       units='degrees_north',        &  
-       length=lat,                   &
-       coord_vals=alats,             & 
-       cell_bounds=bnds_lat)        
-      
-  ilon = cmor_axis(  &
-       table='IPCC_table_A1',        &
-       table_entry='longitude',      &
-       length=lon,                   &
-       units='degrees_east',         &
-       coord_vals=alons,             &
-       cell_bounds=bnds_lon)      
-        
-
-print*, 'Test Code:',lev,':',plevs
-  ipres = cmor_axis(  &
-       table='IPCC_table_A1',        &
-       table_entry='pressure',       &
-       units='Pa',                   &
-       length=lev,                   &
-       coord_vals=plevs)
-print*,'ok'
-  !   note that the time axis is defined next, but the time coordinate 
-  !   values and bounds will be passed to cmor through function 
-  !   cmor_write (later, below).
-
-  itim = cmor_axis(  &
-       table='IPCC_table_A1',        &
-       table_entry='time',           &
-       units='days since 2030-1-1',  &
-       length=ntimes,                &
-       interval='1 month')
-  
-  !  define model eta levels
-  zlevs = (/ 0.1, 0.3, 0.55, 0.7, 0.9 /)
-  zlev_bnds=(/ 0.,.2, .42, .62, .8, 1. /)
-
-  ilev = cmor_axis(  &
-       table='IPCC_table_A1',        &
-       table_entry='standard_hybrid_sigma',       &
-       units='1',  &
-       length=lev,                   &
-       coord_vals=zlevs,             &
-       cell_bounds=zlev_bnds)
-
-  !   define z-factors needed to transform from model level to pressure
-  p0 = 1.e5
-  a_coeff = (/ 0.1, 0.2, 0.3, 0.2, 0.1 /)
-  b_coeff = (/ 0.0, 0.1, 0.2, 0.5, 0.8 /)
-
-  a_coeff_bnds=(/0.,.15, .25, .25, .15, 0./)
-  b_coeff_bnds=(/0.,.05, .15, .35, .65, 1./)
-
-  error_flag = cmor_zfactor(  &
-       zaxis_id=ilev,                      &
-       zfactor_name='p0',                  &
-       units='Pa',                         &
-       zfactor_values = p0)
-
-  error_flag = cmor_zfactor(  &
-       zaxis_id=ilev,                       & 
-       zfactor_name='b',                    &
-       axis_ids= (/ ilev /),                &
-       zfactor_values = b_coeff,            &
-       zfactor_bounds = b_coeff_bnds  )
-
-  error_flag = cmor_zfactor(  &
-       zaxis_id=ilev,                       &
-       zfactor_name='a',                    &
-       axis_ids= (/ ilev /),                &
-       zfactor_values = a_coeff,            &
-       zfactor_bounds = a_coeff_bnds )
-
-  zfactor_id = cmor_zfactor(  &
-       zaxis_id=ilev,                         &
-       zfactor_name='ps',                     &
-       axis_ids=(/ ilon, ilat, itim /),       &
-       units='Pa' )
-
-  !  Define the only field to be written that is a function of model level
-  !    (appearing in IPCC table A1c)
-
-  var3d_ids(1) = cmor_variable(    &
-       table='IPCC_table_A1',      &
-       table_entry=entry3d(1),     &
-       units=units3d(1),           &
-       axis_ids=(/ ilev, ilon, ilat, itim /),  &
-       missing_value=1.0e28, &
-       original_name=varin3d(1))
-  
-  !  Define variables appearing in IPCC table A1c that are a function of pressure
-  !         (3-d variables)
-  
-  DO m=2,n3d
-     var3d_ids(m) = cmor_variable(    &
-          table='IPCC_table_A1',      &
-          table_entry=entry3d(m),     &
-          units=units3d(m),           &
-          axis_ids=(/ ipres, ilon, ilat, itim /), &
-          missing_value=1.0e28,       &
-          original_name=varin3d(m))
-  ENDDO
-  
-
-  !  Define variables appearing in IPCC table A1a (2-d variables)
-  
-  DO m=1,n2d
-     var2d_ids(m) = cmor_variable(    &
-          table='IPCC_table_A1',      &
-          table_entry=entry2d(m),     & 
-          units=units2d(m),           & 
-          axis_ids=(/ ilon, ilat, itim /), &
-          missing_value=1.0e28,       &
-          positive=positive2d(m),     &
-          original_name=varin2d(m))   
-  ENDDO
-
-  PRINT*, ' '
-  PRINT*, 'completed everything up to writing output fields '
-  PRINT*, ' '
-
-  !  Loop through history files (each containing several different fields, 
-  !       but only a single month of data, averaged over the month).  Then 
-  !       extract fields of interest and write these to netCDF files (with 
-  !       one field per file, but all months included in the loop).
-  
-  time_loop: DO it=1, ntimes
-     
-     ! In the following loops over the 3d and 2d fields, the user-written    
-     ! subroutines (read_3d_input_files and read_2d_input_files) retrieve 
-     ! the requested IPCC table A1c and table A1a fields and store them in 
-     ! data3d and data2d, respectively.  In addition a user-written code 
-     ! (read_time) retrieves the time and time-bounds associated with the 
-     ! time sample (in units of 'days since 1970-1-1', consistent with the 
-     ! axis definitions above).  The bounds are set to the beginning and 
-     ! the end of the month retrieved, indicating the averaging period.
-     
-     ! The user must write a code to obtain the times and time-bounds for
-     !   the time slice.  The following line is simply a place-holder for
-     !   the user's code, which should replace it.
-     
-    call read_time(it, time(1), bnds_time)
-
-    call read_3d_input_files(it, varin3d(1), data3d)
-
-    error_flag = cmor_write(                                  &
-         var_id        = var3d_ids(1),                        &
-         data          = data3d,                              &
-         ntimes_passed = 1,                                   &
-         time_vals     = time,                                &
-         time_bnds     = bnds_time   )
-
-    call read_2d_input_files(it, varin2d(4), data2d)                  
-
-    error_flag = cmor_write(                                  &
-         var_id        = zfactor_id,                          &
-         data          = data2d,                              &
-         ntimes_passed = 1,                                   &
-         time_vals     = time,                                &
-         time_bnds     = bnds_time,                           &
-         store_with    = var3d_ids(1) )
-
-    ! Cycle through the 3-d fields (stored on pressure levels), 
-    ! and retrieve the requested variable and append each to the 
-    ! appropriate netCDF file.
-
-    DO m=2,n3d
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-
-        call read_3d_input_files(it, varin3d(m), data3d)
-       
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-        
-        error_flag = cmor_write(                                  &
-             var_id        = var3d_ids(m),                        &
-             data          = data3d,                              &
-             ntimes_passed = 1,                                   &
-             time_vals     = time,                                &
-             time_bnds     = bnds_time  )
-
-        IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) ' Error encountered writing IPCC Table A1c ' &
-                // 'field ', entry3d(m), ', which I call ', varin3d(m)
-           write(*,*) ' Was processing time sample: ', time
-                      
-        END IF
-
-     END DO
-     
-     ! Cycle through the 2-d fields, retrieve the requested variable and 
-     ! append each to the appropriate netCDF file.
-     
-     DO m=1,n2d
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-        
-        call read_2d_input_files(it, varin2d(m), data2d)                  
-
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-
-        error_flag = cmor_write(                                  &
-             var_id        = var2d_ids(m),                        &
-             data          = data2d,                              &
-             ntimes_passed = 1,                                   &
-             time_vals     = time,                                &
-             time_bnds     = bnds_time  )
-        
-       IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) ' Error encountered writing IPCC Table A1a ' &
-                // 'field ', entry2d(m), ', which I call ', varin2d(m)
-           write(*,*) ' Was processing time sample: ', time 
-                      
-        END IF
-        
-     END DO
-     
-  END DO time_loop
-  
-  !   Close all files opened by CMOR.
-  
-  error_flag = cmor_close()  
-
-  print*, ' '
-  print*, '******************************'
-  print*, ' '
-  print*, 'ipcc_test_code executed to completion '   
-  print*, ' '
-  print*, '******************************'
-  
-END PROGRAM ipcc_test_code
-
diff --git a/Test/old_cmor_tables/test_fortran_example_00.f90 b/Test/old_cmor_tables/test_fortran_example_00.f90
deleted file mode 100644
index aa2c91d..0000000
--- a/Test/old_cmor_tables/test_fortran_example_00.f90
+++ /dev/null
@@ -1,481 +0,0 @@
-MODULE local_subs
-
-  USE cmor_users_functions
-!!$  PRIVATE
-!!$  PUBLIC read_coords, read_time, read_3d_input_files, read_2d_input_files
-CONTAINS
-  
-  SUBROUTINE read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-
-    IMPLICIT NONE
-    
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alats
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alons
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: plevs
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lat
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lon
-    
-    INTEGER :: i
-    
-    DO i = 1, SIZE(alons)
-       alons(i) = (i-1)*360./SIZE(alons)
-       bnds_lon(1,i) = (i - 1.5)*360./SIZE(alons)
-       bnds_lon(2,i) = (i - 0.5)*360./SIZE(alons)
-    END DO
-    
-    DO i = 1, SIZE(alats)
-       alats(i) = (size(alats)+1-i)*10
-       bnds_lat(1,i) = (size(alats)+1-i)*10 + 5.
-       bnds_lat(2,i) = (size(alats)+1-i)*10 - 5.
-    END DO
-  
-    DO i = 1, SIZE(plevs)
-       plevs(i) = i*1.0e4
-    END DO
-    
-    RETURN
-  END SUBROUTINE read_coords
-
-  SUBROUTINE read_time(it, time, time_bnds)
-    
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    DOUBLE PRECISION, INTENT(OUT) :: time
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(2,1) :: time_bnds
-    
-    time = (it-0.5)*30.
-    time_bnds(1,1) = (it-1)*30.
-    time_bnds(2,1) = it*30.
-    
-    RETURN
-  END SUBROUTINE read_time
-  
-  SUBROUTINE read_3d_input_files(it, varname, field)
-
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    CHARACTER(len=*), INTENT(IN) :: varname
-    REAL, INTENT(OUT), DIMENSION(:,:,:) :: field
-    
-    INTEGER :: i, j, k
-    REAL :: factor, offset
-    CHARACTER(len=LEN(varname)) :: tmp
-    
-    tmp = TRIM(ADJUSTL(varname))
-    SELECT CASE (tmp)
-    CASE ('CLOUD')  
-       factor = 0.1
-       offset = -50.
-    CASE ('U')  
-       factor = 1.
-       offset = 100.
-    CASE ('T')
-       factor = 0.5
-       offset = -150.
-    END SELECT
-    
-    DO k=1,SIZE(field, 3)
-       DO j=1,SIZE(field, 2)
-          DO i=1,SIZE(field, 1)
-             field(i,j,k) = ((k-1)*64 + (j-1)*16 + (i-1)*4 + it)*factor - offset
-          END DO
-       END DO
-    END DO
-    
-  END SUBROUTINE read_3d_input_files
-  
-  SUBROUTINE read_2d_input_files(it, varname, field)
-
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    CHARACTER(len=*), INTENT(IN) :: varname
-    REAL, INTENT(OUT), DIMENSION(:,:) :: field
-    
-    INTEGER :: i, j
-    REAL :: factor, offset
-    CHARACTER(len=LEN(varname)) :: tmp
-    
-    tmp = TRIM(ADJUSTL(varname))
-    SELECT CASE (tmp)
-    CASE ('LATENT')  
-       
-       factor = 1.
-       offset = 20.
-    CASE ('TSURF')
-       factor = 2.0
-       offset = -220.
-    CASE ('SOIL_WET')
-       factor = 10.
-       offset = 0.
-    CASE ('PSURF')
-       factor = 100.
-       offset = -9.7e4
-    END SELECT
-    
-    DO j=1,SIZE(field, 2)
-       DO i=1,SIZE(field, 1)
-          field(i,size(field,2)+1-j) = ((j-1)*16 + (i-1)*4 + it)*factor - offset
-       END DO
-    END DO
-
-  END SUBROUTINE read_2d_input_files
-
-END MODULE local_subs
-
-program testing
-  use cmor_users_functions
-  use local_subs
-    implicit none
-    integer error_flag
-  INTEGER, PARAMETER :: ntimes = 2    ! number of time samples to process
-  INTEGER, PARAMETER :: lon = 4       ! number of longitude grid cells  
-  INTEGER, PARAMETER :: lat = 3       ! number of latitude grid cells
-  INTEGER, PARAMETER :: lev = 5       ! number of standard pressure levels
-  INTEGER, PARAMETER :: n2d = 4       ! number of IPCC Table A1a fields to be
-                                      !     output.
-  INTEGER, PARAMETER :: n3d = 3       ! number of IPCC Table A1c fields to 
-                                      !     be output.  
-                                ! My variable names for IPCC Table A1c fields
-  CHARACTER (LEN=5), DIMENSION(n3d) :: &
-                                 varin3d=(/'CLOUD', 'U    ', 'T    '/)
-
-                                ! Units appropriate to my data
-  CHARACTER (LEN=6), DIMENSION(n3d) :: &
-                                  units3d=(/ '%     ', 'm s-1 ',   'K     ' /)
-
-                     ! Corresponding IPCC Table A1c entry (variable name) 
-  CHARACTER (LEN=2), DIMENSION(n3d) :: entry3d = (/ 'cl', 'ua', 'ta' /)
-
-                                ! My variable names for IPCC Table A1a fields
-  CHARACTER (LEN=8), DIMENSION(n2d) :: &
-                  varin2d=(/ 'LATENT  ', 'TSURF   ', 'SOIL_WET', 'PSURF   ' /)
-
-                                ! Units appropriate to my data
-   CHARACTER (LEN=6), DIMENSION(n2d) :: &
-                          units2d=(/ 'W m-2 ', 'K     ', 'kg m-2', 'Pa    ' /)
-
-   CHARACTER (LEN=4), DIMENSION(n2d) :: &
-                      positive2d= (/  'down',  '    ', '    ', '    '  /)
-
-                     ! Corresponding IPCC Table A1a entry (variable name) 
-  CHARACTER (LEN=5), DIMENSION(n2d) :: &
-                        entry2d = (/ 'hfls ', 'tas  ', 'mrsos', 'ps   ' /)
-
-!  uninitialized variables used in communicating with CMOR:
-!  ---------------------------------------------------------
-
-  INTEGER :: znondim_id, zfactor_id
-  INTEGER, DIMENSION(n2d) :: var2d_ids
-  INTEGER, DIMENSION(n3d) :: var3d_ids
-  REAL, DIMENSION(lon,lat) :: data2d
-  real, DIMENSION(lon*lat) ::  data1dtest
-  REAL, DIMENSION(lon,lat,lev) :: data3d
-  DOUBLE PRECISION, DIMENSION(lat) :: alats
-  DOUBLE PRECISION, DIMENSION(lon) :: alons
-  DOUBLE PRECISION, DIMENSION(lev) :: plevs
-  DOUBLE PRECISION, DIMENSION(1) :: time
-  DOUBLE PRECISION, DIMENSION(2,1):: bnds_time
-  DOUBLE PRECISION, DIMENSION(2,lat) :: bnds_lat
-  DOUBLE PRECISION, DIMENSION(2,lon) :: bnds_lon
-  DOUBLE PRECISION, DIMENSION(lev) :: zlevs
-  DOUBLE PRECISION, DIMENSION(lev+1) :: zlev_bnds
-  real, DIMENSION(lev) :: a_coeff
-  DOUBLE PRECISION, DIMENSION(lev) :: b_coeff
-  DOUBLE PRECISION :: p0
-  DOUBLE PRECISION :: p0array(1)
-  real, DIMENSION(lev+1) :: a_coeff_bnds
-  DOUBLE PRECISION, DIMENSION(lev+1) :: b_coeff_bnds
-  INTEGER :: ilon, ilat, ipres, ilev, itim,i
-  real :: missing
-
-  !  Other variables:
-  !  ---------------------
-  
-  INTEGER :: it, m, j,k
-
-  j = CMOR_REPLACE
-  k = CMOR_EXIT_ON_MAJOR
-  error_flag = cmor_setup(inpath='Test', netcdf_file_action=j,&
-       exit_control=k)
-  print*,'Test code: done'
-  error_flag = cmor_dataset(                                   &
-       outpath='Test',                                         &
-       experiment_id='2xCO2 equilibrium experiment',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       'Geneva, Switzerland)',                                 &
-       source='GICCM1 (2002): ' //                             &
-       'atmosphere:  GICAM3 (gicam_0_brnchT_itea_2, T63L32); '// &
-       'ocean: MOM (mom3_ver_3.5.2, 2x3L15); '             //  &
-       'sea ice: GISIM4; land: GILSM2.5',                      &
-       calendar='360_day',                                      &
-       realization=1,                                          &
-       contact = 'Rusty Koder (koder at middle_earth.net) ',      &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also '        //   &
-       'see http://www.GICC.su/giccm/doc/index.html '     //   &
-       ' 2XCO2 simulation described in Dorkey et al. '    //   &
-       '(Clim. Dyn., 2003, 323-357.)', model_id="pcmdi-08a", &
-       forcing="CO2")
-  print*, 'Test code: done 2 lalala'
-  
-  call read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-  
-
-  print*, 'Test code: ok calling axis stuff lat'
-  ilat = cmor_axis(  &
-       table='IPCC_test_table_A',    &
-       table_entry='latitude',       &
-       units='degrees_north',        &  
-       length=lat,                   &
-       coord_vals=alats,             & 
-       cell_bounds=bnds_lat)        
-      
-  print*, 'Test code: ok calling axis stuff lon',ilat
-  ilon = cmor_axis(  &
-       table='IPCC_test_table_A',    &
-       table_entry='longitude',      &
-       length=lon,                   &
-       units='degrees_east',         &
-       coord_vals=alons,             &
-       cell_bounds=bnds_lon)      
-        
-  print*, 'Test code: ok calling axis stuff pressure',ilon
-  ipres = cmor_axis(  &
-       table='IPCC_test_table_A',    &
-       table_entry='pressure',       &
-       units='Pa',                   &
-       length=lev,                   &
-       coord_vals=plevs)
-
-  !   note that the time axis is defined next, but the time coordinate 
-  !   values and bounds will be passed to cmor through function 
-  !   cmor_write (later, below).
-
-  print*, 'Test code: ok calling axis stuff time',ipres
-  itim = cmor_axis(  &
-       table='IPCC_test_table_A',    &
-       table_entry='time',           &
-       units='days since 2030-1-1',  &
-       length=ntimes,                &
-       interval='30 days')
-
-  !  define model eta levels (although these must be provided, they will
-  !    actually be replaced by a+b before writing the netCDF file)
-  zlevs = (/ 0.1, 0.3, 0.55, 0.7, 0.9 /)
-  zlev_bnds=(/ 0.,.2, .42, .62, .8, 1. /)
-
-  print*, 'Test code: ok calling axis stuff lev2',itim
-  ilev = cmor_axis(  &
-       table='IPCC_test_table_A',    &
-       table_entry='standard_hybrid_sigma',       &
-       units="1",   &
-       length=lev,                   &
-       coord_vals=zlevs,             &
-       cell_bounds=zlev_bnds)
-
-  print*, 'Test code: ok called stuff lev2',ilev
-  !   define z-factors needed to transform from model level to pressure
-  p0 = 1.e5
-  p0array(1)=p0
-  a_coeff = (/ 0.1, 0.2, 0.3, 0.22, 0.1 /)
-  b_coeff = (/ 0.0, 0.1, 0.2, 0.5, 0.8 /)
-
-  a_coeff_bnds=(/0.,.15, .25, .25, .16, 0./)
-  b_coeff_bnds=(/0.,.05, .15, .35, .65, 1./)
-
-  print*, 'Test code: zfactor p0'
-  error_flag = cmor_zfactor(  &
-       zaxis_id=ilev,                      &
-       zfactor_name='p0',                  &
-       units='Pa',                         &
-       zfactor_values = p0)
-
-  print*, 'Test code: result',error_flag
-  print*, 'Test code: zfactor b'
-  error_flag = cmor_zfactor(  &
-       zaxis_id=ilev,                       & 
-       zfactor_name='b',                    &
-       axis_ids= (/ ilev /),                &
-       zfactor_values = b_coeff,            &
-       zfactor_bounds = b_coeff_bnds  )
-
-  print*, 'Test code: result',error_flag
-  print*, 'Test code: zfactor a'
-  error_flag = cmor_zfactor(  &
-       zaxis_id=ilev,                       &
-       zfactor_name='a',                    &
-       axis_ids= (/ ilev /),                &
-       zfactor_values = a_coeff,            &
-       zfactor_bounds = a_coeff_bnds )
-
-  print*, 'Test code: result',error_flag
-  print*, 'Test code: zfactor ps'
-  zfactor_id = cmor_zfactor(  &
-       zaxis_id=ilev,                         &
-       zfactor_name='ps',                     &
-       axis_ids=(/ ilon, ilat, itim /),       &
-       units='Pa' )
-
-  print*, 'Test code: result',zfactor_id
-  print*, 'Test code: var3d'
-  missing = 1.e28
-  var3d_ids(1) = cmor_variable(    &
-       table='IPCC_test_table_A',  &
-       table_entry=entry3d(1),     &
-       units=units3d(1),           &
-       axis_ids=(/ ilon, ilat, ilev, itim /),  &
-       missing_value=missing, &
-       original_name=varin3d(1))
-  
-  !  Define variables appearing in IPCC table A1c that are a function of pressure
-  !         (3-d variables)
-  
-  print*, 'Test code: result',var3d_ids(1)
-  DO m=2,n3d
-     print*, 'Test code: var: ',entry3d(m)
-     var3d_ids(m) = cmor_variable(    &
-          table='IPCC_test_table_A',  &
-          table_entry=entry3d(m),     &
-          units=units3d(m),           &
-          axis_ids=(/ ilon, ilat, ipres, itim /), &
-          missing_value=missing,       &
-          original_name=varin3d(m))
-     print*, 'Test code: result',var3d_ids(m)
-  ENDDO
-  
-
-  !  Define variables appearing in IPCC table A1a (2-d variables)
-  
-  DO m=1,n2d
-     print*, 'Test code: var: ',entry2d(m)
-     var2d_ids(m) = cmor_variable(    &
-          table='IPCC_test_table_A',  &
-          table_entry=entry2d(m),     & 
-          units=units2d(m),           & 
-          axis_ids=(/ ilon, ilat, itim /), &
-          missing_value=missing,       &
-          positive=positive2d(m),     &
-          original_name=varin2d(m))   
-     print*, 'Test code: result',var2d_ids(m)
-  ENDDO
-
-  PRINT*, 'Test code:  '
-  PRINT*, 'Test code: completed everything up to writing output fields '
-  PRINT*, 'Test code:  '
-  time_loop: DO it=1, ntimes
-     
-     ! In the following loops over the 3d and 2d fields, the user-written    
-     ! subroutines (read_3d_input_files and read_2d_input_files) retrieve 
-     ! the requested IPCC table A1c and table A1a fields and store them in 
-     ! data3d and data2d, respectively.  In addition a user-written code 
-     ! (read_time) retrieves the time and time-bounds associated with the 
-     ! time sample (in units of 'days since 1970-1-1', consistent with the 
-     ! axis definitions above).  The bounds are set to the beginning and 
-     ! the end of the month retrieved, indicating the averaging period.
-     
-     ! The user must write a code to obtain the times and time-bounds for
-     !   the time slice.  The following line is simply a place-holder for
-     !   the user's code, which should replace it.
-     
-    call read_time(it, time(1), bnds_time)
-
-    call read_3d_input_files(it, varin3d(1), data3d)
-
-    error_flag = cmor_write(                                  &
-         var_id        = var3d_ids(1),                        &
-         file_suffix ="ftn",                                       &
-         data          = data3d,                              &
-         ntimes_passed = 1,                                   &
-         time_vals     = time,                                &
-         time_bnds     = bnds_time   )
-
-    call read_2d_input_files(it, varin2d(4), data2d)                  
-
-    error_flag = cmor_write(                                  &
-         var_id        = zfactor_id,                          &
-         file_suffix ="ftn-00",                                       &
-         data          = data2d,                              &
-         ntimes_passed = 1,                                   &
-         time_vals     = time,                                &
-         time_bnds     = bnds_time,                           &
-         store_with    = var3d_ids(1) )
-
-    print*, 'Test code: result',error_flag
-   ! Cycle through the 3-d fields (stored on pressure levels), 
-    ! and retrieve the requested variable and append each to the 
-    ! appropriate netCDF file.
-
-    DO m=2,n3d
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-
-        call read_3d_input_files(it, varin3d(m), data3d)
-       
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-        
-        error_flag = cmor_write(                                  &
-             var_id        = var3d_ids(m),                        &
-             file_suffix ="ftn-00",                                       &
-             data          = data3d,                              &
-             ntimes_passed = 1,                                   &
-             time_vals     = time,                                &
-             time_bnds     = bnds_time  )
-        
-        IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) 'Test code:  Error encountered writing IPCC Table A1c ' &
-                // 'field ', entry3d(m), ', which I call ', varin3d(m)
-           write(*,*) 'Test code:  Was processing time sample: ', time
-                      
-        END IF
-
-     END DO
-!!$     
-!!$     ! Cycle through the 2-d fields, retrieve the requested variable and 
-!!$     ! append each to the appropriate netCDF file.
-!!$     
-     DO m=1,n2d
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-        
-        call read_2d_input_files(it, varin2d(m), data2d)                  
-
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-
-        error_flag = cmor_write(                                  &
-             var_id        = var2d_ids(m),                        &
-             data          = data2d,                              &
-             file_suffix ="ftn-00",                                       &
-             ntimes_passed = 1,                                   &
-             time_vals     = time,                                &
-             time_bnds     = bnds_time  )
-        
-       IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) 'Test code:  Error encountered writing IPCC Table A1a ' &
-                // 'field ', entry2d(m), ', which I call ', varin2d(m)
-           write(*,*) 'Test code:  Was processing time sample: ', time 
-                      
-        END IF
-        
-     END DO
-     
-  END DO time_loop
-
-  error_flag = cmor_close()
-
-end program testing
diff --git a/Test/old_cmor_tables/test_fortran_example_01.f90 b/Test/old_cmor_tables/test_fortran_example_01.f90
deleted file mode 100644
index d0993eb..0000000
--- a/Test/old_cmor_tables/test_fortran_example_01.f90
+++ /dev/null
@@ -1,334 +0,0 @@
-MODULE local_subs
-
-  USE cmor_users_functions
-!!$  PRIVATE
-!!$  PUBLIC read_coords, read_time, read_3d_input_files, read_2d_input_files
-CONTAINS
-  
-  SUBROUTINE read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-
-    IMPLICIT NONE
-    
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alats
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alons
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: plevs
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lat
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lon
-    
-    INTEGER :: i
-    
-    DO i = 1, SIZE(alons)
-       alons(i) = (i-1)*360./SIZE(alons)
-       bnds_lon(1,i) = (i - 1.5)*360./SIZE(alons)
-       bnds_lon(2,i) = (i - 0.5)*360./SIZE(alons)
-    END DO
-    
-    DO i = 1, SIZE(alats)
-       alats(i) = (size(alats)+1-i)*10
-       bnds_lat(1,i) = (size(alats)+1-i)*10 + 5.
-       bnds_lat(2,i) = (size(alats)+1-i)*10 - 5.
-    END DO
-  
-    DO i = 1, SIZE(plevs)
-       plevs(i) = i*1.0e4
-    END DO
-    
-    RETURN
-  END SUBROUTINE read_coords
-
-  SUBROUTINE read_time(it, time, time_bnds)
-    
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    DOUBLE PRECISION, INTENT(OUT) :: time
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(2,1) :: time_bnds
-    
-    time = (it-0.5)*30.
-    time_bnds(1,1) = (it-1)*30.
-    time_bnds(2,1) = it*30.
-    
-    RETURN
-  END SUBROUTINE read_time
-  
-  SUBROUTINE read_3d_input_files(it, varname, field)
-
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    CHARACTER(len=*), INTENT(IN) :: varname
-    REAL, INTENT(OUT), DIMENSION(:,:,:) :: field
-    
-    INTEGER :: i, j, k
-    REAL :: factor, offset
-    CHARACTER(len=LEN(varname)) :: tmp
-    
-    tmp = TRIM(ADJUSTL(varname))
-    SELECT CASE (tmp)
-    CASE ('CLOUD')  
-       factor = 0.1
-       offset = -50.
-    CASE ('U')  
-       factor = 1.
-       offset = 100.
-    CASE ('T')
-       factor = 0.5
-       offset = -150.
-    END SELECT
-    
-    DO k=1,SIZE(field, 3)
-       DO j=1,SIZE(field, 2)
-          DO i=1,SIZE(field, 1)
-             field(i,j,k) = ((k-1)*64 + (j-1)*16 + (i-1)*4 + it)*factor - offset
-          END DO
-       END DO
-    END DO
-    
-  END SUBROUTINE read_3d_input_files
-  
-  SUBROUTINE read_2d_input_files(it, varname, field)
-
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    CHARACTER(len=*), INTENT(IN) :: varname
-    REAL, INTENT(OUT), DIMENSION(:,:) :: field
-    
-    INTEGER :: i, j
-    REAL :: factor, offset
-    CHARACTER(len=LEN(varname)) :: tmp
-    
-    tmp = TRIM(ADJUSTL(varname))
-    SELECT CASE (tmp)
-    CASE ('LATENT')  
-       
-       factor = 1.
-       offset = 20.
-    CASE ('TSURF')
-       factor = 2.0
-       offset = -220.
-    CASE ('SOIL_WET')
-       factor = 10.
-       offset = 0.
-    CASE ('PSURF')
-       factor = 100.
-       offset = -9.7e4
-    END SELECT
-    
-    DO j=1,SIZE(field, 2)
-       DO i=1,SIZE(field, 1)
-          field(i,size(field,2)+1-j) = ((j-1)*16 + (i-1)*4 + it)*factor - offset
-       END DO
-    END DO
-
-  END SUBROUTINE read_2d_input_files
-
-END MODULE local_subs
-
-program testing
-  use cmor_users_functions
-  use local_subs
-    implicit none
-    integer error_flag
-  INTEGER, PARAMETER :: nvert = 4    ! number of time samples to process
-  INTEGER, PARAMETER :: ntimes = 2    ! number of time samples to process
-  INTEGER, PARAMETER :: lon = 3       ! number of longitude grid cells  
-  INTEGER, PARAMETER :: lat = 4       ! number of latitude grid cells
-  INTEGER, PARAMETER :: lev = 5       ! number of standard pressure levels
-  INTEGER, PARAMETER :: n2d = 4       ! number of IPCC Table A1a fields to be
-                                      !     output.
-  INTEGER, PARAMETER :: n3d = 3       ! number of IPCC Table A1c fields to 
-                                      !     be output.  
-                                ! My variable names for IPCC Table A1c fields
-  CHARACTER (LEN=5), DIMENSION(n3d) :: &
-                                 varin3d=(/'CLOUD', 'U    ', 'T    '/)
-
-                                ! Units appropriate to my data
-  CHARACTER (LEN=6), DIMENSION(n3d) :: &
-                                  units3d=(/ '%     ', 'm s-1 ',   'K     ' /)
-
-                     ! Corresponding IPCC Table A1c entry (variable name) 
-  CHARACTER (LEN=2), DIMENSION(n3d) :: entry3d = (/ 'cl', 'ua', 'ta' /)
-
-                                ! My variable names for IPCC Table A1a fields
-  CHARACTER (LEN=8), DIMENSION(n2d) :: &
-                  varin2d=(/ 'LATENT  ', 'TSURF   ', 'SOIL_WET', 'PSURF   ' /)
-
-                                ! Units appropriate to my data
-   CHARACTER (LEN=6), DIMENSION(n2d) :: &
-                          units2d=(/ 'W m-2 ', 'K     ', 'kg m-2', 'Pa    ' /)
-
-   CHARACTER (LEN=4), DIMENSION(n2d) :: &
-                      positive2d= (/  'down',  '    ', '    ', '    '  /)
-
-                     ! Corresponding IPCC Table A1a entry (variable name) 
-  CHARACTER (LEN=5), DIMENSION(n2d) :: &
-                        entry2d = (/ 'hfls ', 'tas  ', 'mrsos', 'ps   ' /)
-
-!  uninitialized variables used in communicating with CMOR:
-!  ---------------------------------------------------------
-
-  INTEGER :: znondim_id, zfactor_id
-  INTEGER, DIMENSION(n2d) :: var2d_ids
-  INTEGER, DIMENSION(n3d) :: var3d_ids
-  REAL, DIMENSION(lon,lat) :: data2d
-  real, DIMENSION(lon*lat) ::  data1dtest
-  REAL, DIMENSION(lon,lat,lev) :: data3d
-  DOUBLE PRECISION, DIMENSION(lat) :: alats
-  DOUBLE PRECISION, DIMENSION(lon) :: alons
-  DOUBLE PRECISION, DIMENSION(lev) :: plevs
-  DOUBLE PRECISION, DIMENSION(1) :: time
-  DOUBLE PRECISION, DIMENSION(2,1):: bnds_time
-  DOUBLE PRECISION, DIMENSION(2,lat) :: bnds_lat
-  DOUBLE PRECISION, DIMENSION(2,lon) :: bnds_lon
-  DOUBLE PRECISION, DIMENSION(lev) :: zlevs
-  DOUBLE PRECISION, DIMENSION(lev+1) :: zlev_bnds
-  real, DIMENSION(lev) :: a_coeff
-  DOUBLE PRECISION, DIMENSION(lev) :: b_coeff
-  DOUBLE PRECISION :: p0
-  DOUBLE PRECISION :: p0array(1)
-  real, DIMENSION(lev+1) :: a_coeff_bnds
-  DOUBLE PRECISION, DIMENSION(lev+1) :: b_coeff_bnds
-  INTEGER :: ilon, ilat, ipres, ilev, itim,i
-  real :: missing
-  character(1024) inpath,mapnm
-  character(len=30),dimension(6) ::params =(/ "standard_parallel1            ",&
-       "longitude_of_central_meridian ","latitude_of_projection_origin ",&
-       "false_easting                 ","false_northing                ", &
-       "standard_parallel2            " /)
-  character(len=5) ,dimension(6) :: punits = (/ "     ","     ","     ","     ","     ","     " /)
-  double precision,dimension(6) :: pvalues = (/-20.,175.,13.,8.,0.,20. /)
-  !  Other variables:
-  !  ---------------------
-  
-  INTEGER :: it, m, j,k,tables(2),vars(10),axes(10)
-
-  integer pass_axes(2)
-
-  integer :: grid_id
-
-
-  real lon_coords(lon,lat),lat_coords(lon,lat)
-  real lon_vertices(nvert,lon,lat),lat_vertices(nvert,lon,lat)
-  real area(lon,lat)
-  real x(lon),y(lat)
-  
-  real lon0,lat0,delta_lon,delta_lat
-  
-  lon0 = -120.
-  lat0=0.;
-  delta_lon = 10.;
-  delta_lat = 10.;
-  
-!!$  /* first construct grid lon/lat */
-  do j=1,lat
-     y(j)=j
-     do i=1,lon
-        x(i)=i
-        lon_coords(i,j) = lon0+delta_lon*(j+i-1);
-        lat_coords(i,j) = lat0+delta_lat*(j-i-2);
-!!$      /* vertices lon*/
-!!$      k = i*4+j*lon*4+0;
-!!$      printf('i,j,k: %i, %i, %i\n',i,j,k);
-        lon_vertices(1,i,j) = lon_coords(i,j)-delta_lon;
-        lon_vertices(2,i,j) = lon_coords(i,j);
-        lon_vertices(3,i,j) = lon_coords(i,j)+delta_lon;
-        lon_vertices(4,i,j) = lon_coords(i,j);
-!!$      /* vertices lat */
-        lat_vertices(1,i,j) = lat_coords(i,j);
-        lat_vertices(2,i,j) = lat_coords(i,j)-delta_lat;
-        lat_vertices(3,i,j) = lat_coords(i,j);
-        lat_vertices(4,i,j) = lat_coords(i,j)+delta_lat;
-     end do
-  end do
-
-  inpath ='Test'
-  j = CMOR_REPLACE
-  k = CMOR_EXIT_ON_MAJOR
-  error_flag = cmor_setup(inpath='Test', netcdf_file_action=j,&
-       exit_control=k)
-  
-    error_flag = cmor_dataset(                                   &
-       outpath='Test',                                         &
-       experiment_id='2xCO2 equilibrium experiment',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       'Geneva, Switzerland)',                                 &
-       source='GICCM1 (2002): ' //                             &
-       'atmosphere:  GICAM3 (gicam_0_brnchT_itea_2, T63L32); '// &
-       'ocean: MOM (mom3_ver_3.5.2, 2x3L15); '             //  &
-       'sea ice: GISIM4; land: GILSM2.5',                      &
-       calendar='360_day',                                      &
-       realization=1,                                          &
-       contact = 'Rusty Koder (koder at middle_earth.net) ',      &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also '        //   &
-       'see http://www.GICC.su/giccm/doc/index.html '     //   &
-       ' 2XCO2 simulation described in Dorkey et al. '    //   &
-       '(Clim. Dyn., 2003, 323-357.)',model_id="pcmdi-08a", &
-       forcing="CO2")
-
-    tables(1) = cmor_load_table('IPCC_test_table_A')
-    tables(2) = cmor_load_table('IPCC_test_table_Grids')
-
-    axes(1) = cmor_axis(table_entry = 'x', &
-                        units = '1', &
-                        length = lon, &
-                        coord_vals = x)
-    axes(2) = cmor_axis(table_entry = 'y', &
-                        units = '1', &
-                        length = lat, &
-                        coord_vals = y)
-                        
-    grid_id = cmor_grid(axis_ids = axes, &
-                        latitude = lat_coords, &
-                        longitude = lon_coords, &
-                        latitude_vertices = lat_vertices, &
-                        longitude_vertices = lon_vertices)
-    print*, 'Got grid id: ',grid_id
-    
-    mapnm = 'lambert_conformal_conic'
-    error_flag = cmor_set_grid_mapping(grid_id,&
-         mapnm,params,pvalues,punits)
-
-    call cmor_set_table(table_id=tables(2))
-
-     
-    axes(3) = cmor_axis(table = 'IPCC_test_table_A',&
-                        table_entry = 'time',&
-                        units = 'days since 1980',&
-                        length = 2 &
-                        )
-    
-    
-    pass_axes(2) = axes(3)
-    pass_axes(1) = grid_id
-    
-    vars(1) = cmor_variable(table = 'IPCC_test_table_A',&
-                            table_entry = 'hfls',&
-                            units = 'W m-2',&
-                            axis_ids = pass_axes,&
-                            positive = 'down',&
-                            original_name = 'HFLS',&
-                            history = 'no history',&
-                            comment = 'no future'&
-                            )
-    do i=1,ntimes
-       call read_time(i, time(1), bnds_time)
-       print*, 'Test code: writing time:',i,'of',ntimes,time(1)
-       call read_2d_input_files(i, 'LATENT', data2d)
-       error_flag = cmor_write(var_id = vars(1) ,&
-                               data =data2d,&
-                               file_suffix='ftn-01',&
-                               ntimes_passed = 1,&
-                               time_vals = time,&
-                               time_bnds = bnds_time)
-    end do
-   error_flag = cmor_close()
-    
-  end program testing
-  
diff --git a/Test/old_cmor_tables/test_fortran_example_02.f90 b/Test/old_cmor_tables/test_fortran_example_02.f90
deleted file mode 100644
index 2680528..0000000
--- a/Test/old_cmor_tables/test_fortran_example_02.f90
+++ /dev/null
@@ -1,376 +0,0 @@
-MODULE local_subs
-
-  USE cmor_users_functions
-!!$  PRIVATE
-!!$  PUBLIC read_coords, read_time, read_3d_input_files, read_2d_input_files
-CONTAINS
-  
-  SUBROUTINE read_coords(alats, alons, plevs, bnds_lat, bnds_lon, station, st_lons, st_lats)
-
-    IMPLICIT NONE
-    
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alats
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alons
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: plevs
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lat
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lon
-    INTEGER, INTENT(OUT), DIMENSION(:) ::  station
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: st_lats
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: st_lons
-    
-    INTEGER :: i, j, k
-    
-    DO i = 1, SIZE(alons)
-       alons(i) = (i-1)*360./SIZE(alons)
-       bnds_lon(1,i) = (i - 1.5)*360./SIZE(alons)
-       bnds_lon(2,i) = (i - 0.5)*360./SIZE(alons)
-    END DO
-    
-    DO i = 1, SIZE(alats)
-       alats(i) = (size(alats)+1-i)*10
-       bnds_lat(1,i) = (size(alats)+1-i)*10 + 5.
-       bnds_lat(2,i) = (size(alats)+1-i)*10 - 5.
-    END DO
-  
-    DO i = 1, SIZE(plevs)
-       plevs(i) = i*1.0e4
-    END DO
-    
-    k = 1
-    DO i = 1, SIZE(alons)
-      DO j = 1, SIZE(alats)
-        station(k) = k
-        st_lons(k) = alons(i)
-        st_lats(k) = alats(j)
-        k = k+1
-      END DO   
-    END DO 
-    
-    
-    RETURN
-  END SUBROUTINE read_coords
-
-  SUBROUTINE read_time(it, time, time_bnds)
-    
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    DOUBLE PRECISION, INTENT(OUT) :: time
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(2,1) :: time_bnds
-    
-    time = (it-0.5)*30.
-    time_bnds(1,1) = (it-1)*30.
-    time_bnds(2,1) = it*30.
-    
-    RETURN
-  END SUBROUTINE read_time
-  
-  !------------------------------------------------
-  SUBROUTINE read_3d_input_files(it, varname, field)
-
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    CHARACTER(len=*), INTENT(IN) :: varname
-    REAL, INTENT(OUT), DIMENSION(:,:,:) :: field
-    
-    INTEGER :: i, j, k
-    REAL :: factor, offset
-    CHARACTER(len=LEN(varname)) :: tmp
-    
-    tmp = TRIM(ADJUSTL(varname))
-    SELECT CASE (tmp)
-    CASE ('CLOUD')  
-       factor = 0.1
-       offset = -50.
-    CASE ('U')  
-       factor = 1.
-       offset = 100.
-    CASE ('T')
-       factor = 0.5
-       offset = -150.
-    END SELECT
-    
-    DO k=1,SIZE(field, 3)
-       DO j=1,SIZE(field, 2)
-          DO i=1,SIZE(field, 1)
-             field(i,j,k) = ((k-1)*64 + (j-1)*16 + (i-1)*4 + it)*factor - offset
-          END DO
-       END DO
-    END DO
-    
-  END SUBROUTINE read_3d_input_files
-  
-  !------------------------------------------------
-  SUBROUTINE read_2d_input_files(it, varname, field)
-
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    CHARACTER(len=*), INTENT(IN) :: varname
-    REAL, INTENT(OUT), DIMENSION(:,:) :: field
-    
-    INTEGER :: i, j
-    REAL :: factor, offset
-    CHARACTER(len=LEN(varname)) :: tmp
-    
-    tmp = TRIM(ADJUSTL(varname))
-    SELECT CASE (tmp)
-    CASE ('LATENT')  
-       
-       factor = 1.
-       offset = 20.
-    CASE ('TSURF')
-       factor = 2.0
-       offset = -220.
-    CASE ('SOIL_WET')
-       factor = 10.
-       offset = 0.
-    CASE ('PSURF')
-       factor = 100.
-       offset = -9.7e4
-    END SELECT
-    
-    DO j=1,SIZE(field, 2)
-       DO i=1,SIZE(field, 1)
-          field(i,size(field,2)+1-j) = ((j-1)*16 + (i-1)*4 + it)*factor - offset
-       END DO
-    END DO
-
-  END SUBROUTINE read_2d_input_files
-
-END MODULE local_subs
-
-
-!=======================================================
-program testing
-  use cmor_users_functions
-  use local_subs
-    implicit none
-    integer error_flag
-  INTEGER, PARAMETER :: ntimes = 2    ! number of time samples to process
-  INTEGER, PARAMETER :: lon = 4       ! number of longitude grid cells  
-  INTEGER, PARAMETER :: lat = 3       ! number of latitude grid cells
-  INTEGER, PARAMETER :: lev = 5       ! number of standard pressure levels
-  INTEGER, PARAMETER :: nst = 12      ! number of stations
-  INTEGER, PARAMETER :: n2d = 4       ! number of IPCC Table A1a fields to be
-                                      !     output.
-  INTEGER, PARAMETER :: n3d = 3       ! number of IPCC Table A1c fields to 
-                                      !     be output.  
-                                ! My variable names for IPCC Table A1c fields
-  CHARACTER (LEN=5), DIMENSION(n3d) :: &
-                                 varin3d=(/'CLOUD', 'U    ', 'T    '/)
-
-                                ! Units appropriate to my data
-  CHARACTER (LEN=6), DIMENSION(n3d) :: &
-                                  units3d=(/ '%     ', 'm s-1 ',   'K     ' /)
-
-                     ! Corresponding IPCC Table A1c entry (variable name) 
-  CHARACTER (LEN=2), DIMENSION(n3d) :: entry3d = (/ 'cl', 'ua', 'ta' /)
-
-                                ! My variable names for IPCC Table A1a fields
-  CHARACTER (LEN=8), DIMENSION(n2d) :: &
-                  varin2d=(/ 'LATENT  ', 'TSURF   ', 'SOIL_WET', 'PSURF   ' /)
-
-                                ! Units appropriate to my data
-   CHARACTER (LEN=6), DIMENSION(n2d) :: &
-                          units2d=(/ 'W m-2 ', 'K     ', 'kg m-2', 'Pa    ' /)
-
-   CHARACTER (LEN=4), DIMENSION(n2d) :: &
-                      positive2d= (/  'down',  '    ', '    ', '    '  /)
-
-                     ! Corresponding IPCC Table A1a entry (variable name) 
-  CHARACTER (LEN=5), DIMENSION(n2d) :: &
-                        entry2d = (/ 'hfls ', 'tas  ', 'mrsos', 'ps   ' /)
-
-  INTEGER igrid;
-                          
-!  uninitialized variables used in communicating with CMOR:
-!  ---------------------------------------------------------
-
-  INTEGER :: znondim_id, zfactor_id
-  INTEGER, DIMENSION(n2d) :: var2d_ids
-  INTEGER, DIMENSION(n3d) :: var3d_ids
-  REAL, DIMENSION(lon,lat) :: data2d
-  real, DIMENSION(lon*lat) ::  data1dtest
-  REAL, DIMENSION(lon,lat,lev) :: data3d
-  REAL, DIMENSION(lon*lat,lev) :: data2d_st
-  DOUBLE PRECISION, DIMENSION(lat) :: alats
-  DOUBLE PRECISION, DIMENSION(lon) :: alons
-  DOUBLE PRECISION, DIMENSION(lev) :: plevs
-  INTEGER, DIMENSION(lon*lat) :: station
-  DOUBLE PRECISION, DIMENSION(lon*lat) :: st_lons
-  DOUBLE PRECISION, DIMENSION(lon*lat) :: st_lats
-  DOUBLE PRECISION, DIMENSION(1) :: time
-  DOUBLE PRECISION, DIMENSION(2,1):: bnds_time
-  DOUBLE PRECISION, DIMENSION(2,lat) :: bnds_lat
-  DOUBLE PRECISION, DIMENSION(2,lon) :: bnds_lon
-  DOUBLE PRECISION, DIMENSION(lev) :: zlevs
-  DOUBLE PRECISION, DIMENSION(lev+1) :: zlev_bnds
-  real, DIMENSION(lev) :: a_coeff
-  DOUBLE PRECISION, DIMENSION(lev) :: b_coeff
-  DOUBLE PRECISION :: p0
-  DOUBLE PRECISION :: p0array(1)
-  real, DIMENSION(lev+1) :: a_coeff_bnds
-  DOUBLE PRECISION, DIMENSION(lev+1) :: b_coeff_bnds
-  INTEGER :: ilon, ilat, ipres, ilev, itim, i, ist
-  real :: missing
-
-  !  Other variables:
-  !  ---------------------
-  
-  INTEGER :: it, m, j,k
-
-  j = CMOR_REPLACE
-  k = CMOR_EXIT_ON_MAJOR
-  error_flag = cmor_setup(inpath='Test', netcdf_file_action=j,&
-       exit_control=k)
-  print*,'Test code: done'
-  error_flag = cmor_dataset(                                   &
-       outpath='Test',                                         &
-       experiment_id='2xCO2 equilibrium experiment',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       'Geneva, Switzerland)',                                 &
-       source='GICCM1 (2002): ' //                             &
-       'atmosphere:  GICAM3 (gicam_0_brnchT_itea_2, T63L32); '// &
-       'ocean: MOM (mom3_ver_3.5.2, 2x3L15); '             //  &
-       'sea ice: GISIM4; land: GILSM2.5',                      &
-       calendar='360_day',                                      &
-       realization=1,                                          &
-       contact = 'Rusty Koder (koder at middle_earth.net) ',      &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also '        //   &
-       'see http://www.GICC.su/giccm/doc/index.html '     //   &
-       ' 2XCO2 simulation described in Dorkey et al. '    //   &
-       '(Clim. Dyn., 2003, 323-357.)' )
-  print*, 'Test code: done 2 lalala'
-  
-  call read_coords(alats, alons, plevs, bnds_lat, bnds_lon, station, st_lons, st_lats)
-  
-
-  print*, 'Test code: ok calling axis stuff station'
-  ist = cmor_axis(  &
-       table='IPCC_test_table_S',    &
-       table_entry='station',       &
-       units=' ',        &  
-       length=nst,                   &
-       coord_vals=station )      
-       
-   
-  print*, 'Test code: ok calling axis stuff pressure',ilon
-  ipres = cmor_axis(  &
-       table='IPCC_test_table_S',    &
-       table_entry='pressure',       &
-       units='Pa',                   &
-       length=lev,                   &
-       coord_vals=plevs)
-
-  !   note that the time axis is defined next, but the time coordinate 
-  !   values and bounds will be passed to cmor through function 
-  !   cmor_write (later, below).
-
-  print*, 'Test code: ok calling axis stuff time',ipres
-  itim = cmor_axis(  &
-       table='IPCC_test_table_S',    &
-       table_entry='time',           &
-       units='days since 2030-1-1',  &
-       length=ntimes,                &
-       interval='20 minutes')
-
-  
-       
-  igrid = cmor_grid((/ist/), st_lats, st_lons)       
-       
-  write(*,'(a, 12f6.1)'), 'lons: ',st_lons
-  write(*,'(a, 12f6.1)'), 'lats: ',st_lats
-  
-  !===============================================================
-  print*, ' '
-   
-
-  !  Define variables appearing in IPCC table A1a (2-d variables)
-  DO m=1,4
-     print*, 'Test code: var:  ',entry2d(m)
-     var2d_ids(m) = cmor_variable(    &
-          table='IPCC_test_table_S',  &
-          table_entry=entry2d(m),     & 
-          units=units2d(m),           & 
-          axis_ids=(/ igrid, itim /), &
-          missing_value=missing,       &
-          positive=positive2d(m),     &
-          original_name=varin2d(m))   
-     print*, 'Test code: result',var2d_ids(m)
-  ENDDO   
-  
-
-  PRINT*, 'Test code:  '
-  PRINT*, 'Test code: completed everything up to writing output fields '
-  PRINT*, 'Test code:  '
-  time_loop: DO it=1, ntimes
-     
-     ! In the following loops over the 3d and 2d fields, the user-written    
-     ! subroutines (read_3d_input_files and read_2d_input_files) retrieve 
-     ! the requested IPCC table A1c and table A1a fields and store them in 
-     ! data3d and data2d, respectively.  In addition a user-written code 
-     ! (read_time) retrieves the time and time-bounds associated with the 
-     ! time sample (in units of 'days since 1970-1-1', consistent with the 
-     ! axis definitions above).  The bounds are set to the beginning and 
-     ! the end of the month retrieved, indicating the averaging period.
-     
-     ! The user must write a code to obtain the times and time-bounds for
-     !   the time slice.  The following line is simply a place-holder for
-     !   the user's code, which should replace it.
-     
-    call read_time(it, time(1), bnds_time)
-
-    
-!!$     
-!!$     ! Cycle through the 2-d fields, retrieve the requested variable and 
-!!$     ! append each to the appropriate netCDF file.
-!!$     
-     DO m=1,n2d
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-        
-        call read_2d_input_files(it, varin2d(m), data2d)    
-        k = 1  
-        DO j = 1, lat
-          data1dtest(k:k+lat) = data2d(:,j) 
-          k = k+lat+1 
-        END DO   
-        !write(*,'(a, 12(f8.1,1x))'), entry2d(m), data1dtest            
-
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-
-        error_flag = cmor_write(                                  &
-             var_id        = var2d_ids(m),                        &
-             data          = data1dtest,                          &
-             file_suffix ="ftn-02",                               &
-             ntimes_passed = 1,                                   &
-             time_vals     = time,                                &
-             time_bnds     = bnds_time  )
-        
-       IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) 'Test code:  Error encountered writing IPCC Table A1a ' &
-                // 'field ', entry2d(m), ', which I call ', varin2d(m)
-           write(*,*) 'Test code:  Was processing time sample: ', time 
-                      
-        END IF
-        
-     END DO 
-     
-     
-  END DO time_loop
-
-  error_flag = cmor_close()
-
-end program testing
diff --git a/Test/old_cmor_tables/test_lots_of_variables.f90 b/Test/old_cmor_tables/test_lots_of_variables.f90
deleted file mode 100644
index 804c757..0000000
--- a/Test/old_cmor_tables/test_lots_of_variables.f90
+++ /dev/null
@@ -1,343 +0,0 @@
-!!$pgf90 -I/work/NetCDF/5.1/include -L/work/NetCDF/5.1/lib -l netcdf -L. -l cmor Test/test1.f90 -IModules -o cmor_test
-!!$pgf90 -g -I/pcmdi/charles_work/NetCDF//include -L/pcmdi/charles_work/NetCDF//lib -lnetcdf -module Modules -IModules -L. -lcmor Test/test1.f90 -o cmor_test
-
-MODULE local_subs
-
-  PRIVATE
-  PUBLIC read_coords, read_time, read_3d_input_files, read_2d_input_files
-CONTAINS
-  
-  SUBROUTINE read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-
-    IMPLICIT NONE
-    
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alats
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alons
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: plevs
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lat
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lon
-    
-    INTEGER :: i
-    
-    DO i = 1, SIZE(alons)
-       alons(i) = (i-1)*360./SIZE(alons)
-       bnds_lon(1,i) = (i - 1.5)*360./SIZE(alons)
-       bnds_lon(2,i) = (i - 0.5)*360./SIZE(alons)
-    END DO
-    
-    DO i = 1, SIZE(alats)
-       alats(i) = i*10
-       bnds_lat(1,i) = i*10. - 5.
-       bnds_lat(2,i) = i*10. + 5.
-    END DO
-    
-    DO i = 1, SIZE(plevs)
-       plevs(i) = i*1.0e4
-    END DO
-    
-    RETURN
-  END SUBROUTINE read_coords
-
-  SUBROUTINE read_time(it, time, time_bnds)
-    
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    DOUBLE PRECISION, INTENT(OUT) :: time
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(2) :: time_bnds
-    
-    time = (it-0.5)*30.
-    time_bnds(1) = (it-1)*30.
-    time_bnds(2) = it*30.
-    
-    RETURN
-  END SUBROUTINE read_time
-    
-  SUBROUTINE read_2d_input_files(it, varname, field)                  
-    
-    INTEGER, INTENT(IN) :: it
-    CHARACTER(len=*), INTENT(IN) :: varname
-    REAL, INTENT(OUT), DIMENSION(:,:) :: field
-    
-    INTEGER :: i, j
-    REAL :: factor, offset
-    
-    
-    SELECT CASE (TRIM(ADJUSTL(varname)))
-    CASE ('LATENT')  
-       
-       factor = 1.5
-       offset = 20.
-    CASE ('TSURF')
-       factor = 2.2
-       offset = -220.
-    CASE ('SOIL_WET')
-       factor = 10.
-       offset = 0.
-    END SELECT
-    
-    DO j=1,SIZE(field, 1)
-       DO i=1,SIZE(field, 2)
-          field(j,i) = ((j-1)*16 + (i-1)*4 + it)*factor - offset
-       END DO
-    END DO
-
-  END SUBROUTINE read_2d_input_files
-
-END MODULE local_subs
-
-
-PROGRAM mip_contribution
-
-! include module that contains the user-accessible cmor functions.
-  USE cmor_users_functions
-  USE local_subs
-
-  IMPLICIT NONE
-
-  !   dimension parameters:
-  ! ---------------------------------
-  INTEGER, PARAMETER :: ntimes = 2    ! number of time samples to process
-  INTEGER, PARAMETER :: lon = 4       ! number of longitude grid cells  
-  INTEGER, PARAMETER :: lat = 3       ! number of latitude grid cells
-  INTEGER, PARAMETER :: n2d = 1       ! number of AMIP Table 2 fields to be
-                                      !     output.
-
-  !   Tables associating the user's variables with AMIP standard output 
-  !   variables.  The user may choose to make this association in a 
-  !   different way (e.g., by defining values of pointers that allow him 
-  !   to directly retrieve data from a data record containing many 
-  !   different variables), but in some way the user will need to map his 
-  !   model output onto the Tables specifying the MIP standard output.
-
-  ! ----------------------------------
-
-                                ! My variable names for Table 1a fields
-                                ! My variable names for Table 2 fields
-  CHARACTER (LEN=8), DIMENSION(n2d) :: &
-                          varin2d=(/ 'LATENT  ' /)
-                                ! Units appropriate to my data
-   CHARACTER (LEN=6), DIMENSION(n2d) :: &
-                          units2d=(/ 'W m-2 ' /)
-   CHARACTER (LEN=4), DIMENSION(n2d) :: &
-                      positive2d= (/  'down' /)
-                     ! Corresponding AMIP Table 2 entry (variable name) 
-  CHARACTER (LEN=5), DIMENSION(n2d) :: &
-                        entry2d = (/ 'hfls ' /)
-
-!  uninitialized variables used in communicating with CMOR:
-!  ---------------------------------------------------------
-
-  INTEGER :: error_flag
-  INTEGER, PARAMETER :: ntest=400
-  INTEGER, DIMENSION(3) :: axis2d_ids
-  INTEGER, DIMENSION(n2d+ntest) :: var2d_ids
-  REAL, DIMENSION(lat,lon) :: data2d
-  DOUBLE PRECISION, DIMENSION(lat) :: alats
-  DOUBLE PRECISION, DIMENSION(lon) :: alons
-   DOUBLE PRECISION, DIMENSION(5) :: plevs
- DOUBLE PRECISION :: time
-  DOUBLE PRECISION, DIMENSION(2):: bnds_time
-  DOUBLE PRECISION, DIMENSION(2,lat) :: bnds_lat
-  DOUBLE PRECISION, DIMENSION(2,lon) :: bnds_lon
-
-!!$  REAL, DIMENSION(lat*lon*lev) :: tmp3d
-!!$  REAL, DIMENSION(lat*lon) :: tmp2d
-
-  !  Other variables:
-  !  ---------------------
-  
-  INTEGER :: it, m
-  
-    character (len=200) :: msg,msg2
-
-  ! ================================
-  !  Execution begins here:
-  ! ================================
-  
-  ! Read coordinate information from model into arrays that will be passed 
-  !   to CMOR.
-  ! Read latitude, longitude, and pressure coordinate values into 
-  !   alats, alons, and plevs, respectively.  Also generate latitude and 
-  !   longitude bounds, and store in bnds_lat and bnds_lon, respectively.
-  
-  !   The user must write the subroutine that fills the coordinate arrays 
-  !   and their bounds with actual data.  The following line is simply a
-  !   a place-holder for the user's code, which should replace it.
-  
-  !  *** possible user-written call ***	
-  
-  print*, 'calling read_coords '
-
-  call read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-
-  print*, 'returned from read_coords'
-  
-  ! Specify path where tables can be found, indicate that existing netCDF 
-  !    files should not be overwritten, and instruct CMOR to error exit on 
-  !    encountering errors of any severity.
-  
-  error_flag = cmor_setup(inpath='Test',   &
-       netcdf_file_action='replace',                                       &
-       set_verbosity=1,                                                    &
-       exit_control=1)
-  
-  ! Define dataset as output from the GICC model (first member of an
-  !   ensemble of simulations) runcmor_write under IPCC 2xCO2 equilibrium experiment 
-  !   conditions, and provide information to be included as attributes in 
-  !   all CF-netCDF files written as part of this dataset.
-
-  print*, 'calling cmor_dataset'
-  error_flag = cmor_dataset(                                   &
-       outpath='Test',         &
-       experiment_id='2xCO2 equilibrium experiment',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       ' Geneva, Switzerland)',                                &
-       source='GICCM  2002(giccm_0_brnchT_itea_2, T63L32)',    &
-       calendar='360_day',                                      &
-       realization=1,                                          &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also ' //          &
-       'see http://www.GICC.su/giccm/doc/index.html '  //      &
-       ' 2XCO2 simulation described in Dorkey et al. '//       &
-       '(Clim. Dyn., 2003, 323-357.)',model_id="pcmdi-08a", &
-       forcing="co2")
-  
-  error_flag  = cmor_set_cur_dataset_attribute("initialization_method","4")
-  error_flag  = cmor_set_cur_dataset_attribute("physics_version","6")
-
-  print*, 'returned from cmor_dataset'
-
-  !  Define axes for 3-d fields
-
-  print*, 'defining axes'
-  
-  axis2d_ids(1) = cmor_axis(  &
-       table='IPCC_test_table_As',    &
-       table_entry='latitude',       &
-       units='degrees_north',        &  
-       length=lat,                   &
-       coord_vals=alats,             & 
-       cell_bounds=bnds_lat)              
-  axis2d_ids(2) = cmor_axis(  &
-       table='IPCC_test_table_As',    &
-       table_entry='longitude',      &
-       length=lon,                   &
-       units='degrees_east',         &
-       coord_vals=alons,             &
-       cell_bounds=bnds_lon)              
-  !   note that the time axis is defined next, but the time coordinate 
-  !   values and bounds will be passed to cmor through function 
-  !   cmor_write (below).
-print*, 'before time '
-  axis2d_ids(3) = cmor_axis(  &
-       table='IPCC_test_table_As',    &
-       table_entry='time',           &
-       units='days since 1979-1-1',  &
-       length=ntimes,                &
-       interval='1 month')
-  
-  print*, 'finished defining axes'
-
-  
-
-  !  Define variables found in AMIP table 2a (2-d variables)
-  
-  DO m=1,ntest
-     write(msg,*)  m-1
-     msg2 = trim(entry2d(1)(1:4)//adjustl(msg))
-     print*,'Test Code: defining variable: :',msg2
-     var2d_ids(m) = cmor_variable(    &
-          table='IPCC_test_table_As',  & 
-          table_entry=msg2,     & 
-!!$          file_suffix='1979-2001',    &
-          units=units2d(1),           & 
-          axis_ids=axis2d_ids,        &
-          missing_value=1.0e20,       &
-          positive=positive2d(1),     &
-          original_name=varin2d(1))   
-  ENDDO
-
-  print*, 'completed everything up to writing output fields '
-  
-  !  Loop through history files (each containing several different fields, 
-  !       but only a single month of data, averaged over the month).  Then 
-  !       extract fields of interest and write these to netCDF files (with 
-  !       one field per file, but all months included in the loop).
-  
-  DO m=1,ntest
-     time_loop: DO it=1, ntimes
-        
-        ! In the following loops over the 3d and 2d fields, the user-written    
-        ! subroutines (read_3d_input_files and read_2d_input_files) retrieve 
-        ! the requested AMIP table 1a and table 2 fields and store them in 
-        ! data3d and data2d, respectively.  In addition a user-written code 
-        ! (read_time) retrieves the time and time-bounds associated with the 
-        ! time sample (in units of 'days since 1970-1-1', consistent with the 
-        ! axis definitions above).  The bounds are set to the beginning and 
-        ! the end of the month retrieved, indicating the averaging period.
-        
-        ! The user must write a code to obtain the times and time-bounds for
-        !   the time slice.  The following line is simply a place-holder for
-        !   the user's code, which should replace it.
-        
-        call read_time(it, time, bnds_time)
-        
-        ! Cycle through the 3-d fields, retrieve the requested variable and 
-        ! append each to the appropriate netCDF file.
-        
-        
-        
-        
-        ! Cycle through the 2-d fields, retrieve the requested variable and 
-        ! append each to the appropriate netCDF file.
-        
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-        
-        call read_2d_input_files(it, varin2d(1), data2d)                  
-        
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-        
-        print*, RESHAPE(bnds_time, (/ 2,1 /))
-        error_flag = cmor_write(var_id =        var2d_ids(m),   &
-             data =          RESHAPE(data2d, (/ lat*lon /)),        &
-             ntimes_passed = 1,              &
-             time_vals =     (/ time /),           &
-             time_bnds =     RESHAPE(bnds_time, (/ 2,1 /)))
-        
-        print*, 'after writing variable, ', var2d_ids(m)
-        IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) ' Error encountered writing AMIP Table 2 ' &
-                // 'field ', entry2d(m), ', which I call ', varin2d(m)
-           write(*,*) ' Was processing time sample: ', time 
-           
-!!$            error_flag = cmor_error_trace(device=0)
-           
-        END IF
-        
-     END DO time_loop
-     error_flag = cmor_close(var2d_ids(m))
-  END DO
-  
-  !   Close all files opened by CMOR.
-  
-  error_flag = cmor_close()  
-
-print*, '******************************'
-print*, ' '
-print*, 'CMOR COMPLETED SUCCESSFULLY '   
-print*, ' '
-print*, '******************************'
-
-END PROGRAM mip_contribution
-
diff --git a/Test/old_cmor_tables/test_region.f90 b/Test/old_cmor_tables/test_region.f90
deleted file mode 100644
index a793dfc..0000000
--- a/Test/old_cmor_tables/test_region.f90
+++ /dev/null
@@ -1,335 +0,0 @@
-!!$pgf90 -I/work/NetCDF/5.1/include -L/work/NetCDF/5.1/lib -l netcdf -L. -l cmor Test/test_dimensionless.f90 -IModules -o cmor_test
-!!$pgf90 -g -I/pcmdi/charles_work/NetCDF/include -L/pcmdi/charles_work/NetCDF/lib -lnetcdf -module Modules -IModules -L. -lcmor -I/pcmdi/charles_work/Unidata/include -L/pcmdi/charles_work/Unidata/lib -ludunits Test/test_dimensionless.f90 -o cmor_test
-
-MODULE local_subs
-
-  USE cmor_users_functions
-  PRIVATE
-  PUBLIC read_coords, read_time, read_1d_input_files
-CONTAINS
-  
-  SUBROUTINE read_coords(alats, bnds_lat)
-
-    IMPLICIT NONE
-    
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alats
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lat
-    
-    INTEGER :: i
-    
-    DO i = 1, SIZE(alats)
-       alats(i) = i*10
-       bnds_lat(1,i) = i*10. - 5.
-       bnds_lat(2,i) = i*10. + 5.
-    END DO
-      
-    RETURN
-  END SUBROUTINE read_coords
-
-  SUBROUTINE read_time(it, time, time_bnds)
-    
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    DOUBLE PRECISION, INTENT(OUT) :: time
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(2,1) :: time_bnds
-    
-    time = (it-0.5)*30.
-    time_bnds(1,1) = (it-1)*30.
-    time_bnds(2,1) = it*30.
-    
-    RETURN
-  END SUBROUTINE read_time
-  
-  SUBROUTINE read_1d_input_files(it, varname, field) 
-
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    CHARACTER(len=*), INTENT(IN) :: varname
-    REAL, INTENT(OUT), DIMENSION(:,:) :: field
-    
-    INTEGER :: i, j
-    REAL :: factor, offset
-    CHARACTER(len=LEN(varname)) :: tmp
-    
-    tmp = TRIM(ADJUSTL(varname))
-    SELECT CASE (tmp)
-    CASE ('OFLUX')  
-       factor = 1.e14
-       offset = 20.e14
-    END SELECT
-    
-    DO j=1,SIZE(field, 2)
-       DO i=1,SIZE(field, 1)
-          field(i,j) = ((j-1)*16 + (i-1)*4 + it)*factor - offset
-       END DO
-    END DO
-
-  END SUBROUTINE read_1d_input_files
-
-END MODULE local_subs
-
-
-PROGRAM test_region
-!
-!   Purpose:   To serve as a generic example of an application that
-!       uses the "Climate Model Output Rewriter" (CMOR)
-
-!    CMOR writes CF-compliant netCDF files.
-!    Its use is strongly encouraged by the IPCC and is intended for use 
-!       by those participating in many community-coordinated standard 
-!       climate model experiments (e.g., AMIP, CMIP, CFMIP, PMIP, APE,
-!       etc.)
-!
-!   Background information for this sample code:
-!
-!      Atmospheric standard output requested by IPCC are listed in 
-!   tables available on the web.  Monthly mean output is found in
-!   tables A1a and A1c.  This sample code processes only two 3-d 
-!   variables listed in table A1c ("monthly mean atmosphere 3-D data" 
-!   and only four 2-d variables listed in table A1a ("monthly mean 
-!   atmosphere + land surface 2-D (latitude, longitude) data").  The 
-!   extension to many more fields is trivial.
-!
-!      For this example, the user must fill in the sections of code that 
-!   extract the 3-d and 2-d fields from his monthly mean "history" 
-!   files (which usually contain many variables but only a single time 
-!   slice).  The CMOR code will write each field in a separate file, but 
-!   many monthly mean time-samples will be stored together.  These 
-!   constraints partially determine the structure of the code.
-!
-!
-!   Record of revisions:
-
-!       Date        Programmer(s)           Description of change
-!       ====        ==========              =====================
-!      10/22/03     Rusty Koder              Original code
-!       1/28/04     Les R. Koder             Revised to be consistent
-!                                            with evolving code design
-
-! include module that contains the user-accessible cmor functions.
-  USE cmor_users_functions
-  USE local_subs
-
-  IMPLICIT NONE
-
-  !   dimension parameters:
-  ! ---------------------------------
-  INTEGER, PARAMETER :: ntimes = 2    ! number of time samples to process
-  INTEGER, PARAMETER :: reg = 4       ! number of regions 
-  INTEGER, PARAMETER :: lat = 3       ! number of latitude grid cells
-  INTEGER, PARAMETER :: n1d = 1       ! number of IPCC Table O1 fields to be
-                                      !     output.
-  !
-  !   Tables associating the user's variables with IPCC standard output 
-  !   variables.  The user may choose to make this association in a 
-  !   different way (e.g., by defining values of pointers that allow him 
-  !   to directly retrieve data from a data record containing many 
-  !   different variables), but in some way the user will need to map his 
-  !   model output onto the Tables specifying the MIP standard output.
-
-  ! ----------------------------------
-
-                                ! My variable names for IPCC Table O1a fields
-  CHARACTER (LEN=5), DIMENSION(n1d) :: &
-                                 varin1d=(/ 'OFLUX' /)
-
-                                ! Units appropriate to my data
-  CHARACTER (LEN=1), DIMENSION(n1d) :: &
-                                  units1d=(/ 'W' /)
-
-                     ! Corresponding IPCC Table O1a entry (variable name) 
-  CHARACTER (LEN=5), DIMENSION(n1d) :: entry1d = (/ 'hfogo' /)
-
-
-!  uninitialized variables used in communicating with CMOR:
-!  ---------------------------------------------------------
-
-  INTEGER :: error_flag
-  INTEGER, DIMENSION(n1d) :: var1d_ids
-  REAL, DIMENSION(lat,reg) :: data1d
-  DOUBLE PRECISION, DIMENSION(lat) :: alats
-  DOUBLE PRECISION, DIMENSION(1) :: time
-  DOUBLE PRECISION, DIMENSION(2,1):: bnds_time
-  DOUBLE PRECISION, DIMENSION(2,lat) :: bnds_lat
-  INTEGER :: ilat, ireg, itim
-
-
-  !  Other variables:
-  !  ---------------------
-  
-  INTEGER :: it, m  
-  
-  ! ================================
-  !  Execution begins here:
-  ! ================================
-  
-  ! Read coordinate information from model into arrays that will be passed 
-  !   to CMOR.
-  ! Read latitude, longitude, and pressure coordinate values into 
-  !   alats, alons, and plevs, respectively.  Also generate latitude and 
-  !   longitude bounds, and store in bnds_lat and bnds_lon, respectively.
-  !   Note that all variable names in this code can be freely chosen by
-  !   the user.
-
-  !   The user must write the subroutine that fills the coordinate arrays 
-  !   and their bounds with actual data.  The following line is simply a
-  !   a place-holder for the user's code, which should replace it.
-  
-  !  *** possible user-written call ***
-  
-  call read_coords(alats, bnds_lat)
-  
-  ! Specify path where tables can be found and indicate that existing 
-  !    netCDF files should not be overwritten.
-  
-  error_flag = cmor_setup(inpath='Test', netcdf_file_action='replace')
-  
-  ! Define dataset as output from the GICC model (first member of an
-  !   ensemble of simulations) run under IPCC 2xCO2 equilibrium
-  !   experiment conditions, and provide information to be included as 
-  !   attributes in all CF-netCDF files written as part of this dataset.
-
-  error_flag = cmor_dataset(                                   &
-       outpath='Test',                                         &
-       experiment_id='2xCO2 equilibrium experiment',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       'Geneva, Switzerland)',                                 &
-       source='GICCM1 (2002): ' //                             &
-       'atmosphere:  GICAM3 (gicam_0_brnchT_itea_2, T63L32); '// &
-       'ocean: MOM (mom3_ver_3.5.2, 2x3L15); '             //  &
-       'sea ice: GISIM4; land: GILSM2.5',                      &
-       calendar='360_day',                                      &
-       realization=1,                                          &
-       contact = 'Rusty Koder (koder at middle_earth.net) ',      &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also '        //   &
-       'see http://www.GICC.su/giccm/doc/index.html '     //   &
-       ' 2XCO2 simulation described in Dorkey et al. '    //   &
-       '(Clim. Dyn., 2003, 323-357.)' , model_id="pcmdi-08a", &
-       forcing="CO2")
-  
-  !  Define all axes that will be needed
-  
-  ilat = cmor_axis(  &
-       table='IPCC_test_table_O',    &
-       table_entry='latitude',       &
-       units='degrees_north',        &  
-       length=lat,                   &
-       coord_vals=alats,             & 
-       cell_bounds=bnds_lat)        
-      
-  ireg = cmor_axis(  &
-       table='IPCC_test_table_O',        &
-       table_entry='region',         &
-       length=reg,                   &
-       units='none',                 &
-       coord_vals= (/ "atlantic_ocean", "indian_ocean  ", "pacific_ocean ", &
-       "global_ocean  " /) )   
-        
-  !   note that the time axis is defined next, but the time coordinate 
-  !   values and bounds will be passed to cmor through function 
-  !   cmor_write (later, below).
-
-  itim = cmor_axis(  &
-       table='IPCC_test_table_O',        &
-       table_entry='time',           &
-       units='days since 2030-1-1',  &
-       length=ntimes,                &
-       interval='1 month')
-  
-
-  !  Define variables appearing in IPCC table O1a (functions of lat and reg)
-  
-  DO m=1,n1d
-     var1d_ids(m) = cmor_variable(    &
-          table='IPCC_test_table_O',      &
-          table_entry=entry1d(m),     &
-          units=units1d(m),           &
-          axis_ids=(/ ilat, ireg, itim /), &
-          missing_value=1.0e28,       &
-          original_name=varin1d(m))
-  ENDDO
-  
-
-  PRINT*, ' '
-  PRINT*, 'completed everything up to writing output fields '
-  PRINT*, ' '
-
-  !  Loop through history files (each containing several different fields, 
-  !       but only a single month of data, averaged over the month).  Then 
-  !       extract fields of interest and write these to netCDF files (with 
-  !       one field per file, but all months included in the loop).
-  
-  time_loop: DO it=1, ntimes
-     
-     ! In the following loops over the 3d and 2d fields, the user-written    
-     ! subroutines (read_3d_input_files and read_2d_input_files) retrieve 
-     ! the requested IPCC table A1c and table A1a fields and store them in 
-     ! data3d and data2d, respectively.  In addition a user-written code 
-     ! (read_time) retrieves the time and time-bounds associated with the 
-     ! time sample (in units of 'days since 1970-1-1', consistent with the 
-     ! axis definitions above).  The bounds are set to the beginning and 
-     ! the end of the month retrieved, indicating the averaging period.
-     
-     ! The user must write a code to obtain the times and time-bounds for
-     !   the time slice.  The following line is simply a place-holder for
-     !   the user's code, which should replace it.
-     
-    call read_time(it, time(1), bnds_time)
-
-    ! Cycle through the 1-d fields (functions of lat and region), 
-    ! and retrieve the requested variable and append each to the 
-    ! appropriate netCDF file.
-
-    DO m=1,n1d
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-
-        call read_1d_input_files(it, varin1d(m), data1d)
-       
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-        
-        error_flag = cmor_write(                                  &
-             var_id        = var1d_ids(m),                        &
-             data          = data1d,                              &
-             ntimes_passed = 1,                                   &
-             time_vals     = time,                                &
-             time_bnds     = bnds_time  )
-        
-        IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) ' Error encountered writing IPCC Table O ' &
-                // 'field ', entry1d(m), ', which I call ', varin1d(m)
-           write(*,*) ' Was processing time sample: ', time
-                      
-        END IF
-
-     END DO
-     
-     
-  END DO time_loop
-  
-  !   Close all files opened by CMOR.
- 
-  print*, 'Ok wrote everythin' 
-  error_flag = cmor_close()  
-
-  print*, ' '
-  print*, '******************************'
-  print*, ' '
-  print*, 'ipcc_test_code executed to completion '   
-  print*, ' '
-  print*, '******************************'
-  
-END PROGRAM test_region
-
diff --git a/Test/old_cmor_tables/test_shrt_exp_nm_set_att_initi.f90 b/Test/old_cmor_tables/test_shrt_exp_nm_set_att_initi.f90
deleted file mode 100644
index 909150e..0000000
--- a/Test/old_cmor_tables/test_shrt_exp_nm_set_att_initi.f90
+++ /dev/null
@@ -1,343 +0,0 @@
-!!$pgf90 -I/work/NetCDF/5.1/include -L/work/NetCDF/5.1/lib -l netcdf -L. -l cmor Test/test1.f90 -IModules -o cmor_test
-!!$pgf90 -g -I/pcmdi/charles_work/NetCDF//include -L/pcmdi/charles_work/NetCDF//lib -lnetcdf -module Modules -IModules -L. -lcmor Test/test1.f90 -o cmor_test
-
-MODULE local_subs
-
-  PRIVATE
-  PUBLIC read_coords, read_time, read_3d_input_files, read_2d_input_files
-CONTAINS
-  
-  SUBROUTINE read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-
-    IMPLICIT NONE
-    
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alats
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alons
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: plevs
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lat
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lon
-    
-    INTEGER :: i
-    
-    DO i = 1, SIZE(alons)
-       alons(i) = (i-1)*360./SIZE(alons)
-       bnds_lon(1,i) = (i - 1.5)*360./SIZE(alons)
-       bnds_lon(2,i) = (i - 0.5)*360./SIZE(alons)
-    END DO
-    
-    DO i = 1, SIZE(alats)
-       alats(i) = i*10
-       bnds_lat(1,i) = i*10. - 5.
-       bnds_lat(2,i) = i*10. + 5.
-    END DO
-    
-    DO i = 1, SIZE(plevs)
-       plevs(i) = i*1.0e4
-    END DO
-    
-    RETURN
-  END SUBROUTINE read_coords
-
-  SUBROUTINE read_time(it, time, time_bnds)
-    
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    DOUBLE PRECISION, INTENT(OUT) :: time
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(2) :: time_bnds
-    
-    time = (it-0.5)*30.
-    time_bnds(1) = (it-1)*30.
-    time_bnds(2) = it*30.
-    
-    RETURN
-  END SUBROUTINE read_time
-    
-  SUBROUTINE read_2d_input_files(it, varname, field)                  
-    
-    INTEGER, INTENT(IN) :: it
-    CHARACTER(len=*), INTENT(IN) :: varname
-    REAL, INTENT(OUT), DIMENSION(:,:) :: field
-    
-    INTEGER :: i, j
-    REAL :: factor, offset
-    
-    
-    SELECT CASE (TRIM(ADJUSTL(varname)))
-    CASE ('LATENT')  
-       
-       factor = 1.5
-       offset = 20.
-    CASE ('TSURF')
-       factor = 2.2
-       offset = -220.
-    CASE ('SOIL_WET')
-       factor = 10.
-       offset = 0.
-    END SELECT
-    
-    DO j=1,SIZE(field, 1)
-       DO i=1,SIZE(field, 2)
-          field(j,i) = ((j-1)*16 + (i-1)*4 + it)*factor - offset
-       END DO
-    END DO
-
-  END SUBROUTINE read_2d_input_files
-
-END MODULE local_subs
-
-
-PROGRAM mip_contribution
-
-! include module that contains the user-accessible cmor functions.
-  USE cmor_users_functions
-  USE local_subs
-
-  IMPLICIT NONE
-
-  !   dimension parameters:
-  ! ---------------------------------
-  INTEGER, PARAMETER :: ntimes = 2    ! number of time samples to process
-  INTEGER, PARAMETER :: lon = 4       ! number of longitude grid cells  
-  INTEGER, PARAMETER :: lat = 3       ! number of latitude grid cells
-  INTEGER, PARAMETER :: n2d = 1       ! number of AMIP Table 2 fields to be
-                                      !     output.
-
-  !   Tables associating the user's variables with AMIP standard output 
-  !   variables.  The user may choose to make this association in a 
-  !   different way (e.g., by defining values of pointers that allow him 
-  !   to directly retrieve data from a data record containing many 
-  !   different variables), but in some way the user will need to map his 
-  !   model output onto the Tables specifying the MIP standard output.
-
-  ! ----------------------------------
-
-                                ! My variable names for Table 1a fields
-                                ! My variable names for Table 2 fields
-  CHARACTER (LEN=8), DIMENSION(n2d) :: &
-                          varin2d=(/ 'LATENT  ' /)
-                                ! Units appropriate to my data
-   CHARACTER (LEN=6), DIMENSION(n2d) :: &
-                          units2d=(/ 'W m-2 ' /)
-   CHARACTER (LEN=4), DIMENSION(n2d) :: &
-                      positive2d= (/  'down' /)
-                     ! Corresponding AMIP Table 2 entry (variable name) 
-  CHARACTER (LEN=5), DIMENSION(n2d) :: &
-                        entry2d = (/ 'hfls ' /)
-
-!  uninitialized variables used in communicating with CMOR:
-!  ---------------------------------------------------------
-
-  INTEGER :: error_flag
-  INTEGER, PARAMETER :: ntest=1
-  INTEGER, DIMENSION(3) :: axis2d_ids
-  INTEGER, DIMENSION(n2d+ntest) :: var2d_ids
-  REAL, DIMENSION(lat,lon) :: data2d
-  DOUBLE PRECISION, DIMENSION(lat) :: alats
-  DOUBLE PRECISION, DIMENSION(lon) :: alons
-   DOUBLE PRECISION, DIMENSION(5) :: plevs
- DOUBLE PRECISION :: time
-  DOUBLE PRECISION, DIMENSION(2):: bnds_time
-  DOUBLE PRECISION, DIMENSION(2,lat) :: bnds_lat
-  DOUBLE PRECISION, DIMENSION(2,lon) :: bnds_lon
-
-!!$  REAL, DIMENSION(lat*lon*lev) :: tmp3d
-!!$  REAL, DIMENSION(lat*lon) :: tmp2d
-
-  !  Other variables:
-  !  ---------------------
-  
-  INTEGER :: it, m
-  
-    character (len=200) :: msg,msg2
-
-  ! ================================
-  !  Execution begins here:
-  ! ================================
-  
-  ! Read coordinate information from model into arrays that will be passed 
-  !   to CMOR.
-  ! Read latitude, longitude, and pressure coordinate values into 
-  !   alats, alons, and plevs, respectively.  Also generate latitude and 
-  !   longitude bounds, and store in bnds_lat and bnds_lon, respectively.
-  
-  !   The user must write the subroutine that fills the coordinate arrays 
-  !   and their bounds with actual data.  The following line is simply a
-  !   a place-holder for the user's code, which should replace it.
-  
-  !  *** possible user-written call ***	
-  
-  print*, 'calling read_coords '
-
-  call read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-
-  print*, 'returned from read_coords'
-  
-  ! Specify path where tables can be found, indicate that existing netCDF 
-  !    files should not be overwritten, and instruct CMOR to error exit on 
-  !    encountering errors of any severity.
-  
-  error_flag = cmor_setup(inpath='Test',   &
-       netcdf_file_action='replace',                                       &
-       set_verbosity=1,                                                    &
-       exit_control=1)
-  
-  ! Define dataset as output from the GICC model (first member of an
-  !   ensemble of simulations) runcmor_write under IPCC 2xCO2 equilibrium experiment 
-  !   conditions, and provide information to be included as attributes in 
-  !   all CF-netCDF files written as part of this dataset.
-
-  print*, 'calling cmor_dataset'
-  error_flag = cmor_dataset(                                   &
-       outpath='Test',         &
-       experiment_id='2xco2',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       ' Geneva, Switzerland)',                                &
-       source='GICCM  2002(giccm_0_brnchT_itea_2, T63L32)',    &
-       calendar='360_day',                                      &
-       realization=1,                                          &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also ' //          &
-       'see http://www.GICC.su/giccm/doc/index.html '  //      &
-       ' 2XCO2 simulation described in Dorkey et al. '//       &
-       '(Clim. Dyn., 2003, 323-357.)',model_id="pcmdi-08a", &
-       forcing="co2")
-  
-  print*, 'returned from cmor_dataset'
-
-  error_flag = cmor_set_cur_dataset_attribute("initialization_method","1")
-  print*, 'returned from cmor_dataset'
-
-  !  Define axes for 3-d fields
-
-  print*, 'defining axes'
-  
-  axis2d_ids(1) = cmor_axis(  &
-       table='IPCC_test_table_As',    &
-       table_entry='latitude',       &
-       units='degrees_north',        &  
-       length=lat,                   &
-       coord_vals=alats,             & 
-       cell_bounds=bnds_lat)              
-  axis2d_ids(2) = cmor_axis(  &
-       table='IPCC_test_table_As',    &
-       table_entry='longitude',      &
-       length=lon,                   &
-       units='degrees_east',         &
-       coord_vals=alons,             &
-       cell_bounds=bnds_lon)              
-  !   note that the time axis is defined next, but the time coordinate 
-  !   values and bounds will be passed to cmor through function 
-  !   cmor_write (below).
-print*, 'before time '
-  axis2d_ids(3) = cmor_axis(  &
-       table='IPCC_test_table_As',    &
-       table_entry='time',           &
-       units='days since 1979-1-1',  &
-       length=ntimes,                &
-       interval='1 month')
-  
-  print*, 'finished defining axes'
-
-  
-
-  !  Define variables found in AMIP table 2a (2-d variables)
-  
-  DO m=1,ntest
-     write(msg,*)  m-1
-     msg2 = trim(entry2d(1)(1:4)//adjustl(msg))
-     print*,'Test Code: defining variable: :',msg2
-     var2d_ids(m) = cmor_variable(    &
-          table='IPCC_test_table_As',  & 
-          table_entry=msg2,     & 
-!!$          file_suffix='1979-2001',    &
-          units=units2d(1),           & 
-          axis_ids=axis2d_ids,        &
-          missing_value=1.0e20,       &
-          positive=positive2d(1),     &
-          original_name=varin2d(1))   
-  ENDDO
-
-  print*, 'completed everything up to writing output fields '
-  
-  !  Loop through history files (each containing several different fields, 
-  !       but only a single month of data, averaged over the month).  Then 
-  !       extract fields of interest and write these to netCDF files (with 
-  !       one field per file, but all months included in the loop).
-  
-  DO m=1,ntest
-     time_loop: DO it=1, ntimes
-        
-        ! In the following loops over the 3d and 2d fields, the user-written    
-        ! subroutines (read_3d_input_files and read_2d_input_files) retrieve 
-        ! the requested AMIP table 1a and table 2 fields and store them in 
-        ! data3d and data2d, respectively.  In addition a user-written code 
-        ! (read_time) retrieves the time and time-bounds associated with the 
-        ! time sample (in units of 'days since 1970-1-1', consistent with the 
-        ! axis definitions above).  The bounds are set to the beginning and 
-        ! the end of the month retrieved, indicating the averaging period.
-        
-        ! The user must write a code to obtain the times and time-bounds for
-        !   the time slice.  The following line is simply a place-holder for
-        !   the user's code, which should replace it.
-        
-        call read_time(it, time, bnds_time)
-        
-        ! Cycle through the 3-d fields, retrieve the requested variable and 
-        ! append each to the appropriate netCDF file.
-        
-        
-        
-        
-        ! Cycle through the 2-d fields, retrieve the requested variable and 
-        ! append each to the appropriate netCDF file.
-        
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-        
-        call read_2d_input_files(it, varin2d(1), data2d)                  
-        
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-        
-        print*, RESHAPE(bnds_time, (/ 2,1 /))
-        error_flag = cmor_write(var_id =        var2d_ids(m),   &
-             data =          RESHAPE(data2d, (/ lat*lon /)),        &
-             ntimes_passed = 1,              &
-             time_vals =     (/ time /),           &
-             time_bnds =     RESHAPE(bnds_time, (/ 2,1 /)))
-        
-        print*, 'after writing variable, ', var2d_ids(m)
-        IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) ' Error encountered writing AMIP Table 2 ' &
-                // 'field ', entry2d(m), ', which I call ', varin2d(m)
-           write(*,*) ' Was processing time sample: ', time 
-           
-!!$            error_flag = cmor_error_trace(device=0)
-           
-        END IF
-        
-     END DO time_loop
-     error_flag = cmor_close(var2d_ids(m))
-  END DO
-  
-  !   Close all files opened by CMOR.
-  
-  error_flag = cmor_close()  
-
-print*, '******************************'
-print*, ' '
-print*, 'CMOR COMPLETED SUCCESSFULLY '   
-print*, ' '
-print*, '******************************'
-
-END PROGRAM mip_contribution
-
diff --git a/Test/old_cmor_tables/test_sigma.f90 b/Test/old_cmor_tables/test_sigma.f90
deleted file mode 100644
index c41dc16..0000000
--- a/Test/old_cmor_tables/test_sigma.f90
+++ /dev/null
@@ -1,551 +0,0 @@
-!!$pgf90 -I/work/NetCDF/5.1/include -L/work/NetCDF/5.1/lib -l netcdf -L. -l cmor Test/test_dimensionless.f90 -IModules -o cmor_test
-!!$pgf90 -g -I/pcmdi/charles_work/NetCDF/include -L/pcmdi/charles_work/NetCDF/lib -lnetcdf -module Modules -IModules -L. -lcmor -I/pcmdi/charles_work/Unidata/include -L/pcmdi/charles_work/Unidata/lib -ludunits Test/test_dimensionless.f90 -o cmor_test
-
-MODULE local_subs
-
-  USE cmor_users_functions
-  PRIVATE
-  PUBLIC read_coords, read_time, read_3d_input_files, read_2d_input_files
-CONTAINS
-  
-  SUBROUTINE read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-
-    IMPLICIT NONE
-    
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alats
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alons
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: plevs
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lat
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lon
-    
-    INTEGER :: i
-    
-    DO i = 1, SIZE(alons)
-       alons(i) = (i-1)*360./SIZE(alons)
-       bnds_lon(1,i) = (i - 1.5)*360./SIZE(alons)
-        bnds_lon(2,i) = (i - 0.5)*360./SIZE(alons)
-    END DO
-    
-    DO i = 1, SIZE(alats)
-       alats(i) = i*10
-       bnds_lat(1,i) = i*10. - 5.
-       bnds_lat(2,i) = i*10. + 5.
-    END DO
-  
-    DO i = 1, SIZE(plevs)
-       plevs(i) = i*1.0e4
-    END DO
-    
-    RETURN
-  END SUBROUTINE read_coords
-
-  SUBROUTINE read_time(it, time, time_bnds)
-    
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    DOUBLE PRECISION, INTENT(OUT) :: time
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(2,1) :: time_bnds
-    
-    time = (it-0.5)*30.
-    time_bnds(1,1) = (it-1)*30.
-    time_bnds(2,1) = it*30.
-    
-    RETURN
-  END SUBROUTINE read_time
-  
-  SUBROUTINE read_3d_input_files(it, varname, field)
-    
-    INTEGER, INTENT(IN) :: it
-    CHARACTER(len=*), INTENT(IN) :: varname
-    REAL, INTENT(OUT), DIMENSION(:,:,:) :: field
-    
-    INTEGER :: i, j, k
-    REAL :: factor, offset
-    CHARACTER(len=LEN(varname)) :: tmp
-    
-    tmp = TRIM(ADJUSTL(varname))
-    SELECT CASE (tmp)
-    CASE ('CLOUD')  
-       factor = 0.1
-       offset = -50.
-    CASE ('U')  
-       factor = 1.
-       offset = 100.
-    CASE ('T')
-       factor = 0.5
-       offset = -150.
-    CASE ('tro3')
-       factor = 1.
-       offset = 0.
-    END SELECT
-    
-    DO k=1,SIZE(field, 1)
-       DO j=1,SIZE(field, 3)
-          DO i=1,SIZE(field, 2)
-             field(k,i,j) = ((SIZE(field, 1) - k)*64 + (j-1)*16 + (i-1)*4 + it)*factor - offset
-          END DO
-       END DO
-    END DO
-    
-  END SUBROUTINE read_3d_input_files
-  
-  SUBROUTINE read_2d_input_files(it, varname, field)                  
-    
-    INTEGER, INTENT(IN) :: it
-    CHARACTER(len=*), INTENT(IN) :: varname
-    REAL, INTENT(OUT), DIMENSION(:,:) :: field
-    
-    INTEGER :: i, j
-    REAL :: factor, offset
-    CHARACTER(len=LEN(varname)) :: tmp
-    
-    tmp = TRIM(ADJUSTL(varname))
-    SELECT CASE (tmp)
-    CASE ('LATENT')  
-       
-       factor = 2.8
-       offset = 10.
-    CASE ('TSURF')
-       factor = 2.2
-       offset = -220.
-    CASE ('SOIL_WET')
-       factor = 10.
-       offset = 0.
-    CASE ('PSURF')
-       factor = 100.
-       offset = -9.7e4
-    END SELECT
-    
-    DO j=1,SIZE(field, 2)
-       DO i=1,SIZE(field, 1)
-          field(i,j) = ((j-1)*16 + (i-1)*4 + it)*factor - offset
-       END DO
-    END DO
-
-  END SUBROUTINE read_2d_input_files
-
-END MODULE local_subs
-
-
-PROGRAM ipcc_test_code
-!
-!   Purpose:   To serve as a generic example of an application that
-!       uses the "Climate Model Output Rewriter" (CMOR)
-
-!    CMOR writes CF-compliant netCDF files.
-!    Its use is strongly encouraged by the IPCC and is intended for use 
-!       by those participating in many community-coordinated standard 
-!       climate model experiments (e.g., AMIP, CMIP, CFMIP, PMIP, APE,
-!       etc.)
-!
-!   Background information for this sample code:
-!
-!      Atmospheric standard output requested by IPCC are listed in 
-!   tables available on the web.  Monthly mean output is found in
-!   tables A1a and A1c.  This sample code processes only two 3-d 
-!   variables listed in table A1c ("monthly mean atmosphere 3-D data" 
-!   and only four 2-d variables listed in table A1a ("monthly mean 
-!   atmosphere + land surface 2-D (latitude, longitude) data").  The 
-!   extension to many more fields is trivial.
-!
-!      For this example, the user must fill in the sections of code that 
-!   extract the 3-d and 2-d fields from his monthly mean "history" 
-!   files (which usually contain many variables but only a single time 
-!   slice).  The CMOR code will write each field in a separate file, but 
-!   many monthly mean time-samples will be stored together.  These 
-!   constraints partially determine the structure of the code.
-!
-!
-!   Record of revisions:
-
-!       Date        Programmer(s)           Description of change
-!       ====        ==========              =====================
-!      10/22/03     Rusty Koder              Original code
-!       1/28/04     Les R. Koder             Revised to be consistent
-!                                            with evolving code design
-
-! include module that contains the user-accessible cmor functions.
-  USE cmor_users_functions
-  USE local_subs
-
-  IMPLICIT NONE
-
-  !   dimension parameters:
-  ! ---------------------------------
-  INTEGER, PARAMETER :: ntimes = 2    ! number of time samples to process
-  INTEGER, PARAMETER :: lon = 4       ! number of longitude grid cells  
-  INTEGER, PARAMETER :: lat = 3       ! number of latitude grid cells
-  INTEGER, PARAMETER :: lev = 5       ! number of standard pressure levels
-  INTEGER, PARAMETER :: n2d = 4       ! number of IPCC Table A1a fields to be
-                                      !     output.
-  INTEGER, PARAMETER :: n3d = 4       ! number of IPCC Table A1c fields to 
-                                      !     be output.  
-
-  !   Tables associating the user's variables with IPCC standard output 
-  !   variables.  The user may choose to make this association in a 
-  !   different way (e.g., by defining values of pointers that allow him 
-  !   to directly retrieve data from a data record containing many 
-  !   different variables), but in some way the user will need to map his 
-  !   model output onto the Tables specifying the MIP standard output.
-
-  ! ----------------------------------
-
-                                ! My variable names for IPCC Table A1c fields
-  CHARACTER (LEN=5), DIMENSION(n3d) :: &
-                                 varin3d=(/'CLOUD', 'tro3 ', 'U    ', 'T    '/)
-
-                                ! Units appropriate to my data
-  CHARACTER (LEN=5), DIMENSION(n3d) :: &
-                                  units3d=(/ '%    ', '1e-9 ',  'm s-1',   'K    '  /)
-
-                     ! Corresponding IPCC Table A1c entry (variable name) 
-  CHARACTER (LEN=4), DIMENSION(n3d) :: entry3d = (/ 'cl  ', 'tro3', 'ua  ', 'ta  ' /)
-
-                                ! My variable names for IPCC Table A1a fields
-  CHARACTER (LEN=8), DIMENSION(n2d) :: &
-                  varin2d=(/ 'LATENT  ', 'TSURF   ', 'SOIL_WET', 'PSURF   ' /)
-
-                                ! Units appropriate to my data
-   CHARACTER (LEN=6), DIMENSION(n2d) :: &
-                          units2d=(/ 'W m-2 ', 'K     ', 'kg m-2', 'Pa    ' /)
-
-   CHARACTER (LEN=4), DIMENSION(n2d) :: &
-                      positive2d= (/  'down',  '    ', '    ', '    '  /)
-
-                     ! Corresponding IPCC Table A1a entry (variable name) 
-  CHARACTER (LEN=5), DIMENSION(n2d) :: &
-                        entry2d = (/ 'hfls ', 'tas  ', 'mrsos', 'ps   ' /)
-
-!  uninitialized variables used in communicating with CMOR:
-!  ---------------------------------------------------------
-
-  INTEGER :: error_flag
-  INTEGER :: znondim_id, zfactor_id
-  INTEGER, DIMENSION(n2d) :: var2d_ids
-  INTEGER, DIMENSION(n3d) :: var3d_ids
-  REAL, DIMENSION(lon,lat) :: data2d
-  REAL, DIMENSION(lev,lon,lat) :: data3d
-  DOUBLE PRECISION, DIMENSION(lat) :: alats
-  DOUBLE PRECISION, DIMENSION(lon) :: alons
-  DOUBLE PRECISION, DIMENSION(lev) :: plevs
-  DOUBLE PRECISION, DIMENSION(1) :: time
-  DOUBLE PRECISION, DIMENSION(2,1):: bnds_time
-  DOUBLE PRECISION, DIMENSION(2,lat) :: bnds_lat
-  DOUBLE PRECISION, DIMENSION(2,lon) :: bnds_lon
-  DOUBLE PRECISION, DIMENSION(lev) :: zlevs
-  DOUBLE PRECISION, DIMENSION(lev+1) :: zlev_bnds
-  REAL, DIMENSION(lev) :: a_coeff
-  REAL, DIMENSION(lev) :: b_coeff
-  REAL :: p0
-  REAL, DIMENSION(lev+1) :: a_coeff_bnds
-  REAL, DIMENSION(lev+1) :: b_coeff_bnds
-  INTEGER :: ilon, ilat, ipres, ilev, itim
-
-
-  !  Other variables:
-  !  ---------------------
-  
-  INTEGER :: it, m
-  
-  ! ================================
-  !  Execution begins here:
-  ! ================================
-  
-  ! Read coordinate information from model into arrays that will be passed 
-  !   to CMOR.
-  ! Read latitude, longitude, and pressure coordinate values into 
-  !   alats, alons, and plevs, respectively.  Also generate latitude and 
-  !   longitude bounds, and store in bnds_lat and bnds_lon, respectively.
-  !   Note that all variable names in this code can be freely chosen by
-  !   the user.
-
-  !   The user must write the subroutine that fills the coordinate arrays 
-  !   and their bounds with actual data.  The following line is simply a
-  !   a place-holder for the user's code, which should replace it.
-  
-  !  *** possible user-written call ***
-  
-  call read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-  
-  ! Specify path where tables can be found and indicate that existing 
-  !    netCDF files should not be overwritten.
-  
-  error_flag = cmor_setup(inpath='Test', netcdf_file_action='replace')
-  
-  ! Define dataset as output from the GICC model (first member of an
-  !   ensemble of simulations) run under IPCC 2xCO2 equilibrium
-  !   experiment conditions, and provide information to be included as 
-  !   attributes in all CF-netCDF files written as part of this dataset.
-
-  error_flag = cmor_dataset(                                   &
-       outpath='Test',                                         &
-       experiment_id='2xCO2 equilibrium experiment',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       'Geneva, Switzerland)',                                 &
-       source='GICCM1 (2002): ' //                             &
-       'atmosphere:  GICAM3 (gicam_0_brnchT_itea_2, T63L32); '// &
-       'ocean: MOM (mom3_ver_3.5.2, 2x3L15); '             //  &
-       'sea ice: GISIM4; land: GILSM2.5',                      &
-       calendar='360_day',                                      &
-       realization=1,                                          &
-       contact = 'Rusty Koder (koder at middle_earth.net) ',      &
-       history='Output from archivcl_A1.nce/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also '        //   &
-       'see http://www.GICC.su/giccm/doc/index.html '     //   &
-       ' 2XCO2 simulation described in Dorkey et al. '    //   &
-       '(Clim. Dyn., 2003, 323-357.)',model_id="pcmdi-08a", &
-       forcing="co2")
-  
-  !  Define all axes that will be needed
-  
-  ilat = cmor_axis(  &
-       table='IPCC_table_A1',        &
-       table_entry='latitude',       &
-       units='degrees_north',        &  
-       length=lat,                   &
-       coord_vals=alats,             & 
-       cell_bounds=bnds_lat)        
-      
-  ilon = cmor_axis(  &
-       table='IPCC_table_A1',        &
-       table_entry='longitude',      &
-       length=lon,                   &
-       units='degrees_east',         &
-       coord_vals=alons,             &
-       cell_bounds=bnds_lon)      
-        
-  ipres = cmor_axis(  &
-       table='IPCC_table_A1',        &
-       table_entry='pressure',       &
-       units='Pa',                   &
-       length=lev,                   &
-       coord_vals=plevs)
-
-  !   note that the time axis is defined next, but the time coordinate 
-  !   values and bounds will be passed to cmor through function 
-  !   cmor_write (later, below).
-
-  itim = cmor_axis(  &
-       table='IPCC_table_A1',        &
-       table_entry='time',           &
-       units='days since 2030-1-1',  &
-       length=ntimes,                &
-       interval='1 month')
-  
-  !  define model eta levels
-  zlevs = (/ 0.1, 0.3, 0.55, 0.7, 0.9 /)
-  zlev_bnds=(/ 0.,.2, .42, .62, .8, 1. /)
-
-  ilev = cmor_axis(  &
-       table='IPCC_table_A1',        &
-       table_entry='standard_sigma',       &
-!!$       table_entry='standard_hybrid_sigma',       &
-       units='1',&
-       length=lev,                   &
-       coord_vals=zlevs,             &
-       cell_bounds=zlev_bnds)
-
-  !   define z-factors needed to transform from model level to pressure
-  p0 = 0.5e4
-!!$  p0 = 1.e5
-!!$  a_coeff = (/ 0.1, 0.2, 0.3, 0.2, 0.1 /)
-  a_coeff = (/ 0.2, 0.4, 0.6, 0.8, 0.95 /)
-  b_coeff = (/ 0.0, 0.1, 0.2, 0.5, 0.8 /)
-
-!!$  a_coeff_bnds=(/0.,.15, .25, .25, .15, 0./)
-  a_coeff_bnds=(/0.,.3, .5, .7, .9, 1./)
-  b_coeff_bnds=(/0.,.05, .15, .35, .65, 1./)
-
-  error_flag = cmor_zfactor(  &
-       zaxis_id=ilev,                      &
-       zfactor_name='ptop',                  &
-       units='Pa',                         &
-       zfactor_values = p0)
-
-!!$  error_flag = cmor_zfactor(  &
-!!$       zaxis_id=ilev,                       & 
-!!$       zfactor_name='b',                    &
-!!$       axis_ids= (/ ilev /),                &
-!!$       zfactor_values = b_coeff,            &
-!!$       zfactor_bounds = b_coeff_bnds  )
-!!$
-  error_flag = cmor_zfactor(  &
-       zaxis_id=ilev,                       &
-       zfactor_name='sigma',                    &
-       axis_ids= (/ ilev /),                &
-       zfactor_values = a_coeff,            &
-       zfactor_bounds = a_coeff_bnds )
-
-  zfactor_id = cmor_zfactor(  &
-       zaxis_id=ilev,                         &
-       zfactor_name='ps',                     &
-       axis_ids=(/ ilon, ilat, itim /),       &
-       units='Pa' )
-
-  !  Define the only field to be written that is a function of model level
-  !    (appearing in IPCC table A1c)
-
-  var3d_ids(1) = cmor_variable(    &
-       table='IPCC_table_A1',      &
-       table_entry=entry3d(1),     &
-       units=units3d(1),           &
-       axis_ids=(/ ilev, ilon, ilat, itim /),  &
-       missing_value=1.0e28, &
-       original_name=varin3d(1))
-  
-  !  Define variables appearing in IPCC table A1c that are a function of pressure
-  !         (3-d variables)
-  
-  DO m=2,n3d
-     var3d_ids(m) = cmor_variable(    &
-          table='IPCC_table_A1',      &
-          table_entry=entry3d(m),     &
-          units=units3d(m),           &
-          axis_ids=(/ ipres, ilon, ilat, itim /), &
-          missing_value=1.0e28,       &
-          original_name=varin3d(m))
-  ENDDO
-  
-
-  !  Define variables appearing in IPCC table A1a (2-d variables)
-  
-  DO m=1,n2d
-     var2d_ids(m) = cmor_variable(    &
-          table='IPCC_table_A1',      &
-          table_entry=entry2d(m),     & 
-          units=units2d(m),           & 
-          axis_ids=(/ ilon, ilat, itim /), &
-          missing_value=1.0e28,       &
-          positive=positive2d(m),     &
-          original_name=varin2d(m))   
-  ENDDO
-
-  PRINT*, ' '
-  PRINT*, 'completed everything up to writing output fields '
-  PRINT*, ' '
-
-  !  Loop through history files (each containing several different fields, 
-  !       but only a single month of data, averaged over the month).  Then 
-  !       extract fields of interest and write these to netCDF files (with 
-  !       one field per file, but all months included in the loop).
-  
-  time_loop: DO it=1, ntimes
-     
-     ! In the following loops over the 3d and 2d fields, the user-written    
-     ! subroutines (read_3d_input_files and read_2d_input_files) retrieve 
-     ! the requested IPCC table A1c and table A1a fields and store them in 
-     ! data3d and data2d, respectively.  In addition a user-written code 
-     ! (read_time) retrieves the time and time-bounds associated with the 
-     ! time sample (in units of 'days since 1970-1-1', consistent with the 
-     ! axis definitions above).  The bounds are set to the beginning and 
-     ! the end of the month retrieved, indicating the averaging period.
-     
-     ! The user must write a code to obtain the times and time-bounds for
-     !   the time slice.  The following line is simply a place-holder for
-     !   the user's code, which should replace it.
-     
-    call read_time(it, time(1), bnds_time)
-
-    call read_3d_input_files(it, varin3d(1), data3d)
-
-    error_flag = cmor_write(                                  &
-         var_id        = var3d_ids(1),                        &
-         data          = data3d,                              &
-         ntimes_passed = 1,                                   &
-         time_vals     = time,                                &
-         time_bnds     = bnds_time   )
-
-    call read_2d_input_files(it, varin2d(4), data2d)                  
-
-    error_flag = cmor_write(                                  &
-         var_id        = zfactor_id,                          &
-         data          = data2d,                              &
-         ntimes_passed = 1,                                   &
-         time_vals     = time,                                &
-         time_bnds     = bnds_time,                           &
-         store_with    = var3d_ids(1) )
-
-    ! Cycle through the 3-d fields (stored on pressure levels), 
-    ! and retrieve the requested variable and append each to the 
-    ! appropriate netCDF file.
-
-    DO m=2,n3d
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-
-        call read_3d_input_files(it, varin3d(m), data3d)
-       
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-        
-        error_flag = cmor_write(                                  &
-             var_id        = var3d_ids(m),                        &
-             data          = data3d,                              &
-             ntimes_passed = 1,                                   &
-             time_vals     = time,                                &
-             time_bnds     = bnds_time  )
-
-        IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) ' Error encountered writing IPCC Table A1c ' &
-                // 'field ', entry3d(m), ', which I call ', varin3d(m)
-           write(*,*) ' Was processing time sample: ', time
-                      
-        END IF
-
-     END DO
-     
-     ! Cycle through the 2-d fields, retrieve the requested variable and 
-     ! append each to the appropriate netCDF file.
-     
-     DO m=1,n2d
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-        
-        call read_2d_input_files(it, varin2d(m), data2d)                  
-
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-
-        error_flag = cmor_write(                                  &
-             var_id        = var2d_ids(m),                        &
-             data          = data2d,                              &
-             ntimes_passed = 1,                                   &
-             time_vals     = time,                                &
-             time_bnds     = bnds_time  )
-        
-       IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) ' Error encountered writing IPCC Table A1a ' &
-                // 'field ', entry2d(m), ', which I call ', varin2d(m)
-           write(*,*) ' Was processing time sample: ', time 
-                      
-        END IF
-        
-     END DO
-     
-  END DO time_loop
-  
-  !   Close all files opened by CMOR.
-  
-  error_flag = cmor_close()  
-
-  print*, ' '
-  print*, '******************************'
-  print*, ' '
-  print*, 'ipcc_test_code executed to completion '   
-  print*, ' '
-  print*, '******************************'
-  
-END PROGRAM ipcc_test_code
-
diff --git a/Test/old_cmor_tables/test_singleton.f90 b/Test/old_cmor_tables/test_singleton.f90
deleted file mode 100755
index 8055f62..0000000
--- a/Test/old_cmor_tables/test_singleton.f90
+++ /dev/null
@@ -1,594 +0,0 @@
-!!$pgf90 -I/work/NetCDF/5.1/include -L/work/NetCDF/5.1/lib -l netcdf -L. -l cmor Test/test_dimensionless.f90 -IModules -o cmor_test
-!!$pgf90 -g -I/pcmdi/charles_work/NetCDF/include -L/pcmdi/charles_work/NetCDF/lib -lnetcdf -module Modules -IModules -L. -lcmor -I/pcmdi/charles_work/Unidata/include -L/pcmdi/charles_work/Unidata/lib -ludunits Test/test_dimensionless.f90 -o cmor_test
-
-MODULE local_subs
-
-  USE cmor_users_functions
-  PRIVATE
-  PUBLIC read_coords, read_time, read_3d_input_files, read_2d_input_files
-CONTAINS
-  
-  SUBROUTINE read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-
-    IMPLICIT NONE
-    
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alats
-    REAL, INTENT(OUT), DIMENSION(:) :: alons
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: plevs
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lat
-    REAL, INTENT(OUT), DIMENSION(:,:) :: bnds_lon
-    
-    INTEGER :: i
-    
-    DO i = 1, SIZE(alons)
-       alons(i) = (i-1)*360./SIZE(alons)
-       bnds_lon(1,i) = (i - 1.5)*360./SIZE(alons)
-       bnds_lon(2,i) = (i - 0.5)*360./SIZE(alons)
-    END DO
-    
-    DO i = 1, SIZE(alats)
-       alats(i) = (size(alats)+1-i)*10
-       bnds_lat(1,i) = (size(alats)+1-i)*10 + 5.
-       bnds_lat(2,i) = (size(alats)+1-i)*10 - 5.
-    END DO
-  
-    DO i = 1, SIZE(plevs)
-       plevs(i) = i*1.0e4
-    END DO
-    
-    RETURN
-  END SUBROUTINE read_coords
-
-  SUBROUTINE read_time(it, time, time_bnds)
-    
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    DOUBLE PRECISION, INTENT(OUT) :: time
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(2,1) :: time_bnds
-    
-    time = (it-0.5)*30.
-    time_bnds(1,1) = (it-1)*30.
-    time_bnds(2,1) = it*30.
-    
-    RETURN
-  END SUBROUTINE read_time
-  
-  SUBROUTINE read_3d_input_files(it, varname, field)
-
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    CHARACTER(len=*), INTENT(IN) :: varname
-    REAL, INTENT(OUT), DIMENSION(:,:,:) :: field
-    
-    INTEGER :: i, j, k
-    REAL :: factor, offset
-    CHARACTER(len=LEN(varname)) :: tmp
-    
-    tmp = TRIM(ADJUSTL(varname))
-    SELECT CASE (tmp)
-    CASE ('CLOUD')  
-       factor = 0.1
-       offset = -50.
-    CASE ('U')  
-       factor = 1.
-       offset = 100.
-    CASE ('T')
-       factor = 0.5
-       offset = -150.
-    END SELECT
-    
-    DO k=1,SIZE(field, 3)
-       DO j=1,SIZE(field, 2)
-          DO i=1,SIZE(field, 1)
-             field(i,j,k) = ((k-1)*64 + (j-1)*16 + (i-1)*4 + it)*factor - offset
-          END DO
-       END DO
-    END DO
-    
-  END SUBROUTINE read_3d_input_files
-  
-  SUBROUTINE read_2d_input_files(it, varname, field)
-
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    CHARACTER(len=*), INTENT(IN) :: varname
-    REAL, INTENT(OUT), DIMENSION(:,:) :: field
-    
-    INTEGER :: i, j
-    REAL :: factor, offset
-    CHARACTER(len=LEN(varname)) :: tmp
-    
-    tmp = TRIM(ADJUSTL(varname))
-    SELECT CASE (tmp)
-    CASE ('LATENT')  
-       
-       factor = 1.2
-       offset = 10.
-    CASE ('TSURF')
-       factor = 2.2
-       offset = -220.
-    CASE ('SOIL_WET')
-       factor = 10.
-       offset = 0.
-    CASE ('PSURF')
-       factor = 100.
-       offset = -9.7e4
-    END SELECT
-    
-    DO j=1,SIZE(field, 2)
-       DO i=1,SIZE(field, 1)
-          field(i,size(field,2)+1-j) = ((j-1)*16 + (i-1)*4 + it)*factor - offset
-       END DO
-    END DO
-
-  END SUBROUTINE read_2d_input_files
-
-END MODULE local_subs
-
-
-PROGRAM ipcc_test_code
-!
-!   Purpose:   To serve as a generic example of an application that
-!       uses the "Climate Model Output Rewriter" (CMOR)
-
-!    CMOR writes CF-compliant netCDF files.
-!    Its use is strongly encouraged by the IPCC and is intended for use 
-!       by those participating in many community-coordinated standard 
-!       climate model experiments (e.g., AMIP, CMIP, CFMIP, PMIP, APE,
-!       etc.)
-!
-!   Background information for this sample code:
-!
-!      Atmospheric standard output requested by IPCC are listed in 
-!   tables available on the web.  Monthly mean output is found in
-!   tables A1a and A1c.  This sample code processes only two 3-d 
-!   variables listed in table A1c ("monthly mean atmosphere 3-D data" 
-!   and only four 2-d variables listed in table A1a ("monthly mean 
-!   atmosphere + land surface 2-D (latitude, longitude) data").  The 
-!   extension to many more fields is trivial.
-!
-!      For this example, the user must fill in the sections of code that 
-!   extract the 3-d and 2-d fields from his monthly mean "history" 
-!   files (which usually contain many variables but only a single time 
-!   slice).  The CMOR code will write each field in a separate file, but 
-!   many monthly mean time-samples will be stored together.  These 
-!   constraints partially determine the structure of the code.
-!
-!
-!   Record of revisions:
-
-!       Date        Programmer(s)           Description of change
-!       ====        ==========              =====================
-!      10/22/03     Rusty Koder              Original code
-!       1/28/04     Les R. Koder             Revised to be consistent
-!                                            with evolving code design
-
-! include module that contains the user-accessible cmor functions.
-  USE cmor_users_functions
-  USE local_subs
-
-  IMPLICIT NONE
-
-  !   dimension parameters:
-  ! ---------------------------------
-  INTEGER, PARAMETER :: ntimes = 2    ! number of time samples to process
-  INTEGER, PARAMETER :: lon = 4       ! number of longitude grid cells  
-  INTEGER, PARAMETER :: lat = 3       ! number of latitude grid cells
-  INTEGER, PARAMETER :: lev = 5       ! number of standard pressure levels
-  INTEGER, PARAMETER :: n2d = 4       ! number of IPCC Table A1a fields to be
-                                      !     output.
-  INTEGER, PARAMETER :: n3d = 3       ! number of IPCC Table A1c fields to 
-                                      !     be output.  
-
-  !   Tables associating the user's variables with IPCC standard output 
-  !   variables.  The user may choose to make this association in a 
-  !   different way (e.g., by defining values of pointers that allow him 
-  !   to directly retrieve data from a data record containing many 
-  !   different variables), but in some way the user will need to map his 
-  !   model output onto the Tables specifying the MIP standard output.
-
-  ! ----------------------------------
-
-                                ! My variable names for IPCC Table A1c fields
-  CHARACTER (LEN=5), DIMENSION(n3d) :: &
-                                 varin3d=(/'CLOUD', 'U    ', 'T    '/)
-
-                                ! Units appropriate to my data
-  CHARACTER (LEN=5), DIMENSION(n3d) :: &
-                                  units3d=(/ '%    ', 'm s-1',   'K    '  /)
-
-                     ! Corresponding IPCC Table A1c entry (variable name) 
-  CHARACTER (LEN=2), DIMENSION(n3d) :: entry3d = (/ 'cl', 'ua', 'ta' /)
-
-                                ! My variable names for IPCC Table A1a fields
-  CHARACTER (LEN=8), DIMENSION(n2d) :: &
-                  varin2d=(/ 'LATENT  ', 'TSURF   ', 'SOIL_WET', 'PSURF   ' /)
-
-                                ! Units appropriate to my data
-   CHARACTER (LEN=6), DIMENSION(n2d) :: &
-                          units2d=(/ 'W m-2 ', 'K     ', 'kg m-2', 'Pa    ' /)
-
-   CHARACTER (LEN=4), DIMENSION(n2d) :: &
-                      positive2d= (/  'down',  '    ', '    ', '    '  /)
-
-                     ! Corresponding IPCC Table A1a entry (variable name) 
-  CHARACTER (LEN=5), DIMENSION(n2d) :: &
-                        entry2d = (/ 'hfls ', 'tas  ', 'mrsos', 'ps   ' /)
-
-!  uninitialized variables used in communicating with CMOR:
-!  ---------------------------------------------------------
-
-  INTEGER :: error_flag
-  INTEGER :: znondim_id, zfactor_id
-  INTEGER, DIMENSION(n2d) :: var2d_ids
-  INTEGER, DIMENSION(n3d) :: var3d_ids
-  REAL, DIMENSION(lon,lat) :: data2d
-  REAL, DIMENSION(lon,lat,lev) :: data3d
-  DOUBLE PRECISION, DIMENSION(lat,1,lon) :: scramble
-  DOUBLE PRECISION, DIMENSION(lat) :: alats
-  REAL, DIMENSION(lon) :: alons
-  DOUBLE PRECISION, DIMENSION(lev) :: plevs
-  DOUBLE PRECISION, DIMENSION(1) :: time
-  DOUBLE PRECISION, DIMENSION(2,1):: bnds_time
-  DOUBLE PRECISION, DIMENSION(2,lat) :: bnds_lat
-  REAL, DIMENSION(2,lon) :: bnds_lon
-  DOUBLE PRECISION, DIMENSION(lev) :: zlevs
-  DOUBLE PRECISION, DIMENSION(lev+1) :: zlev_bnds
-  REAL, DIMENSION(lev) :: a_coeff
-  REAL, DIMENSION(lev) :: b_coeff
-  REAL :: p0
-  REAL, DIMENSION(lev+1) :: a_coeff_bnds
-  REAL, DIMENSION(lev+1) :: b_coeff_bnds
-  INTEGER :: ilon, ilat, ipres, ilev, itim
-  INTEGER :: iht
-
-  !  Other variables:
-  !  ---------------------
-  
-  INTEGER :: it, m, i, j
-  
-  ! ================================
-  !  Execution begins here:
-  ! ================================
-  
-  ! Read coordinate information from model into arrays that will be passed 
-  !   to CMOR.
-  ! Read latitude, longitude, and pressure coordinate values into 
-  !   alats, alons, and plevs, respectively.  Also generate latitude and 
-  !   longitude bounds, and store in bnds_lat and bnds_lon, respectively.
-  !   Note that all variable names in this code can be freely chosen by
-  !   the user.
-
-  !   The user must write the subroutine that fills the coordinate arrays 
-  !   and their bounds with actual data.  The following line is simply a
-  !   a place-holder for the user's code, which should replace it.
-  
-  !  *** possible user-written call ***
-  
-  call read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-  
-  ! Specify path where tables can be found and indicate that existing 
-  !    netCDF files should not be overwritten.
-  
-  error_flag = cmor_setup(inpath='Test', netcdf_file_action='replace')
-  
-  ! Define dataset as output from the GICC model (first member of an
-  !   ensemble of simulations) run under IPCC 2xCO2 equilibrium
-  !   experiment conditions, and provide information to be included as 
-  !   attributes in all CF-netCDF files written as part of this dataset.
-
-  error_flag = cmor_dataset(                                   &
-       outpath='Test',                                         &
-       experiment_id='2xCO2 equilibrium experiment',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       'Geneva, Switzerland)',                                 &
-       source='GICCM1 (2002): ' //                             &
-       'atmosphere:  GICAM3 (gicam_0_brnchT_itea_2, T63L32); '// &
-       'ocean: MOM (mom3_ver_3.5.2, 2x3L15); '             //  &
-       'sea ice: GISIM4; land: GILSM2.5',                      &
-       calendar='360_day',                                      &
-       realization=1,                                          &
-       contact = 'Rusty Koder (koder at middle_earth.net) ',      &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also '        //   &
-       'see http://www.GICC.su/giccm/doc/index.html '     //   &
-       ' 2XCO2 simulation described in Dorkey et al. '    //   &
-       '(Clim. Dyn., 2003, 323-357.)', model_id="pcmdi-08a", &
-       forcing="atm")
-  
-  !  Define all axes that will be needed
-
-  ilat = cmor_axis(  &
-       table='IPCC_test_table_A',    &
-       table_entry='latitude',       &
-       units='degrees_north',        &  
-       length=lat,                   &
-       coord_vals=alats,             & 
-       cell_bounds=bnds_lat)        
-      
-  ilon = cmor_axis(  &
-       table='IPCC_test_table_A',    &
-       table_entry='longitude',      &
-       length=lon,                   &
-       units='degrees_east',         &
-       coord_vals=alons,             &
-       cell_bounds=bnds_lon)      
-        
-  ipres = cmor_axis(  &
-       table='IPCC_test_table_A',    &
-       table_entry='pressure',       &
-       units='Pa',                   &
-       length=lev,                   &
-       coord_vals=plevs)
-
-  iht = cmor_axis(  &
-       table='IPCC_test_table_A',    &
-       table_entry='height1',       &
-       units='m',                   &
-       length=1,                   &
-       coord_vals=(/3.0/))
-
-  !   note that the time axis is defined next, but the time coordinate 
-  !   values and bounds will be passed to cmor through function 
-  !   cmor_write (later, below).
-
-  itim = cmor_axis(  &
-       table='IPCC_test_table_A',    &
-       table_entry='time',           &
-       units='days since 2030-1-1',  &
-       length=ntimes,                &
-       interval='1 month')
-  
-  !  define model eta levels (although these must be provided, they will
-  !    actually be replaced by a+b before writing the netCDF file)
-  zlevs = (/ 0.1, 0.3, 0.55, 0.7, 0.9 /)
-  zlev_bnds=(/ 0.,.2, .42, .62, .8, 1. /)
-
-  ilev = cmor_axis(  &
-       table='IPCC_test_table_A',    &
-       table_entry='standard_hybrid_sigma',       &
-       length=lev,                   &
-       units='1',&
-       coord_vals=zlevs,             &
-       cell_bounds=zlev_bnds)
-
-  !   define z-factors needed to transform from model level to pressure
-  p0 = 1.e5
-  a_coeff = (/ 0.1, 0.2, 0.3, 0.22, 0.1 /)
-  b_coeff = (/ 0.0, 0.1, 0.2, 0.5, 0.8 /)
-
-  a_coeff_bnds=(/0.,.15, .25, .25, .16, 0./)
-  b_coeff_bnds=(/0.,.05, .15, .35, .65, 1./)
-
-  error_flag = cmor_zfactor(  &
-       zaxis_id=ilev,                      &
-       zfactor_name='p0',                  &
-       units='Pa',                         &
-       zfactor_values = p0)
-
-  error_flag = cmor_zfactor(  &
-       zaxis_id=ilev,                       & 
-       zfactor_name='b',                    &
-       axis_ids= (/ ilev /),                &
-       zfactor_values = b_coeff,            &
-       zfactor_bounds = b_coeff_bnds  )
-
-  error_flag = cmor_zfactor(  &
-       zaxis_id=ilev,                       &
-       zfactor_name='a',                    &
-       axis_ids= (/ ilev /),                &
-       zfactor_values = a_coeff,            &
-       zfactor_bounds = a_coeff_bnds )
-
-  zfactor_id = cmor_zfactor(  &
-       zaxis_id=ilev,                         &
-       zfactor_name='ps',                     &
-       axis_ids=(/ ilon, ilat, itim /),       &
-       units='Pa' )
-
-  !  Define the only field to be written that is a function of model level
-  !    (appearing in IPCC table A1c)
-
-  var3d_ids(1) = cmor_variable(    &
-       table='IPCC_test_table_A',  &
-       table_entry=entry3d(1),     &
-       units=units3d(1),           &
-       axis_ids=(/ ilon, ilat, ilev, itim /),  &
-       missing_value=1.0e28, &
-       original_name=varin3d(1))
-  
-  !  Define variables appearing in IPCC table A1c that are a function of pressure
-  !         (3-d variables)
-  
-  DO m=2,n3d
-     var3d_ids(m) = cmor_variable(    &
-          table='IPCC_test_table_A',  &
-          table_entry=entry3d(m),     &
-          units=units3d(m),           &
-          axis_ids=(/ ilon, ilat, ipres, itim /), &
-          missing_value=1.0e28,       &
-          original_name=varin3d(m))
-  ENDDO
-  
-
-  !  Define variables appearing in IPCC table A1a (2-d variables)
-  
-  DO m=1,n2d
-     IF (m==2) THEN
-
-        var2d_ids(m) = cmor_variable(    &
-             table='IPCC_test_table_A',  &
-             table_entry=entry2d(m),     & 
-             units=units2d(m),           & 
-             axis_ids=(/ ilat, iht, ilon, itim /), &
-             missing_value=1.0e28,       &
-             positive=positive2d(m),     &
-             original_name=varin2d(m))   
-
-     ELSE
-
-        var2d_ids(m) = cmor_variable(    &
-             table='IPCC_test_table_A',  &
-             table_entry=entry2d(m),     & 
-             units=units2d(m),           & 
-             axis_ids=(/ ilon, ilat, itim /), &
-             missing_value=1.0e28,       &
-             positive=positive2d(m),     &
-             original_name=varin2d(m))   
-        
-     ENDIF
-  ENDDO
-
-  PRINT*, ' '
-  PRINT*, 'completed everything up to writing output fields '
-  PRINT*, ' '
-
-  !  Loop through history files (each containing several different fields, 
-  !       but only a single month of data, averaged over the month).  Then 
-  !       extract fields of interest and write these to netCDF files (with 
-  !       one field per file, but all months included in the loop).
-  
-  time_loop: DO it=1, ntimes
-     
-     ! In the following loops over the 3d and 2d fields, the user-written    
-     ! subroutines (read_3d_input_files and read_2d_input_files) retrieve 
-     ! the requested IPCC table A1c and table A1a fields and store them in 
-     ! data3d and data2d, respectively.  In addition a user-written code 
-     ! (read_time) retrieves the time and time-bounds associated with the 
-     ! time sample (in units of 'days since 1970-1-1', consistent with the 
-     ! axis definitions above).  The bounds are set to the beginning and 
-     ! the end of the month retrieved, indicating the averaging period.
-     
-     ! The user must write a code to obtain the times and time-bounds for
-     !   the time slice.  The following line is simply a place-holder for
-     !   the user's code, which should replace it.
-     
-    call read_time(it, time(1), bnds_time)
-
-    call read_3d_input_files(it, varin3d(1), data3d)
-    print*, 'shape(data3d)',shape(data3d),varin3d(1)
-    error_flag = cmor_write(                                  &
-         var_id        = var3d_ids(1),                        &
-         data          = data3d,                              &
-         ntimes_passed = 1,                                   &
-         time_vals     = time,                                &
-         time_bnds     = bnds_time   )
-
-    call read_2d_input_files(it, varin2d(4), data2d)                  
-
-    print*, 'shape(data2d)',shape(data2d),varin2d(4)
-    error_flag = cmor_write(                                  &
-         var_id        = zfactor_id,                          &
-         data          = data2d,                              &
-         ntimes_passed = 1,                                   &
-         time_vals     = time,                                &
-         time_bnds     = bnds_time,                           &
-         store_with    = var3d_ids(1) )
-
-    ! Cycle through the 3-d fields (stored on pressure levels), 
-    ! and retrieve the requested variable and append each to the 
-    ! appropriate netCDF file.
-
-    DO m=2,n3d
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-
-        call read_3d_input_files(it, varin3d(m), data3d)
-       
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-        
-        print*, 'shape(data3d)',shape(data3d),varin3d(m)
-        error_flag = cmor_write(                                  &
-             var_id        = var3d_ids(m),                        &
-             data          = data3d,                              &
-             ntimes_passed = 1,                                   &
-             time_vals     = time,                                &
-             time_bnds     = bnds_time  )
-        
-        IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) ' Error encountered writing IPCC Table A1c ' &
-                // 'field ', entry3d(m), ', which I call ', varin3d(m)
-           write(*,*) ' Was processing time sample: ', time
-                      
-        END IF
-
-     END DO
-
-
-     ! Cycle through the 2-d fields, retrieve the requested variable and 
-     ! append each to the appropriate netCDF file.
-     
-     DO m=1,n2d
-           
-           ! The user must write the code that fills the arrays of data
-           ! that will be passed to CMOR.  The following line is simply a
-           ! a place-holder for the user's code, which should replace it.
-           
-           call read_2d_input_files(it, varin2d(m), data2d)                  
-           
-           ! append a single time sample of data for a single field to 
-           ! the appropriate netCDF file.
-           
-        IF (m == 2) THEN
-
-           DO j=1,lat
-              DO i=1,lon
-                 scramble(j,1,i) = data2d(i,j)
-              END DO
-           END DO
-           
-           error_flag = cmor_write(                                  &
-                var_id        = var2d_ids(2),                        &
-                data          = scramble(:,1,:),                            &
-                ntimes_passed = 1,                                   &
-                time_vals     = time,                                &
-                time_bnds     = bnds_time  )
-
-        ELSE
-
-           error_flag = cmor_write(                                  &
-                var_id        = var2d_ids(m),                        &
-                data          = data2d,                              &
-                ntimes_passed = 1,                                   &
-                time_vals     = time,                                &
-                time_bnds     = bnds_time  )
-           
-           IF (error_flag < 0) THEN
-              ! write diagnostic messages to standard output device
-              write(*,*) ' Error encountered writing IPCC Table A1a ' &
-                   // 'field ', entry2d(m), ', which I call ', varin2d(m)
-              write(*,*) ' Was processing time sample: ', time 
-              
-           END IF
-
-        END IF
-
-     END DO
-     
-  END DO time_loop
-  
-  !   Close all files opened by CMOR.
-  
-  error_flag = cmor_close()  
-
-  print*, ' '
-  print*, '******************************'
-  print*, ' '
-  print*, 'ipcc_test_code executed to completion '   
-  print*, ' '
-  print*, '******************************'
-  
-END PROGRAM ipcc_test_code
-
diff --git a/Test/old_cmor_tables/test_sophie.f90 b/Test/old_cmor_tables/test_sophie.f90
deleted file mode 100644
index 867a9b1..0000000
--- a/Test/old_cmor_tables/test_sophie.f90
+++ /dev/null
@@ -1,483 +0,0 @@
-MODULE local_subs
-
- USE cmor_users_functions
-!!$  PRIVATE
-!!$  PUBLIC read_coords, read_time, read_3d_input_files, read_2d_input_files
-CONTAINS
-
- SUBROUTINE read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-
-   IMPLICIT NONE
-
-   DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alats
-   DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alons
-   DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: plevs
-   DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lat
-   DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lon
-
-   INTEGER :: i
-
-   DO i = 1, SIZE(alons)
-      alons(i) = (i-1)*360./SIZE(alons)
-      bnds_lon(1,i) = (i - 1.5)*360./SIZE(alons)
-      bnds_lon(2,i) = (i - 0.5)*360./SIZE(alons)
-   END DO
-
-   DO i = 1, SIZE(alats)
-      alats(i) = (size(alats)+1-i)*10
-      bnds_lat(1,i) = (size(alats)+1-i)*10 + 5.
-      bnds_lat(2,i) = (size(alats)+1-i)*10 - 5.
-   END DO
-
-   DO i = 1, SIZE(plevs)
-      plevs(i) = i*1.0e4
-   END DO
-
-   RETURN
- END SUBROUTINE read_coords
-
- SUBROUTINE read_time(it, time, time_bnds)
-
-   IMPLICIT NONE
-
-   INTEGER, INTENT(IN) :: it
-   DOUBLE PRECISION, INTENT(OUT) :: time
-   DOUBLE PRECISION, INTENT(OUT), DIMENSION(2,1) :: time_bnds
-
-   time = (it-0.5)*30.
-   time_bnds(1,1) = (it-1)*30.
-   time_bnds(2,1) = it*30.
-
-   RETURN
- END SUBROUTINE read_time
-
- SUBROUTINE read_3d_input_files(it, varname, field)
-
-   IMPLICIT NONE
-
-   INTEGER, INTENT(IN) :: it
-   CHARACTER(len=*), INTENT(IN) :: varname
-   REAL, INTENT(OUT), DIMENSION(:,:,:) :: field
-
-   INTEGER :: i, j, k
-   REAL :: factor, offset
-   CHARACTER(len=LEN(varname)) :: tmp
-
-   tmp = TRIM(ADJUSTL(varname))
-   SELECT CASE (tmp)
-   CASE ('CLOUD')  
-      factor = 0.1
-      offset = -50.
-   CASE ('U')  
-      factor = 1.
-      offset = 100.
-   CASE ('T')
-      factor = 0.5
-      offset = -150.
-   END SELECT
-   DO k=1,SIZE(field, 3)
-      DO j=1,SIZE(field, 2)
-         DO i=1,SIZE(field, 1)
-            field(i,j,k) = ((k-1)*64. + (j-1)*16. + (i-1)*4. + it)*factor - offset
-         END DO
-      END DO
-   END DO
- END SUBROUTINE read_3d_input_files
-
- SUBROUTINE read_2d_input_files(it, varname, field)
-
-   IMPLICIT NONE
-
-   INTEGER, INTENT(IN) :: it
-   CHARACTER(len=*), INTENT(IN) :: varname
-   REAL, INTENT(OUT), DIMENSION(:,:) :: field
-
-   INTEGER :: i, j
-   REAL :: factor, offset
-   CHARACTER(len=LEN(varname)) :: tmp
-
-   tmp = TRIM(ADJUSTL(varname))
-   SELECT CASE (tmp)
-   CASE ('LATENT')  
-
-      factor = 1.
-      offset = 20.
-   CASE ('TSURF')
-      factor = 2.0
-      offset = -220.
-   CASE ('SOIL_WET')
-      factor = 10.
-      offset = 0.
-   CASE ('PSURF')
-      factor = 100.
-      offset = -9.7e4
-   END SELECT
-
-   DO j=1,SIZE(field, 2)
-      DO i=1,SIZE(field, 1)
-         field(i,size(field,2)+1-j) = ((j-1)*16 + (i-1)*4 + it)*factor - offset
-      END DO
-   END DO
-
- END SUBROUTINE read_2d_input_files
-
-END MODULE local_subs
-
-program testing
- use cmor_users_functions
- use local_subs
-   implicit none
-   integer error_flag
- INTEGER, PARAMETER :: ntimes = 2    ! number of time samples to process
- INTEGER, PARAMETER :: lon = 4       ! number of longitude grid cells  
- INTEGER, PARAMETER :: lat = 3       ! number of latitude grid cells
- INTEGER, PARAMETER :: lev = 5       ! number of standard pressure levels
-!  INTEGER, PARAMETER :: n2d = 4       ! number of IPCC Table A1a fields to be
- INTEGER, PARAMETER :: n2d = 1       ! number of IPCC Table A1a fields to be
-                                     !     output.
- INTEGER, PARAMETER :: n3d = 3       ! number of IPCC Table A1c fields to 
-                                     !     be output.  
-                               ! My variable names for IPCC Table A1c fields
- CHARACTER (LEN=5), DIMENSION(n3d) :: &
-                                varin3d=(/'CLOUD', 'U    ', 'T    '/)
-
-                               ! Units appropriate to my data
- CHARACTER (LEN=6), DIMENSION(n3d) :: &
-                                 units3d=(/ '%     ', 'm s-1 ',   'K     ' /)
-
-                    ! Corresponding IPCC Table A1c entry (variable name) 
- CHARACTER (LEN=2), DIMENSION(n3d) :: entry3d = (/ 'cl', 'ua', 'ta' /)
-
-                               ! My variable names for IPCC Table A1a fields
- CHARACTER (LEN=8), DIMENSION(n2d) :: &
-!                  varin2d=(/ 'LATENT  ', 'TSURF   ', 'SOIL_WET', 'PSURF   ' /)
-                 varin2d=(/ 'LATENT  ' /)
-
-                               ! Units appropriate to my data
-  CHARACTER (LEN=6), DIMENSION(n2d) :: &
-!                          units2d=(/ 'W m-2 ', 'K     ', 'kg m-2', 'Pa    ' /)
-                         units2d=(/ 'W m-2 ' /)
-
-  CHARACTER (LEN=4), DIMENSION(n2d) :: &
-!                      positive2d= (/  'down',  '    ', '    ', '    '  /)
-                     positive2d= (/  'down'  /)
-
-                    ! Corresponding IPCC Table A1a entry (variable name) 
- CHARACTER (LEN=5), DIMENSION(n2d) :: &
-!                        entry2d = (/ 'hfls ', 'tas  ', 'mrsos', 'ps   ' /)
-                       entry2d = (/ 'hfls ' /)
-
-!  uninitialized variables used in communicating with CMOR:
-!  ---------------------------------------------------------
-
- INTEGER :: znondim_id, zfactor_id
- INTEGER, DIMENSION(n2d) :: var2d_ids
- INTEGER, DIMENSION(n3d) :: var3d_ids
- REAL, DIMENSION(lon,lat) :: data2d
- real, DIMENSION(lon*lat) ::  data1dtest
- REAL, DIMENSION(lon,lat,lev) :: data3d
- DOUBLE PRECISION, DIMENSION(lat) :: alats
- DOUBLE PRECISION, DIMENSION(lon) :: alons
- DOUBLE PRECISION, DIMENSION(lev) :: plevs
- DOUBLE PRECISION, DIMENSION(1) :: time
- DOUBLE PRECISION, DIMENSION(2,1):: bnds_time
- DOUBLE PRECISION, DIMENSION(2,lat) :: bnds_lat
- DOUBLE PRECISION, DIMENSION(2,lon) :: bnds_lon
- DOUBLE PRECISION, DIMENSION(lev) :: zlevs
- DOUBLE PRECISION, DIMENSION(lev+1) :: zlev_bnds
- real, DIMENSION(lev) :: a_coeff
- DOUBLE PRECISION, DIMENSION(lev) :: b_coeff
- DOUBLE PRECISION :: p0
- DOUBLE PRECISION :: p0array(1)
- real, DIMENSION(lev+1) :: a_coeff_bnds
- DOUBLE PRECISION, DIMENSION(lev+1) :: b_coeff_bnds
- INTEGER :: ilon, ilat, ipres, ilev, itim,i
- real :: missing
-
- !  Other variables:
- !  ---------------------
-
- INTEGER :: it, m, j,k
-
-! format classic(NETCDF-3)
-!  j = CMOR_REPLACE_3
-! format NETCDF-4
- j = CMOR_REPLACE
- k = CMOR_EXIT_ON_MAJOR
- error_flag = cmor_setup(inpath='Test', netcdf_file_action=j,&
-      exit_control=k)
- print*,'Test code: done'
- error_flag = cmor_dataset(                                   &
-      outpath='Test',                                         &
-      experiment_id='2xCO2 equilibrium experiment',           &
-      institution=                                            &
-      'GICC (Generic International Climate Center, ' //       &
-      'Geneva, Switzerland)',                                 &
-      source='GICCM1 (2002): ' //                             &
-      'atmosphere:  GICAM3 (gicam_0_brnchT_itea_2, T63L32); '// &
-      'ocean: MOM (mom3_ver_3.5.2, 2x3L15); '             //  &
-      'sea ice: GISIM4; land: GILSM2.5',                      &
-      calendar='360_day',                                      &
-      realization=1,                                          &
-      contact = 'Rusty Koder (koder at middle_earth.net) ',      &
-      history='Output from archive/giccm_03_std_2xCO2_2256.', &
-      comment='Equilibrium reached after 30-year spin-up ' // &
-      'after which data were output starting with nominal '// &
-      'date of January 2030',                                 &
-      references='Model described by Koder and Tolkien ' //   &
-      '(J. Geophys. Res., 2001, 576-591).  Also '        //   &
-      'see http://www.GICC.su/giccm/doc/index.html '     //   &
-      ' 2XCO2 simulation described in Dorkey et al. '    //   &
-      '(Clim. Dyn., 2003, 323-357.)', model_id="pcmdi-08a", &
-      forcing="CO2")
- print*, 'Test code: done 2 lalala'
-
- call read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-
-
- print*, 'Test code: ok calling axis stuff lat',alats
- ilat = cmor_axis(  &
-      table='Sophie_Table',    &
-      table_entry='latitude',       &
-      units='degrees_north',        &  
-      length=lat,                   &
-      coord_vals=alats,             & 
-      cell_bounds=bnds_lat)        
-
- print*, 'Test code: ok calling axis stuff lon',ilat
- ilon = cmor_axis(  &
-      table='Sophie_Table',    &
-      table_entry='longitude',      &
-      length=lon,                   &
-      units='degrees_east',         &
-      coord_vals=alons,             &
-      cell_bounds=bnds_lon)      
-
- print*, 'Test code: ok calling axis stuff pressure',ilon
- ipres = cmor_axis(  &
-      table='Sophie_Table',    &
-      table_entry='pressure',       &
-      units='Pa',                   &
-      length=lev,                   &
-      coord_vals=plevs)
-
- !   note that the time axis is defined next, but the time coordinate 
- !   values and bounds will be passed to cmor through function 
- !   cmor_write (later, below).
-
- print*, 'Test code: ok calling axis stuff time',ipres,ntimes
- itim = cmor_axis(  &
-      table='Sophie_Table',    &
-      table_entry='time',           &
-      units='days since 2030-1-1',  &
-      length=ntimes,                &
-      interval='30 days')
-
- !  define model eta levels (although these must be provided, they will
- !    actually be replaced by a+b before writing the netCDF file)
- zlevs = (/ 0.1, 0.3, 0.55, 0.7, 0.9 /)
- zlev_bnds=(/ 0.,.2, .42, .62, .8, 1. /)
-
- print*, 'Test code: ok calling axis stuff lev2',itim
- ilev = cmor_axis(  &
-      table='Sophie_Table',    &
-      table_entry='standard_hybrid_sigma',       &
-      units="1",   &
-      length=lev,                   &
-      coord_vals=zlevs,             &
-      cell_bounds=zlev_bnds)
-
- print*, 'Test code: ok called stuff lev2',ilev
- !   define z-factors needed to transform from model level to pressure
- p0 = 1.e5
- p0array(1)=p0
- a_coeff = (/ 0.1, 0.2, 0.3, 0.22, 0.1 /)
- b_coeff = (/ 0.0, 0.1, 0.2, 0.5, 0.8 /)
-
- a_coeff_bnds=(/0.,.15, .25, .25, .16, 0./)
- b_coeff_bnds=(/0.,.05, .15, .35, .65, 1./)
-
- print*, 'Test code: zfactor p0'
- error_flag = cmor_zfactor(  &
-      zaxis_id=ilev,                      &
-      zfactor_name='p0',                  &
-      units='Pa',                         &
-      zfactor_values = p0)
-
- print*, 'Test code: result',error_flag
- print*, 'Test code: zfactor b'
- error_flag = cmor_zfactor(  &
-      zaxis_id=ilev,                       & 
-      zfactor_name='b',                    &
-      axis_ids= (/ ilev /),                &
-      zfactor_values = b_coeff,            &
-      zfactor_bounds = b_coeff_bnds  )
-
- print*, 'Test code: result',error_flag
- print*, 'Test code: zfactor a'
- error_flag = cmor_zfactor(  &
-      zaxis_id=ilev,                       &
-      zfactor_name='a',                    &
-      axis_ids= (/ ilev /),                &
-      zfactor_values = a_coeff,            &
-      zfactor_bounds = a_coeff_bnds )
-
- print*, 'Test code: result',error_flag
- print*, 'Test code: zfactor ps'
- zfactor_id = cmor_zfactor(  &
-      zaxis_id=ilev,                         &
-      zfactor_name='ps',                     &
-      axis_ids=(/ ilon, ilat, itim /),       &
-      units='Pa' )
-
- print*, 'Test code: result',zfactor_id
- print*, 'Test code: var3d'
- missing = 1.e28
- var3d_ids(1) = cmor_variable(    &
-      table='Sophie_Table',  &
-      table_entry=entry3d(1),     &
-      units=units3d(1),           &
-      axis_ids=(/ ilon, ilat, ilev, itim /),  &
-      missing_value=missing, &
-      original_name=varin3d(1))
-
- !  Define variables appearing in IPCC table A1c that are a function of pressure
- !         (3-d variables)
-
- print*, 'Test code: result',var3d_ids(1)
- DO m=2,n3d
-    print*, 'Test code: var: ',entry3d(m)
-    var3d_ids(m) = cmor_variable(    &
-         table='Sophie_Table',  &
-         table_entry=entry3d(m),     &
-         units=units3d(m),           &
-         axis_ids=(/ ilon, ilat, ipres, itim /), &
-         missing_value=missing,       &
-         original_name=varin3d(m))
-    print*, 'Test code: result',var3d_ids(m)
- ENDDO
-
-
- !  Define variables appearing in IPCC table A1a (2-d variables)
-
- DO m=1,n2d
-    print*, 'Test code: var: ',entry2d(m)
-    var2d_ids(m) = cmor_variable(    &
-         table='Sophie_Table',  &
-         table_entry=entry2d(m),     & 
-         units=units2d(m),           & 
-    !     axis_ids=(/ ilon, ilat, itim /), &
-         axis_ids=(/ ilon, ilat /), &
-         missing_value=missing,       &
-         positive=positive2d(m),     &
-         original_name=varin2d(m))   
-    print*, 'Test code: result',var2d_ids(m)
- ENDDO
-
- PRINT*, 'Test code:  '
- PRINT*, 'Test code: completed everything up to writing output fields '
- PRINT*, 'Test code:  '
- time_loop: DO it=1, ntimes
-
-    ! In the following loops over the 3d and 2d fields, the user-written    
-    ! subroutines (read_3d_input_files and read_2d_input_files) retrieve 
-    ! the requested IPCC table A1c and table A1a fields and store them in 
-    ! data3d and data2d, respectively.  In addition a user-written code 
-    ! (read_time) retrieves the time and time-bounds associated with the 
-    ! time sample (in units of 'days since 1970-1-1', consistent with the 
-    ! axis definitions above).  The bounds are set to the beginning and 
-    ! the end of the month retrieved, indicating the averaging period.
-
-    ! The user must write a code to obtain the times and time-bounds for
-    !   the time slice.  The following line is simply a place-holder for
-    !   the user's code, which should replace it.
-   call read_time(it, time(1), bnds_time)
-   call read_3d_input_files(it, varin3d(1), data3d)
-
-   error_flag = cmor_write(                                  &
-        var_id        = var3d_ids(1),                        &
-        data          = data3d,                              &
-        ntimes_passed = 1,                                   &
-        time_vals     = time,                                &
-        time_bnds     = bnds_time   )
-
-   call read_2d_input_files(it, 'PSURF', data2d)                  
-
-   error_flag = cmor_write(                                  &
-        var_id        = zfactor_id,                          &
-        data          = data2d,                              &
-        ntimes_passed = 1,                                   &
-        time_vals     = time,                                &
-        time_bnds     = bnds_time,                           &
-        store_with    = var3d_ids(1) )
-   
-   print*, 'Test code: result',error_flag
-  ! Cycle through the 3-d fields (stored on pressure levels), 
-   ! and retrieve the requested variable and append each to the 
-   ! appropriate netCDF file.
-
-   DO m=2,n3d
-
-       ! The user must write the code that fills the arrays of data
-       ! that will be passed to CMOR.  The following line is simply a
-       ! a place-holder for the user's code, which should replace it.
-
-       call read_3d_input_files(it, varin3d(m), data3d)
-
-       ! append a single time sample of data for a single field to 
-       ! the appropriate netCDF file.
-       print*, ' Writing 3D variable:',var3d_ids(m)
-       error_flag = cmor_write(                                  &
-            var_id        = var3d_ids(m),                        &
-            data          = data3d,                              &
-            ntimes_passed = 1,                                   &
-            time_vals     = time,                                &
-            time_bnds     = bnds_time  )
-
-       IF (error_flag < 0) THEN
-          ! write diagnostic messages to standard output device
-          write(*,*) 'Test code:  Error encountered writing IPCC Table A1c ' &
-               // 'field ', entry3d(m), ', which I call ', varin3d(m)
-          write(*,*) 'Test code:  Was processing time sample: ', time
-
-       END IF
-
-    END DO
-!!$     
-!!$     ! Cycle through the 2-d fields, retrieve the requested variable and 
-!!$     ! append each to the appropriate netCDF file.
-!!$     
-    DO m=1,n2d
-
-       ! The user must write the code that fills the arrays of data
-       ! that will be passed to CMOR.  The following line is simply a
-       ! a place-holder for the user's code, which should replace it.
-
-       call read_2d_input_files(it, varin2d(m), data2d)                  
-
-       ! append a single time sample of data for a single field to 
-       ! the appropriate netCDF file.
-       print*, 'Writing var 2d:',var2d_ids(m)
-       error_flag = cmor_write(                                  &
-            var_id        = var2d_ids(m),                        &
-            data          = data2d,                              &
-            ntimes_passed = 0 )
-            !ntimes_passed = 1,                                   &
-            !time_vals     = time,                                &
-            !time_bnds     = bnds_time  )
-
-      IF (error_flag < 0) THEN
-          ! write diagnostic messages to standard output device
-          write(*,*) 'Test code:  Error encountered writing IPCC Table A1a ' &
-               // 'field ', entry2d(m), ', which I call ', varin2d(m)
-          write(*,*) 'Test code:  Was processing time sample: ', time 
-
-       END IF
-
-    END DO
-
- END DO time_loop
-
- error_flag = cmor_close()
-
-end program testing
diff --git a/Test/old_cmor_tables/test_station_data.f90 b/Test/old_cmor_tables/test_station_data.f90
deleted file mode 100644
index 47b1c7a..0000000
--- a/Test/old_cmor_tables/test_station_data.f90
+++ /dev/null
@@ -1,380 +0,0 @@
-MODULE local_subs
-
-  USE cmor_users_functions
-!!$  PRIVATE
-!!$  PUBLIC read_coords, read_time, read_3d_input_files, read_2d_input_files
-CONTAINS
-  
-  SUBROUTINE read_coords(alats, alons, plevs, bnds_lat, bnds_lon, station, st_lons, st_lats)
-
-    IMPLICIT NONE
-    
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alats
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alons
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: plevs
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lat
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lon
-    INTEGER, INTENT(OUT), DIMENSION(:) ::  station
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: st_lats
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: st_lons
-    
-    INTEGER :: i, j, k
-    
-    DO i = 1, SIZE(alons)
-       alons(i) = (i-1)*360./SIZE(alons)
-       bnds_lon(1,i) = (i - 1.5)*360./SIZE(alons)
-       bnds_lon(2,i) = (i - 0.5)*360./SIZE(alons)
-    END DO
-    
-    DO i = 1, SIZE(alats)
-       alats(i) = (size(alats)+1-i)*10
-       bnds_lat(1,i) = (size(alats)+1-i)*10 + 5.
-       bnds_lat(2,i) = (size(alats)+1-i)*10 - 5.
-    END DO
-  
-    DO i = 1, SIZE(plevs)
-       plevs(i) = i*1.0e4
-    END DO
-    
-    k = 1
-    DO i = 1, SIZE(alons)
-      DO j = 1, SIZE(alats)
-        station(k) = k
-        st_lons(k) = alons(i)
-        st_lats(k) = alats(j)
-        k = k+1
-      END DO   
-    END DO 
-    
-    
-    RETURN
-  END SUBROUTINE read_coords
-
-  SUBROUTINE read_time(it, time, time_bnds)
-    
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    DOUBLE PRECISION, INTENT(OUT) :: time
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(2,1) :: time_bnds
-    
-    time = (it-0.5)*30.
-    time_bnds(1,1) = (it-1)*30.
-    time_bnds(2,1) = it*30.
-    
-    RETURN
-  END SUBROUTINE read_time
-  
-  !------------------------------------------------
-  SUBROUTINE read_3d_input_files(it, varname, field)
-
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    CHARACTER(len=*), INTENT(IN) :: varname
-    REAL, INTENT(OUT), DIMENSION(:,:,:) :: field
-    
-    INTEGER :: i, j, k
-    REAL :: factor, offset
-    CHARACTER(len=LEN(varname)) :: tmp
-    
-    tmp = TRIM(ADJUSTL(varname))
-    SELECT CASE (tmp)
-    CASE ('CLOUD')  
-       factor = 0.1
-       offset = -50.
-    CASE ('U')  
-       factor = 1.
-       offset = 100.
-    CASE ('T')
-       factor = 0.5
-       offset = -150.
-    END SELECT
-    
-    DO k=1,SIZE(field, 3)
-       DO j=1,SIZE(field, 2)
-          DO i=1,SIZE(field, 1)
-             field(i,j,k) = ((k-1)*64 + (j-1)*16 + (i-1)*4 + it)*factor - offset
-          END DO
-       END DO
-    END DO
-    
-  END SUBROUTINE read_3d_input_files
-  
-  !------------------------------------------------
-  SUBROUTINE read_2d_input_files(it, varname, field)
-
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    CHARACTER(len=*), INTENT(IN) :: varname
-    REAL, INTENT(OUT), DIMENSION(:,:) :: field
-    
-    INTEGER :: i, j
-    REAL :: factor, offset
-    CHARACTER(len=LEN(varname)) :: tmp
-    
-    tmp = TRIM(ADJUSTL(varname))
-    SELECT CASE (tmp)
-    CASE ('LATENT')  
-       
-       factor = 1.
-       offset = 20.
-    CASE ('TSURF')
-       factor = 2.0
-       offset = -220.
-    CASE ('SOIL_WET')
-       factor = 10.
-       offset = 0.
-    CASE ('PSURF')
-       factor = 100.
-       offset = -9.7e4
-    END SELECT
-    
-    DO j=1,SIZE(field, 2)
-       DO i=1,SIZE(field, 1)
-          field(i,size(field,2)+1-j) = ((j-1)*16 + (i-1)*4 + it)*factor - offset
-       END DO
-    END DO
-
-  END SUBROUTINE read_2d_input_files
-
-END MODULE local_subs
-
-
-!=======================================================
-program testing
-  use cmor_users_functions
-  use local_subs
-    implicit none
-    integer error_flag
-  INTEGER, PARAMETER :: ntimes = 2    ! number of time samples to process
-  INTEGER, PARAMETER :: lon = 4       ! number of longitude grid cells  
-  INTEGER, PARAMETER :: lat = 3       ! number of latitude grid cells
-  INTEGER, PARAMETER :: lev = 5       ! number of standard pressure levels
-  INTEGER, PARAMETER :: nst = 12      ! number of stations
-  INTEGER, PARAMETER :: n2d = 4       ! number of IPCC Table A1a fields to be
-                                      !     output.
-  INTEGER, PARAMETER :: n3d = 3       ! number of IPCC Table A1c fields to 
-                                      !     be output.  
-                                ! My variable names for IPCC Table A1c fields
-  CHARACTER (LEN=5), DIMENSION(n3d) :: &
-                                 varin3d=(/'CLOUD', 'U    ', 'T    '/)
-
-                                ! Units appropriate to my data
-  CHARACTER (LEN=6), DIMENSION(n3d) :: &
-                                  units3d=(/ '%     ', 'm s-1 ',   'K     ' /)
-
-                     ! Corresponding IPCC Table A1c entry (variable name) 
-  CHARACTER (LEN=2), DIMENSION(n3d) :: entry3d = (/ 'cl', 'ua', 'ta' /)
-
-                                ! My variable names for IPCC Table A1a fields
-  CHARACTER (LEN=8), DIMENSION(n2d) :: &
-                  varin2d=(/ 'LATENT  ', 'TSURF   ', 'SOIL_WET', 'PSURF   ' /)
-
-                                ! Units appropriate to my data
-   CHARACTER (LEN=6), DIMENSION(n2d) :: &
-                          units2d=(/ 'W m-2 ', 'K     ', 'kg m-2', 'Pa    ' /)
-
-   CHARACTER (LEN=4), DIMENSION(n2d) :: &
-                      positive2d= (/  'down',  '    ', '    ', '    '  /)
-
-                     ! Corresponding IPCC Table A1a entry (variable name) 
-  CHARACTER (LEN=5), DIMENSION(n2d) :: &
-                        entry2d = (/ 'hfls ', 'tas  ', 'mrsos', 'ps   ' /)
-
-  INTEGER igrid;
-                          
-!  uninitialized variables used in communicating with CMOR:
-!  ---------------------------------------------------------
-
-  INTEGER :: znondim_id, zfactor_id
-  INTEGER, DIMENSION(n2d) :: var2d_ids
-  INTEGER, DIMENSION(n3d) :: var3d_ids
-  REAL, DIMENSION(lon,lat) :: data2d
-  real, DIMENSION(lon*lat) ::  data1dtest
-  REAL, DIMENSION(lon,lat,lev) :: data3d
-  REAL, DIMENSION(lon*lat,lev) :: data2d_st
-  DOUBLE PRECISION, DIMENSION(lat) :: alats
-  DOUBLE PRECISION, DIMENSION(lon) :: alons
-  DOUBLE PRECISION, DIMENSION(lev) :: plevs
-  INTEGER, DIMENSION(lon*lat) :: station
-  DOUBLE PRECISION, DIMENSION(lon*lat) :: st_lons
-  DOUBLE PRECISION, DIMENSION(lon*lat) :: st_lats
-  DOUBLE PRECISION, DIMENSION(1) :: time
-  DOUBLE PRECISION, DIMENSION(2,1):: bnds_time
-  DOUBLE PRECISION, DIMENSION(2,lat) :: bnds_lat
-  DOUBLE PRECISION, DIMENSION(2,lon) :: bnds_lon
-  DOUBLE PRECISION, DIMENSION(lev) :: zlevs
-  DOUBLE PRECISION, DIMENSION(lev+1) :: zlev_bnds
-  real, DIMENSION(lev) :: a_coeff
-  DOUBLE PRECISION, DIMENSION(lev) :: b_coeff
-  DOUBLE PRECISION :: p0
-  DOUBLE PRECISION :: p0array(1)
-  real, DIMENSION(lev+1) :: a_coeff_bnds
-  DOUBLE PRECISION, DIMENSION(lev+1) :: b_coeff_bnds
-  INTEGER :: ilon, ilat, ipres, ilev, itim, i, ist
-  real :: missing
-
-  !  Other variables:
-  !  ---------------------
-  
-  INTEGER :: it, m, j,k
-
-  j = CMOR_REPLACE
-  k = CMOR_EXIT_ON_MAJOR
-  error_flag = cmor_setup(inpath='Test', netcdf_file_action=j,&
-       exit_control=k)
-  print*,'Test code: done'
-  error_flag = cmor_dataset(                                   &
-       outpath='Test',                                         &
-       experiment_id='2xCO2 equilibrium experiment',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       'Geneva, Switzerland)',                                 &
-       source='GICCM1 (2002): ' //                             &
-       'atmosphere:  GICAM3 (gicam_0_brnchT_itea_2, T63L32); '// &
-       'ocean: MOM (mom3_ver_3.5.2, 2x3L15); '             //  &
-       'sea ice: GISIM4; land: GILSM2.5',                      &
-       calendar='360_day',                                      &
-       realization=1,                                          &
-       contact = 'Rusty Koder (koder at middle_earth.net) ',      &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also '        //   &
-       'see http://www.GICC.su/giccm/doc/index.html '     //   &
-       ' 2XCO2 simulation described in Dorkey et al. '    //   &
-       '(Clim. Dyn., 2003, 323-357.)', model_id="pcmdi-08a", &
-       forcing="CO2")
-  print*, 'Test code: done 2 lalala'
-  
-  call read_coords(alats, alons, plevs, bnds_lat, bnds_lon, station, st_lons, st_lats)
-  
-
-  print*, 'Test code: ok calling axis stuff station'
-  ist = cmor_axis(  &
-       table='IPCC_test_table_S',    &
-       table_entry='station',       &
-       units=' ',        &  
-       length=nst,                   &
-       coord_vals=station )      
-       
-   
-  print*, 'Test code: ok calling axis stuff pressure',ist
-  ipres = cmor_axis(  &
-       table='IPCC_test_table_S',    &
-       table_entry='pressure',       &
-       units='Pa',                   &
-       length=lev,                   &
-       coord_vals=plevs)
-
-  !   note that the time axis is defined next, but the time coordinate 
-  !   values and bounds will be passed to cmor through function 
-  !   cmor_write (later, below).
-
-  print*, 'Test code: ok calling axis stuff time',ipres
-  itim = cmor_axis(  &
-       table='IPCC_test_table_S',    &
-       table_entry='time',           &
-       units='days since 2030-1-1',  &
-       length=ntimes,                &
-       interval='1 month')
-
-  
-  ! to make it a station data, we need to define the grid with lon/lat 
-  ! information. CMOR will then add the 'longitude' and 'latitude'
-  ! variables as assosiated to the station data.
-  ! You do not set up lon/lat as axis variables for the station data     
-  ! note - the first parameter has ot be an array (of dim=1 in this example)
-  igrid = cmor_grid((/ist/), st_lats, st_lons)       
-       
-  write(*,'(a, 12f6.1)') 'lons: ',st_lons
-  write(*,'(a, 12f6.1)') 'lats: ',st_lats
-  
-  !===============================================================
-  print*, ' '
-   
-
-  !  Define variables appearing in IPCC table A1a (2-d variables)
-  DO m=1,4
-     print*, 'Test code: var:  ',entry2d(m)
-     var2d_ids(m) = cmor_variable(    &
-          table='IPCC_test_table_S',  &
-          table_entry=entry2d(m),     & 
-          units=units2d(m),           & 
-          axis_ids=(/ igrid, itim /), &
-          missing_value=missing,       &
-          positive=positive2d(m),     &
-          original_name=varin2d(m))   
-     print*, 'Test code: result',var2d_ids(m)
-  ENDDO   
-  
-
-  PRINT*, 'Test code:  '
-  PRINT*, 'Test code: completed everything up to writing output fields '
-  PRINT*, 'Test code:  '
-  time_loop: DO it=1, ntimes
-     
-     ! In the following loops over the 3d and 2d fields, the user-written    
-     ! subroutines (read_3d_input_files and read_2d_input_files) retrieve 
-     ! the requested IPCC table A1c and table A1a fields and store them in 
-     ! data3d and data2d, respectively.  In addition a user-written code 
-     ! (read_time) retrieves the time and time-bounds associated with the 
-     ! time sample (in units of 'days since 1970-1-1', consistent with the 
-     ! axis definitions above).  The bounds are set to the beginning and 
-     ! the end of the month retrieved, indicating the averaging period.
-     
-     ! The user must write a code to obtain the times and time-bounds for
-     !   the time slice.  The following line is simply a place-holder for
-     !   the user's code, which should replace it.
-     
-    call read_time(it, time(1), bnds_time)
-
-    
-!!$     
-!!$     ! Cycle through the 2-d fields, retrieve the requested variable and 
-!!$     ! append each to the appropriate netCDF file.
-!!$     
-     DO m=1,n2d
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-        
-        call read_2d_input_files(it, varin2d(m), data2d)    
-        k = 1  
-        DO j = 1, lat
-          data1dtest(k:k+lat) = data2d(:,j) 
-          k = k+lat+1 
-        END DO   
-        !write(*,'(a, 12(f8.1,1x))'), entry2d(m), data1dtest            
-
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-
-        error_flag = cmor_write(                                  &
-             var_id        = var2d_ids(m),                        &
-             data          = data1dtest,                          &
-             ntimes_passed = 1,                                   &
-             time_vals     = time,                                &
-             time_bnds     = bnds_time  )
-        
-       IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) 'Test code:  Error encountered writing IPCC Table A1a ' &
-                // 'field ', entry2d(m), ', which I call ', varin2d(m)
-           write(*,*) 'Test code:  Was processing time sample: ', time 
-                      
-        END IF
-        
-     END DO 
-     
-     
-  END DO time_loop
-
-  error_flag = cmor_close()
-
-end program testing
diff --git a/Test/old_cmor_tables/wegner_test.f90 b/Test/old_cmor_tables/wegner_test.f90
deleted file mode 100644
index 70cfd83..0000000
--- a/Test/old_cmor_tables/wegner_test.f90
+++ /dev/null
@@ -1,447 +0,0 @@
-module my_subs
-
-contains
-
-subroutine levrein(mlev, alev, blev, zlev, alevb, blevb, zlevb, p0)
-
-integer                             :: mlev
-double precision, intent(INOUT),dimension(mlev)   :: zlev
-double precision, intent(INOUT),dimension(mlev+1) :: zlevb
-real,             dimension(mlev)   :: slev
-real,             intent(INOUT),dimension(mlev)   :: alev, blev
-real,             intent(INOUT),dimension(mlev+1) :: alevb, blevb
-real , intent(inout) :: p0
-p0=101325.0
-
-slev=(/ &
-    0.00000000000000000,&
- 2000.00000000000000000,&
- 4000.00000000000000000,&
- 6000.00000000000000000,&
- 8000.00000000000000000,&
- 9976.13671875000000000,&
-11820.53906250000000000,&
-13431.39453125000000000,&
-14736.35546875000000000,&
-15689.20703125000000000,&
-16266.60937500000000000,&
-16465.00390625000000000,&
-16297.62109375000000000,&
-15791.59765625000000000,&
-14985.26953125000000000,&
-13925.51953125000000000,&
-12665.29296875000000000,&
-11261.23046875000000000,&
- 9771.40625000000000000,&
- 8253.21093750000000000,&
- 6761.33984375000000000,&
- 5345.91406250000000000,&
- 4050.71777343750000000,&
- 2911.56933593750000000,&
- 1954.80517578125000000,&
- 1195.88989257812500000,&
-  638.14892578125000000,&
-  271.62646484375000000,&
-   72.06358337402343750,&
-    0.00000000000000000,&
-    0.00000000000000000,&
-    0.00000000000000000 /)
-
-do i=1,mlev
-  alev(i)=slev(i)/p0
-end do
-blev=(/ &
-0.00000000000000000,&
-0.00000000000000000,&
-0.00000000000000000,&
-0.00000000000000000,&
-0.00000000000000000,&
-0.00039085815660655,&
-0.00291970069520175,&
-0.00919413194060326,&
-0.02031915634870529,&
-0.03697485849261284,&
-0.05948764085769653,&
-0.08789497613906860,&
-0.12200361490249634,&
-0.16144150495529175,&
-0.20570325851440430,&
-0.25418859720230103,&
-0.30623537302017212,&
-0.36114501953125000,&
-0.41820228099822998,&
-0.47668814659118652,&
-0.53588658571243286,&
-0.59508424997329712,&
-0.65356457233428955,&
-0.71059441566467285,&
-0.76540523767471313,&
-0.81716698408126831,&
-0.86495584249496460,&
-0.90771585702896118,&
-0.94421321153640747,&
-0.97298520803451538,&
-0.99228149652481079,&
-1.00000000000000000 /)
-
-do i=1,mlev
-   zlev(i)=alev(i)+blev(i)
-end do
-do i=2,mlev
-   alevb(i)=abs((alev(i)+alev(i-1))/2)
-end do
-alevb(1)=0.
-alevb(mlev+1)=0.
-
-do i=2,mlev
-   blevb(i)=abs((blev(i)+blev(i-1))/2)
-end do
-blevb(1)=0.
-blevb(mlev+1)=1.0
-
-do i=2,mlev
-   zlevb(i)=abs((zlev(i)+zlev(i-1))/2)
-end do
-zlevb(1)=0.
-zlevb(mlev+1)=1.0
-print*, 'done levrein going out' 
-end subroutine levrein
-
-subroutine latrein(lat, lon, latd, lond, bndslat, bndslon)
-
-double precision, dimension(lon)   :: lond
-double precision, dimension(lat)   :: latd
-double precision, dimension(2,lon) :: bndslon
-double precision, dimension(2,lat) :: bndslat
-double precision, dimension(17)    :: plevs
-
-integer   :: i
-
-lond(1)=0.0
-bndslon(1,1)=-0.9375
-bndslon(2,1)=0.9375
-do i=1,191
-   lond(i+1)     =lond(i)+1.875000
-   bndslon(1,i+1)=lond(i+1)-0.9375
-   bndslon(2,i+1)=lond(i+1)+0.9375
-end do
-
-latd=(/ &
- -88.572,-86.723,-84.862,-82.999,-81.135,-79.271,-77.406,-75.541,-73.676,-71.811, &
- -69.946,-68.081,-66.216,-64.351,-62.486,-60.620,-58.755,-56.890,-55.025,-53.160, &
- -51.294,-49.429,-47.564,-45.699,-43.833,-41.968,-40.103,-38.238,-36.372,-34.507, &
- -32.642,-30.777,-28.911,-27.046,-25.181,-23.316,-21.450,-19.585,-17.720,-15.855, &
- -13.989,-12.124,-10.259,-8.394,-6.528,-4.663,-2.798,-0.933, 0.933, 2.798, &
- 4.663, 6.528, 8.394, 10.259, 12.124, 13.989, 15.855, 17.720, 19.585, 21.450, &
- 23.316,25.181,27.046,28.911,30.777,32.642,34.507,36.372,38.238,40.103, &
- 41.968,43.833,45.699,47.564,49.429,51.294,53.160,55.025,56.890,58.755, &
- 60.620,62.486,64.351,66.216,68.081,69.946,71.811,73.676,75.541,77.406, &
- 79.271,81.135,82.999,84.862,86.723,88.572 /)
-
-do i=1,95
-   bndslat(2,i)=latd(i)-((latd(i)-(latd(i+1)))/2.)
-   bndslat(1,i+1)=bndslat(2,i)
-end do
-bndslat(1,1)=-90.0
-bndslat(2,96)=90.0
-
-end subroutine latrein
-
-
-subroutine timdatrein(nrec, lev, lat, lon, time, bndstime, data2, data3)
-
-double precision, dimension(nrec) :: time
-double precision, dimension(2,nrec) :: bndstime
-
-real, dimension(lon*lat)         :: dummy2, dummy3
-real, dimension(lon,lat,nrec)    :: data2
-real, dimension(lon,lat,lev,nrec):: data3
-integer                          :: jtime, icode, ilevel, nsize
-integer                          :: i, nyear, ihalf, nrec
-integer                          :: iyear, imon, iday, im, id, itime
-integer                          :: jd1860, jdactu
-character (len=50)               :: filearg
-
-! filenamen als argument fuer program einlesen:
-! filearg 1 ist 2d feld
-! filearg 2 ist 3d feld
-!
-call getarg(1, filearg)
-open(1,file=filearg, form='unformatted')
-call getarg(2, filearg)
-open(2,file=filearg, form='unformatted')
-
-! Zeit seit 1860 01 01 12
-! Julian date 1859 12 31 12
-!
-jd1860 = 31-32075+1461*(1859+4800+(12-14)/12)/4+367*(12-2-(12-14)/12*12) &
-         /12-3*((1859+4900+(12-14)/12)/100)/4
-
-do i=1,nrec
-   read(1) jtime, icode, ilevel,nsize
-   read(1) dummy2
-
-   iyear = int(jtime/10000)
-   im = iyear*100
-   imon = int(jtime/100)-im
-   id = imon*100
-
-   monlen: select case (imon)
-   case(4,6,9,11)
-      iday = 30
-   case(2)
-      if(mod(iyear,4).eq.0) then
-       if (mod(iyear,100).eq.0) then
-          iday = 28
-       else
-          iday = 29
-       endif
-       if(mod(iyear,400).eq.0) iday=29
-      else
-          iday = 28
-      endif
-   case default
-     iday = 31
-   end select monlen
-   ihalf=15
-   print*, itime, iyear, imon, iday
-      jdactu = ihalf-32075+1461*(iyear+4800+(imon-14)/12)/4+367*(imon-2-(imon-14)/12*12) &
-               /12-3*((iyear+4900+(imon-14)/12)/100)/4
-      time(i) = jdactu - jd1860
-      bndstime(1,i) = time(i) - ihalf
-      bndstime(2,i) = time(i) + (iday-ihalf)
-   print*, bndstime(1,i), time(i), bndstime(2,i)
-
-   do j=1,lat
-     do k=1,lon
-       data2(k,j,i)= dummy2(lon*(j-1) + k)
-     end do
-   end do
-  
-   do l=1,lev
-      read(2) jtime, icode, ilevel, nsize
-      read(2) dummy3
-      do j=1,lat
-        do k=1,lon
-          data3(k,j,l,i)= dummy3(lon*(j-1) + k)
-        end do
-      end do
-   end do
-
-end do
-   print*, time
-
-end subroutine timdatrein
-
-end module my_subs
-
-program wegner
-  !
-  use cmor_users_functions
-
-  use my_subs
-
-  implicit none
-
-  !   dimension parameters:
-  ! ---------------------------------
-
-  INTEGER, PARAMETER                 :: nti = 24  
-  INTEGER, PARAMETER                 :: lon = 192       
-  INTEGER, PARAMETER                 :: lat = 96     
-  INTEGER, PARAMETER                 :: lev = 32    
-
-  ! My variable names for IPCC Table A1a fields
-  CHARACTER (LEN=50)                 :: TABLE = 'Test/IPCC_table_A1'
-  CHARACTER (LEN=50)                 :: OUTDIR = 'Test'
-  CHARACTER (LEN=50)                 :: TABELLE = 'Test/IPCC_table_A1'
-  CHARACTER (LEN=5)                  :: varin2d = 'MSLP '
-  CHARACTER (LEN=5)                  :: units2d = 'Pa   '
-  CHARACTER (LEN=5)                  :: posit2d = '     '
-  CHARACTER (LEN=5)                  :: entry2d = 'ps   '
-  CHARACTER (LEN=5)                  :: varin3d = 'CLOUD'
-  CHARACTER (LEN=5)                  :: units3d = '%    '
-  CHARACTER (LEN=5)                  :: entry3d = 'cl   '
-
-  
-  !  uninitialized variables used in communicating with CMOR:
-  !  ---------------------------------------------------------
-
-  INTEGER                            :: error_flag, j,k
-  INTEGER                            :: znondim_id, zfactor_id=1
-  INTEGER                            :: var2d_ids
-  INTEGER                            :: var3d_ids
-  REAL, DIMENSION(lon,lat,nti)       :: data2d
-  REAL, DIMENSION(lon,lat,lev,nti)   :: data3d
-  REAL, DIMENSION(lon,lat)           :: data2d2
-  DOUBLE PRECISION, DIMENSION(lat)   :: alats
-  DOUBLE PRECISION, DIMENSION(lon)   :: alons
-  DOUBLE PRECISION, DIMENSION(nti)   :: time
-  DOUBLE PRECISION, DIMENSION(2,nti) :: bnds_time
-  DOUBLE PRECISION, DIMENSION(2,lat) :: bnds_lat
-  DOUBLE PRECISION, DIMENSION(2,lon) :: bnds_lon
-  DOUBLE PRECISION, DIMENSION(lev)   :: zlevs
-  DOUBLE PRECISION, DIMENSION(lev+1) :: zlev_bnds
-  REAL, DIMENSION(lev)               :: a_coeff, b_coeff
-  REAL, DIMENSION(lev+1)             :: a_coeff_bnds, b_coeff_bnds
-  REAL                               :: p0
-  INTEGER                            :: ilon, ilat, ipres, ilev, itim
-
-  !  Other variables:
-  !  ---------------------
-  
-  INTEGER                            :: it
-  
-  ! read the grid
-  ! --------------------
-  
-  call latrein(lat, lon, alats, alons, bnds_lat, bnds_lon)
-  
-  ! Specify path where tables can be found and indicate that existing 
-  !    netCDF files should not be overwritten.
-  
-  error_flag = cmor_setup(inpath='TABLE',                      &
-               netcdf_file_action='replace',                   &
-               exit_control=1)
-  
-  ! Define dataset as output from  ECHAM5-OM1
-  ! -----------------------------------------
-  error_flag         = cmor_dataset(                           &
-       outpath       = OUTDIR,                                 &
-       experiment_id ='pre-industrial control experiment',     &
-       institution   ='MPI (Max Planck Institute for Meteorology,'  // &
-       'Hamburg, Germany)',                                    &
-       source        ='ECHAM5/MPI-OM(2004):'//                 &
-       'atmosphere:  ECHAM5 (T63L32);'//                       &
-       'ocean:       OM (1x1L41); '//                          &
-       'sea ice:     ECHAM5',                                  &
-       calendar      ='gregorian',                             &
-       realization   =1,                                       &
-       contact = 'Joerg Wegner (wegner at dkrz.de) ',             &
-       history='Output from CERA Database/EH5_OM_20C_1_TEMP2', &
-       comment='anthropogenic forcing only',                   &
-       references='ECHAM5: E. Roeckner et. all, 2003,' //      &
-       'The atmospheric general circulation model ECHAM5' //   & 
-       'Report No. 349' //                                     &
-       'OM: Marsland et. all, 2003,' //                        &
-       'The Max-Planck-Institute global ocean/sea ice model'// &
-       'with orthogonal curvelinear coordinates' //            &
-       'Ocean Modell., 5, 91-127.' )
-  
-  !  Define all axes that will be needed
-
-  ilat = cmor_axis(  &
-       table=TABELLE,                &
-       table_entry='latitude',       &
-       units='degrees_north',        &  
-       length=lat,                   &
-       coord_vals=alats,             & 
-       cell_bounds=bnds_lat)        
-      
-  ilon = cmor_axis(  &
-       table=TABELLE,                &
-       table_entry='longitude',      &
-       length=lon,                   &
-       units='degrees_east',         &
-       coord_vals=alons,             &
-       cell_bounds=bnds_lon)      
-        
-  !   note that the time axis is defined next, but the time coordinate 
-  !   values and bounds will be passed to cmor through function 
-  !   cmor_write (later, below).
-
-  itim = cmor_axis(  &
-       table=TABELLE,                &
-       table_entry='time',           &
-       units='days since 1860-1-1',  &
-       length=nti,                   &
-       interval='12 minutes')
- 
-  call levrein(lev, a_coeff, b_coeff, zlevs, a_coeff_bnds, b_coeff_bnds, zlev_bnds, p0)
-  print*, 'done levrein'
-  print*, 'sure ?'
-  ilev = cmor_axis(  &
-       table=TABELLE,                &
-       table_entry='standard_hybrid_sigma',&
-       length=lev,                   &
-       units = '1',&
-       coord_vals=zlevs,             &
-       cell_bounds=zlev_bnds)
-
-  error_flag = cmor_zfactor(               &
-       zaxis_id=ilev,                      &
-       zfactor_name='p0',                  &
-       units='Pa',                         &
-       zfactor_values = p0)
-
-  error_flag = cmor_zfactor(               &
-       zaxis_id=ilev,                      & 
-       zfactor_name='b',                   &
-       axis_ids= (/ ilev /),               &
-       zfactor_values = b_coeff,           &
-       zfactor_bounds = b_coeff_bnds  )
-
-  error_flag = cmor_zfactor(               &
-       zaxis_id=ilev,                      &
-       zfactor_name='a',                   &
-       axis_ids= (/ ilev /),               &
-       zfactor_values = a_coeff,           &
-       zfactor_bounds = a_coeff_bnds )
-
-  zfactor_id = cmor_zfactor(               &
-       zaxis_id=ilev,                      &
-       zfactor_name='ps',                  &
-       axis_ids=(/ ilon, ilat, itim /),    &
-       units='Pa' )
-
-  
-     var2d_ids = cmor_variable(            &
-          table=TABELLE,                   &
-          table_entry=entry2d,             & 
-          units=units2d,                   & 
-          axis_ids=(/ ilon, ilat, itim /), &
-          missing_value=1.0e20,            &
-          positive=posit2d,                &
-          original_name=varin2d)   
-
-     var3d_ids = cmor_variable(            &
-          table=TABELLE,                   &
-          table_entry=entry3d,             &
-          units=units3d,                   &
-          axis_ids=(/ ilon, ilat, ilev, itim /),  &
-          missing_value=1.0e20,            &
-          original_name=varin3d)
-
-  print*, ' '
-  print*, 'completed everything up to writing output fields '
-  print*, ' '
-  
-  call timdatrein(nti, lev, lat, lon, time, bnds_time, data2d, data3d)
-
-        
-     error_flag = cmor_write(                               &
-           var_id        = var3d_ids,                       &
-           data          = data3d,                          &
-           ntimes_passed = nti,                             &
-           time_vals     = time,                            &
-           time_bnds     = bnds_time )
-
-     error_flag = cmor_write(                               &
-           var_id        = var2d_ids,                       &
-           data          = data2d,                          &
-           ntimes_passed = nti,                             &
-           time_vals     = time,                            &
-           time_bnds     = bnds_time,                       &
-           store_with    = var3d_ids )
-
-  if (error_flag < 0) then
- ! write diagnostic messages to standard output device
-           write(*,*) ' Error encountered writing IPCC Table A1a ' &
-               // 'field ', entry2d, ', which I call ', varin2d
-           write(*,*) ' Was processing time sample: ', time 
-  end if
-  !   Close all files opened by CMOR.
-  !   -------------------------------
-  error_flag = cmor_close()  
- 
-end program wegner
diff --git a/Test/omonxyztst.f90 b/Test/omonxyztst.f90
deleted file mode 100644
index 74d7da8..0000000
--- a/Test/omonxyztst.f90
+++ /dev/null
@@ -1,473 +0,0 @@
-
-MODULE local_subs
-
-  PRIVATE
-  PUBLIC  read_time, read_2d_input_files, read_3d_input_files, read_eta_input_files
-CONTAINS
-  
-
-  SUBROUTINE read_time(it, time, time_bnds)
-    
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    DOUBLE PRECISION, INTENT(OUT) :: time
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(2) :: time_bnds
-    INTEGER :: nm, nyr
-    INTEGER, DIMENSION(0:12) :: &
-     mon=(/0,31,59,90,120,151,181,212,243,273,304,334,365/)    
-    nm = mod(it,12)
-    if(nm.eq.0) then
-       nm=12
-    end if
-    nyr=(it-nm)/12
-    time_bnds(1) = mon(nm-1)+nyr*365.
-    time_bnds(2) = mon(nm)+nyr*365.
-    time = (time_bnds(1)+time_bnds(2))*0.5 
-    
-    RETURN
-  END SUBROUTINE read_time
-  
-  SUBROUTINE read_3d_input_files(it,field)                  
-    
-    REAL, INTENT(OUT), DIMENSION(:,:,:) :: field
-    
-    INTEGER, INTENT(IN) :: it
-    INTEGER :: i, j, k
-
-       DO k=1,SIZE(field, 1)
-          DO j=1,SIZE(field, 3)
-             DO i=1,SIZE(field, 2)
-               field(k,i,j)= 15.0+0.001*(i+j+k+it)
-             END DO
-          END DO
-       END DO
-
-  END SUBROUTINE read_3d_input_files
-
-  
-  SUBROUTINE read_2d_input_files(it, field)                  
-    
-    INTEGER, INTENT(IN) :: it
-    REAL, INTENT(OUT), DIMENSION(:,:) :: field
-    INTEGER :: i, j
-    
-    DO j=1,SIZE(field, 2)
-       DO i=1,SIZE(field, 1)
-           field(i,j)=0.001*(i-180)+0.002*(j-170)
-        END DO
-     END DO
-
-  END SUBROUTINE read_2d_input_files
-
-  SUBROUTINE read_eta_input_files(it, field)                  
-    
-    INTEGER, INTENT(IN) :: it
-    REAL, INTENT(OUT), DIMENSION(:,:) :: field
-    INTEGER :: i, j
-    
-    DO j=1,SIZE(field, 2)
-       DO i=1,SIZE(field, 1)
-           field(i,j)=0.001*(i-180)+0.002*(j-170)
-        END DO
-     END DO
-
-   END SUBROUTINE read_eta_input_files
-
-END MODULE local_subs
-
-
-PROGRAM mip_contribution
-
-
-! include module that contains the user-accessible cmor functions.
-  USE cmor_users_functions
-  USE local_subs
-
-  IMPLICIT NONE
-
-  !   dimension parameters:
-  ! ---------------------------------
-  INTEGER, PARAMETER :: nt = 12    ! number of time samples to process
-  INTEGER, PARAMETER :: lon = 360       ! number of longitude grid cells  
-  INTEGER, PARAMETER :: lat = 340       ! number of latitude grid cells
-  INTEGER, PARAMETER :: lev = 40       ! number of latitude grid cells
-  INTEGER, PARAMETER :: n3d = 2       ! number of AMIP Table 2 fields to be
-  INTEGER, PARAMETER :: n2d = 1       ! number of AMIP Table 2 fields to be
-                                      !     output.
-
-  !   Tables associating the user's variables with AMIP standard output 
-  !   variables.  The user may choose to make this association in a 
-  !   different way (e.g., by defining values of pointers that allow him 
-  !   to directly retrieve data from a data record containing many 
-  !   different variables), but in some way the user will need to map his 
-  !   model output onto the Tables specifying the MIP standard output.
-
-  ! ----------------------------------
-
-
-                                ! My variable names for Table 2 fields
-  CHARACTER (LEN=10), DIMENSION(n3d) :: &
-   varin3d=(/ 'thetao    ','so        '/)
-                                ! Units appropriate to my data
-   CHARACTER (LEN=10), DIMENSION(n3d) :: &
-   units3d=(/ 'K         ','psu       '/)
-   CHARACTER (LEN=4), DIMENSION(n3d) :: &
- positive3d= (/'    ','    '/)
-  CHARACTER (LEN=10), DIMENSION(n3d) :: &
-   entry3d=(/ 'thetao    ','so        '/)
-
-
-  CHARACTER (LEN=10), DIMENSION(n2d) :: varin2d=(/'zos'/) 
-  CHARACTER (LEN=10), DIMENSION(n2d) :: units2d=(/'m'/) 
-  CHARACTER (LEN=4), DIMENSION(n2d) :: positive2d=(/'    '/) 
-  CHARACTER (LEN=10), DIMENSION(n2d) :: entry2d=(/'zos'/) 
-
-!  uninitialized variables used in communicating with CMOR:
-!  ---------------------------------------------------------
-
-  INTEGER :: error_flag, i, j, k, grid_ids, zfactor_id,itim,ilev,ilat,ilon
-  INTEGER, DIMENSION(5) :: myaxes 
-  INTEGER, DIMENSION(n3d) :: var3d_ids
-  INTEGER, DIMENSION(n2d) :: var2d_ids
-  INTEGER, DIMENSION(1) :: vard_ids
-  REAL, DIMENSION(lev,lon,lat) :: data3d
-  REAL, DIMENSION(lon,lat) :: data2d 
-  DOUBLE PRECISION, DIMENSION (lon,lat) :: rdepth
-  DOUBLE PRECISION, DIMENSION(lon,lat) :: alat_coords
-  DOUBLE PRECISION, DIMENSION(lon,lat) :: alon_coords
-  DOUBLE PRECISION, DIMENSION(lon,lat,4) :: alat_vertices
-  DOUBLE PRECISION, DIMENSION(lon,lat,4) :: alon_vertices
-  DOUBLE PRECISION :: time
-  DOUBLE PRECISION, DIMENSION(2):: bnds_time
-  REAL, DIMENSION(lon,lat) :: w
-  REAL, DIMENSION(lon) :: rlon 
-  REAL, DIMENSION(lat) :: rlat
-  DOUBLE PRECISION, DIMENSION(lev) :: slev
-  DOUBLE PRECISION, DIMENSION(lev+1) :: slev_bnds
-  DOUBLE PRECISION, DIMENSION(3) :: pvalues 
-  DOUBLE PRECISION :: bt
-
-  !  Other variables:
-  !  ---------------------
-  
-  INTEGER :: it, m
-  
-
-  bt=0.
-  
-  ! ================================
-  !  Execution begins here:
-  ! ================================
-  
-  ! definition of true longitude  
-   do j=1,lat
-      do i=1,lon
-         alon_coords(i,j)=(i-1)*1.0
-         alon_vertices(i,j,2)=alon_coords(i,j)
-         alon_vertices(i,j,4)=alon_coords(i,j)
-      end do
-   end do
-   do j=1,lat
-      do i=2,lon
-         alon_vertices(i,j,1)=alon_coords(i-1,j)
-         alon_vertices(i,j,1)=alon_coords(i-1,j)
-      end do
-      alon_vertices(1,j,1)=alon_coords(lon,j)
-      do i=1,lon-1 
-         alon_vertices(i,j,3)=alon_coords(i+1,j)
-      end do
-      alon_vertices(lon,j,3)=alon_coords(1,j)
-   end do
-  ! definition of true latitude   
-   do j=1,lat
-      do i=1,lon
-         alat_coords(i,j)=-85.25+(j-1)*0.5
-         alat_vertices(i,j,2)=alat_coords(i,j)
-         alat_vertices(i,j,4)=alat_coords(i,j)
-      end do
-   end do
-   do j=2,lat
-      do i=1,lon
-         alat_vertices(i,j,1)=alat_coords(i,j-1)
-      end do
-   end do
-   do j=1,lat-1
-      do i=1,lon
-         alat_vertices(i,j,3)=alat_coords(i,j+1)
-      end do
-   end do
-   do i=1,lon
-      alat_vertices(i,1,1)=alat_coords(i,1)
-      alat_vertices(i,lat,3)=alat_coords(i,lat)
-   end do
- !definition of longitude and latitude in rotated coordinate system
-   do i=1,lon
-      rlon(i)=0.5+(i-1)*1.0
-   end do
-   do j=1,lat
-      rlat(j)=-85.25+(j-1)*0.5
-   end do
- 
- !definition of depth
-   do j=1,lat
-      do i=1,lon
-         rdepth(i,j)=3000.+(j-170+i-180)
-      end do
-   end do
-  ! definition of sigma levels
-   do k=1,lev
-      slev(k)=-(k-0.5)/lev
-      slev_bnds(k)=-(k-1.0)/lev
-   end do
-   slev_bnds(lev+1)=-1.0
-  ! Specify path where tables can be found, indicate that existing netCDF 
-  !    files should not be overwritten, and instruct CMOR to error exit on 
-  !    encountering errors of any severity.
-  
-  error_flag = cmor_setup(inpath='Tables',   &
-       netcdf_file_action='replace',                                       &
-       set_verbosity=1,                                                    &
-       exit_control=1)
-  
-  ! Define dataset as output from the INM model 
-
-  print*, 'calling cmor_dataset'
-  error_flag = cmor_dataset(                                   &
-       outpath='Test',         &
-       contact='Evgeny Volodin, volodin at inm.ras.ru,' //  & 
-       'INM RAS, Gubkina 8, Moscow, 119333 Russia,' // &
-       '+7-495-9383904',            &
-       experiment_id='piControl',        &
-       institution='INM (Institute for Numerical Mathematics, ' //       &
-       ' Moscow, Russia)',                                &
-       institute_id='INM',       &
-       source='inmcm4.0 (2009)',    &
-       calendar='365_day',                                      &
-       realization=1,                                          &
-       initialization_method=1,           &
-       history='Output from /data5/volodin/PICNTL', &
-       comment='no comments',  &
-       references='Volodin, Diansky, Gusev 2010. Climate ' //   &
-       'model INMCM4.0. Izvestia RAS. Atmospheric and ' //          &
-       'oceanic physics, V.46, N4, in print.',          &
-       model_id="inmcm4", &
-       !modeling_realm="ocean",  &
-       parent_experiment_id="N/A",   &
-       physics_version=1,      &
-       branch_time=bt, &
-      ! frequency='mon',                           &
-       forcing="N/A")
-  
-  print*, 'returned from cmor_dataset'
-
-
-  print*, 'defining axes'
-  
-!  definition of grid longitude
-  myaxes(1) = cmor_axis(  &
-       table='CMIP5_grids',    &
-       table_entry='grid_longitude',      &
-       length=lon,                   &
-       units='degrees',         &
-       coord_vals=rlon)
-
-!  definition of grid latitude
-  myaxes(2) = cmor_axis(  &
-       table='CMIP5_grids',    &
-       table_entry='grid_latitude',       &
-       units='degrees',        &  
-       length=lat,                   &
-       coord_vals=rlat)              
-
-!   definition of horizontal grid
-   grid_ids = cmor_grid(axis_ids = (/myaxes(1),myaxes(2)/),  &
-            latitude = alat_coords,     &
-            longitude = alon_coords,    & 
-            latitude_vertices = alat_vertices,    &
-            longitude_vertices = alon_vertices) 
-
-  myaxes(3) = grid_ids
-  !   note that the time axis is defined next, but the time coordinate 
-  !   values and bounds will be passed to cmor through function 
-  !   cmor_write (below).
-   print*, 'before time '
-  myaxes(4) = cmor_axis(  &
-       table='CMIP5_Omon',    &
-       table_entry='time',           &
-       units='days since 1850-1-1',  &
-       length=nt,                &
-       interval='1 month')
-  itim=myaxes(4)
-
-! definition of vertical coordinate
-  myaxes(5) = cmor_axis(  &
-       table='CMIP5_Omon',        &
-       table_entry='ocean_sigma',       &
-       units='1',&
-       length=lev,                   &
-       coord_vals=slev,             &
-       cell_bounds=slev_bnds)
-  ilev=myaxes(5)
-
-  error_flag = cmor_zfactor(  &
-       zaxis_id=ilev,                     &
-       zfactor_name='sigma',              &
-       axis_ids= (/ilev/),                    &
-       zfactor_values = slev)!,             &
-!       zfactor_bounds = slev_bnds)
-
-  error_flag = cmor_zfactor(  &
-       zaxis_id=ilev,                     &
-       zfactor_name='depth',              &
-       axis_ids= (/grid_ids/),            &
-       zfactor_values = rdepth,            &
-       units='m')      
-       write(*,*) '1.7',error_flag       
-
-  zfactor_id = cmor_zfactor(  &
-       zaxis_id=ilev,                         &
-       zfactor_name='eta',                     &
-       axis_ids=(/ grid_ids, itim /),       &
-       units='m' )
-print*, 'finished defining axes', zfactor_id
-    pvalues(1)=90.
-    pvalues(2)=0.
-    pvalues(3)=0.
-
-!!$    error_flag = cmor_set_grid_mapping(grid_id=grid_ids, &
-!!$     mapping_name='rotated_latitude_longitude', &
-!!$     parameter_names=(/'grid_north_pole_latitude ','grid_north_pole_longitude','north_pole_grid_longitude'/), &
-!!$     parameter_values=pvalues,  &
-!!$     parameter_units=(/'degrees_north','degrees_east ','degrees      '/))
-     write(*,*) 'after grid_mapping',error_flag
-
-  
-  DO m=1,n3d
-     write(*,*) 'm =',m,ilev,grid_ids,itim
-! IN THIS LINE I HAVE SEGMENTATION FAULT
-     var3d_ids(m) = cmor_variable(    &
-          table='CMIP5_Omon',  & 
-          table_entry=entry3d(m),     & 
-          units=units3d(m),           & 
-          axis_ids=(/ilev,grid_ids,itim/),        &
-          missing_value=1.0e20,       &
-          positive=positive3d(m),     &
-          original_name=varin3d(m))  
-          write(*,*) 'var3d_ids =',var3d_ids(m) 
-  ENDDO
-  DO m=1,n2d
-     var2d_ids(m) = cmor_variable(    &
-          table='CMIP5_Omon',  & 
-          table_entry=entry2d(m),     & 
-          units=units2d(m),           & 
-          axis_ids=(/grid_ids,itim/),        &
-          missing_value=1.0e20,       &
-          positive=positive2d(m),     &
-          original_name=varin2d(m))   
-         write(*,*) 'var2d_ids =',var2d_ids(m) 
-  ENDDO
-! commenting this out, depth is a zfactor not an actual var in this code
-!     vard_ids(1) = cmor_variable(    &
-!          table='CMIP5_Omon',  & 
-!          table_entry='depth',     & 
-!          units='m',           & 
-!          axis_ids=(/grid_ids/),        &
-!          missing_value=1.0e20,       &
-!          original_name='depth')   
-
-print*, 'completed everything up to writing output fields '
-  
-  !  Loop through history files (each containing several different fields, 
-  !       but only a single month of data, averaged over the month).  Then 
-  !       extract fields of interest and write these to netCDF files (with 
-  !       one field per file, but all months included in the loop).
-  
-     
-     ! In the following loops over the 3d and 2d fields, the user-written    
-     ! subroutines (read_3d_input_files and read_2d_input_files) retrieve 
-     ! the requested AMIP table 1a and table 2 fields and store them in 
-     ! data3d and data2d, respectively.  In addition a user-written code 
-     ! (read_time) retrieves the time and time-bounds associated with the 
-     ! time sample (in units of 'days since 1970-1-1', consistent with the 
-     ! axis definitions above).  The bounds are set to the beginning and 
-     ! the end of the month retrieved, indicating the averaging period.
-     
-     ! The user must write a code to obtain the times and time-bounds for
-     !   the time slice.  The following line is simply a place-holder for
-     !   the user's code, which should replace it.
-     
-     
-     ! Cycle through the 2-d fields, retrieve the requested variable and 
-     ! append each to the appropriate netCDF file.
-     
-time_loop: DO it=1,nt 
-   call read_time(it, time, bnds_time)
-   DO m=1,n3d
-      
-      ! The user must write the code that fills the arrays of data
-      ! that will be passed to CMOR.  The following line is simply a
-      ! a place-holder for the user's code, which should replace it.
-      
-      call read_3d_input_files(it,data3d) 
-      write(*,*) '3d file was read'  
-      
-      ! append a single time sample of data for a single field to 
-      ! the appropriate netCDF file.
-      
-      !print*, RESHAPE(bnds_time, (/ 2,1 /))
-      write(*,*) '3d var writing: ',var3d_ids(m)
-      error_flag = cmor_write(var_id =        var3d_ids(m),   &
-           data =          RESHAPE(data3d, (/ lat*lon*lev /)),        &
-           ntimes_passed = 1,              &
-           time_vals =     (/ time /),           &
-           time_bnds =     RESHAPE(bnds_time, (/ 2,1 /)))
-      write(*,*) '3d file was written, error_flag =',error_flag
-      !/* editing this out, depth is zfactor should be written with zfactor but eta needs to be */
-      !and it needs to be done at each time 
-      write(*,*) "reading in eta"
-      call read_eta_input_files(it,data2d) 
-      write(*,*) "writing in eta"
-      error_flag = cmor_write(var_id =       zfactor_id,   &
-           data =          data2d,        &
-           ntimes_passed = 1,    &
-           time_vals =     (/ time /),           &
-           time_bnds =     RESHAPE(bnds_time, (/ 2,1 /)), &
-           store_with = var3d_ids(m)) 
-   enddo
-   DO m=1,n2d
-      call read_2d_input_files(it,data2d)   
-      write(*,*) '2d var writing with: ',var2d_ids(1)
-      error_flag = cmor_write(var_id =        var2d_ids(1),   &
-           data =          RESHAPE(data2d, (/ lat*lon /)),        &
-           ntimes_passed = 1,              &
-           time_vals =     (/ time /),           &
-           time_bnds =     RESHAPE(bnds_time, (/ 2,1 /)))
-      print*, 'after writing variable, ', var2d_ids(m)
-      if(error_flag.ne.0) print*, '    error flag = ', error_flag
-      IF (error_flag < 0) THEN
-         ! write diagnostic messages to standard output device
-         write(*,*) ' Error encountered writing AMIP Table 2 ' &
-              // 'field ', entry3d(m), ', which I call ', varin3d(m)
-         write(*,*) ' Was processing time sample: ', time 
-         
-!!$            error_flag = cmor_error_trace(device=0)
-         
-      END IF
-      
-   END DO
-END DO time_loop
-
-
-  !   Close all files opened by CMOR.
-  
-  error_flag = cmor_close()  
-
-print*, '******************************'
-print*, ' '
-print*, 'CMOR COMPLETED SUCCESSFULLY '   
-print*, ' '
-print*, '******************************'
-
-END PROGRAM mip_contribution
-
diff --git a/Test/out_files.py b/Test/out_files.py
deleted file mode 100644
index a448bfb..0000000
--- a/Test/out_files.py
+++ /dev/null
@@ -1,493 +0,0 @@
-lots = """
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls0/r1i4p6/hfls0_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls1/r1i4p6/hfls1_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls10/r1i4p6/hfls10_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls100/r1i4p6/hfls100_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls101/r1i4p6/hfls101_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls102/r1i4p6/hfls102_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls103/r1i4p6/hfls103_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls104/r1i4p6/hfls104_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls105/r1i4p6/hfls105_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls106/r1i4p6/hfls106_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls107/r1i4p6/hfls107_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls108/r1i4p6/hfls108_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls109/r1i4p6/hfls109_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls11/r1i4p6/hfls11_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls110/r1i4p6/hfls110_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls111/r1i4p6/hfls111_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls112/r1i4p6/hfls112_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls113/r1i4p6/hfls113_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls114/r1i4p6/hfls114_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls115/r1i4p6/hfls115_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls116/r1i4p6/hfls116_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls117/r1i4p6/hfls117_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls118/r1i4p6/hfls118_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls119/r1i4p6/hfls119_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls12/r1i4p6/hfls12_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls120/r1i4p6/hfls120_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls121/r1i4p6/hfls121_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls122/r1i4p6/hfls122_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls123/r1i4p6/hfls123_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls124/r1i4p6/hfls124_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls125/r1i4p6/hfls125_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls126/r1i4p6/hfls126_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls127/r1i4p6/hfls127_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls128/r1i4p6/hfls128_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls129/r1i4p6/hfls129_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls13/r1i4p6/hfls13_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls130/r1i4p6/hfls130_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls131/r1i4p6/hfls131_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls132/r1i4p6/hfls132_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls133/r1i4p6/hfls133_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls134/r1i4p6/hfls134_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls135/r1i4p6/hfls135_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls136/r1i4p6/hfls136_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls137/r1i4p6/hfls137_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls138/r1i4p6/hfls138_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls139/r1i4p6/hfls139_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls14/r1i4p6/hfls14_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls140/r1i4p6/hfls140_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls141/r1i4p6/hfls141_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls142/r1i4p6/hfls142_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls143/r1i4p6/hfls143_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls144/r1i4p6/hfls144_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls145/r1i4p6/hfls145_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls146/r1i4p6/hfls146_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls147/r1i4p6/hfls147_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls148/r1i4p6/hfls148_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls149/r1i4p6/hfls149_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls15/r1i4p6/hfls15_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls150/r1i4p6/hfls150_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls151/r1i4p6/hfls151_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls152/r1i4p6/hfls152_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls153/r1i4p6/hfls153_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls154/r1i4p6/hfls154_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls155/r1i4p6/hfls155_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls156/r1i4p6/hfls156_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls157/r1i4p6/hfls157_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls158/r1i4p6/hfls158_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls159/r1i4p6/hfls159_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls16/r1i4p6/hfls16_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls160/r1i4p6/hfls160_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls161/r1i4p6/hfls161_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls162/r1i4p6/hfls162_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls163/r1i4p6/hfls163_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls164/r1i4p6/hfls164_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls165/r1i4p6/hfls165_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls166/r1i4p6/hfls166_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls167/r1i4p6/hfls167_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls168/r1i4p6/hfls168_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls169/r1i4p6/hfls169_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls17/r1i4p6/hfls17_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls170/r1i4p6/hfls170_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls171/r1i4p6/hfls171_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls172/r1i4p6/hfls172_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls173/r1i4p6/hfls173_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls174/r1i4p6/hfls174_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls175/r1i4p6/hfls175_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls176/r1i4p6/hfls176_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls177/r1i4p6/hfls177_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls178/r1i4p6/hfls178_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls179/r1i4p6/hfls179_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls18/r1i4p6/hfls18_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls180/r1i4p6/hfls180_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls181/r1i4p6/hfls181_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls182/r1i4p6/hfls182_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls183/r1i4p6/hfls183_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls184/r1i4p6/hfls184_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls185/r1i4p6/hfls185_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls186/r1i4p6/hfls186_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls187/r1i4p6/hfls187_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls188/r1i4p6/hfls188_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls189/r1i4p6/hfls189_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls19/r1i4p6/hfls19_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls190/r1i4p6/hfls190_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls191/r1i4p6/hfls191_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls192/r1i4p6/hfls192_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls193/r1i4p6/hfls193_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls194/r1i4p6/hfls194_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls195/r1i4p6/hfls195_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls196/r1i4p6/hfls196_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls197/r1i4p6/hfls197_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls198/r1i4p6/hfls198_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls199/r1i4p6/hfls199_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls2/r1i4p6/hfls2_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls20/r1i4p6/hfls20_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls200/r1i4p6/hfls200_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls201/r1i4p6/hfls201_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls202/r1i4p6/hfls202_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls203/r1i4p6/hfls203_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls204/r1i4p6/hfls204_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls205/r1i4p6/hfls205_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls206/r1i4p6/hfls206_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls207/r1i4p6/hfls207_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls208/r1i4p6/hfls208_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls209/r1i4p6/hfls209_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls21/r1i4p6/hfls21_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls210/r1i4p6/hfls210_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls211/r1i4p6/hfls211_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls212/r1i4p6/hfls212_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls213/r1i4p6/hfls213_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls214/r1i4p6/hfls214_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls215/r1i4p6/hfls215_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls216/r1i4p6/hfls216_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls217/r1i4p6/hfls217_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls218/r1i4p6/hfls218_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls219/r1i4p6/hfls219_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls22/r1i4p6/hfls22_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls220/r1i4p6/hfls220_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls221/r1i4p6/hfls221_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls222/r1i4p6/hfls222_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls223/r1i4p6/hfls223_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls224/r1i4p6/hfls224_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls225/r1i4p6/hfls225_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls226/r1i4p6/hfls226_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls227/r1i4p6/hfls227_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls228/r1i4p6/hfls228_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls229/r1i4p6/hfls229_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls23/r1i4p6/hfls23_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls230/r1i4p6/hfls230_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls231/r1i4p6/hfls231_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls232/r1i4p6/hfls232_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls233/r1i4p6/hfls233_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls234/r1i4p6/hfls234_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls235/r1i4p6/hfls235_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls236/r1i4p6/hfls236_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls237/r1i4p6/hfls237_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls238/r1i4p6/hfls238_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls239/r1i4p6/hfls239_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls24/r1i4p6/hfls24_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls240/r1i4p6/hfls240_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls241/r1i4p6/hfls241_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls242/r1i4p6/hfls242_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls243/r1i4p6/hfls243_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls244/r1i4p6/hfls244_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls245/r1i4p6/hfls245_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls246/r1i4p6/hfls246_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls247/r1i4p6/hfls247_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls248/r1i4p6/hfls248_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls249/r1i4p6/hfls249_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls25/r1i4p6/hfls25_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls250/r1i4p6/hfls250_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls251/r1i4p6/hfls251_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls252/r1i4p6/hfls252_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls253/r1i4p6/hfls253_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls254/r1i4p6/hfls254_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls255/r1i4p6/hfls255_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls256/r1i4p6/hfls256_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls257/r1i4p6/hfls257_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls258/r1i4p6/hfls258_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls259/r1i4p6/hfls259_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls26/r1i4p6/hfls26_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls260/r1i4p6/hfls260_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls261/r1i4p6/hfls261_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls262/r1i4p6/hfls262_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls263/r1i4p6/hfls263_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls264/r1i4p6/hfls264_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls265/r1i4p6/hfls265_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls266/r1i4p6/hfls266_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls267/r1i4p6/hfls267_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls268/r1i4p6/hfls268_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls269/r1i4p6/hfls269_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls27/r1i4p6/hfls27_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls270/r1i4p6/hfls270_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls271/r1i4p6/hfls271_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls272/r1i4p6/hfls272_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls273/r1i4p6/hfls273_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls274/r1i4p6/hfls274_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls275/r1i4p6/hfls275_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls276/r1i4p6/hfls276_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls277/r1i4p6/hfls277_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls278/r1i4p6/hfls278_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls279/r1i4p6/hfls279_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls28/r1i4p6/hfls28_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls280/r1i4p6/hfls280_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls281/r1i4p6/hfls281_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls282/r1i4p6/hfls282_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls283/r1i4p6/hfls283_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls284/r1i4p6/hfls284_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls285/r1i4p6/hfls285_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls286/r1i4p6/hfls286_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls287/r1i4p6/hfls287_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls288/r1i4p6/hfls288_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls289/r1i4p6/hfls289_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls29/r1i4p6/hfls29_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls290/r1i4p6/hfls290_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls291/r1i4p6/hfls291_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls292/r1i4p6/hfls292_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls293/r1i4p6/hfls293_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls294/r1i4p6/hfls294_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls295/r1i4p6/hfls295_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls296/r1i4p6/hfls296_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls297/r1i4p6/hfls297_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls298/r1i4p6/hfls298_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls299/r1i4p6/hfls299_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls3/r1i4p6/hfls3_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls30/r1i4p6/hfls30_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls300/r1i4p6/hfls300_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls301/r1i4p6/hfls301_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls302/r1i4p6/hfls302_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls303/r1i4p6/hfls303_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls304/r1i4p6/hfls304_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls305/r1i4p6/hfls305_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls306/r1i4p6/hfls306_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls307/r1i4p6/hfls307_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls308/r1i4p6/hfls308_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls309/r1i4p6/hfls309_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls31/r1i4p6/hfls31_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls310/r1i4p6/hfls310_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls311/r1i4p6/hfls311_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls312/r1i4p6/hfls312_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls313/r1i4p6/hfls313_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls314/r1i4p6/hfls314_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls315/r1i4p6/hfls315_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls316/r1i4p6/hfls316_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls317/r1i4p6/hfls317_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls318/r1i4p6/hfls318_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls319/r1i4p6/hfls319_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls32/r1i4p6/hfls32_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls320/r1i4p6/hfls320_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls321/r1i4p6/hfls321_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls322/r1i4p6/hfls322_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls323/r1i4p6/hfls323_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls324/r1i4p6/hfls324_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls325/r1i4p6/hfls325_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls326/r1i4p6/hfls326_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls327/r1i4p6/hfls327_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls328/r1i4p6/hfls328_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls329/r1i4p6/hfls329_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls33/r1i4p6/hfls33_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls330/r1i4p6/hfls330_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls331/r1i4p6/hfls331_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls332/r1i4p6/hfls332_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls333/r1i4p6/hfls333_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls334/r1i4p6/hfls334_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls335/r1i4p6/hfls335_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls336/r1i4p6/hfls336_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls337/r1i4p6/hfls337_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls338/r1i4p6/hfls338_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls339/r1i4p6/hfls339_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls34/r1i4p6/hfls34_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls340/r1i4p6/hfls340_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls341/r1i4p6/hfls341_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls342/r1i4p6/hfls342_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls343/r1i4p6/hfls343_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls344/r1i4p6/hfls344_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls345/r1i4p6/hfls345_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls346/r1i4p6/hfls346_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls347/r1i4p6/hfls347_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls348/r1i4p6/hfls348_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls349/r1i4p6/hfls349_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls35/r1i4p6/hfls35_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls350/r1i4p6/hfls350_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls351/r1i4p6/hfls351_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls352/r1i4p6/hfls352_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls353/r1i4p6/hfls353_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls354/r1i4p6/hfls354_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls355/r1i4p6/hfls355_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls356/r1i4p6/hfls356_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls357/r1i4p6/hfls357_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls358/r1i4p6/hfls358_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls359/r1i4p6/hfls359_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls36/r1i4p6/hfls36_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls360/r1i4p6/hfls360_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls361/r1i4p6/hfls361_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls362/r1i4p6/hfls362_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls363/r1i4p6/hfls363_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls364/r1i4p6/hfls364_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls365/r1i4p6/hfls365_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls366/r1i4p6/hfls366_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls367/r1i4p6/hfls367_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls368/r1i4p6/hfls368_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls369/r1i4p6/hfls369_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls37/r1i4p6/hfls37_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls370/r1i4p6/hfls370_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls371/r1i4p6/hfls371_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls372/r1i4p6/hfls372_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls373/r1i4p6/hfls373_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls374/r1i4p6/hfls374_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls375/r1i4p6/hfls375_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls376/r1i4p6/hfls376_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls377/r1i4p6/hfls377_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls378/r1i4p6/hfls378_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls379/r1i4p6/hfls379_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls38/r1i4p6/hfls38_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls380/r1i4p6/hfls380_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls381/r1i4p6/hfls381_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls382/r1i4p6/hfls382_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls383/r1i4p6/hfls383_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls384/r1i4p6/hfls384_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls385/r1i4p6/hfls385_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls386/r1i4p6/hfls386_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls387/r1i4p6/hfls387_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls388/r1i4p6/hfls388_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls389/r1i4p6/hfls389_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls39/r1i4p6/hfls39_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls390/r1i4p6/hfls390_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls391/r1i4p6/hfls391_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls392/r1i4p6/hfls392_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls393/r1i4p6/hfls393_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls394/r1i4p6/hfls394_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls395/r1i4p6/hfls395_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls396/r1i4p6/hfls396_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls397/r1i4p6/hfls397_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls398/r1i4p6/hfls398_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls399/r1i4p6/hfls399_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls4/r1i4p6/hfls4_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls40/r1i4p6/hfls40_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls41/r1i4p6/hfls41_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls42/r1i4p6/hfls42_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls43/r1i4p6/hfls43_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls44/r1i4p6/hfls44_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls45/r1i4p6/hfls45_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls46/r1i4p6/hfls46_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls47/r1i4p6/hfls47_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls48/r1i4p6/hfls48_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls49/r1i4p6/hfls49_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls5/r1i4p6/hfls5_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls50/r1i4p6/hfls50_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls51/r1i4p6/hfls51_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls52/r1i4p6/hfls52_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls53/r1i4p6/hfls53_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls54/r1i4p6/hfls54_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls55/r1i4p6/hfls55_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls56/r1i4p6/hfls56_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls57/r1i4p6/hfls57_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls58/r1i4p6/hfls58_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls59/r1i4p6/hfls59_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls6/r1i4p6/hfls6_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls60/r1i4p6/hfls60_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls61/r1i4p6/hfls61_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls62/r1i4p6/hfls62_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls63/r1i4p6/hfls63_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls64/r1i4p6/hfls64_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls65/r1i4p6/hfls65_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls66/r1i4p6/hfls66_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls67/r1i4p6/hfls67_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls68/r1i4p6/hfls68_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls69/r1i4p6/hfls69_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls7/r1i4p6/hfls7_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls70/r1i4p6/hfls70_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls71/r1i4p6/hfls71_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls72/r1i4p6/hfls72_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls73/r1i4p6/hfls73_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls74/r1i4p6/hfls74_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls75/r1i4p6/hfls75_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls76/r1i4p6/hfls76_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls77/r1i4p6/hfls77_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls78/r1i4p6/hfls78_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls79/r1i4p6/hfls79_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls8/r1i4p6/hfls8_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls80/r1i4p6/hfls80_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls81/r1i4p6/hfls81_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls82/r1i4p6/hfls82_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls83/r1i4p6/hfls83_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls84/r1i4p6/hfls84_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls85/r1i4p6/hfls85_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls86/r1i4p6/hfls86_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls87/r1i4p6/hfls87_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls88/r1i4p6/hfls88_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls89/r1i4p6/hfls89_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls9/r1i4p6/hfls9_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls90/r1i4p6/hfls90_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls91/r1i4p6/hfls91_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls92/r1i4p6/hfls92_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls93/r1i4p6/hfls93_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls94/r1i4p6/hfls94_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls95/r1i4p6/hfls95_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls96/r1i4p6/hfls96_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls97/r1i4p6/hfls97_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls98/r1i4p6/hfls98_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls99/r1i4p6/hfls99_A1_pcmdi-08a_2xco2_r1i4p6_197901-197902.nc
-""".split()
-    
-out = {
-   'old_cmor_tables_climatology_test_code' : ['IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-01/2xco2/monClim/atm/tasDiurnal/r1i1p1/tasDiurnal_A1_pcmdi-01_2xco2_r1i1p1_203001-203003_clim.nc'],
-   'old_cmor_tables_test_any_from_asc' : ['IPCC/output/INSTITUTE_ID/pcmdi-01a/2xco2/mon/atm/tas/r1i1p1/tas_2_pcmdi-01a_2xco2_r1i1p1_187001-187003.nc'],
-   'old_cmor_tables_test_any_from_asc_d' : ['IPCC/output/INSTITUTE_ID/pcmdi-01a/2xco2/mon/atm/tas/r1i1p1/tas_2_pcmdi-01a_2xco2_r1i1p1_187001-187003.nc'],
-   'old_cmor_tables_test_any_from_asc_i' : ['IPCC/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atm/tas/r1i1p1/tas_2_pcmdi-08a_2xco2_r1i1p1_187001-187003.nc'],
-   'old_cmor_tables_karls_test' : ['IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-a01/2xco2/mon/atm/cl/r1i1p1/cl_A1_pcmdi-a01_2xco2_r1i1p1_203001-203002.nc',
-                   'IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-a01/2xco2/mon/atmosphere/hfls/r1i1p1/hfls_A1_pcmdi-a01_2xco2_r1i1p1_203001-203002.nc',
-                   'IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-a01/2xco2/mon/atm/mrsos/r1i1p1/mrsos_A1_pcmdi-a01_2xco2_r1i1p1_203001-203002.nc',
-                    'IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-a01/2xco2/mon/atm/ps/r1i1p1/ps_A1_pcmdi-a01_2xco2_r1i1p1_203001-203002.nc',
-                    'IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-a01/2xco2/mon/atm/ta/r1i1p1/ta_A1_pcmdi-a01_2xco2_r1i1p1_203001-203002.nc',
-                    'IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-a01/2xco2/mon/atm/tas/r1i1p1/tas_A1_pcmdi-a01_2xco2_r1i1p1_203001-203002.nc',
-                    'IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-a01/2xco2/mon/atm/ua/r1i1p1/ua_A1_pcmdi-a01_2xco2_r1i1p1_203001-203002.nc'],
-   'old_cmor_tables_test1' : ['IPCC/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atm/hfls/r1i1p1/hfls_2_pcmdi-08a_2xco2_r1i1p1_197901-197902.nc',
-               'IPCC/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atm/mrsos/r1i1p1/mrsos_2_pcmdi-08a_2xco2_r1i1p1_197901-197902.nc',
-               'IPCC/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atm/ta/r1i1p1/ta_2_pcmdi-08a_2xco2_r1i1p1_197901-197902.nc',
-               'IPCC/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atm/tas/r1i1p1/tas_2_pcmdi-08a_2xco2_r1i1p1_197901-197902.nc',
-               'IPCC/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atm/ua/r1i1p1/ua_2_pcmdi-08a_2xco2_r1i1p1_197901-197902.nc'],
-   'old_cmor_tables_test2' : ['IPCC/output/INSTITUTE_ID/pcmdi-01a/2xco2/mon/atm/hfls/r1i1p1/hfls_2_pcmdi-01a_2xco2_r1i1p1_197901-197902.nc',
-               'IPCC/output/INSTITUTE_ID/pcmdi-01a/2xco2/mon/atm/mrsos/r1i1p1/mrsos_2_pcmdi-01a_2xco2_r1i1p1_197901-197902.nc',
-               'IPCC/output/INSTITUTE_ID/pcmdi-01a/2xco2/mon/atm/ta/r1i1p1/ta_2_pcmdi-01a_2xco2_r1i1p1_197901-197902_User-suffix-1979-2001.nc',
-               'IPCC/output/INSTITUTE_ID/pcmdi-01a/2xco2/mon/atm/tas/r1i1p1/tas_2_pcmdi-01a_2xco2_r1i1p1_197901-197902.nc',
-               'IPCC/output/INSTITUTE_ID/pcmdi-01a/2xco2/mon/atm/ua/r1i1p1/ua_2_pcmdi-01a_2xco2_r1i1p1_197901-197902_User-suffix-1979-2001.nc'],
-   'old_cmor_tables_test3' : ['IPCC/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atm/hfls/r1i1p1/hfls_2_pcmdi-08a_2xco2_r1i1p1_197901-197902_1979-2001.nc',
-               'IPCC/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atm/mrsos/r1i1p1/mrsos_2_pcmdi-08a_2xco2_r1i1p1_197901-197902_1979-2001.nc',
-               'IPCC/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atm/ta/r1i1p1/ta_2_pcmdi-08a_2xco2_r1i1p1_197901-197902_1979-2001.nc',
-               'IPCC/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atm/tas/r1i1p1/tas_2_pcmdi-08a_2xco2_r1i1p1_197901-197902_1979-2001.nc',
-               'IPCC/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atm/ua/r1i1p1/ua_2_pcmdi-08a_2xco2_r1i1p1_197901-197902_1979-2001.nc'],
-   'old_cmor_tables_test4' : ['IPCC/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atm/hfls/r1i1p1/hfls_2_pcmdi-08a_2xco2_r1i1p1_197901-197902.nc',
-               'IPCC/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atm/mrsos/r1i1p1/mrsos_2_pcmdi-08a_2xco2_r1i1p1_197901-197902.nc',
-               'IPCC/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atm/ta/r1i1p1/ta_2_pcmdi-08a_2xco2_r1i1p1_197901-197902.nc',
-               'IPCC/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atm/tas/r1i1p1/tas_2_pcmdi-08a_2xco2_r1i1p1_197901-197902.nc',
-               'IPCC/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atm/ua/r1i1p1/ua_2_pcmdi-08a_2xco2_r1i1p1_197901-197902.nc'],
-   'old_cmor_tables_main_prog' : ['IPCC/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atm/hfls/r1i1p1/hfls_2_pcmdi-08a_2xco2_r1i1p1_197901-197902.nc',
-                   'IPCC/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atm/mrsos/r1i1p1/mrsos_2_pcmdi-08a_2xco2_r1i1p1_197901-197902.nc',
-                   'IPCC/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atm/ta/r1i1p1/ta_2_pcmdi-08a_2xco2_r1i1p1_197901-197902.nc',
-                   'IPCC/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atm/tas/r1i1p1/tas_2_pcmdi-08a_2xco2_r1i1p1_197901-197902.nc',
-                   'IPCC/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atm/ua/r1i1p1/ua_2_pcmdi-08a_2xco2_r1i1p1_197901-197902.nc'],
-   'old_cmor_tables_mytest_4d_r' : ['IPCC/output/INSTITUTE_ID/pcmdi-a08/2xco2/mon/atm/ta/r1i1p1/ta_2_pcmdi-a08_2xco2_r1i1p1_194901-194903.nc'],
-   'old_cmor_tables_rewrite_harvardf_data' :['IPCC_Fourth_Assessment/output/INSTITUTE_ID/20c3m/day/atm/tas/r1i1p1/tas_A_20c3m_r1i1p1_19920101-19920110.nc'],
-   'old_cmor_tables_test_3h' : ['IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/3hr/atm/hfls/r1i1p1/hfls_A3_pcmdi-08a_2xco2_r1i1p1_2030010101-2030010104.nc',
-                 'IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/3hr/atm/pr/r1i1p1/pr_A3_pcmdi-08a_2xco2_r1i1p1_2030010101-2030010104.nc',
-                 'IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/3hr/atm/tas/r1i1p1/tas_A3_pcmdi-08a_2xco2_r1i1p1_2030010101-2030010104.nc'],
-   'old_cmor_tables_test_dimensionless' : ['IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-a08/2xco2/mon/atm/cl/r1i1p1/cl_A1_pcmdi-a08_2xco2_r1i1p1_203001-203002.nc',
-                            'IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-a08/2xco2/mon/atm/hfls/r1i1p1/hfls_A1_pcmdi-a08_2xco2_r1i1p1_203001-203002.nc',
-                            'IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-a08/2xco2/mon/atm/mrsos/r1i1p1/mrsos_A1_pcmdi-a08_2xco2_r1i1p1_203001-203002.nc',
-                            'IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-a08/2xco2/mon/atm/ps/r1i1p1/ps_A1_pcmdi-a08_2xco2_r1i1p1_203001-203002.nc',
-                            'IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-a08/2xco2/mon/atm/ta/r1i1p1/ta_A1_pcmdi-a08_2xco2_r1i1p1_203001-203002.nc',
-                            'IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-a08/2xco2/mon/atm/tas/r1i1p1/tas_A1_pcmdi-a08_2xco2_r1i1p1_203001-203002.nc',
-                            'IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-a08/2xco2/mon/atm/tro3/r1i1p1/tro3_A1_pcmdi-a08_2xco2_r1i1p1_203001-203002.nc',
-                            'IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-a08/2xco2/mon/atm/ua/r1i1p1/ua_A1_pcmdi-a08_2xco2_r1i1p1_203001-203002.nc'],
-   'old_cmor_tables_test_fortran_example_00' : ['IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atm/cl/r1i1p1/cl_A1_pcmdi-08a_2xco2_r1i1p1_203001-203002_ftn.nc',
-                                 'IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls/r1i1p1/hfls_A1_pcmdi-08a_2xco2_r1i1p1_203001-203002_ftn-00.nc',
-                                 'IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atm/mrsos/r1i1p1/mrsos_A1_pcmdi-08a_2xco2_r1i1p1_203001-203002_ftn-00.nc',
-                                 'IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atm/ps/r1i1p1/ps_A1_pcmdi-08a_2xco2_r1i1p1_203001-203002_ftn-00.nc',
-                                 'IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atm/ta/r1i1p1/ta_A1_pcmdi-08a_2xco2_r1i1p1_203001-203002_ftn-00.nc',
-                                 'IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atm/tas/r1i1p1/tas_A1_pcmdi-08a_2xco2_r1i1p1_203001-203002_ftn-00.nc',
-                                 'IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atm/ua/r1i1p1/ua_A1_pcmdi-08a_2xco2_r1i1p1_203001-203002_ftn-00.nc'],
-   'old_cmor_tables_test_fortran_example_01' : ['IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls/r1i1p1/hfls_A1_pcmdi-08a_2xco2_r1i1p1_198001-198002_ftn-01.nc',] ,
-   'old_cmor_tables_test_fortran_example_02' : ['Test/IPCC_Fourth_Assessment/output/INSTITUTE_ID/mon/REALM/hfls/r1i1p1/hfls_A1_r1i1p1_203001-203002_ftn-02.nc',
-                                 'Test/IPCC_Fourth_Assessment/output/INSTITUTE_ID/mon/REALM/mrsos/r1i1p1/mrsos_A1_r1i1p1_203001-203002_ftn-02.nc',
-                                 'Test/IPCC_Fourth_Assessment/output/INSTITUTE_ID/mon/REALM/ps/r1i1p1/ps_A1_r1i1p1_203001-203002_ftn-02.nc',
-                                 'Test/IPCC_Fourth_Assessment/output/INSTITUTE_ID/mon/REALM/tas/r1i1p1/tas_A1_r1i1p1_203001-203002_ftn-02.nc',
-                                 ],
-   'old_cmor_tables_test_station_data': [None],
-   'old_cmor_tables_test_cmor_grid_alejandro' : [None],
-   'old_cmor_tables_test_sophie': ['IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/fx/atmosphere/hfls/r0i0p0/hfls_A1_pcmdi-08a_r0i0p0.nc'],
-   'old_cmor_tables_test_region' : ['IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atm/hfogo/r1i1p1/hfogo_O1_pcmdi-08a_2xco2_r1i1p1_203001-203002.nc'],
-   'old_cmor_tables_test_sigma' : ['IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atm/cl/r1i1p1/cl_A1_pcmdi-08a_2xco2_r1i1p1_203001-203002.nc',
-                    'IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atm/hfls/r1i1p1/hfls_A1_pcmdi-08a_2xco2_r1i1p1_203001-203002.nc',
-                    'IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atm/mrsos/r1i1p1/mrsos_A1_pcmdi-08a_2xco2_r1i1p1_203001-203002.nc',
-                    'IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atm/ps/r1i1p1/ps_A1_pcmdi-08a_2xco2_r1i1p1_203001-203002.nc',
-                    'IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atm/ta/r1i1p1/ta_A1_pcmdi-08a_2xco2_r1i1p1_203001-203002.nc',
-                    'IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atm/tas/r1i1p1/tas_A1_pcmdi-08a_2xco2_r1i1p1_203001-203002.nc',
-                    'IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atm/tro3/r1i1p1/tro3_A1_pcmdi-08a_2xco2_r1i1p1_203001-203002.nc',
-                    'IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atm/ua/r1i1p1/ua_A1_pcmdi-08a_2xco2_r1i1p1_203001-203002.nc'],
-   'old_cmor_tables_test_singleton' : ['IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atm/cl/r1i1p1/cl_A1_pcmdi-08a_2xco2_r1i1p1_203001-203002.nc',
-                        'IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls/r1i1p1/hfls_A1_pcmdi-08a_2xco2_r1i1p1_203001-203002.nc',
-                        'IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atm/mrsos/r1i1p1/mrsos_A1_pcmdi-08a_2xco2_r1i1p1_203001-203002.nc',
-                        'IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atm/ps/r1i1p1/ps_A1_pcmdi-08a_2xco2_r1i1p1_203001-203002.nc',
-                        'IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atm/ta/r1i1p1/ta_A1_pcmdi-08a_2xco2_r1i1p1_203001-203002.nc',
-                        'IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atm/tas/r1i1p1/tas_A1_pcmdi-08a_2xco2_r1i1p1_203001-203002.nc',
-                        'IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atm/ua/r1i1p1/ua_A1_pcmdi-08a_2xco2_r1i1p1_203001-203002.nc'],
-   'old_cmor_tables_mytest_4d_r_big_array' : ['IPCC/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atm/ta/r1i1p1/ta_2_pcmdi-08a_2xco2_r1i1p1_194901-194903.nc'],
-   'old_cmor_tables_mytest_4d_d_big_array_2' : ['IPCC/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atm/ta/r1i1p1/ta_2_pcmdi-08a_2xco2_r1i1p1_194901-194903.nc'],
-   'old_cmor_tables_mytest_4d_d_big_array_3' : ['IPCC/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atm/ta/r1i1p1/ta_2_pcmdi-08a_2xco2_r1i1p1_194901-194903.nc'],
-   'old_cmor_tables_mytest_4d_d_big_array_4' : ['IPCC/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atm/ta/r1i1p1/ta_2_pcmdi-08a_2xco2_r1i1p1_194901-194903.nc'],
-   'old_cmor_tables_mytest_4d_d_big_array_5' : ['IPCC/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atm/ta/r1i1p1/ta_2_pcmdi-08a_2xco2_r1i1p1_194901-194903.nc'],
-   'old_cmor_tables_test_lots_of_variables' : lots,
-   'old_cmor_tables_test_shrt_exp_nm_set_att_initi' : ['IPCC_Fourth_Assessment/output/INSTITUTE_ID/pcmdi-08a/2xco2/mon/atmosphere/hfls0/r1i1p1/hfls0_A1_pcmdi-08a_2xco2_r1i1p1_197901-197902.nc'],
-    }
diff --git a/Test/python_test_table_A b/Test/python_test_table_A
deleted file mode 100644
index 7292432..0000000
--- a/Test/python_test_table_A
+++ /dev/null
@@ -1,2388 +0,0 @@
-cmor_version: 2.0         ! version of CMOR that can read this table
-cf_version:   1.0         ! version of CF that output conforms to
-project_id:   IPCC Fourth Assessment  ! project id
-table_id:     Table A1    ! table id
-table_date:   17 November 2004 ! date this table was constructed
-required_global_attributes: creation_date tracking_id model_id forcing
-
-expt_id_ok:   'pre-industrial control experiment'
-expt_id_ok:   'present-day control experiment'
-expt_id_ok:   'climate of the 20th Century experiment (20C3M)'
-expt_id_ok:   'committed climate change experiment'  ! official name(s) of 
-expt_id_ok:   'SRES A2 experiment'                   !  project's experiments
-expt_id_ok:   '720 ppm stabilization experiment (SRES A1B)'    
-expt_id_ok:   '550 ppm stabilization experiment (SRES B1)'
-expt_id_ok:   '1%/year CO2 increase experiment (to doubling)'
-expt_id_ok:   '1%/year CO2 increase experiment (to quadrupling)'
-expt_id_ok:   'slab ocean control experiment'
-expt_id_ok:   '2xCO2 equilibrium experiment'
-expt_id_ok:   'AMIP experiment'
-
-baseURL: http://cmip-pcmdi.llnl.gov
-
-magic_number: -1          ! used to check whether this file has been 
-                          !   altered from the official version.
-                          !   should be set to number of non-blank 
-                          !   characters in file. 
-approx_interval:  30.     ! approximate spacing between successive time
-                          !   samples (in units of the output time 
-                          !   coordinate), but this is ignored if set to 0.
-missing_value: 1.e20      ! value used to indicate a missing value
-                          !   in arrays output by netCDF as 32-bit IEEE 
-                          !   floating-point numbers (float or real)
-
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-! SUBROUTINE ARGUMENT DEFAULT INFORMATION
-!
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-!  set default specifications for subroutine arguments to:
-!     required/indeterminate/optional/ignored/forbidden
-!    (indeterminate may or may not be required information, but is not always
-!     required as an argument of the function call)
-!
-!
-!============
-subroutine_entry: cmor_axis
-!============
-!
-required: table axis_name units length coord_vals cell_bounds
-ignored: interval
-!
-!============
-subroutine_entry: cmor_variable
-!============
-!
-required: table table_entry units axis_ids
-indeterminate: missing_value
-optional: tolerance original_name history comment
-ignored: positive
-!
-!============
-subroutine_entry: cmor_write
-!============
-!
-required:  var_id data 
-indeterminate: ntimes_passed time_vals time_bnds store_with
-optional: file_suffix
-!
-!
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-! AXIS INFORMATION
-!
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-! ??? what about climatology???
-! ??? what about model level data???
-!
-!
-!  TEMPLATE FOR AXES
-!
-!============
-!axis_entry:               ! (required)
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-!    acceptable arguments include units length coord_vals cell_bounds interval
-!required:                  ! (default: table axis_name units length
-!                                        coord_vals cell_bounds)
-!indeterminate:
-!optional:
-!ignored:                   ! (default: interval)
-!forbidden:
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-!standard_name:             ! (required)
-!units:                     ! (required)
-!axis:                      ! X, Y, Z, T (default: undeclared)
-!positive:                  ! up or down (default: undeclared)
-!long_name:                 ! (default: undeclared)
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-!out_name:                ! (default: same as axis_entry) 
-!type:                    ! double (default), real, character, integer
-!stored_direction:        ! increasing (default) or decreasing
-!valid_min:               ! type: double precision (default: no check performed
-!valid_max:               ! type: double precision (default: no check performed
-!requested:               ! space-separated list of requested coordinates 
-                          !       (default: undeclared)
-!bounds_requested:        ! space-separated list of requested coordinate bounds
-                          !       (default: undeclared)
-!tol_on_requests:         ! fractional tolerance for meeting request
-                          !  (default=1.e-3, which is used in the formula:
-                          !     eps =  MIN(( tol*interval between grid-points)
-                          !          and (1.e-3*tol*coordinate value)))
-!value:                   ! of scalar (singleton) dimension 
-!bounds_values:           ! of scalar (singleton) dimension bounds
-!----------------------------------	
-!
-!
-!  TEMPLATE FOR VARIABLES
-!
-!
-!============
-!variable_entry:                ! (required)
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-!        acceptable arguments include  file_suffix missing_value tolerance 
-!                               original_name history comment positive
-!required:                   ! (default: table table_entry units axis_ids)
-!indeterminate:              ! (default: file_suffix missing_value)
-!optional:                   ! (default: original_name history comment)
-!ignored:                    ! (default: positive)
-!forbidden:
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-!standard_name:              ! (required)
-!units:                      ! (required)
-!cell_methods:               ! (default: undeclared)
-!long_name:                  ! (default: undeclared)
-!comment:                    ! (default: undeclared)
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-!dimensions:                 ! (required)  (scalar dimension(s) should appear
-                             !      last in list)
-!out_name:                   ! (default: variable_entry)
-!type:                       ! real (default), double, integer 
-!positive:                   ! up or down (default: undeclared)
-!valid_min:                  ! type: real (default: no check performed)
-!valid_max:                  ! type: real (default: no check performed)
-!ok_min_mean_abs:            ! type: real (default: no check performed)
-!ok_max_mean_abs:            ! type: real (default: no check performed)
-!----------------------------------	
-! 
-
-!
-!============
-axis_entry: longitude
-!============
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    longitude
-units:            degrees_east
-axis:             X
-long_name:        longitude
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lon
-valid_min:        0.           ! CMOR will add n*360 to input values
-                               ! (where n is an integer) to ensure 
-                               !  longitudes are in proper range.  The
-                               !  data will also be rearranged 
-                               !  appropriately.
-valid_max:        360.         !  see above comment.
-!----------------------------------	
-!
-!
-!=============
-axis_entry: latitude
-!=============
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    latitude
-units:            degrees_north
-axis:             Y
-long_name:        latitude
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lat
-valid_min:        -90.
-valid_max:        90.
-!----------------------------------	
-!
-!
-
-! ??? What about climatological data???
-!
-
-!============
-axis_entry: time
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-optional: interval length
-indeterminate: coord_vals cell_bounds
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    time
-units:            days since ?
-axis:             T
-long_name:        time
-!----------------------------------	
-!
-!
-!============
-axis_entry: pressure
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-ignored: cell_bounds
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    air_pressure
-units:            Pa 
-axis:             Z
-positive:         down
-long_name:        pressure
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         plev
-stored_direction: decreasing
-valid_min:        0.
-valid_max:        110000.
-!requested:        100000. 92500. 85000. 70000. 60000. 50000. 40000. 
-!requested:         30000. 25000. 20000. 15000. 10000.  7000.  5000.
-!requested:          3000.  2000.  1000.
-!----------------------------------	
-!
-!
-!============
-axis_entry: height1
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-ignored: cell_bounds
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    height
-units:            m
-axis:             Z
-positive:         up
-long_name:        height
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         height
-valid_min:        0.
-valid_max:        10.
-value:            2.
-!----------------------------------	
-!
-!
-!============
-axis_entry: height2
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-ignored: cell_bounds
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    height
-units:            m
-axis:             Z
-positive:         up
-long_name:        height
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         height
-valid_min:        0.
-valid_max:        30.
-value:            10.
-!----------------------------------	
-!
-!
-!============
-axis_entry: depth1
-!============
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    depth
-units:            m
-axis:             Z
-positive:         down
-long_name:         depth
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         depth
-valid_min:        0.0
-valid_max:        1.0
-value:            0.05
-bounds_values:    0.0 0.1
-!----------------------------------
-!
-!
-!============
-axis_entry: pressure1
-!
-!   Scalar dimension (200 hPa) defined for near-tropopause radiation fluxes
-!      (rsntp, rlntp, rsntpcs, rlntpcs, rsftropa_?, rsftropi_?, rlftropa_?, 
-!       rlftropi_?, rsftropacs_?, rsftropics_?, rlftropacs_?, rlftropics_?)
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-ignored: cell_bounds
-!------------
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    air_pressure
-units:            Pa
-axis:             Z
-positive:         down
-long_name:        pressure
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         plev
-valid_min:        10000.
-valid_max:        30000.
-value:            20000.
-!----------------------------------
-!
-!
-!============
-axis_entry: pressure2
-!============
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    air_pressure
-stored_direction: decreasing
-units:            Pa
-axis:             Z
-positive:         down
-long_name:        pressure
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         plev
-bounds_requested: 100000. 80000. 80000. 68000. 68000. 56000. 56000. 44000. 44000. 31000. 31000. 18000. 18000.   0.
-!bounds_requested:  56000. 44000. 44000. 31000. 31000. 18000.
-!bounds_requested:  18000.     0.
-!----------------------------------!
-!
-!
-!============
-axis_entry: pressure3
-!
-!   Is defined for Table A1e: sulfate aerosol data (trsul)
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-optional: cell_bounds
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    air_pressure
-units:            Pa 
-axis:             Z
-positive:         down
-long_name:        pressure
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         plev
-stored_direction: decreasing
-valid_min:        0.
-valid_max:        110000.
-requested:        100400. 98300. 95300. 91000. 84800. 76500. 66300. 
-requested:         54600. 42500. 31800. 23800. 18300. 14000. 10300.
-requested:          7200.  4700.  2700.  1300.   400.
-!----------------------------------	
-!
-!
-!============
-axis_entry: tau
-!============
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    cloud_optical_depth
-units:            1
-long_name:        optical depth
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-bounds_requested:  0.0  0.3  0.3  1.3  1.3  3.6  3.6  9.4 
-bounds_requested:  9.4 23.0 23.0 60.0 60.0 100000.
-!----------------------------------
-!
-!
-!============
-axis_entry: standard_sigma
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-optional: units
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    atmosphere_sigma_coordinate
-axis:             Z
-positive:         down
-long_name:        sigma coordinate
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lev
-stored_direction: decreasing
-valid_min:        0.0
-valid_max:        1.0
-formula:          p(n,k,j,i) = ptop + sigma(k)*(ps(n,j,i) - ptop)
-convert_to:       standard_hybrid_sigma
-z_factors:        ptop: ptop sigma: sigma ps: ps
-z_bounds_factors: ptop: ptop sigma: sigma_bnds ps: ps
-!----------------------------------	
-!
-!
-!============
-axis_entry:  standard_hybrid_sigma
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-optional: units
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    atmosphere_hybrid_sigma_pressure_coordinate
-units:            1
-axis:             Z 
-positive:         down
-long_name:        hybrid sigma pressure coordinate
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lev
-stored_direction: decreasing
-valid_min:        0.0
-valid_max:        1.0
-formula:          p(n,k,j,i) = a(k)*p0 + b(k)*ps(n,j,i)
-z_factors:        p0: p0 a: a b: b ps: ps
-z_bounds_factors: p0: p0 a: a_bnds b: b_bnds ps: ps
-!----------------------------------		
-!
-!
-!============
-axis_entry:  alternate_hybrid_sigma
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-optional: units
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    atmosphere_hybrid_sigma_pressure_coordinate
-stored_direction: decreasing
-units:            1
-axis:             Z
-positive:         down
-long_name:        hybrid sigma pressure coordinate
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lev
-valid_min:        0.0
-valid_max:        1.0
-formula:          p(n,k,j,i) = ap(k) + b(k)*ps(n,j,i)
-convert_to:       standard_hybrid_sigma
-z_factors:        p0: p0 ap: ap b: b ps: ps
-z_bounds_factors: p0 ap: ap_bnds b: b_bnds ps: ps
-!----------------------------------		
-!
-!
-!============
-axis_entry:  hybrid_height
-!============
-!
-!    Override default argument specifications for cmor_axis 
-!------------
-optional: units
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    atmosphere_hybrid_height_coordinate
-units:            m
-axis:             Z 
-positive:         up
-long_name:        hybrid height coordinate
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lev
-stored_direction: increasing
-valid_min:        0.0
-formula:          z(k,j,i) = a(k) + b(k)*orog(j,i)
-z_factors:        a: a b: b orog: orog
-z_bounds_factors: a: a_bnds b: b_bnds orog: orog
-!----------------------------------		
-!
-!
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-! VARIABLE INFORMATION
-!
-!*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
-!
-!
-!
-! ***************************************************************
-!
-! Vertical dimensionless coordinate variables:
-!
-! ***************************************************************
-!
-!
-!
-!============
-variable_entry: p0
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-ignored: axis_ids
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:       reference pressure for hybrid sigma coordinate 
-units:           Pa
-!----------------------------------	
-!
-!
-!============
-variable_entry: ptop
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-ignored: axis_ids
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:       pressure at top of model 
-units:           Pa
-!----------------------------------	
-!
-!
-!============
-variable_entry: sigma
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-optional: units
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:  sigma coordinate
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: sigma_bnds
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-optional: units
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:  sigma coordinate for layer bounds
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: a
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-optional: units
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   hybrid sigma coordinate A coefficient for layer
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: b
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-optional: units
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   hybrid sigma coordinate B coefficient for layer
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: a_bnds
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-optional: units
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   hybrid sigma coordinate A coefficient for layer bounds
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: b_bnds
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-optional: units
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   hybrid sigma coordinate B coefficient for layer bounds
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------
-!
-!
-!============
-variable_entry: ap
-!============
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   alternate hybrid sigma coordinate A coefficient for layer
-units:           Pa
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: ap_bnds
-!============
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   alternate hybrid sigma coordinate A coefficient for layer bounds
-units:           Pa
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: ztop
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-ignored: axis_ids
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:       height of top of model 
-units:           m
-!----------------------------------	
-!
-!
-!============
-variable_entry: az
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-optional: units
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   hybrid height coordinate coefficient (eta) for layer
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: bz
-!============
-!
-!    Override default argument specifications for cmor_variable 
-!------------
-optional: units
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   hybrid height coordinate coefficient (tau) for layer
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: az_bnds
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-optional: units
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   hybrid sigma coordinate coefficient (eta) for layer bounds
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: bz_bnds
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-optional: units
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   hybrid sigma coordinate B coefficient (tau) for layer bounds
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         zlevel
-type:               double
-!----------------------------------
-!
-!
-!
-! ***************************************************************
-!
-! IPCC Table A1a: Monthly-mean 2-d atmosphere or land surface data
-!
-! ***************************************************************
-!
-!
-!
-!============
-variable_entry: psl
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:   air_pressure_at_sea_level     
-units:           Pa
-cell_methods:    time: mean
-long_name:       Sea Level Pressure
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-valid_min:        90000.
-valid_max:        120000.
-ok_min_mean_abs:  102000.
-ok_max_mean_abs:  98000.
-!----------------------------------	
-! 
-!
-!============
-variable_entry: pr
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:  precipitation_flux
-units:          kg m-2 s-1
-cell_methods:   time: mean
-long_name:      Precipitation
-comment:        includes all types (rain, snow, large-scale, convective, etc.)
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         longitude latitude time
-valid_min:          0.0
-valid_max:          1.e-3
-ok_min_mean_abs:    1.e-6
-ok_max_mean_abs:    5.e-5 
-!----------------------------------	
-!
-!
-!============
-variable_entry: tas
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:   air_temperature     
-units:           K
-cell_methods:    time: mean
-long_name:       Surface Air Temperature
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time height1
-valid_min:        195.
-valid_max:        330.
-ok_min_mean_abs:  270.
-ok_max_mean_abs:  300.
-!----------------------------------	
-! 
-!
-!============
-variable_entry: mrsos
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: moisture_content_of_soil_layer
-units:         kg m-2
-cell_methods:  time: mean
-long_name:     Moisture in Upper 0.1 m of Soil Column
-comment:         includes subsurface frozen water but not surface snow and ice 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time depth1
-!----------------------------------	 
-!
-!
-!============
-variable_entry: mrso
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: soil_moisture_content
-units:         kg m-2
-cell_methods:  time: mean
-long_name:     Total Soil Moisture Content
-comment:         includes subsurface frozen water but not surface snow and ice 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-!----------------------------------	 
-!
-!
-!============
-variable_entry: tauu
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_downward_eastward_stress
-units:         Pa
-cell_methods:  time: mean
-long_name:     Zonal Surface Wind Stress
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         down
-!----------------------------------	
-! 
-!
-!============
-variable_entry: tauv
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_downward_northward_stress
-units:         Pa
-cell_methods:  time: mean
-long_name:     Meridional Surface Wind Stress
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         down
-!----------------------------------	
-! 
-!
-!============
-variable_entry: snd
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_snow_thickness
-units:         m
-cell_methods:  time: mean
-long_name:     Snow Depth
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-valid_min:        0.0
-!----------------------------------	
-! 
-!
-!============
-variable_entry: hfls
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_latent_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Latent Heat Flux
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        -120
-valid_max:        900.
-ok_min_mean_abs:  50.
-ok_max_mean_abs:  120.
-!----------------------------------	
-! 
-!
-!============
-variable_entry: hfss
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upward_sensible_heat_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Sensible Heat Flux
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-!----------------------------------	
-! 
-!
-!============
-variable_entry: rlds
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_downwelling_longwave_flux_in_air
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Downwelling Longwave Radiation
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         down
-valid_min:        20.
-valid_max:        600.
-ok_min_mean_abs:  300.
-ok_max_mean_abs:  370.
-!----------------------------------	
-! 
-!
-!============
-variable_entry: rlus
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upwelling_longwave_flux_in_air
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Upwelling Longwave Radiation
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         up
-valid_min:        50.
-valid_max:        750.
-ok_min_mean_abs:  250.
-ok_max_mean_abs:  450.
-!----------------------------------	
-! 
-!
-!============
-variable_entry: rsds
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_downwelling_shortwave_flux_in_air
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Downwelling Shortwave Radiation
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         down
-valid_min:        0.
-valid_max:        550.
-ok_min_mean_abs:  150.
-ok_max_mean_abs:  220.
-!----------------------------------	
-! 
-!
-!============
-variable_entry: rsus
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upwelling_shortwave_flux_in_air
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Surface Upwelling Shortwave Radiation
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-valid_min:        0.
-positive:         up
-!----------------------------------	
-! 
-!
-!============
-variable_entry: ts
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_temperature
-units:         K    
-cell_methods:  time: mean
-long_name:     Surface Skin Temperature
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-valid_min:        170.
-valid_max:        340.
-ok_min_mean_abs:  280.
-ok_max_mean_abs:  300.
-!----------------------------------	
-! 
-!
-!============
-variable_entry: ps
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:   surface_air_pressure     
-units:           Pa
-cell_methods:    time: mean
-long_name:       Surface Pressure
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-valid_min:        0.48e5
-valid_max:        1.1e5
-ok_min_mean_abs:  0.97e5
-ok_max_mean_abs:  1.0e5
-!----------------------------------	
-!
-!
-!============
-variable_entry: prsn
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:  snowfall_flux
-units:          kg m-2 s-1
-cell_methods:   time: mean
-long_name:      Snowfall Flux
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         longitude latitude time
-valid_min:          0.0
-!----------------------------------	
-!
-!
-!============
-variable_entry: prc
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:  convective_precipitation_flux
-units:          kg m-2 s-1
-cell_methods:   time: mean
-long_name:      Convective Precipitation
-comment:        includes both liquid and solid phases
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         longitude latitude time
-valid_min:          0.0
-!----------------------------------	
-!
-!
-!============
-variable_entry: prw
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:  atmosphere_water_vapor_content
-units:          kg m-2
-cell_methods:   time: mean
-long_name:      Precipitable Water
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         longitude latitude time
-valid_min:          0.0
-valid_max:          150.
-ok_min_mean_abs:    20.
-ok_max_mean_abs:    30. 
-!----------------------------------	
-!
-!
-!============
-variable_entry: mrfso
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: soil_frozen_water_content
-units:         kg m-2
-cell_methods:  time: mean
-long_name:     Soil Frozen Water Content
-comment:       excludes surface snow and ice
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-valid_min:          0.0
-!----------------------------------	 
-!
-!
-!============
-variable_entry: mrros
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_runoff_flux
-units:         kg m-2 s-1
-cell_methods:  time: mean
-long_name:     Surface Runoff
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-!----------------------------------	 
-!
-!
-!============
-variable_entry: mrro
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: runoff_flux
-units:         kg m-2 s-1
-cell_methods:  time: mean
-long_name:     Surface and Subsurface Runoff
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-!----------------------------------	 
-!
-!
-!============
-variable_entry: snw
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_snow_amount_where_land
-units:         kg m-2
-cell_methods:  time: mean
-long_name:     Snow Amount
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-valid_min:          0.0
-!----------------------------------	 
-!
-!
-!============
-variable_entry: snc
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_snow_area_fraction_where_land
-units:         %
-cell_methods:  time: mean
-long_name:     Snow Area Fraction
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-valid_min:          0.0
-valid_max:          100.
-!----------------------------------	 
-!
-!
-!============
-variable_entry: snm
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_snow_melt_flux_where_land
-units:         kg m-2 s-1
-cell_methods:  time: mean
-long_name:     Snow Melt
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-valid_min:          0.0
-!----------------------------------	 
-!
-!
-!============
-variable_entry: uas
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:   eastward_wind    
-units:           m s-1
-cell_methods:    time: mean
-long_name:       Zonal Surface Wind Speed
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time height2
-!----------------------------------	
-! 
-!
-!============
-variable_entry: vas
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:   northward_wind    
-units:           m s-1
-cell_methods:    time: mean
-long_name:       Meridional Surface Wind Speed
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time height2
-!----------------------------------	
-! 
-!
-!============
-variable_entry: huss
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:   specific_humidity   
-units:           kg kg-1
-cell_methods:    time: mean
-long_name:       Surface Specific Humidity
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time height1
-valid_min:        0.0
-!----------------------------------	
-! 
-!
-!============
-variable_entry: rsdt
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: toa_incoming_shortwave_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     TOA Incident Shortwave Radiation
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-valid_min:        0.
-positive:         down
-!----------------------------------	
-! 
-!
-!============
-variable_entry: rsut
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: toa_outgoing_shortwave_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     TOA Reflected Shortwave Radiation
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-valid_min:        0.
-positive:         up
-!----------------------------------	
-! 
-!
-!============
-variable_entry: rlut
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: toa_outgoing_longwave_flux
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Outgoing Longwave Radiation
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-valid_min:        10.
-valid_max:        500.
-positive:         up
-!----------------------------------	
-! 
-!
-!============
-variable_entry: rtmt
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: net_downward_radiative_flux_at_top_of_atmosphere_model
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Net Flux at Top of Model
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-positive:         down
-!----------------------------------	
-! 
-!
-!============
-variable_entry: rsntp
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: net_downward_shortwave_flux_in_air
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Net Downward Shortwave Flux at 200 hPa
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time pressure1
-valid_min:        0.
-positive:         down
-!----------------------------------	
-! 
-!
-!============
-variable_entry: rlntp
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: net_upward_longwave_flux_in_air
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Net Upward Longwave Flux at 200 hPa
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time pressure1
-valid_min:        0.
-positive:         up
-!----------------------------------	
-! 
-!
-!============
-variable_entry: rsntpcs
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: net_downward_shortwave_flux_in_air_assuming_clear_sky
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Net Downward Clear-Sky Shortwave Flux at 200 hPa
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time pressure1
-valid_min:        0.
-positive:         down
-!----------------------------------	
-! 
-!
-!============
-variable_entry: rlntpcs
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: net_upward_longwave_flux_in_air_assuming_clear_sky
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Net Upward Clear-Sky Longwave Flux at 200 hPa
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time pressure1
-valid_min:        0.
-positive:         up
-!----------------------------------	
-! 
-!
-!============
-variable_entry: rsdscs
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_downwelling_shortwave_flux_in_air_assuming_clear_sky
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Incident Surface Clear-Sky Shortwave
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-valid_min:        0.
-positive:         down
-!----------------------------------	
-! 
-!
-!============
-variable_entry: rsuscs
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_upwelling_shortwave_flux_in_air_assuming_clear_sky
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Reflected Surface Clear-Sky Shortwave
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-valid_min:        0.
-positive:         up
-!----------------------------------	
-! 
-!
-!============
-variable_entry: rldscs
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_downwelling_longwave_flux_in_air_assuming_clear_sky
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Downwelling Surface Clear-Sky Longwave
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-valid_min:        0.
-positive:         down
-!----------------------------------	
-! 
-!
-!============
-variable_entry: rlutcs
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: toa_outgoing_longwave_flux_assuming_clear_sky
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Outgoing Clear-Sky Longwave
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-valid_min:        10.
-valid_max:        500.
-positive:         up
-!----------------------------------	
-! 
-!
-!============
-variable_entry: rsutcs
-!============
-!
-!    Override default argument specifications for cmor_variable
-!------------
-required: positive
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: toa_outgoing_shortwave_flux_assuming_clear_sky
-units:         W m-2
-cell_methods:  time: mean
-long_name:     Reflected Clear-Sky Shortwave
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-valid_min:        0.
-positive:         up
-!----------------------------------	
-! 
-!
-!============
-variable_entry: clt2
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: cloud_area_fraction
-units:         %
-cell_methods:  time: mean
-long_name:     Total Cloud Fraction
-deflate: 1
-deflate_level: 9
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-valid_min:        0.0
-valid_max:        100.0
-ok_min_mean_abs:  30.
-ok_max_mean_abs:  75.
-!----------------------------------	
-! 
-!
-!============
-variable_entry: clt
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: cloud_area_fraction
-units:         %
-cell_methods:  time: mean
-long_name:     Total Cloud Fraction
-deflate: 0
-deflate_level: 0
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-valid_min:        0.0
-valid_max:        100.0
-ok_min_mean_abs:  30.
-ok_max_mean_abs:  75.
-!----------------------------------	
-! 
-!
-!============
-variable_entry: clwvi
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: atmosphere_cloud_condensed_water_content
-units:         kg m-2
-cell_methods:  time: mean
-long_name:     Column Integerated Cloud Water Content
-comment:       should include both liquid and solid phase
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-valid_min:        0.0
-!----------------------------------	
-! 
-!
-!============
-variable_entry: clivi
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: atmosphere_cloud_ice_content
-units:         kg m-2
-cell_methods:  time: mean
-long_name:     Column Integerated Cloud Ice Content
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-valid_min:        0.0
-!----------------------------------	
-!
-!
-!
-!
-! ***************************************************************
-!
-! IPCC Table A1b: Time-independent 2-d land surface data
-!
-! ***************************************************************
-!
-!
-!
-!============
-variable_entry: orog
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: surface_altitude
-units:         m
-long_name:     Surface Altitude
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude
-valid_min:        -500.
-valid_max:        12000.
-ok_min_mean_abs:  0.
-ok_max_mean_abs:  2000.
-!----------------------------------	
-!
-!
-!============
-variable_entry: sftlf
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: land_area_fraction
-units:         %
-long_name:     Land Area Fraction
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude
-valid_min:        0.0
-valid_max:        100.
-ok_min_mean_abs:  20.
-ok_max_mean_abs:  40.
-!----------------------------------	
-!
-!
-!============
-variable_entry: sftgif
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: land_ice_area_fraction
-units:         %
-long_name:     Fraction of Grid Cell Covered with Glacier
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude
-valid_min:        0.0
-valid_max:        100.
-!----------------------------------	
-!
-!
-!============
-variable_entry: mrsofc
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: soil_moisture_content_at_field_capacity
-units:         kg m-2
-long_name:     Capacity of Soil to Store Water
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude
-!----------------------------------	
-!
-!
-!
-!
-! ***************************************************************
-!
-! IPCC Table A1c: Monthly-mean 3-d atmosphere data
-!
-! ***************************************************************
-!
-!
-!
-!============
-variable_entry: cl
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name:  cloud_area_fraction_in_atmosphere_layer
-units:          %
-cell_methods:   time: mean
-long_name:      Cloud Fraction
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         longitude latitude zlevel time
-valid_min:          0.0
-valid_max:          100.0
-ok_min_mean_abs:    10.0
-ok_max_mean_abs:    90.0
-!----------------------------------	
-!
-!
-!============
-variable_entry: ta
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: air_temperature
-units:         K
-cell_methods:  time: mean
-long_name:     Temperature
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude pressure2 time
-valid_min:        150.
-valid_max:        350.
-ok_min_mean_abs:  200.
-ok_max_mean_abs:  300.
-!----------------------------------	
-!
-!
-!============
-variable_entry: ua
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: eastward_wind
-units:         m s-1
-cell_methods:  time: mean
-long_name:     Zonal Wind Component
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude pressure time
-valid_min:        -200.
-valid_max:        300.
-ok_min_mean_abs:  0.1
-ok_max_mean_abs:  100.
-!----------------------------------	
-!
-!
-!============
-variable_entry: va
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: northward_wind
-units:         m s-1
-cell_methods:  time: mean
-long_name:     Meridional Wind Component
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude pressure time
-valid_min:        -100.
-valid_max:        100.
-ok_min_mean_abs:  0.1
-ok_max_mean_abs:  50.
-!----------------------------------	
-!
-!
-!============
-variable_entry: hus
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: specific_humidity
-units:         1
-cell_methods:  time: mean
-long_name:     Specific Humidity 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude pressure time
-!----------------------------------	
-!
-!
-!============
-variable_entry: wap
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: lagrangian_tendency_of_air_pressure
-units:         Pa s-1
-cell_methods:  time: mean
-long_name:     Omega (=dp/dt) 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude pressure time
-!----------------------------------	
-!
-!
-!============
-variable_entry: zg
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: geopotential_height
-units:         m
-cell_methods:  time: mean
-long_name:     Geopotential Height 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude pressure time
-!----------------------------------	
-!
-!
-!============
-variable_entry: hur
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: relative_humidity
-units:         %
-cell_methods:  time: mean
-long_name:     Relative Humidity 
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude pressure time
-valid_min:        0.
-valid_max:        100.
-ok_min_mean_abs:  1.
-ok_max_mean_abs:  99.
-!----------------------------------	
-!
-!
-!============
-variable_entry: tro3
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: mole_fraction_of_o3_in_air
-units:         1e-9
-cell_methods:  time: mean
-long_name:     Ozone Mole Fraction
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude pressure time
-!----------------------------------	
-!
-!
-!
-!
-! ***************************************************************
-!
-! IPCC Table A1d: Monthly-mean 3-d ISCCP simulator data
-!
-! ***************************************************************
-!
-!
-!
-!============
-variable_entry: clisccp
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: isccp_cloud_area_fraction
-units:         1
-cell_methods:  time: mean
-long_name:     Cloud Fraction as Calculated by the ISCCP Simulator
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude pressure2 tau time
-valid_min:        0.0
-valid_max:        1.0
-ok_min_mean_abs:  0.001
-ok_max_mean_abs:  0.9
-!----------------------------------	
-!
-!
-!
-!
-! ***************************************************************
-!
-! IPCC Table A1e: Monthly-mean 2-d and 3-d sulfate aerosol fields
-!
-! ***************************************************************
-!
-!
-!
-!============
-variable_entry: trsul
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: mass_concentration_of_sulfate_aerosol_in_air 
-units:         1e-9 kg m-3
-cell_methods:  time: mean
-long_name:     Mass Concentration of Sulfate Aerosol
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude pressure3 time
-!----------------------------------	
-!
-!
-!============
-variable_entry: trsult
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: atmosphere_content_of_sulfate_aerosol 
-units:         1e-6 kg m-2
-cell_methods:  time: mean
-long_name:     Sulfate Burden
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-!----------------------------------	
-!
-!
-!
-!
-! ***************************************************************
-!
-! IPCC Table A1f: Monthly-mean land surface fields and prescribed land surface characteristics
-!
-! ***************************************************************
-!
-!
-!
-!============
-variable_entry: prveg
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: precipitation_flux_onto_canopy
-units:         kg m-2 s-1 
-cell_methods:  time: mean
-long_name:     Precipitation Intercepted by Vegetation Canopy
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-!----------------------------------	
-!
-!
-!============
-variable_entry: evspsblveg
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: water_evaporation_flux_from_canopy
-units:         kg m-2 s-1 
-cell_methods:  time: mean
-long_name:     Evaporation from Vegetation Canopy
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-!----------------------------------	
-!
-!
-!============
-variable_entry: zmla
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: atmosphere_boundary_layer_thickness
-units:         m
-cell_methods:  time: mean
-long_name:     Atmospheric Boundary Layer Thickness
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time
-!----------------------------------	
-!
-!
-!============
-variable_entry: rootd
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: root_depth
-units:         m
-long_name:     Root Depth
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude
-!----------------------------------	
-!
-!
-!============
-variable_entry: tasmin
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: air_temperature
-units:         K
-cell_methods:  time: minimum within days time: mean over days
-long_name:     Daily Minimum Surface Air Temperature
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time height1
-!----------------------------------	
-!
-!
-!============
-variable_entry: tasmax
-!============
-!
-! Variable attributes:
-!----------------------------------	
-standard_name: air_temperature
-units:         K
-cell_methods:  time: maximum within days time: mean over days
-long_name:     Daily Miximum Surface Air Temperature
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:       longitude latitude time height1
-!----------------------------------	
-!
-!
diff --git a/Test/reader_2D_3D.f90 b/Test/reader_2D_3D.f90
deleted file mode 100644
index a456049..0000000
--- a/Test/reader_2D_3D.f90
+++ /dev/null
@@ -1,133 +0,0 @@
-  SUBROUTINE read_3d_input_files(it, varname, field)
-
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    CHARACTER(len=*), INTENT(IN) :: varname
-    REAL, INTENT(OUT), DIMENSION(:,:,:) :: field
-    
-    INTEGER :: i, j, k
-    REAL :: factor, offset,min,max
-    CHARACTER(len=LEN(varname)) :: tmp
-    
-    min= -1.e20
-    max=1.e20
-    tmp = TRIM(ADJUSTL(varname))
-    SELECT CASE (tmp)
-    CASE ('CLOUD')  
-       factor = 0.02
-       offset = -20.
-    CASE ('U')  
-       factor = .075
-       offset = 45.
-       max=21
-       min=17
-    CASE ('T')
-       factor = 1.3
-       offset = -27.5
-       min=191.
-       max=240.
-    CASE ('tro3')
-       factor = 1.
-       offset = 0.
-    END SELECT
-    
-    DO k=1,SIZE(field, 3)
-       DO j=1,SIZE(field, 2)
-          DO i=1,SIZE(field, 1)
-             field(i,j,k) = ((k-1)*64 + (j-1)*16 + (i-1)*4 + it)*factor - offset
-             if (field(i,j,k).gt.max) field(i,j,k)=max
-             if (field(i,j,k).lt.min) field(i,j,k)=min
-          END DO
-       END DO
-    END DO
-    
-  END SUBROUTINE read_3d_input_files
-  
-  SUBROUTINE read_2d_input_files(it, varname, field)
-
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    CHARACTER(len=*), INTENT(IN) :: varname
-    REAL, INTENT(OUT), DIMENSION(:,:) :: field
-    
-    INTEGER :: i, j
-    REAL :: factor, offset,min,max
-    CHARACTER(len=LEN(varname)) :: tmp
-    
-    min= -1.e20
-    max=1.e20
-    tmp = TRIM(ADJUSTL(varname))
-    SELECT CASE (tmp)
-    CASE ('LATENT')  
-       
-       factor = 4.2
-       offset = 0.
-       min=-65
-       max=65
-    CASE ('TSURF')
-       factor = 2.0
-       offset = -230.
-       max=285
-       min=270
-    CASE ('SOIL_WET')
-       factor = 4.
-       offset = 0.
-       max = 128.
-    CASE ('PSURF')
-       factor = 100.
-       offset = -9.4e4
-    CASE ('PRECIP')
-       factor = 1.2e-6
-       offset = 0.
-       max = 1.e-3
-       min=0.
-    CASE ('SFTLF')
-       factor = 1.
-       offset = -12.
-       max = 100.
-       min=0.
-    END SELECT
-    
-    DO j=1,SIZE(field, 2)
-       DO i=1,SIZE(field, 1)
-          field(i,size(field,2)+1-j) = ((j-1)*16 + (i-1)*4 + it)*factor - offset
-             if (field(i,size(field,2)+1-j).gt.max) field(i,size(field,2)+1-j)=max
-             if (field(i,size(field,2)+1-j).lt.min) field(i,size(field,2)+1-j)=min
-       END DO
-    END DO
-
-  END SUBROUTINE read_2d_input_files
-  SUBROUTINE read_1d_input_files(it, varname, field) 
-
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    CHARACTER(len=*), INTENT(IN) :: varname
-    REAL, INTENT(OUT), DIMENSION(:,:) :: field
-    
-    INTEGER :: i, j
-    REAL :: factor, offset,min,max
-    CHARACTER(len=LEN(varname)) :: tmp
-    
-    min=-1.e20
-    max=1.e20
-    tmp = TRIM(ADJUSTL(varname))
-    SELECT CASE (tmp)
-    CASE ('OFLUX')  
-       factor = .5e14
-       offset = 2.e13
-       max = 1.492e14
-       min = 1.46e14
-    END SELECT
-    
-    DO j=1,SIZE(field, 2)
-       DO i=1,SIZE(field, 1)
-          field(i,j) = ((j-1)*16 + (i-1)*4 + it)*factor - offset
-          if (field(i,j).gt.max) field(i,j)=max
-          if (field(i,j).lt.min) field(i,j)=min
-       END DO
-    END DO
-
-  END SUBROUTINE read_1d_input_files
diff --git a/Test/reader_2D_3D.h b/Test/reader_2D_3D.h
deleted file mode 100644
index a7c5adb..0000000
--- a/Test/reader_2D_3D.h
+++ /dev/null
@@ -1,85 +0,0 @@
-void read_3d_input_files(it, varname, field,n0,n1,n2)
-     int it,n0,n1,n2;
-     char *varname;
-     double field[];
-{
-  int i,j,k;
-  float factor,offset,max,min;
-  min=-1.e20;
-  max=1.e20;
-   
-  if (strcmp(varname,"CLOUD")==0) {
-    factor = 0.02;
-    offset = -20.;
-  }
-  else if (strcmp(varname,"U")==0) {
-    factor = .08;
-    offset = 45.;
-  }
-  else if (strcmp(varname,"T")==0) {
-    factor = 1.2;
-    offset = -25.;
-    min=161.;
-    max=320.;
-  }
-    
-  for (k=0;k<n2;k++) {
-    for (j=0;j<n1;j++) {
-      for (i=0;i<n0;i++) {
-        field[k*(n0*n1)+j*n0+i] = (k*64 + j*16 + i*4 + it)*factor - offset;
-	if (field[k*(n0*n1)+j*n0+i]<min) field[k*(n0*n1)+j*n0+i]=min;
-	if (field[k*(n0*n1)+j*n0+i]>max) field[k*(n0*n1)+j*n0+i]=max;
-      }
-    }
-  }
-}
-
-void read_2d_input_files(it, varname, field, n0, n1)
-  int it,n0,n1;
-  char *varname;
-  double field[];
-{    
-  int i, j,k;
-  double factor, offset,min,max;
-  double tmp;
-  
-  min=-1.e20;
-  max=1.e20;
-
-  if (strcmp(varname,"LATENT")==0){
-    factor = 5.;
-    offset = 0.;
-    min=-65;
-    max=65.;
-  }
-  else if (strcmp(varname,"TSURF")==0){
-    factor = 2.1;
-    offset = -230.;
-    max=320.;
-  }
-  else if (strcmp(varname,"SOIL_WET")==0){
-    factor = 4.;
-    offset = 0.;
-    max=130.;
-  }
-  else if (strcmp(varname,"PSURF")==0){
-    factor = 1.;
-    offset = -9.4e2;
-  }
-  else if (strcmp(varname,"htov")==0){
-    factor = .5e14;
-    offset = 2.e13;
-    max = 1.492e14;
-    min = 1.46e14;
-  }
-
-  for (j=0;j<n0;j++){
-    for (i=0;i<n1;i++) {
-      tmp = ((double)j*16. + (double)(i)*4. + (double)it)*factor - offset;
-      k= (n0-1-j)*n1+i;
-      field[k] = tmp;
-      if (field[k]<min) field[k]=min;
-      if (field[k]>max) field[k]=max;
-    }
-  }
-}
diff --git a/Test/rewrite_harvardf_data.f90 b/Test/rewrite_harvardf_data.f90
deleted file mode 100644
index ddb8148..0000000
--- a/Test/rewrite_harvardf_data.f90
+++ /dev/null
@@ -1,125 +0,0 @@
-      program rewrite_harvardf_data
-
-!  Use CMOR routines to rewrite Harvard Forest obs data into CF-standard netCDF.
-!  Start with data in easy-to-read ASCII text (Mathematica input) format, which
-!  was produced by the script read_harvard_forest_obs_dat.py.
-
-!  Note: first line of each input data file is ASCII text to be skipped over.
-
-!		Curt Covey		January 2006
-
-USE cmor_users_functions
-
-      character(len = 25) :: input_file   = 'Test/tas_harvardf.txt'
-      character(len = 20) :: output_file  = 'tas_harvardf.nc'
-      character(len = 20) :: units_string = 'K'
-!     character(len = 20) :: input_table  = 'IPCC_test_table_A'
-!!$      character(len = 20) :: input_table  = 'IPCC_table_A2'
-      character(len = 20) :: input_table  = 'Tables/CMIP5_day'
-
-      character :: first_line    ! throwaway
-
-      integer   :: iaxis(3)      ! identifier for axes (time, latitude, longitude)
-
-!!$      integer, parameter :: ndatalines = 4383 ! # lines in file that contain data
-      integer, parameter :: ndatalines = 10 ! # lines in file that contain data
-                                              ! ( = total # lines in file - 1)
-      integer, parameter :: np1 = ndatalines + 1
-
-      double precision      :: lat(1)        ! single-member array to hold latitude
-      double precision      :: lon(1)        ! single-member array to hold longitude
-      double precision      :: blat(2)        ! single-member array to hold latitude
-      double precision      :: blon(2)        ! single-member array to hold longitude
-      double precision      :: t(ndatalines) ! array to hold time coordinate
-      double precision      :: tbounds(np1)  ! array to hold time coordinate cell bounds
-      real      :: x(ndatalines,1,1) ! array to hold data from each input data file
-      double precision bt
-      bt=0.
-!    -Harvard Forest is located at 42.5 deg N, 72.2 deg W ...
-      lat(1) = 42.5d0
-      lon(1) = 360-72.2d0
-      blat(1) = 42.5d0
-      blon(1) = 360-72.2d0
-      blat(2) = 42.5d0
-      blon(2) = 360-72.2d0
-!     ... and is 3000 acres ~ a circle with radius of 0.02 deg lat/lon:
-      latlonrad = 0.02
-      do i = 1, ndatalines
-         t(i)       = i - 1.0  ! time coord  = "days since" =  0,       1, ...
-         tbounds(i) = i - 1.5  ! time bounds =           -0.5,    +0.5,    ...
-      enddo
-      tbounds(np1) = ndatalines - 0.5
-
-      print *, 'Opening ', input_file, '...'
-      open(10, file = input_file)
-      read(10, '(A)') first_line
-      print    '(A)', 'First line begins with: ', first_line
-      do i = 1, ndatalines
-         read(10, '(F6.2)') x(i,1,1)
-!        print *, x(i,1,1)
-      enddo
-
-      print *, 'Initializing CMOR ...'
-      ierrorflag = cmor_setup(netcdf_file_action = 'replace')
-
-      print *, 'Identifying output data sets for CMOR ...'
-      ierrorflag = cmor_dataset(                               &
-                      outpath       = 'Test',                    &
-                      experiment_id =                          &
-      'abrupt 4XCO2',        &
-                      institution   =                          &
-      'Berkeley CAS (Center for Atmospheric Science)',         &
-                      source        =                          &
-      'GICCM1 ftp://ftp.as.harvard.edu/pub/nigec/HU_Wofsy/hf_data',   &
-                      calendar      = 'gregorian',             &
-                      contact       =                          &
-      'Jasmin John, Berkeley CAS <jjohn at berkeley.edu>', &
-                      model_id = "GICCM1" ,institute_id="PCMDI",&
-                      parent_experiment_id='N/A',forcing='SO',branch_time=bt)
-
-!     print *, ' ** Time coordinate vector:', t
-!     print *, ' ** Time bounds vector:',     tbounds
-
-      print *, 'Defining coordinates for CMOR output data ...',t
-      iaxis(1)   = cmor_axis(                                  &
-                      table       = input_table,               &
-                      table_entry = 'time',                    &
-                      units       = 'days since 1992-1-1',     &
-                      length      = ndatalines,                &
-                      coord_vals  = t,                         &
-                      cell_bounds = tbounds)
-
-      iaxis(2)   = cmor_axis(                                  &
-                      table       = input_table,               &
-                      table_entry = 'latitude',                &
-                      units       = 'degrees_north',           &
-                      length      = 1,                         &
-                      coord_vals  = lat,                       &
-                      cell_bounds = blat)                       
-
-      iaxis(3)   = cmor_axis(                                  &
-                      table       = input_table,               &
-                      table_entry = 'longitude',               &
-                      units       = 'degrees_east',            &
-                      length      = 1,                         &
-                      coord_vals  = lon,                       &
-                      cell_bounds = blon)
-
-      print *, 'Defining CMOR output data variables ...'
-      ivarb     =  cmor_variable(                              &
-                      table       = input_table,               &
-                      table_entry = 'tas',                     &
-                      units       = units_string,              &
-                      axis_ids    = iaxis)
-
-!!$      print *, ' ** Data vector:', x
-
-      print *, 'Writing CMOR output ...',shape(x)
-      ierrorflag = cmor_write(                                 &
-                      var_id    = ivarb,                       &
-                      data      = x(:,1,1)+2.5)
-
-      print *, 'Closing file(s) created by CMOR ...'
-      ierrorflag = cmor_close()
-
-      end program rewrite_harvardf_data
diff --git a/Test/speed_test_table_A b/Test/speed_test_table_A
deleted file mode 100644
index 8bea21c..0000000
--- a/Test/speed_test_table_A
+++ /dev/null
@@ -1,2131 +0,0 @@
-table_id: Table Amon
-modeling_realm: atmos
-
-frequency: mon
-
-cmor_version: 2.0         ! version of CMOR that can read this table
-cf_version:   1.4         ! version of CF that output conforms to
-project_id:   CMIP5  ! project id
-table_date:   02 April 2010 ! date this table was constructed
-
-missing_value: 1.e20      ! value used to indicate a missing value
-                          !   in arrays output by netCDF as 32-bit IEEE 
-                          !   floating-point numbers (float or real)
-
-baseURL: http://cmip-pcmdi.llnl.gov/CMIP5/dataLocation 
-product: output
-
-required_global_attributes: creation_date tracking_id forcing model_id parent_experiment_id branch_time contact ! space separated required global attribute 
-
-forcings:   N/A Nat Ant GHG SD SI SA TO SO Oz LU Sl Vl SS Ds BC MD OC AA
-
-expt_id_ok: '10- or 30-year run initialized in year XXXX' 'decadalXXXX'
-expt_id_ok: 'volcano-free hindcasts XXXX' 'noVolcXXXX'
-expt_id_ok: 'prediction with 2010 volcano' 'volcIn2010'
-expt_id_ok: 'pre-industrial control' 'piControl'
-expt_id_ok: 'Historical' 'historical'
-expt_id_ok: 'mid-Holocene' 'midHolocene'
-expt_id_ok: 'last glacial maximum' 'lgm'
-expt_id_ok: 'last millennium' 'past1000'
-expt_id_ok: 'RCP4.5' 'rcp45'
-expt_id_ok: 'RCP8.5' 'rcp85'
-expt_id_ok: 'RCP2.6' 'rcp26'
-expt_id_ok: 'RCP6' 'rcp60'
-expt_id_ok: 'ESM pre-industrial control' 'esmControl'
-expt_id_ok: 'ESM historical' 'esmHistorical'
-expt_id_ok: 'ESM RCP8.5' 'esmrcp85'
-expt_id_ok: 'ESM fixed climate 1' 'esmFixClim1'
-expt_id_ok: 'ESM fixed climate 2' 'esmFixClim2'
-expt_id_ok: 'ESM feedback 1' 'esmFdbk1'
-expt_id_ok: 'ESM feedback 2' 'esmFdbk2'
-expt_id_ok: '1 percent per year CO2' '1pctCO2'
-expt_id_ok: 'abrupt 4XCO2' 'abrupt4xCO2'
-expt_id_ok: 'natural-only' 'historicalNat'
-expt_id_ok: 'GHG-only' 'historicalGHG'
-expt_id_ok: 'anthropogenic-only' 'historicalAnt'
-expt_id_ok: 'anthropogenic sulfate aerosol direct effect only' 'historicalSD'
-expt_id_ok: 'anthropogenic sulfate aerosol indirect effect only' 'historicalSI'
-expt_id_ok: 'anthropogenic sulfate aerosol only' 'historicalSA'
-expt_id_ok: 'tropospheric ozone only' 'historicalTO'
-expt_id_ok: 'stratospheric ozone' 'historicalSO'
-expt_id_ok: 'ozone only' 'historicalOz'
-expt_id_ok: 'land-use change only' 'historicalLU'
-expt_id_ok: 'solar irradiance only' 'historicalSl'
-expt_id_ok: 'volcanic aerosol only' 'historicalVl'
-expt_id_ok: 'sea salt only' 'historicalSS'
-expt_id_ok: 'dust' 'historicalDs'
-expt_id_ok: 'black carbon only' 'historicalBC'
-expt_id_ok: 'mineral dust only' 'historicalMD'
-expt_id_ok: 'organic carbon only' 'historicalOC'
-expt_id_ok: 'anthropogenic aerosols only' 'historicalAA'
-expt_id_ok: 'AMIP' 'amip'
-expt_id_ok: '2030 time-slice' 'sst2030'
-expt_id_ok: 'control SST climatology' 'sstClim'
-expt_id_ok: 'CO2 forcing' 'sstClim4xCO2'
-expt_id_ok: 'all aerosol forcing' 'sstClimAerosol'
-expt_id_ok: 'sulfate aerosol forcing' 'sstClimSulfate'
-expt_id_ok: '4xCO2 AMIP' 'amip4xCO2'
-expt_id_ok: 'AMIP plus patterned anomaly' 'amipFuture'
-expt_id_ok: 'aqua planet control' 'aquaControl'
-expt_id_ok: '4xCO2 aqua planet' 'aqua4xCO2'
-expt_id_ok: 'aqua planet plus 4K anomaly' 'aqua4K'
-expt_id_ok: 'AMIP plus 4K anomaly' 'amip4K'
-
-
-approx_interval:  30.000000     ! approximate spacing between successive time
-                          !   samples (in units of the output time 
-                          !   coordinate.
-
-!============
-axis_entry: longitude
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-standard_name:    longitude
-units:            degrees_east
-axis:             X             ! X, Y, Z, T (default: undeclared)
-long_name:        longitude
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         lon
-valid_min:        0         
-valid_max:        360 
-stored_direction: increasing
-type:             double
-must_have_bounds: yes
-!----------------------------------
-!
-
-
-!============
-axis_entry: latitude
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-standard_name:    latitude
-units:            degrees_north
-axis:             Y             ! X, Y, Z, T (default: undeclared)
-long_name:        latitude
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         lat
-valid_min:        -90         
-valid_max:        90 
-stored_direction: increasing
-type:             double
-must_have_bounds: yes
-!----------------------------------
-!
-
-
-!============
-axis_entry: plevs
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-standard_name:    air_pressure
-units:            Pa
-axis:             Z             ! X, Y, Z, T (default: undeclared)
-positive:         down         ! up or down (default: undeclared)
-long_name:        pressure
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         plev
-stored_direction: decreasing
-tolerance:        0.001
-
-type:             double
-requested:        100000. 92500. 85000. 70000. 60000. 50000. 40000. 30000. 25000. 20000. 15000. 10000. 7000. 5000. 3000. 2000. 1000.        ! space-separated list of requested coordinates 
-must_have_bounds: no
-!----------------------------------
-!
-
-
-!============
-axis_entry: alevhalf
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-axis:             Z             ! X, Y, Z, T (default: undeclared)
-positive:         up         ! up or down (default: undeclared)
-long_name:        atmospheric model half-level
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         lev
-type:             double
-must_have_bounds: no
-index_only:       ok
-!----------------------------------
-!
-
-
-!============
-axis_entry: time
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-standard_name:    time
-units:            days since ?
-axis:             T             ! X, Y, Z, T (default: undeclared)
-long_name:        time
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         time
-stored_direction: increasing
-type:             double
-must_have_bounds: yes
-!----------------------------------
-!
-
-
-!============
-axis_entry: time2
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-standard_name:    time
-units:            days since ?
-axis:             T             ! X, Y, Z, T (default: undeclared)
-long_name:        time
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         time
-stored_direction: increasing
-type:             double
-must_have_bounds: yes
-climatology:      yes
-!----------------------------------
-!
-
-
-!============
-axis_entry: height2m
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-standard_name:    height
-units:            m
-axis:             Z             ! X, Y, Z, T (default: undeclared)
-positive:         up         ! up or down (default: undeclared)
-long_name:        height
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         height
-valid_min:        1         
-valid_max:        10 
-stored_direction: increasing
-type:             double
-value:            2.            ! of scalar (singleton) dimension 
-must_have_bounds: no
-!----------------------------------
-!
-
-
-!============
-axis_entry: height10m
-!============
-!----------------------------------
-! Axis attributes:
-!----------------------------------
-standard_name:    height
-units:            m
-axis:             Z             ! X, Y, Z, T (default: undeclared)
-positive:         up         ! up or down (default: undeclared)
-long_name:        height
-!----------------------------------
-! Additional axis information:
-!----------------------------------
-out_name:         height
-valid_min:        1         
-valid_max:        30 
-stored_direction: increasing
-type:             double
-value:            10.            ! of scalar (singleton) dimension 
-must_have_bounds: no
-!----------------------------------
-!
-
-!============
-axis_entry: smooth_level
-!============
-!
-! This coordinate is a hybrid height coordinate with units of meters (m).
-!  It increases upward.
-!  The values of a(k)*ztop, which appear in the formula below, should be stored as smooth_level. 
-!  Note that in the netCDF file the variable will be named "lev", not smooth_level.
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    atmosphere_sleve_coordinate
-units:            m
-axis:             Z
-positive:	      up
-long_name:        atmosphere smooth level vertical (SLEVE) coordinate
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lev
-must_have_bounds: yes
-stored_direction: increasing
-valid_min:        -200.
-valid_max:        800000.
-formula:          z(n,k,j,i) = a(k)*ztop + b1(k)*zsurf1(n,j,i) + b2(k)*zsurf2(n,j,i)
-z_factors:        a: a b1: b1 b2: b2 ztop: ztop zsurf1: zsurf1 zsurf2: zsurf2
-z_bounds_factors: a: a_bnds b1: b1_bnds b2: b2_bnds ztop: ztop zsurf1: zsurf1 zsurf2: zsurf2
-!----------------------------------	
-!
-!============
-axis_entry: natural_log_pressure
-!============
-!
-!This coordinate is dimensionless and varies from near 0 at the surface and increases upward.
-!  The values of lev(k), which appears in the formula below, should be stored as natural_log_pressure.  
-!  Note that in the netCDF file the variable will be named "lev", not natural_log_pressure.
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    atmosphere_ln_pressure_coordinate
-axis:             Z
-long_name:        atmosphere natural log pressure coordinate
-positive:	      down
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lev
-must_have_bounds: yes
-stored_direction: decreasing
-valid_min:        -1.
-valid_max:        20.
-formula:          p(k) = p0 * exp(-lev(k))
-z_factors:        p0: p0 lev: lev
-z_bounds_factors: p0: p0 lev: lev_bnds
-!----------------------------------	
-!
-!============
-axis_entry: standard_sigma
-!============
-!
-! This coordinate is dimensionless and varies from 0 at the model top to 1.0 at the surface.
-!  The values of sigma(k), which appears in the formula below, should be stored as standard_sigma.  
-!  Note that in the netCDF file the variable will be named "lev", not standard_sigma.
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    atmosphere_sigma_coordinate
-axis:             Z
-positive:         down
-long_name:        sigma coordinate
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lev
-must_have_bounds: yes
-stored_direction: decreasing
-valid_min:        0.0
-valid_max:        1.0
-formula:          p(n,k,j,i) = ptop + sigma(k)*(ps(n,j,i) - ptop)
-z_factors:        ptop: ptop sigma: lev ps: ps
-z_bounds_factors: ptop: ptop sigma: lev_bnds ps: ps
-!----------------------------------	
-!
-!
-!============
-axis_entry:  standard_hybrid_sigma
-!============
-!
-! This coordinate is dimensionless and varies from a small value at the model top to 1.0 at the surface.
-!  The values of a(k)+ b(k), which appear in the formula below, should be stored as standard_hybrid_sigma.  
-!  Note that in the netCDF file the variable will be named "lev", not standard_hybrid_sigma.
-!
-!---------------------------------
-! Axis attributes:
-!----------------------------------	
-standard_name:    atmosphere_hybrid_sigma_pressure_coordinate
-units:            1
-axis:             Z 
-positive:         down
-long_name:        hybrid sigma pressure coordinate
-!----------------------------------
-! Additional axis information:
-!----------------------------------	
-out_name:         lev
-must_have_bounds: yes
-stored_direction: decreasing
-valid_min:        0.0
-valid_max:        1.0
-formula:          p(n,k,j,i) = a(k)*p0 + b(k)*ps(n,j,i)
-z_factors:        p0: p0 a: a b: b ps: ps
-z_bounds_factors: p0: p0 a: a_bnds b: b_bnds ps: ps
-!----------------------------------		
-!
-!
-!============
-axis_entry:  alternate_hybrid_sigma
-!============
-!
-! This coordinate is dimensionless and varies from a small value at the model top to 1.0 at the surface.
-!  The values of ap(k)/p0 + b(k), which appear in the formula below, should be stored as alternate_hybrid_sigma.  
-!  Note that in the netCDF file the variable will be named "lev", not alternate_hybrid_sigma.
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    atmosphere_hybrid_sigma_pressure_coordinate
-units:            1
-axis:             Z
-positive:         down
-long_name:        hybrid sigma pressure coordinate
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lev
-must_have_bounds: yes
-stored_direction: decreasing
-valid_min:        0.0
-valid_max:        1.0
-formula:          p(n,k,j,i) = ap(k) + b(k)*ps(n,j,i)
-z_factors:        ap: ap b: b ps: ps
-z_bounds_factors: ap: ap_bnds b: b_bnds ps: ps
-!----------------------------------		
-!
-!
-!============
-axis_entry:  hybrid_height
-!============
-!
-! This coordinate has dimension of meters (m) and increases upward.
-!  The values of a(k) which appear in the formula below, should be stored as hybrid_height.  
-!  Note that in the netCDF file the variable will be named "lev", not hybrid_height.
-!
-!------------
-!
-! Axis attributes:
-!----------------------------------	
-standard_name:    atmosphere_hybrid_height_coordinate
-units:            m
-axis:             Z 
-positive:         up
-long_name:        hybrid height coordinate
-!----------------------------------	
-!
-! Additional axis information:
-!----------------------------------	
-out_name:         lev
-must_have_bounds: yes
-stored_direction: increasing
-valid_min:        0.0
-formula:          z(k,j,i) = a(k) + b(k)*orog(j,i)
-z_factors:        a: lev b: b orog: orog
-z_bounds_factors: a: lev_bnds b: b_bnds orog: orog
-!----------------------------------		
-!
-! ***************************************************************
-!
-! Vertical coordinate formula terms:
-!
-! ***************************************************************
-!
-!
-!============
-variable_entry:    orog
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_altitude
-units:             m
-long_name:         Surface Altitude
-comment:           height above the geoid; as defined here, ""the geoid"" is a surface of constant geopotential that, if the ocean were at rest, would coincide with mean sea level. Under this definition, the geoid changes as the mean volume of the ocean changes (e.g., due to glacial melt, or global warming of the ocean).  Report here the height above the present-day geoid.  Over ocean, report as 0.0
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude
-out_name:          orog
-type:              real
-valid_min:         -700
-valid_max:         1.00E+04
-!----------------------------------
-!
-!
-!============
-variable_entry: p0
-!============
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:       vertical coordinate formula term: reference pressure 
-units:           Pa
-!----------------------------------	
-!
-!
-!============
-variable_entry: ptop
-!============
-!
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:       pressure at top of model 
-units:           Pa
-!----------------------------------	
-!
-!
-!
-!============
-variable_entry: a
-!============
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   vertical coordinate formula term: a(k)
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         alevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: b
-!============
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   vertical coordinate formula term: b(k)
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         alevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: a_bnds
-!============
-!
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   vertical coordinate formula term: a(k+1/2)
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         alevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: b_bnds
-!============
-!
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   vertical coordinate formula term: b(k+1/2)
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         alevel
-type:               double
-!----------------------------------
-!
-!
-!============
-variable_entry: ap
-!============
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   vertical coordinate formula term: ap(k)
-units:           Pa
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         alevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: ap_bnds
-!============
-!
-! Variable attributes:
-!----------------------------------	
-long_name:   vertical coordinate formula term: ap(k+1/2)
-units:           Pa
-!----------------------------------	
-!
-! Additional variable information:
-!----------------------------------	
-dimensions:         alevel
-type:               double
-!----------------------------------	
-!
-!
-!============
-variable_entry: ztop
-!============
-!
-!------------
-!
-! Variable attributes:
-!----------------------------------	
-long_name:       height of top of model 
-units:           m
-!----------------------------------	
-!
-!
-!
-
-!============
-variable_entry:    tas
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     air_temperature
-units:             K
-deflate: ${DEFLATE_LEVEL}
-shuffle: ${SHUFFLE}
-deflate_level: ${DEFLATE_LEVEL}
-cell_methods:      time: mean
-cell_measures:      area: areacello volume: volcello
-long_name:         Near-Surface Air Temperature
-comment:           near-surface (usually, 2 meter) air temperature.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time height2m
-out_name:          tas
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    ts
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_temperature
-units:             K
-cell_methods:      time: mean
-cell_measures:      area: areacello volume: volcello
-long_name:         Surface Temperature
-comment:           ""skin"" temperature (i.e., SST for open ocean)
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          ts
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tasmin
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     air_temperature
-units:             K
-cell_methods:      time: minimum within days time: mean over days
-long_name:         Daily Minimum Near-Surface Air Temperature
-comment:           monthly mean of the daily-minimum near-surface (usually, 2 meter) air temperature.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time height2m
-out_name:          tasmin
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tasmax
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     air_temperature
-units:             K
-cell_methods:      time: maximum within days time: mean over days
-long_name:         Daily Maximum Near-Surface Air Temperature
-comment:           monthly mean of the daily-maximum near-surface (usually, 2 meter) air temperature.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time height2m
-out_name:          tasmax
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    psl
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     air_pressure_at_sea_level
-units:             Pa
-cell_methods:      time: mean
-long_name:         Sea Level Pressure
-comment:           not, in general, the same as surface pressure
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          psl
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    ps
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_air_pressure
-units:             Pa
-cell_methods:      time: mean
-long_name:         Surface Air Pressure
-comment:           not, in general, the same as mean sea-level pressure
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          ps
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    uas
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     eastward_wind
-units:             m s-1
-cell_methods:      time: mean
-long_name:         Eastward Near-Surface Wind Speed
-comment:           near-surface (usually, 10 meters) eastward component of wind.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time height10m
-out_name:          uas
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    vas
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     northward_wind
-units:             m s-1
-cell_methods:      time: mean
-long_name:         Northward Near-Surface Wind Speed
-comment:           near-surface (usually, 10 meters) northward component of wind.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time height10m
-out_name:          vas
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    sfcWind
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     wind_speed
-units:             m s-1
-cell_methods:      time: mean
-long_name:         Near-Surface Wind Speed
-comment:           near-surface (usually, 10 meters) wind speed.  This is the mean of the speed, not the speed computed from the mean u and v components of wind
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time height10m
-out_name:          sfcWind
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    hurs
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     relative_humidity
-units:             %
-cell_methods:      time: mean
-long_name:         Near-Surface Relative Humidity
-comment:           near-surface (usually, 2meters) relative humidity expressed as a percentage.  This is the relative humidity with respect to liquid water for T> 0 C, and with respect to ice for T<0 C.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time height2m
-out_name:          hurs
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    huss
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     specific_humidity
-units:             1
-cell_methods:      time: mean
-long_name:         Near-Surface Specific Humidity
-comment:           near-surface (usually, 2 meters) specific humidity.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time height2m
-out_name:          huss
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    pr
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     precipitation_flux
-units:             kg m-2 s-1
-cell_methods:      time: mean
-long_name:         Precipitation
-comment:           at surface; includes both liquid and solid phases from all types of clouds (both large-scale and convective)
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          pr
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    prsn
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     snowfall_flux
-units:             kg m-2 s-1
-cell_methods:      time: mean
-long_name:         Snowfall Flux
-comment:           at surface; includes precipitation of all forms of water in the solid phase
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          prsn
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    prc
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     convective_precipitation_flux
-units:             kg m-2 s-1
-cell_methods:      time: mean
-long_name:         Convective Precipitation
-comment:           at surface; includes both liquid and solid phases.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          prc
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    evspsbl
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     water_evaporation_flux
-units:             kg m-2 s-1
-cell_methods:      time: mean
-long_name:         Evaporation
-comment:           at surface; flux of water into the atmosphere due to conversion of both liquid and solid phases to vapor (from underlying surface and vegetation)
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          evspsbl
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    sbl
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     water_sublimation_flux
-units:             kg m-2 s-1
-cell_methods:      time: mean
-long_name:         Surface Snow and Ice Sublimation Flux
-comment:           The snow and ice sublimation flux is the loss of snow and ice mass from the surface resulting from their conversion to water vapor that enters the atmosphere.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          sbl
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tauu
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_downward_eastward_stress
-units:             Pa
-cell_methods:      time: mean
-long_name:         Surface Downward Eastward Wind Stress
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          tauu
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    tauv
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_downward_northward_stress
-units:             Pa
-cell_methods:      time: mean
-long_name:         Surface Downward Northward Wind Stress
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          tauv
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    hfls
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_latent_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Latent Heat Flux
-comment:           includes both evaporation and sublimation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          hfls
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    hfss
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upward_sensible_heat_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upward Sensible Heat Flux
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          hfss
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    rlds
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_downwelling_longwave_flux_in_air
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Downwelling Longwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rlds
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    rlus
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upwelling_longwave_flux_in_air
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upwelling Longwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rlus
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    rsds
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_downwelling_shortwave_flux_in_air
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Downwelling Shortwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rsds
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    rsus
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upwelling_shortwave_flux_in_air
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upwelling Shortwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rsus
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    rsdscs
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_downwelling_shortwave_flux_in_air_assuming_clear_sky
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Downwelling Clear-Sky Shortwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rsdscs
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    rsuscs
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_upwelling_shortwave_flux_in_air_assuming_clear_sky
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Upwelling Clear-Sky Shortwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rsuscs
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    rldscs
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     surface_downwelling_longwave_flux_in_air_assuming_clear_sky
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Surface Downwelling Clear-Sky Longwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rldscs
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    rsdt
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     toa_incoming_shortwave_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         TOA Incident Shortwave Radiation
-comment:           incident shortwave at the top of the atmosphere
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rsdt
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    rsut
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     toa_outgoing_shortwave_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         TOA Outgoing Shortwave Radiation
-comment:           at the top of the atmosphere
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rsut
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    rlut
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     toa_outgoing_longwave_flux
-units:             W m-2
-cell_methods:      time: mean
-long_name:         TOA Outgoing Longwave Radiation
-comment:           at the top of the atmosphere (to be compared with satellite measurements)
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rlut
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    rlutcs
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     toa_outgoing_longwave_flux_assuming_clear_sky
-units:             W m-2
-cell_methods:      time: mean
-long_name:         TOA Outgoing Clear-Sky Longwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rlutcs
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    rsutcs
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     toa_outgoing_shortwave_flux_assuming_clear_sky
-units:             W m-2
-cell_methods:      time: mean
-long_name:         TOA Outgoing Clear-Sky Shortwave Radiation
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rsutcs
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    prw
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     atmosphere_water_vapor_content
-units:             kg m-2
-cell_methods:      time: mean
-long_name:         Water Vapor Path
-comment:           vertically integrated through the atmospheric column
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          prw
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    clt
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     cloud_area_fraction
-units:             %
-cell_methods:      time: mean
-long_name:         Total Cloud Fraction
-comment:           for the whole atmospheric column, as seen from the surface or the top of the atmosphere. Include both large-scale and convective cloud.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          clt
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    clwvi
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     atmosphere_cloud_condensed_water_content
-units:             kg m-2
-cell_methods:      time: mean
-long_name:         Condensed Water Path
-comment:           calculate mass of condensed (liquid + ice) water in the column divided by the area of the column (not just the area of the cloudy portion of the column). Include precipitating hydrometeors ONLY if the precipitating hydrometeor affects the calculation of radiative transfer in model.  
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          clwvi
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    clivi
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     atmosphere_cloud_ice_content
-units:             kg m-2
-cell_methods:      time: mean
-long_name:         Ice Water Path
-comment:           calculate mass of ice water in the column divided by the area of the column (not just the area of the cloudy portion of the column). Include precipitating frozen hydrometeors ONLY if the precipitating hydrometeor affects the calculation of radiative transfer in model.  
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          clivi
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    rtmt
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     net_downward_radiative_flux_at_top_of_atmosphere_model
-units:             W m-2
-cell_methods:      time: mean
-long_name:         Net Downward Flux at Top of Model
-comment:           i.e., at the top of that portion of the atmosphere where dynamics are explicitly treated by the model. Report only if this differs from the net downward radiative flux at the top of the atmosphere.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          rtmt
-type:              real
-positive:          down
-!----------------------------------
-!
-
-!============
-variable_entry:    ccb
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     air_pressure_at_convective_cloud_base
-units:             Pa
-cell_methods:      time: mean
-long_name:         Air Pressure at Convective Cloud Base
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          ccb
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    cct
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     air_pressure_at_convective_cloud_top
-units:             Pa
-cell_methods:      time: mean
-long_name:         Air Pressure at Convective Cloud Top
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          cct
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    ci 
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-units:             1
-cell_methods:      time: mean
-long_name:         Fraction of Time Convection Occurs
-comment:           Fraction of time that convection occurs in the grid cell .
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          ci 
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    sci
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-units:             1
-cell_methods:      time: mean
-long_name:         Fraction of Time Shallow Convection Occurs
-comment:           Fraction of time that shallow convection occurs in the grid cell. ( For models with a distinct shallow convection scheme only)
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          sci
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    fco2antt
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-units:             kg  m-2 s-1
-cell_methods:      time: mean
-long_name:         Carbon Mass Flux into Atmosphere Due to All Anthropogenic Emissions of CO2
-comment:           This is requested only for the emission-driven coupled carbon climate model runs.  Do not include natural fire sources, but include all anthropogenic sources, including fossil fuel use, cement production, agricultural burning, and sources associated with anthropogenic land use change excluding forest regrowth.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          fco2antt
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    fco2fos
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-units:             kg m-2 s-1
-cell_methods:      time: mean
-long_name:         Carbon Mass Flux into Atmosphere Due to Fossil Fuel Emissions of CO2
-comment:           This is requested only for the emission-driven coupled carbon climate model runs.  Report the prescribed anthropogenic CO2 flux from fossil fuel use, including cement production, and flaring (but not from land-use changes, agricultural burning, forest regrowth, etc.)
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          fco2fos
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    fco2nat
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-units:             kg m-2 s-1
-cell_methods:      time: mean
-long_name:         Surface Carbon Mass Flux into the Atmosphere Due to Natural Sources
-comment:           Report from all simulations (both emission-driven and concentration-driven) performed by models with fully interactive and responsive carbon cycles.  This is what the atmosphere sees (on its own grid).  This field should be equivalent to the combined natural fluxes of carbon (requested in the L_mon and O_mon tables) that account for natural exchanges between the atmosphere and land or ocean reservoirs (i.e., ""net ecosystem biospheric productivity"", for land, and ""ai [...]
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude time
-out_name:          fco2nat
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    cl
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     cloud_area_fraction_in_atmosphere_layer
-units:             %
-cell_methods:      time: mean
-cell_measures:      area: areacella
-long_name:         Cloud Area Fraction
-comment:           Report on model layers (not standard pressures).  Include both large-scale and convective cloud.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          cl
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    clw
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mass_fraction_of_cloud_liquid_water_in_air
-units:             1
-cell_methods:      time: mean
-cell_measures:      area: areacella
-long_name:         Mass Fraction of Cloud Liquid Water
-comment:           Report on model layers (not standard pressures).  Include both large-scale and convective cloud.  Calculate as the mass of cloud liquid water in the grid cell divided by the mass of air (including the water in all phases) in the grid cells. Include precipitating hydrometeors ONLY if the precipitating hydrometeor affects the calculation of radiative transfer in model.  
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          clw
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    cli
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mass_fraction_of_cloud_ice_in_air
-units:             1
-cell_methods:      time: mean
-cell_measures:      area: areacella
-long_name:         Mass Fraction of Cloud Ice
-comment:           Report on model layers (not standard pressures).  Include both large-scale and convective cloud.  Calculate as the mass of cloud ice in the grid cell divided by the mass of air (including the water in all phases) in the grid cell. Include precipitating hydrometeors ONLY if the precipitating hydrometeor affects the calculation of radiative transfer in model.  
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time
-out_name:          cli
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    mc
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     atmosphere_net_upward_convective_mass_flux
-units:             kg m-2 s-1
-cell_methods:      time: mean
-cell_measures:      area: areacella
-long_name:         Convective Mass Flux
-comment:           Report on model half-levels (i.e., model layer bounds and not standard pressures).  The net mass flux should represent the difference between the updraft and downdraft components.  The flux is computed as the mass divided by the area of the grid cell.  
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevhalf time
-out_name:          mc
-type:              real
-positive:          up
-!----------------------------------
-!
-
-!============
-variable_entry:    ta
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     air_temperature
-units:             K
-cell_methods:      time: mean
-cell_measures:      area: areacella
-long_name:         Air Temperature
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude plevs time
-out_name:          ta
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    ua
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     eastward_wind
-units:             m s-1
-cell_methods:      time: mean
-cell_measures:      area: areacella
-long_name:         Eastward Wind
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude plevs time
-out_name:          ua
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    va
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     northward_wind
-units:             m s-1
-cell_methods:      time: mean
-cell_measures:      area: areacella
-long_name:         Northward Wind
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude plevs time
-out_name:          va
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    hus
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     specific_humidity
-units:             1
-cell_methods:      time: mean
-cell_measures:      area: areacella
-long_name:         Specific Humidity
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude plevs time
-out_name:          hus
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    hur
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     relative_humidity
-units:             %
-cell_methods:      time: mean
-cell_measures:      area: areacella
-long_name:         Relative Humidity
-comment:           This is the relative humidity with respect to liquid water for T> 0 C, and with respect to ice for T<0 C.
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude plevs time
-out_name:          hur
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    wap
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     lagrangian_tendency_of_air_pressure
-units:             Pa s-1
-cell_methods:      time: mean
-cell_measures:      area: areacella
-long_name:         omega (=dp/dt)
-comment:           commonly referred to as ""omega"", this represents the vertical component of velocity in pressure coordinates (positive down)
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude plevs time
-out_name:          wap
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    zg
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     geopotential_height
-units:             m
-cell_methods:      time: mean
-cell_measures:      area: areacella
-long_name:         Geopotential Height
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude plevs time
-out_name:          zg
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tro3
-!============
-modeling_realm:    atmos atmosChem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_fraction_of_ozone_in_air
-units:             1e-9
-cell_methods:      time: mean
-cell_measures:      area: areacella
-long_name:         Mole Fraction of O3
-comment:           If this does not change over time (except possibly to vary identically over each annual cycle), report instead the variable described in the next table entry. 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude plevs time
-out_name:          tro3
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    tro3Clim
-!============
-modeling_realm:    atmos atmosChem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_fraction_of_ozone_in_air
-units:             1e-9
-cell_methods:      time: mean within years time: mean over years
-cell_measures:      area: areacella
-long_name:         Mole Fraction of O3
-comment:           If O3 does not vary from one year to the next, report 12 months, starting with January.   (Note: include all 12 months even if the values don't vary seasonally.)  When calling CMOR, identify this variable as tro3Clim, not tro3. If the O3 varies from one year to the next,  then report instead the field described in the previous table entry.  
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude plevs time2
-out_name:          tro3
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    co2
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_fraction_of_carbon_dioxide_in_air
-units:             1e-6
-cell_methods:      time: mean
-cell_measures:      area: areacella
-long_name:         Mole Fraction of CO2
-comment:           For some simulations (e.g., prescribed concentration pi-control run), this will not vary from one year to the next, and so report instead the variable described in the next table entry.  If spatially uniform, omit this field, but report Total Atmospheric Mass of CO2 (see the table entry after the next one). 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude plevs time
-out_name:          co2
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    co2Clim
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_fraction_of_carbon_dioxide_in_air
-units:             1e-6
-cell_methods:      time: mean within years time: mean over years
-cell_measures:      area: areacella
-long_name:         Mole Fraction of CO2
-comment:           Report only for simulations (e.g., prescribed concentration pi-control run), in which the CO2 does not vary from one year to the next. Report 12 monthly values, starting with January, even if the values don't vary seasonally.  When calling CMOR, identify this variable as co2Clim, not co2.   If  CO2 is spatially uniform, omit this field, but report Total Atmospheric Mass of CO2 (see the table entry after the next).
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude plevs time2
-out_name:          co2
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    co2mass
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-units:             kg
-cell_methods:      time: mean
-long_name:         Total Atmospheric Mass of CO2
-comment:           For some simulations (e.g., prescribed concentration pi-control run), this will not vary from one year to the next, and so report instead the variable described in the next table entry.  If CO2 is spatially nonuniform, omit this field, but report Mole Fraction of CO2 (see the table entry before the previous one). 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        time
-out_name:          co2mass
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    co2massClim
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-units:             kg
-cell_methods:      time: mean within years time: mean over years
-long_name:         Total Atmospheric Mass of CO2
-comment:           Report only for simulations (e.g., prescribed concentration pi-control run), in which the CO2 does not vary from one year to the next. Report 12 monthly values, starting with January, even if the values don't vary seasonally.  When calling CMOR, identify this variable as co2massClim, not co2mass.  If CO2 is spatially nonuniform, omit this field, but report Mole Fraction of CO2 (see the table entry before the previous one). 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        time2
-out_name:          co2mass
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    ch4
-!============
-modeling_realm:    atmos atmosChem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_fraction_of_methane_in_air
-units:             1e-9
-cell_methods:      time: mean
-cell_measures:      area: areacella
-long_name:         Mole Fraction of CH4
-comment:           For some simulations (e.g., prescribed concentration pi-control run), this will not vary from one year to the next, and so report instead the variable described in the next table entry.  If CH4 is spatially uniform, omit this field, but report Global Mean Mole Fraction of CH4 (see the table entry after the next one). 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude plevs time
-out_name:          ch4
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    ch4
-!============
-modeling_realm:    atmos atmosChem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_fraction_of_methane_in_air
-units:             1e-9
-cell_methods:      time: mean within years time: mean over years
-cell_measures:      area: areacella
-long_name:         Mole Fraction of CH4
-comment:           Report only for simulations (e.g., prescribed concentration pi-control run), in which the CH4 does not vary from one year to the next. Report 12 monthly values, starting with January, even if the values don't vary seasonally.  When calling CMOR, identify this variable as ch4global, not ch4.   If  CH4 is spatially uniform, omit this field, but report Global Mean Mole Fraction of CH4 (see the table entry after the next).
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude plevs time2
-out_name:          ch4
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    ch4global
-!============
-modeling_realm:    atmos atmosChem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_fraction_of_methane_in_air
-units:             1e-9
-cell_methods:      time: mean
-long_name:         Global Mean Mole Fraction of CH4
-comment:           For some simulations (e.g., prescribed concentration pi-control run), this will not vary from one year to the next, and so report instead the variable described in the next table entry.  If CH4 is spatially nonuniform, omit this field, but report Mole Fraction of CH4 (see the table entry before the previous one). 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        time
-out_name:          ch4global
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    ch4globalClim
-!============
-modeling_realm:    atmos atmosChem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_fraction_of_methane_in_air
-units:             1e-9
-cell_methods:      time: mean within years time: mean over years
-long_name:         Global Mean Mole Fraction of CH4
-comment:           Report only for simulations (e.g., prescribed concentration pi-control run), in which the CH4 does not vary from one year to the next. Report 12 monthly values, starting with January, even if the values don't vary seasonally.  When calling CMOR, identify this variable as ch4globalClim, not ch4global.  If CH4 is spatially nonuniform, omit this field, but report Global Mean Mole Fraction of CH4 (see the table entry before the previous one). 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        time2
-out_name:          ch4global
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    n2o
-!============
-modeling_realm:    atmos atmosChem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_fraction_of_nitrous_oxide_in_air
-units:             1e-9
-cell_methods:      time: mean
-cell_measures:      area: areacella
-long_name:         Mole Fraction of N2O
-comment:           For some simulations (e.g., prescribed concentration pi-control run), this will not vary from one year to the next, and so report instead the variable described in the next table entry.  If N2O is spatially uniform, omit this field, but report Global Mean Mole Fraction of N2O (see the table entry after the next one). 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude plevs time
-out_name:          n2o
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    n2oClim
-!============
-modeling_realm:    atmos atmosChem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_fraction_of_nitrous_oxide_in_air
-units:             1e-9
-cell_methods:      time: mean within years time: mean over years
-cell_measures:      area: areacella
-long_name:         Mole Fraction of N2O
-comment:           Report only for simulations (e.g., prescribed concentration pi-control run), in which the N2O does not vary from one year to the next. Report 12 monthly values, starting with January, even if the values don't vary seasonally.  When calling CMOR, identify this variable as n2oglobal, not n2o.   If  N2O is spatially uniform, omit this field, but report Global Mean Mole Fraction of N2O (see the table entry after the next).
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude plevs time2
-out_name:          n2o
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    n2oglobal
-!============
-modeling_realm:    atmos atmosChem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_fraction_of_nitrous_oxide_in_air
-units:             1e-9
-cell_methods:      time: mean
-long_name:         Global Mean Mole Fraction of N2O
-comment:           For some simulations (e.g., prescribed concentration pi-control run), this will not vary from one year to the next, and so report instead the variable described in the next table entry.  If N2O is spatially nonuniform, omit this field, but report Mole Fraction of N2O (see the table entry before the previous one). 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        time
-out_name:          n2oglobal
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    n2oglobalClim
-!============
-modeling_realm:    atmos atmosChem
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     mole_fraction_of_nitrous_oxide_in_air
-units:             1e-9
-cell_methods:      time: mean within years time: mean over years
-long_name:         Global Mean Mole Fraction of N2O
-comment:           Report only for simulations (e.g., prescribed concentration pi-control run), in which the N2O does not vary from one year to the next. Report 12 monthly values, starting with January, even if the values don't vary seasonally.  When calling CMOR, identify this variable as ch4globalClim, not ch4global.  If N2O is spatially nonuniform, omit this field, but report Global Mean Mole Fraction of N2O (see the table entry before the previous one). 
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        time2
-out_name:          n2oglobal
-type:              real
-!----------------------------------
-!
-
-
-!============
-variable_entry:    pfull
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     air_pressure
-units:             Pa
-cell_methods:      time: mean within years time: mean over years
-cell_measures:      area: areacella
-long_name:         Pressure on Model Levels
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevel time2
-out_name:          pfull
-type:              real
-!----------------------------------
-!
-
-!============
-variable_entry:    phalf
-!============
-modeling_realm:    atmos
-!----------------------------------
-! Variable attributes:
-!----------------------------------
-standard_name:     air_pressure
-units:             Pa
-cell_methods:      time: mean within years time: mean over years
-cell_measures:      area: areacella
-long_name:         Pressure on Model Half-Levels
-!----------------------------------
-! Additional variable information:
-!----------------------------------
-dimensions:        longitude latitude alevhalf time2
-out_name:          phalf
-type:              real
-!----------------------------------
-!
-
diff --git a/Test/ta_3D_r_2.asc b/Test/ta_3D_r_2.asc
deleted file mode 100644
index d269407..0000000
--- a/Test/ta_3D_r_2.asc
+++ /dev/null
@@ -1,22 +0,0 @@
-4
-3
-144
-17
-17
-time
-months since 1949-1-1 0:0
-0.0 1.0 2.0
--0.5 0.5 0.5 1.5 1.5 2.5
-longitude
-degrees_east
-0.0 2.5 5.0 7.5 10.0 12.5 15.0 17.5 20.0 22.5 25.0 27.5 30.0 32.5 35.0 37.5 40.0 42.5 45.0 47.5 50.0 52.5 55.0 57.5 60.0 62.5 65.0 67.5 70.0 72.5 75.0 77.5 80.0 82.5 85.0 87.5 90.0 92.5 95.0 97.5 100.0 102.5 105.0 107.5 110.0 112.5 115.0 117.5 120.0 122.5 125.0 127.5 130.0 132.5 135.0 137.5 140.0 142.5 145.0 147.5 150.0 152.5 155.0 157.5 160.0 162.5 165.0 167.5 170.0 172.5 175.0 177.5 180.0 182.5 185.0 187.5 190.0 192.5 195.0 197.5 200.0 202.5 205.0 207.5 210.0 212.5 215.0 217.5 220.0 22 [...]
--1.25 1.25 1.25 3.75 3.75 6.25 6.25 8.75 8.75 11.25 11.25 13.75 13.75 16.25 16.25 18.75 18.75 21.25 21.25 23.75 23.75 26.25 26.25 28.75 28.75 31.25 31.25 33.75 33.75 36.25 36.25 38.75 38.75 41.25 41.25 43.75 43.75 46.25 46.25 48.75 48.75 51.25 51.25 53.75 53.75 56.25 56.25 58.75 58.75 61.25 61.25 63.75 63.75 66.25 66.25 68.75 68.75 71.25 71.25 73.75 73.75 76.25 76.25 78.75 78.75 81.25 81.25 83.75 83.75 86.25 86.25 88.75 88.75 91.25 91.25 93.75 93.75 96.25 96.25 98.75 98.75 101.25 101.25  [...]
-pressure
-hPa
-1000.0 925.0 850.0 700.0 600.0 500.0 400.0 300.0 250.0 200.0 150.0 100.0 70.0 50.0 30.0 20.0 10.0
-1037.5 962.5 962.5 887.5 887.5 775.0 775.0 650.0 650.0 550.0 550.0 450.0 450.0 350.0 350.0 275.0 275.0 225.0 225.0 175.0 175.0 125.0 125.0 85.0 85.0 60.0 60.0 40.0 40.0 25.0 25.0 15.0 15.0 5.0
-latitude
-degrees_north
--20.0 -17.5 -15.0 -12.5 -10.0 -7.5 -5.0 -2.5 0.0 2.5 5.0 7.5 10.0 12.5 15.0 17.5 20.0
--21.25 -18.75 -18.75 -16.25 -16.25 -13.75 -13.75 -11.25 -11.25 -8.75 -8.75 -6.25 -6.25 -3.75 -3.75 -1.25 -1.25 1.25 1.25 3.75 3.75 6.25 6.25 8.75 8.75 11.25 11.25 13.75 13.75 16.25 16.25 18.75 18.75 21.25
-294.539123535 294.75982666 294.929748535 295.109436035 295.58013916 296.449279785 297.47076416 298.300842285 298.910217285 299.429748535 300.140686035 301.199279785 302.20904541 301.929748535 299.410217285 295.429748535 291.949279785 288.780456543 289.399597168 289.889831543 290.280456543 291.059753418 292.399597168 293.790222168 294.499206543 294.569519043 294.770690918 295.870300293 297.749206543 299.380065918 299.479675293 297.559753418 294.360534668 291.120300293 290.840240479 293.05 [...]
\ No newline at end of file
diff --git a/Test/ta_4D_r.asc b/Test/ta_4D_r.asc
deleted file mode 100644
index 1d21a5c..0000000
--- a/Test/ta_4D_r.asc
+++ /dev/null
@@ -1,23 +0,0 @@
-4
-17
-144
-3
-17
-pressure
-hPa
-1000.0 925.0 850.0 700.0 600.0 500.0 400.0 300.0 250.0 200.0 150.0 100.0 70.0 50.0 30.0 20.0 10.0
-1037.5 962.5 962.5 887.5 887.5 775.0 775.0 650.0 650.0 550.0 550.0 450.0 450.0 350.0 350.0 275.0 275.0 225.0 225.0 175.0 175.0 125.0 125.0 85.0 85.0 60.0 60.0 40.0 40.0 25.0 25.0 15.0 15.0 5.0
-longitude
-degrees_east
-0.0 2.5 5.0 7.5 10.0 12.5 15.0 17.5 20.0 22.5 25.0 27.5 30.0 32.5 35.0 37.5 40.0 42.5 45.0 47.5 50.0 52.5 55.0 57.5 60.0 62.5 65.0 67.5 70.0 72.5 75.0 77.5 80.0 82.5 85.0 87.5 90.0 92.5 95.0 97.5 100.0 102.5 105.0 107.5 110.0 112.5 115.0 117.5 120.0 122.5 125.0 127.5 130.0 132.5 135.0 137.5 140.0 142.5 145.0 147.5 150.0 152.5 155.0 157.5 160.0 162.5 165.0 167.5 170.0 172.5 175.0 177.5 180.0 182.5 185.0 187.5 190.0 192.5 195.0 197.5 200.0 202.5 205.0 207.5 210.0 212.5 215.0 217.5 220.0 22 [...]
--1.25 1.25 1.25 3.75 3.75 6.25 6.25 8.75 8.75 11.25 11.25 13.75 13.75 16.25 16.25 18.75 18.75 21.25 21.25 23.75 23.75 26.25 26.25 28.75 28.75 31.25 31.25 33.75 33.75 36.25 36.25 38.75 38.75 41.25 41.25 43.75 43.75 46.25 46.25 48.75 48.75 51.25 51.25 53.75 53.75 56.25 56.25 58.75 58.75 61.25 61.25 63.75 63.75 66.25 66.25 68.75 68.75 71.25 71.25 73.75 73.75 76.25 76.25 78.75 78.75 81.25 81.25 83.75 83.75 86.25 86.25 88.75 88.75 91.25 91.25 93.75 93.75 96.25 96.25 98.75 98.75 101.25 101.25  [...]
-time
-months since 1949-1-1 0:0
-0.0 1.0 2.0
-0. 1. 1. 2. 2. 3.
-latitude
-degrees_north
--20.0 -17.5 -15.0 -12.5 -10.0 -7.5 -5.0 -2.5 0.0 2.5 5.0 7.5 10.0 12.5 15.0 17.5 20.0
--21.25 -18.75 -18.75 -16.25 -16.25 -13.75 -13.75 -11.25 -11.25 -8.75 -8.75 -6.25 -6.25 -3.75 -3.75 -1.25 -1.25 1.25 1.25 3.75 3.75 6.25 6.25 8.75 8.75 11.25 11.25 13.75 13.75 16.25 16.25 18.75 18.75 21.25
-294.539123535 294.75982666 294.929748535 295.109436035 295.58013916 296.449279785 297.47076416 298.300842285 298.910217285 299.429748535 300.140686035 301.199279785 302.20904541 301.929748535 299.410217285 295.429748535 291.949279785 295.839996338 295.810699463 296.179840088 296.789215088 297.220855713 297.570465088 298.310699463 299.230621338 299.720855713 299.810699463 300.349761963 301.810699463 303.339996338 303.470855713 301.640777588 298.660308838 295.800933838 295.949462891 296.00 [...]
-
diff --git a/Test/tas.asc b/Test/tas.asc
deleted file mode 100644
index f4690a3..0000000
--- a/Test/tas.asc
+++ /dev/null
@@ -1,17 +0,0 @@
-3
-256
-128
-3
-longitude
-degrees_east
--180.0 -178.59375 -177.1875 -175.78125 -174.375 -172.96875 -171.5625 -170.15625 -168.75 -167.34375 -165.9375 -164.53125 -163.125 -161.71875 -160.3125 -158.90625 -157.5 -156.09375 -154.6875 -153.28125 -151.875 -150.46875 -149.0625 -147.65625 -146.25 -144.84375 -143.4375 -142.03125 -140.625 -139.21875 -137.8125 -136.40625 -135.0 -133.59375 -132.1875 -130.78125 -129.375 -127.96875 -126.5625 -125.15625 -123.75 -122.34375 -120.9375 -119.53125 -118.125 -116.71875 -115.3125 -113.90625 -112.5 -1 [...]
--180.703125 -179.296875 -179.296875 -177.890625 -177.890625 -176.484375 -176.484375 -175.078125 -175.078125 -173.671875 -173.671875 -172.265625 -172.265625 -170.859375 -170.859375 -169.453125 -169.453125 -168.046875 -168.046875 -166.640625 -166.640625 -165.234375 -165.234375 -163.828125 -163.828125 -162.421875 -162.421875 -161.015625 -161.015625 -159.609375 -159.609375 -158.203125 -158.203125 -156.796875 -156.796875 -155.390625 -155.390625 -153.984375 -153.984375 -152.578125 -152.578125  [...]
-latitude
-degrees_north
--88.9277353523 -87.538705213 -86.1414721015 -84.7423855907 -83.3425960441 -81.9424662992 -80.5421464346 -79.1417096486 -77.7411958655 -76.3406287024 -74.9400230196 -73.5393886338 -72.1387322892 -70.7380587725 -69.337371575 -67.9366733026 -66.5359659402 -65.135251026 -63.7345297708 -62.3338031405 -60.9330719152 -59.5323367318 -58.1315981156 -56.7308565037 -55.3301122627 -53.9293657026 -52.5286170871 -51.1278666424 -49.7271145631 -48.3263610182 -46.9256061547 -45.5248501013 -44.1240929714  [...]
--90.0 -88.2332202827 -88.2332202827 -86.8400886573 -86.8400886573 -85.4419288461 -85.4419288461 -84.0424908174 -84.0424908174 -82.6425311716 -82.6425311716 -81.2423063669 -81.2423063669 -79.8419280416 -79.8419280416 -78.4414527571 -78.4414527571 -77.0409122839 -77.0409122839 -75.640325861 -75.640325861 -74.2397058267 -74.2397058267 -72.8390604615 -72.8390604615 -71.4383955308 -71.4383955308 -70.0377151737 -70.0377151737 -68.6370224388 -68.6370224388 -67.2363196214 -67.2363196214 -65.8356 [...]
-time
-days since 0000-1-1
-682565.5 682595.0 682624.5
-682550.0 682581.0 682581.0 682609.0 682609.0 682640.0
-246 236 226 249 239 232 254 245 239 259 250 245 263 254 249 265 256 247 266 255 243 267 255 243 268 260 250 269 263 252 269 265 254 269 267 255 271 269 257 271 270 259 271 272 263 271 273 266 272 273 269 272 274 271 274 275 272 274 275 273 275 276 274 276 277 274 276 277 275 277 278 276 278 279 277 279 280 278 280 280 279 281 281 280 282 282 281 283 284 283 285 285 285 287 287 286 288 288 288 290 290 289 291 291 290 292 292 291 292 292 291 292 293 292 293 293 292 293 293 292 293 294 293  [...]
diff --git a/Test/tas_3D_noreorder.input b/Test/tas_3D_noreorder.input
deleted file mode 100644
index d173d87..0000000
--- a/Test/tas_3D_noreorder.input
+++ /dev/null
@@ -1 +0,0 @@
-Test/tas_mytest_noreorder.asc
diff --git a/Test/tas_3D_xty_-180_180.asc b/Test/tas_3D_xty_-180_180.asc
deleted file mode 100644
index bbc73e3..0000000
--- a/Test/tas_3D_xty_-180_180.asc
+++ /dev/null
@@ -1,19 +0,0 @@
-tas
-K
-3
-256
-3
-128
-longitude
-degrees_east
--180.0 -178.59375 -177.1875 -175.78125 -174.375 -172.96875 -171.5625 -170.15625 -168.75 -167.34375 -165.9375 -164.53125 -163.125 -161.71875 -160.3125 -158.90625 -157.5 -156.09375 -154.6875 -153.28125 -151.875 -150.46875 -149.0625 -147.65625 -146.25 -144.84375 -143.4375 -142.03125 -140.625 -139.21875 -137.8125 -136.40625 -135.0 -133.59375 -132.1875 -130.78125 -129.375 -127.96875 -126.5625 -125.15625 -123.75 -122.34375 -120.9375 -119.53125 -118.125 -116.71875 -115.3125 -113.90625 -112.5 -1 [...]
--180.703125 -179.296875 -179.296875 -177.890625 -177.890625 -176.484375 -176.484375 -175.078125 -175.078125 -173.671875 -173.671875 -172.265625 -172.265625 -170.859375 -170.859375 -169.453125 -169.453125 -168.046875 -168.046875 -166.640625 -166.640625 -165.234375 -165.234375 -163.828125 -163.828125 -162.421875 -162.421875 -161.015625 -161.015625 -159.609375 -159.609375 -158.203125 -158.203125 -156.796875 -156.796875 -155.390625 -155.390625 -153.984375 -153.984375 -152.578125 -152.578125  [...]
-time
-days since 0000-1-1
-682565.5 682595.0 682624.5
-682550.0 682581.0 682581.0 682609.0 682609.0 682640.0
-latitude
-degrees_north
--88.9277353523 -87.538705213 -86.1414721015 -84.7423855907 -83.3425960441 -81.9424662992 -80.5421464346 -79.1417096486 -77.7411958655 -76.3406287024 -74.9400230196 -73.5393886338 -72.1387322892 -70.7380587725 -69.337371575 -67.9366733026 -66.5359659402 -65.135251026 -63.7345297708 -62.3338031405 -60.9330719152 -59.5323367318 -58.1315981156 -56.7308565037 -55.3301122627 -53.9293657026 -52.5286170871 -51.1278666424 -49.7271145631 -48.3263610182 -46.9256061547 -45.5248501013 -44.1240929714  [...]
--90.0 -88.2332202827 -88.2332202827 -86.8400886573 -86.8400886573 -85.4419288461 -85.4419288461 -84.0424908174 -84.0424908174 -82.6425311716 -82.6425311716 -81.2423063669 -81.2423063669 -79.8419280416 -79.8419280416 -78.4414527571 -78.4414527571 -77.0409122839 -77.0409122839 -75.640325861 -75.640325861 -74.2397058267 -74.2397058267 -72.8390604615 -72.8390604615 -71.4383955308 -71.4383955308 -70.0377151737 -70.0377151737 -68.6370224388 -68.6370224388 -67.2363196214 -67.2363196214 -65.8356 [...]
-246.618438721 249.43963623 254.053329468 259.268554688 263.412414551 265.8097229 266.670593262 267.246765137 268.651824951 269.128448486 269.342498779 269.956451416 271.081512451 271.672485352 271.856781006 271.848175049 272.066101074 272.884338379 274.031982422 274.973571777 275.570831299 276.138458252 276.851898193 277.663452148 278.512756348 279.381744385 280.321411133 281.276824951 282.345001221 283.823913574 285.464874268 287.10949707 288.687194824 290.135742188 291.49710083 292.241 [...]
diff --git a/Test/tas_3d_r.asc b/Test/tas_3d_r.asc
deleted file mode 100644
index 3915113..0000000
--- a/Test/tas_3d_r.asc
+++ /dev/null
@@ -1,17 +0,0 @@
-3
-144
-3
-17
-longitude
-degrees_east
-0.0 2.5 5.0 7.5 10.0 12.5 15.0 17.5 20.0 22.5 25.0 27.5 30.0 32.5 35.0 37.5 40.0 42.5 45.0 47.5 50.0 52.5 55.0 57.5 60.0 62.5 65.0 67.5 70.0 72.5 75.0 77.5 80.0 82.5 85.0 87.5 90.0 92.5 95.0 97.5 100.0 102.5 105.0 107.5 110.0 112.5 115.0 117.5 120.0 122.5 125.0 127.5 130.0 132.5 135.0 137.5 140.0 142.5 145.0 147.5 150.0 152.5 155.0 157.5 160.0 162.5 165.0 167.5 170.0 172.5 175.0 177.5 180.0 182.5 185.0 187.5 190.0 192.5 195.0 197.5 200.0 202.5 205.0 207.5 210.0 212.5 215.0 217.5 220.0 22 [...]
--1.25 1.25 1.25 3.75 3.75 6.25 6.25 8.75 8.75 11.25 11.25 13.75 13.75 16.25 16.25 18.75 18.75 21.25 21.25 23.75 23.75 26.25 26.25 28.75 28.75 31.25 31.25 33.75 33.75 36.25 36.25 38.75 38.75 41.25 41.25 43.75 43.75 46.25 46.25 48.75 48.75 51.25 51.25 53.75 53.75 56.25 56.25 58.75 58.75 61.25 61.25 63.75 63.75 66.25 66.25 68.75 68.75 71.25 71.25 73.75 73.75 76.25 76.25 78.75 78.75 81.25 81.25 83.75 83.75 86.25 86.25 88.75 88.75 91.25 91.25 93.75 93.75 96.25 96.25 98.75 98.75 101.25 101.25  [...]
-time
-months since 1949-1-1 0:0
-0.0 1.0 2.0
--0.5 0.5 0.5 1.5 1.5 2.5
-latitude
-degrees_north
--20.0 -17.5 -15.0 -12.5 -10.0 -7.5 -5.0 -2.5 0.0 2.5 5.0 7.5 10.0 12.5 15.0 17.5 20.0
--21.25 -18.75 -18.75 -16.25 -16.25 -13.75 -13.75 -11.25 -11.25 -8.75 -8.75 -6.25 -6.25 -3.75 -3.75 -1.25 -1.25 1.25 1.25 3.75 3.75 6.25 6.25 8.75 8.75 11.25 11.25 13.75 13.75 16.25 16.25 18.75 18.75 21.25
-295.741546631 295.649749756 295.751312256 296.046234131 296.723968506 297.813812256 298.468109131 299.218109131 299.934906006 300.446624756 300.069671631 299.315765381 299.210296631 299.138031006 296.938812256 293.616546631 289.309906006 296.815185547 296.821044922 297.028076172 297.455810547 298.162841797 299.080810547 299.453857422 300.006591797 300.590576172 301.028076172 300.477294922 300.123779297 300.576904297 300.793701172 299.297607422 296.684326172 293.114013672 296.684997559 29 [...]
\ No newline at end of file
diff --git a/Test/tas_harvardf.txt b/Test/tas_harvardf.txt
deleted file mode 100644
index 980ce6a..0000000
--- a/Test/tas_harvardf.txt
+++ /dev/null
@@ -1,4385 +0,0 @@
-tas = {
-268.08,
-270.55,
-272.72,
-274.43,
-275.78,
-274.43,
-273.32,
-269.05,
-269.82,
-271.83,
-268.68,
-266.67,
-275.17,
-278.37,
-263.9,
-259.73,
-261.21,
-263.44,
-260.04,
-261.51,
-264.78,
-265.7,
-274.08,
-272.7,
-264.65,
-259.85,
-264.09,
-268.61,
-269.31,
-270.14,
-272.08,
-271.27,
-265.97,
-266.02,
-268.77,
-265.11,
-264.15,
-268.0,
-269.51,
-262.48,
-261.05,
-269.91,
-259.67,
-264.91,
-270.34,
-270.77,
-275.05,
-274.14,
-275.25,
-276.37,
-274.07,
-271.86,
-271.65,
-275.1,
-271.11,
-271.19,
-273.06,
-272.31,
-271.98,
-263.1,
-267.64,
-268.68,
-270.52,
-272.26,
-275.48,
-274.66,
-275.96,
-277.83,
-278.55,
-278.92,
-278.67,
-267.25,
-265.83,
-265.68,
-264.92,
-266.75,
-268.49,
-270.66,
-272.83,
-267.78,
-270.66,
-269.94,
-269.94,
-268.49,
-272.23,
-278.11,
-278.1,
-274.23,
-274.43,
-276.49,
-274.93,
-275.87,
-274.28,
-273.01,
-274.02,
-275.32,
-277.71,
-280.08,
-280.54,
-278.05,
-282.56,
-273.82,
-275.37,
-272.06,
-274.56,
-274.74,
-273.4,
-273.4,
-274.4,
-277.24,
-281.42,
-286.16,
-285.11,
-284.65,
-280.04,
-276.95,
-276.76,
-278.4,
-278.7,
-280.15,
-282.21,
-283.66,
-286.39,
-285.22,
-282.14,
-279.11,
-279.49,
-280.04,
-280.72,
-285.75,
-286.5,
-284.28,
-285.6,
-288.45,
-288.35,
-286.8,
-286.57,
-286.34,
-287.22,
-286.0,
-287.22,
-290.63,
-294.87,
-292.5,
-283.03,
-278.97,
-280.35,
-281.81,
-283.16,
-285.58,
-287.04,
-285.0,
-282.45,
-286.29,
-288.55,
-290.31,
-285.45,
-288.37,
-293.18,
-293.35,
-290.02,
-288.06,
-287.49,
-290.45,
-292.84,
-293.53,
-290.23,
-287.77,
-289.91,
-290.32,
-291.03,
-291.79,
-290.61,
-286.05,
-285.18,
-285.48,
-286.76,
-288.88,
-290.06,
-289.45,
-291.25,
-290.61,
-292.88,
-289.73,
-289.73,
-288.48,
-288.48,
-290.35,
-289.73,
-291.01,
-292.23,
-293.65,
-294.2,
-294.02,
-296.63,
-293.85,
-291.58,
-292.53,
-291.63,
-291.63,
-292.88,
-295.01,
-295.45,
-290.68,
-288.56,
-291.1,
-292.17,
-293.23,
-295.28,
-291.42,
-292.54,
-291.51,
-290.51,
-291.47,
-293.28,
-295.45,
-294.47,
-290.3,
-291.6,
-293.36,
-293.14,
-291.77,
-292.76,
-292.0,
-292.0,
-290.44,
-290.35,
-288.2,
-289.18,
-291.22,
-293.59,
-293.09,
-288.33,
-289.5,
-293.03,
-296.07,
-295.74,
-297.42,
-299.28,
-295.45,
-296.65,
-293.6,
-291.87,
-292.55,
-286.99,
-285.9,
-286.15,
-290.71,
-292.35,
-289.85,
-292.38,
-295.72,
-297.94,
-297.92,
-290.7,
-285.07,
-285.89,
-288.39,
-290.88,
-294.2,
-296.37,
-296.8,
-290.93,
-286.0,
-289.0,
-295.16,
-284.77,
-280.08,
-283.0,
-286.66,
-291.65,
-287.88,
-284.19,
-276.76,
-275.56,
-284.02,
-289.96,
-283.64,
-278.65,
-279.27,
-282.48,
-284.95,
-289.58,
-289.83,
-287.22,
-285.5,
-281.29,
-280.49,
-284.89,
-285.75,
-279.21,
-277.35,
-276.77,
-277.11,
-279.15,
-278.44,
-280.23,
-282.7,
-278.09,
-278.2,
-278.98,
-276.99,
-279.69,
-279.65,
-276.22,
-273.92,
-273.7,
-277.57,
-282.34,
-280.94,
-276.09,
-273.33,
-270.12,
-269.24,
-271.94,
-279.16,
-277.13,
-281.4,
-275.43,
-273.7,
-271.11,
-271.98,
-271.98,
-270.26,
-269.37,
-279.26,
-287.31,
-287.04,
-277.02,
-278.99,
-282.19,
-278.54,
-274.87,
-274.97,
-276.18,
-274.15,
-273.67,
-273.67,
-272.68,
-270.7,
-269.06,
-272.55,
-267.27,
-265.79,
-267.36,
-273.71,
-271.48,
-272.77,
-270.56,
-269.76,
-273.65,
-275.4,
-273.04,
-271.89,
-276.46,
-268.15,
-270.05,
-271.3,
-265.77,
-265.55,
-267.2,
-262.7,
-269.9,
-275.77,
-273.28,
-275.23,
-270.08,
-265.48,
-268.29,
-278.75,
-280.95,
-271.45,
-271.41,
-272.63,
-265.31,
-262.67,
-265.74,
-268.66,
-270.23,
-266.57,
-267.57,
-268.58,
-268.57,
-264.55,
-263.22,
-267.64,
-269.39,
-275.13,
-271.83,
-273.43,
-272.56,
-266.81,
-269.83,
-267.95,
-268.3,
-262.8,
-262.98,
-261.86,
-260.94,
-268.87,
-267.34,
-266.94,
-267.27,
-257.6,
-268.8,
-263.93,
-272.29,
-270.89,
-265.86,
-270.45,
-268.23,
-267.38,
-269.73,
-269.4,
-264.46,
-262.5,
-262.98,
-263.93,
-266.81,
-267.68,
-262.73,
-260.41,
-263.21,
-264.48,
-266.19,
-267.89,
-269.29,
-272.01,
-271.57,
-268.49,
-269.2,
-272.29,
-274.26,
-273.3,
-271.63,
-270.56,
-265.53,
-266.03,
-266.73,
-264.56,
-271.02,
-275.07,
-262.29,
-265.85,
-270.75,
-272.88,
-274.03,
-273.22,
-273.71,
-274.86,
-280.21,
-279.79,
-279.63,
-279.54,
-278.55,
-280.22,
-273.46,
-274.8,
-274.63,
-274.63,
-276.53,
-276.09,
-276.22,
-278.95,
-280.56,
-281.28,
-281.1,
-275.93,
-277.74,
-278.93,
-279.92,
-283.04,
-282.95,
-277.24,
-280.79,
-285.24,
-286.31,
-286.31,
-277.42,
-278.74,
-283.93,
-284.68,
-277.96,
-279.6,
-283.89,
-284.68,
-283.96,
-287.42,
-286.2,
-287.15,
-289.17,
-289.37,
-285.13,
-286.74,
-290.7,
-286.54,
-290.1,
-291.1,
-285.45,
-283.71,
-285.15,
-285.69,
-282.53,
-282.72,
-281.33,
-282.6,
-283.56,
-283.87,
-284.3,
-286.7,
-291.48,
-284.62,
-283.36,
-284.45,
-286.84,
-285.88,
-283.99,
-283.83,
-283.67,
-285.65,
-284.72,
-283.1,
-282.1,
-285.1,
-288.88,
-290.39,
-293.13,
-289.38,
-289.85,
-290.9,
-292.76,
-291.16,
-288.53,
-289.37,
-293.8,
-293.64,
-289.24,
-291.6,
-291.1,
-288.6,
-289.36,
-292.14,
-293.75,
-291.13,
-293.53,
-290.82,
-291.56,
-291.33,
-287.74,
-290.74,
-294.08,
-293.72,
-295.07,
-296.75,
-296.94,
-296.05,
-296.05,
-294.78,
-293.53,
-292.88,
-293.45,
-293.45,
-289.77,
-288.71,
-291.62,
-289.88,
-290.73,
-290.34,
-289.18,
-289.22,
-289.97,
-290.76,
-289.03,
-289.18,
-293.92,
-293.33,
-290.1,
-289.63,
-291.92,
-293.8,
-293.8,
-292.6,
-290.32,
-288.52,
-289.72,
-290.82,
-292.11,
-291.95,
-290.85,
-292.0,
-291.02,
-292.0,
-292.6,
-293.2,
-293.2,
-291.4,
-291.22,
-292.05,
-291.4,
-289.97,
-288.42,
-290.79,
-291.92,
-291.6,
-292.05,
-294.4,
-291.01,
-289.08,
-291.77,
-290.05,
-289.86,
-292.22,
-293.33,
-290.03,
-290.78,
-290.27,
-288.38,
-288.43,
-289.21,
-285.65,
-284.18,
-289.32,
-293.74,
-292.22,
-284.72,
-284.32,
-285.84,
-281.95,
-278.59,
-280.72,
-283.82,
-285.65,
-282.58,
-283.08,
-287.4,
-290.46,
-286.64,
-284.18,
-282.73,
-279.94,
-286.5,
-280.95,
-284.59,
-278.23,
-279.4,
-285.84,
-288.8,
-287.26,
-275.31,
-274.24,
-275.97,
-276.41,
-276.06,
-280.63,
-283.62,
-285.33,
-284.73,
-279.3,
-278.94,
-281.89,
-279.6,
-276.99,
-281.52,
-281.67,
-277.58,
-279.28,
-277.82,
-279.4,
-278.04,
-275.56,
-275.14,
-273.16,
-274.91,
-277.15,
-282.32,
-280.01,
-273.02,
-271.16,
-273.19,
-274.22,
-276.58,
-277.38,
-274.16,
-285.66,
-287.25,
-278.0,
-277.67,
-275.54,
-274.62,
-275.25,
-272.83,
-274.53,
-277.13,
-276.89,
-265.78,
-270.57,
-276.46,
-284.17,
-274.13,
-272.12,
-269.19,
-271.77,
-276.57,
-274.47,
-276.0,
-274.94,
-275.35,
-272.47,
-271.64,
-278.79,
-275.1,
-266.4,
-271.85,
-275.25,
-276.18,
-275.95,
-271.43,
-272.08,
-271.95,
-271.76,
-274.32,
-275.95,
-269.93,
-266.75,
-267.8,
-261.58,
-256.52,
-258.76,
-259.7,
-263.17,
-262.96,
-269.99,
-272.6,
-265.67,
-265.48,
-262.9,
-258.84,
-261.59,
-263.84,
-261.78,
-258.19,
-261.89,
-265.46,
-267.08,
-270.54,
-256.9,
-251.76,
-265.76,
-262.94,
-252.58,
-253.63,
-256.48,
-261.22,
-258.38,
-271.05,
-267.96,
-258.08,
-257.21,
-275.46,
-272.97,
-265.12,
-261.98,
-259.68,
-259.43,
-261.25,
-263.33,
-271.11,
-269.26,
-266.66,
-258.24,
-259.08,
-256.45,
-260.56,
-266.88,
-269.08,
-265.41,
-264.02,
-267.78,
-267.87,
-272.86,
-276.46,
-280.4,
-277.61,
-272.98,
-265.35,
-268.24,
-265.18,
-262.68,
-260.07,
-262.11,
-265.07,
-266.18,
-269.94,
-270.66,
-272.46,
-271.31,
-274.37,
-276.0,
-272.83,
-272.1,
-272.27,
-269.7,
-274.89,
-274.75,
-276.04,
-273.07,
-268.14,
-269.13,
-270.85,
-272.0,
-274.41,
-274.29,
-278.95,
-279.27,
-276.46,
-275.45,
-274.93,
-274.93,
-275.67,
-272.27,
-274.88,
-277.12,
-277.14,
-280.27,
-276.97,
-276.95,
-280.68,
-277.3,
-274.57,
-278.35,
-280.87,
-278.34,
-278.01,
-280.26,
-281.48,
-287.11,
-283.61,
-278.08,
-278.14,
-283.99,
-278.9,
-276.58,
-276.34,
-279.11,
-288.3,
-280.76,
-278.85,
-286.95,
-284.3,
-282.18,
-287.68,
-284.04,
-280.24,
-281.03,
-284.24,
-281.46,
-279.89,
-284.51,
-281.87,
-286.75,
-284.68,
-284.15,
-283.22,
-279.27,
-283.87,
-286.24,
-281.56,
-281.09,
-282.07,
-280.88,
-282.59,
-286.86,
-291.97,
-291.12,
-289.58,
-288.76,
-288.78,
-280.5,
-283.09,
-286.97,
-290.92,
-291.81,
-288.48,
-281.75,
-286.4,
-288.89,
-290.11,
-289.79,
-291.97,
-288.15,
-288.58,
-288.76,
-288.55,
-289.62,
-294.22,
-293.79,
-294.7,
-294.86,
-296.56,
-298.07,
-296.76,
-293.31,
-290.42,
-291.34,
-291.99,
-288.01,
-290.95,
-293.75,
-294.49,
-293.34,
-291.99,
-293.48,
-293.15,
-294.85,
-293.22,
-290.63,
-291.63,
-295.77,
-296.72,
-296.06,
-296.05,
-294.32,
-291.01,
-292.02,
-295.11,
-293.12,
-288.96,
-293.61,
-293.29,
-291.9,
-294.6,
-295.62,
-297.33,
-297.53,
-294.0,
-294.66,
-295.12,
-293.75,
-293.52,
-292.73,
-293.03,
-294.83,
-294.11,
-294.35,
-295.18,
-295.15,
-295.7,
-290.85,
-286.41,
-288.3,
-290.0,
-292.15,
-291.34,
-288.2,
-291.5,
-293.7,
-292.3,
-285.5,
-287.82,
-290.22,
-291.48,
-291.18,
-293.03,
-292.77,
-288.45,
-286.54,
-287.57,
-290.28,
-292.65,
-293.13,
-293.58,
-289.05,
-286.42,
-287.16,
-288.9,
-284.2,
-284.5,
-284.32,
-284.81,
-285.29,
-286.63,
-287.1,
-288.19,
-287.88,
-286.78,
-287.6,
-291.31,
-290.9,
-286.89,
-287.76,
-293.08,
-285.45,
-283.31,
-286.13,
-289.02,
-285.0,
-285.75,
-287.66,
-288.81,
-286.94,
-286.59,
-287.66,
-283.81,
-282.02,
-278.97,
-279.63,
-278.63,
-279.75,
-278.81,
-278.78,
-282.45,
-285.79,
-287.96,
-280.76,
-277.09,
-277.83,
-280.7,
-282.82,
-280.09,
-281.23,
-281.48,
-281.65,
-284.67,
-286.17,
-285.86,
-284.24,
-283.17,
-281.66,
-281.13,
-279.31,
-277.78,
-278.21,
-282.03,
-282.65,
-284.12,
-287.34,
-279.91,
-280.66,
-287.27,
-288.27,
-284.86,
-279.32,
-281.35,
-283.8,
-276.55,
-273.81,
-275.12,
-276.23,
-280.12,
-283.32,
-277.93,
-276.3,
-280.48,
-280.19,
-274.3,
-276.94,
-278.48,
-269.6,
-267.25,
-273.0,
-270.81,
-268.72,
-276.13,
-274.59,
-273.1,
-270.73,
-275.3,
-277.21,
-278.87,
-278.87,
-280.06,
-275.97,
-269.93,
-269.99,
-272.48,
-272.35,
-263.1,
-264.8,
-269.6,
-268.34,
-268.1,
-272.51,
-274.15,
-271.81,
-268.79,
-273.83,
-273.86,
-276.82,
-276.64,
-275.24,
-274.43,
-273.05,
-274.94,
-268.54,
-262.34,
-268.66,
-274.81,
-270.8,
-266.8,
-265.54,
-262.38,
-267.45,
-272.85,
-267.61,
-266.66,
-262.98,
-261.84,
-269.18,
-278.22,
-282.71,
-286.9,
-286.33,
-280.02,
-273.41,
-273.12,
-274.63,
-274.89,
-273.28,
-271.17,
-269.74,
-269.33,
-266.62,
-265.47,
-262.2,
-264.08,
-268.26,
-269.14,
-273.64,
-268.9,
-262.84,
-267.54,
-260.19,
-255.56,
-257.1,
-259.45,
-264.35,
-268.52,
-271.84,
-260.71,
-262.14,
-262.76,
-265.97,
-274.69,
-270.27,
-272.22,
-273.81,
-273.96,
-272.9,
-269.82,
-272.8,
-272.05,
-265.56,
-261.92,
-264.09,
-272.33,
-271.86,
-268.15,
-266.32,
-269.27,
-270.61,
-273.66,
-276.74,
-283.29,
-268.62,
-266.07,
-269.47,
-273.6,
-279.38,
-276.63,
-280.56,
-280.63,
-278.63,
-276.77,
-276.13,
-277.43,
-280.98,
-276.37,
-275.53,
-272.74,
-273.3,
-276.5,
-275.86,
-275.55,
-277.33,
-275.15,
-276.07,
-273.66,
-273.37,
-275.2,
-274.62,
-265.95,
-270.39,
-275.41,
-272.42,
-277.09,
-273.91,
-277.4,
-278.37,
-282.11,
-278.25,
-276.53,
-275.48,
-277.96,
-281.86,
-282.65,
-282.47,
-280.73,
-281.98,
-278.5,
-279.5,
-281.19,
-281.5,
-284.73,
-283.21,
-281.8,
-280.31,
-279.92,
-280.82,
-283.78,
-285.75,
-286.14,
-281.6,
-278.87,
-282.19,
-282.05,
-287.2,
-283.34,
-283.55,
-283.16,
-285.4,
-281.47,
-284.66,
-282.32,
-285.77,
-283.33,
-285.05,
-289.43,
-286.32,
-288.18,
-291.23,
-287.14,
-285.88,
-285.77,
-285.64,
-287.3,
-287.79,
-291.13,
-293.14,
-291.84,
-291.04,
-287.06,
-288.74,
-291.67,
-291.05,
-289.66,
-287.07,
-288.1,
-287.87,
-287.61,
-287.15,
-287.24,
-286.32,
-288.78,
-291.15,
-293.86,
-296.8,
-294.92,
-290.34,
-289.8,
-290.1,
-291.86,
-293.3,
-292.69,
-288.45,
-286.53,
-290.21,
-293.05,
-292.93,
-290.78,
-289.11,
-291.36,
-292.79,
-294.27,
-293.83,
-291.47,
-287.97,
-289.54,
-289.67,
-291.97,
-294.8,
-298.18,
-294.63,
-293.7,
-288.39,
-290.51,
-291.35,
-292.99,
-293.6,
-293.6,
-294.32,
-294.52,
-290.35,
-293.75,
-295.67,
-295.04,
-293.06,
-293.82,
-293.47,
-295.96,
-295.07,
-292.18,
-293.92,
-293.2,
-290.26,
-288.48,
-289.86,
-291.5,
-292.58,
-294.65,
-294.3,
-292.35,
-292.43,
-293.5,
-295.82,
-296.43,
-294.77,
-289.74,
-287.65,
-292.58,
-292.91,
-289.94,
-291.19,
-286.8,
-288.14,
-287.55,
-288.74,
-288.7,
-289.42,
-290.75,
-292.65,
-289.79,
-288.22,
-288.58,
-290.73,
-291.44,
-293.6,
-285.3,
-285.85,
-284.9,
-283.78,
-287.73,
-290.46,
-291.15,
-283.65,
-283.44,
-286.05,
-285.34,
-284.0,
-283.87,
-287.05,
-290.01,
-281.8,
-280.99,
-282.85,
-284.63,
-286.51,
-283.43,
-280.96,
-281.16,
-281.83,
-286.01,
-286.68,
-289.27,
-287.11,
-283.35,
-283.15,
-284.3,
-281.61,
-282.6,
-285.51,
-286.81,
-289.34,
-289.27,
-283.65,
-280.16,
-277.32,
-282.75,
-284.99,
-284.54,
-289.52,
-280.38,
-283.16,
-286.59,
-281.11,
-278.09,
-281.83,
-287.12,
-278.83,
-275.82,
-275.15,
-276.5,
-280.07,
-281.97,
-274.64,
-272.55,
-273.45,
-276.45,
-275.72,
-269.63,
-272.6,
-284.67,
-276.5,
-270.62,
-273.15,
-277.12,
-272.75,
-271.1,
-271.18,
-273.88,
-274.32,
-275.62,
-273.02,
-272.2,
-270.97,
-269.68,
-273.01,
-275.2,
-278.52,
-269.55,
-266.31,
-272.61,
-270.89,
-271.03,
-274.47,
-270.65,
-271.33,
-267.52,
-265.75,
-268.46,
-266.31,
-265.23,
-264.15,
-259.96,
-265.69,
-269.55,
-270.43,
-270.13,
-267.59,
-264.15,
-265.71,
-263.81,
-269.03,
-270.38,
-269.28,
-267.58,
-268.66,
-267.59,
-268.7,
-268.33,
-271.81,
-272.43,
-269.59,
-268.36,
-263.22,
-259.01,
-259.55,
-257.52,
-258.52,
-261.53,
-261.74,
-265.48,
-260.21,
-265.37,
-270.42,
-272.03,
-267.86,
-263.74,
-276.71,
-277.78,
-282.12,
-265.99,
-265.7,
-270.46,
-272.91,
-277.92,
-267.6,
-266.62,
-277.32,
-266.98,
-265.16,
-271.14,
-264.51,
-259.58,
-264.55,
-259.74,
-255.02,
-256.48,
-258.43,
-265.18,
-272.08,
-274.55,
-272.4,
-274.15,
-264.89,
-256.96,
-263.08,
-265.17,
-263.97,
-265.35,
-262.64,
-263.13,
-275.49,
-279.25,
-277.03,
-276.29,
-276.33,
-277.07,
-275.43,
-273.62,
-275.92,
-266.92,
-265.8,
-267.93,
-267.71,
-264.17,
-269.28,
-270.34,
-270.83,
-269.2,
-264.2,
-263.48,
-268.49,
-273.48,
-275.57,
-278.47,
-276.92,
-271.71,
-272.41,
-274.39,
-276.22,
-275.35,
-274.48,
-272.68,
-270.0,
-272.88,
-280.93,
-279.45,
-270.0,
-271.01,
-274.14,
-275.05,
-276.31,
-279.7,
-276.0,
-274.92,
-275.42,
-276.98,
-275.75,
-273.51,
-272.98,
-273.31,
-272.59,
-277.8,
-279.73,
-276.67,
-273.79,
-277.24,
-276.27,
-275.1,
-278.91,
-284.81,
-287.58,
-288.88,
-287.47,
-291.65,
-279.72,
-283.36,
-288.53,
-279.97,
-278.94,
-276.76,
-282.62,
-284.71,
-283.24,
-280.87,
-282.37,
-284.88,
-276.5,
-282.03,
-284.69,
-286.02,
-284.21,
-286.78,
-278.45,
-277.78,
-279.35,
-284.17,
-281.16,
-284.13,
-286.06,
-292.42,
-296.93,
-292.63,
-288.76,
-288.74,
-286.55,
-282.9,
-284.34,
-285.92,
-285.85,
-283.44,
-279.83,
-286.14,
-288.88,
-289.35,
-285.8,
-289.68,
-289.92,
-288.96,
-291.51,
-291.96,
-289.6,
-290.39,
-294.02,
-293.99,
-292.6,
-291.89,
-292.94,
-291.56,
-292.7,
-290.61,
-287.84,
-288.31,
-290.76,
-287.85,
-289.96,
-289.2,
-290.07,
-287.2,
-287.99,
-288.9,
-288.06,
-288.22,
-292.1,
-292.07,
-291.11,
-289.58,
-290.38,
-292.25,
-291.78,
-293.5,
-292.9,
-288.62,
-289.29,
-291.0,
-290.12,
-293.75,
-294.22,
-293.06,
-292.88,
-292.94,
-292.47,
-288.58,
-290.35,
-290.37,
-288.67,
-290.77,
-291.55,
-291.05,
-290.48,
-289.95,
-289.58,
-288.86,
-287.98,
-288.92,
-291.7,
-291.42,
-291.82,
-293.73,
-293.9,
-295.03,
-294.37,
-292.9,
-292.26,
-289.45,
-289.42,
-287.38,
-290.97,
-291.53,
-290.58,
-292.38,
-292.3,
-290.99,
-291.85,
-292.73,
-292.98,
-293.51,
-292.11,
-291.35,
-292.75,
-290.73,
-288.98,
-289.82,
-288.39,
-288.91,
-290.75,
-292.7,
-293.29,
-292.82,
-293.27,
-293.95,
-289.7,
-286.66,
-290.12,
-290.9,
-289.71,
-288.26,
-285.84,
-286.51,
-286.33,
-287.37,
-284.33,
-284.5,
-285.46,
-285.05,
-287.08,
-288.58,
-283.98,
-281.12,
-283.45,
-282.73,
-284.31,
-289.2,
-285.5,
-283.24,
-284.1,
-285.95,
-281.63,
-275.76,
-275.88,
-277.77,
-282.48,
-283.7,
-282.42,
-281.78,
-276.52,
-276.53,
-280.11,
-283.15,
-278.61,
-283.93,
-285.67,
-279.3,
-280.02,
-281.37,
-281.38,
-281.13,
-281.97,
-283.15,
-281.9,
-281.12,
-283.35,
-283.77,
-279.02,
-279.59,
-278.83,
-275.23,
-273.27,
-272.43,
-275.36,
-279.84,
-279.06,
-283.1,
-289.5,
-283.7,
-275.65,
-272.43,
-270.98,
-268.33,
-267.43,
-267.06,
-269.36,
-274.3,
-276.03,
-274.73,
-272.75,
-272.02,
-271.89,
-274.21,
-271.77,
-272.38,
-273.74,
-266.6,
-265.95,
-267.27,
-271.04,
-280.83,
-278.05,
-272.01,
-273.36,
-272.87,
-271.94,
-271.53,
-272.15,
-270.28,
-269.16,
-272.27,
-274.16,
-273.12,
-273.86,
-273.79,
-274.15,
-278.44,
-277.67,
-275.2,
-266.31,
-266.49,
-270.06,
-272.83,
-279.75,
-268.95,
-268.72,
-272.37,
-273.43,
-279.25,
-272.84,
-261.15,
-258.62,
-265.48,
-271.83,
-275.02,
-273.43,
-273.28,
-268.63,
-266.17,
-266.65,
-270.83,
-265.99,
-264.14,
-266.3,
-265.5,
-268.96,
-273.33,
-262.61,
-257.5,
-258.42,
-264.61,
-267.2,
-274.5,
-274.07,
-264.25,
-274.98,
-266.39,
-263.06,
-270.7,
-263.25,
-261.92,
-268.43,
-273.2,
-272.4,
-272.72,
-269.16,
-273.3,
-272.62,
-269.35,
-268.2,
-267.25,
-267.91,
-268.49,
-269.62,
-265.61,
-269.32,
-272.33,
-267.7,
-265.4,
-273.61,
-279.77,
-273.35,
-276.71,
-281.59,
-270.09,
-270.32,
-263.75,
-274.98,
-280.12,
-275.05,
-274.11,
-277.19,
-272.65,
-271.8,
-275.84,
-272.34,
-269.39,
-268.8,
-266.81,
-270.62,
-271.91,
-269.0,
-264.98,
-265.93,
-270.03,
-264.66,
-266.96,
-273.43,
-270.9,
-271.96,
-271.55,
-273.86,
-266.87,
-268.17,
-272.47,
-276.49,
-277.11,
-280.32,
-279.28,
-279.57,
-273.63,
-272.0,
-274.42,
-276.51,
-279.37,
-278.67,
-279.3,
-285.44,
-276.75,
-269.05,
-271.25,
-274.1,
-277.25,
-279.18,
-276.53,
-275.95,
-280.47,
-280.33,
-276.9,
-276.22,
-277.9,
-280.0,
-280.72,
-281.22,
-280.53,
-277.25,
-280.01,
-283.3,
-278.33,
-281.06,
-285.53,
-285.56,
-281.48,
-281.28,
-280.38,
-280.63,
-281.38,
-277.84,
-279.16,
-279.13,
-279.28,
-281.63,
-287.43,
-284.28,
-284.95,
-285.81,
-286.15,
-281.05,
-282.87,
-282.03,
-283.65,
-280.15,
-282.59,
-282.72,
-283.98,
-285.27,
-283.58,
-283.23,
-284.37,
-288.22,
-287.1,
-290.59,
-290.51,
-283.89,
-283.7,
-284.21,
-285.0,
-284.96,
-285.82,
-286.46,
-290.03,
-292.11,
-295.3,
-293.8,
-291.55,
-289.16,
-286.38,
-287.23,
-289.11,
-289.67,
-291.26,
-291.86,
-295.85,
-295.48,
-291.15,
-288.95,
-293.78,
-293.09,
-290.89,
-292.2,
-294.13,
-294.06,
-293.07,
-291.6,
-291.81,
-290.81,
-288.52,
-290.13,
-291.12,
-292.14,
-293.47,
-289.26,
-291.13,
-292.94,
-293.44,
-296.42,
-292.72,
-293.08,
-295.1,
-294.42,
-288.35,
-288.16,
-288.27,
-290.53,
-289.46,
-286.77,
-289.1,
-291.23,
-293.8,
-294.24,
-289.92,
-289.27,
-291.78,
-292.38,
-293.84,
-293.52,
-289.45,
-288.0,
-288.43,
-288.17,
-289.33,
-292.32,
-294.23,
-294.0,
-290.52,
-290.63,
-289.98,
-289.29,
-295.75,
-294.71,
-288.07,
-287.82,
-288.18,
-286.53,
-288.83,
-288.07,
-287.57,
-289.05,
-289.67,
-291.58,
-290.07,
-289.75,
-289.94,
-291.2,
-291.42,
-292.98,
-286.33,
-282.55,
-286.03,
-288.22,
-289.98,
-288.4,
-288.39,
-288.35,
-289.12,
-292.27,
-289.71,
-289.98,
-289.37,
-289.55,
-286.69,
-290.7,
-290.03,
-288.34,
-282.8,
-281.79,
-283.85,
-279.03,
-281.8,
-284.91,
-281.62,
-282.42,
-285.3,
-286.25,
-279.83,
-277.53,
-279.28,
-280.36,
-284.48,
-286.69,
-285.47,
-283.64,
-287.31,
-289.9,
-282.12,
-280.77,
-284.21,
-285.88,
-283.84,
-280.59,
-278.02,
-278.36,
-277.95,
-281.51,
-277.96,
-275.04,
-273.6,
-277.55,
-276.77,
-275.41,
-278.0,
-276.45,
-276.22,
-277.81,
-280.15,
-284.35,
-286.43,
-281.15,
-280.14,
-276.39,
-276.37,
-278.22,
-277.6,
-277.95,
-277.37,
-274.09,
-270.91,
-270.46,
-269.17,
-271.03,
-269.76,
-270.12,
-270.14,
-269.53,
-270.95,
-275.5,
-273.33,
-270.65,
-270.65,
-269.08,
-274.73,
-272.47,
-270.65,
-272.34,
-272.29,
-271.16,
-269.88,
-270.93,
-273.84,
-273.92,
-272.15,
-272.15,
-272.15,
-270.93,
-270.89,
-268.38,
-270.03,
-269.93,
-269.93,
-268.1,
-271.01,
-273.84,
-270.49,
-274.4,
-272.94,
-266.5,
-268.38,
-270.46,
-269.75,
-272.77,
-273.98,
-272.43,
-268.35,
-270.19,
-272.66,
-268.86,
-261.63,
-271.8,
-278.67,
-279.01,
-273.35,
-277.87,
-273.47,
-273.7,
-272.84,
-273.17,
-272.28,
-267.41,
-273.07,
-265.55,
-265.02,
-268.9,
-269.54,
-268.23,
-270.32,
-270.78,
-268.47,
-264.77,
-267.82,
-272.98,
-270.93,
-267.3,
-264.21,
-269.45,
-272.9,
-272.23,
-271.53,
-270.15,
-272.45,
-274.3,
-272.46,
-271.31,
-271.15,
-269.72,
-269.06,
-269.1,
-272.26,
-275.38,
-278.33,
-272.29,
-264.34,
-260.92,
-264.04,
-270.23,
-273.83,
-273.92,
-274.86,
-274.51,
-273.67,
-272.42,
-273.77,
-273.7,
-274.64,
-275.42,
-277.45,
-275.46,
-275.13,
-274.41,
-274.25,
-272.83,
-272.37,
-274.16,
-273.19,
-279.36,
-279.0,
-266.87,
-262.34,
-265.12,
-270.44,
-270.57,
-269.77,
-270.42,
-272.51,
-273.03,
-272.95,
-269.36,
-269.33,
-270.17,
-270.96,
-272.95,
-277.57,
-284.89,
-289.3,
-286.58,
-287.67,
-292.92,
-278.8,
-277.65,
-277.25,
-274.75,
-274.34,
-277.53,
-279.19,
-280.48,
-279.27,
-277.24,
-277.41,
-279.21,
-281.38,
-282.15,
-280.89,
-284.51,
-285.86,
-280.65,
-280.64,
-278.5,
-280.38,
-283.21,
-279.3,
-280.65,
-279.63,
-276.28,
-276.58,
-278.79,
-283.91,
-288.24,
-287.53,
-285.9,
-285.58,
-286.45,
-287.65,
-285.84,
-287.15,
-287.17,
-284.44,
-283.06,
-281.43,
-281.9,
-281.53,
-286.27,
-291.08,
-291.45,
-285.85,
-289.83,
-289.46,
-289.12,
-288.1,
-283.69,
-285.92,
-287.91,
-286.97,
-287.82,
-288.28,
-291.47,
-292.67,
-291.12,
-289.21,
-286.18,
-285.43,
-283.3,
-281.84,
-284.58,
-284.6,
-283.94,
-283.31,
-285.98,
-289.1,
-287.13,
-286.72,
-289.41,
-289.24,
-290.35,
-289.8,
-291.08,
-291.41,
-291.95,
-291.85,
-292.53,
-292.58,
-291.4,
-294.68,
-294.93,
-294.91,
-291.17,
-290.24,
-289.82,
-291.6,
-289.51,
-289.74,
-291.7,
-292.16,
-290.53,
-290.15,
-290.96,
-288.71,
-289.93,
-290.55,
-288.26,
-289.91,
-292.71,
-294.63,
-295.95,
-296.43,
-295.84,
-292.93,
-292.41,
-294.34,
-295.0,
-296.04,
-294.74,
-290.83,
-289.17,
-289.8,
-291.84,
-294.45,
-293.44,
-290.73,
-289.75,
-289.7,
-290.26,
-292.55,
-293.27,
-293.41,
-293.3,
-292.65,
-292.96,
-294.06,
-294.96,
-294.04,
-289.57,
-287.94,
-291.93,
-292.85,
-294.55,
-292.8,
-292.59,
-287.15,
-288.1,
-289.9,
-291.51,
-292.92,
-295.09,
-295.45,
-294.67,
-293.69,
-294.07,
-293.43,
-292.65,
-290.19,
-289.63,
-289.5,
-289.54,
-290.73,
-288.6,
-293.58,
-290.8,
-287.33,
-283.4,
-284.43,
-286.73,
-291.1,
-290.07,
-290.27,
-293.74,
-291.6,
-287.32,
-287.73,
-289.91,
-292.85,
-293.49,
-290.11,
-281.45,
-280.73,
-285.96,
-290.15,
-293.2,
-288.63,
-283.61,
-287.18,
-286.72,
-281.01,
-280.48,
-280.41,
-281.82,
-277.97,
-280.73,
-288.46,
-284.48,
-279.71,
-283.8,
-284.48,
-282.04,
-282.25,
-279.71,
-280.93,
-281.56,
-288.43,
-286.31,
-281.7,
-278.93,
-276.4,
-278.57,
-284.2,
-285.96,
-278.78,
-277.54,
-282.26,
-278.87,
-279.22,
-281.45,
-278.83,
-277.51,
-274.26,
-271.64,
-273.07,
-273.17,
-273.9,
-273.87,
-271.7,
-273.35,
-281.21,
-278.17,
-275.74,
-275.33,
-279.43,
-276.51,
-274.76,
-273.06,
-273.29,
-279.99,
-275.23,
-273.65,
-279.0,
-278.75,
-272.8,
-275.56,
-276.16,
-276.29,
-275.35,
-278.37,
-279.51,
-277.17,
-281.33,
-284.04,
-277.56,
-281.94,
-284.5,
-275.97,
-272.79,
-271.85,
-272.51,
-270.14,
-272.15,
-270.99,
-272.94,
-271.56,
-273.67,
-268.41,
-273.24,
-275.53,
-273.78,
-272.15,
-266.05,
-266.44,
-266.62,
-267.81,
-268.66,
-273.78,
-271.96,
-271.42,
-263.52,
-260.2,
-255.79,
-268.94,
-269.46,
-264.66,
-263.05,
-262.59,
-262.08,
-273.93,
-263.13,
-262.96,
-269.2,
-269.26,
-258.98,
-262.25,
-270.23,
-267.88,
-272.63,
-273.82,
-271.38,
-271.28,
-274.51,
-274.57,
-280.57,
-272.18,
-270.36,
-271.22,
-267.77,
-265.17,
-263.27,
-262.73,
-268.04,
-273.83,
-275.4,
-273.45,
-272.64,
-269.49,
-271.48,
-269.4,
-270.5,
-273.8,
-273.23,
-279.2,
-271.27,
-265.98,
-267.98,
-273.25,
-273.46,
-274.17,
-272.33,
-271.16,
-269.0,
-261.33,
-262.23,
-264.72,
-268.09,
-271.78,
-271.63,
-272.52,
-277.04,
-272.92,
-276.25,
-273.31,
-270.11,
-269.33,
-265.53,
-267.48,
-267.59,
-268.26,
-269.18,
-269.17,
-272.95,
-273.65,
-271.99,
-273.08,
-278.77,
-279.23,
-274.71,
-273.72,
-274.6,
-277.13,
-275.85,
-276.27,
-275.55,
-274.29,
-277.91,
-276.63,
-282.12,
-279.46,
-282.18,
-284.24,
-281.9,
-280.13,
-278.77,
-277.96,
-281.7,
-282.79,
-284.61,
-278.79,
-278.12,
-277.17,
-279.06,
-277.98,
-279.88,
-281.28,
-278.26,
-278.71,
-281.19,
-281.39,
-279.52,
-282.89,
-281.6,
-279.88,
-277.8,
-279.93,
-283.61,
-280.52,
-278.69,
-282.0,
-283.64,
-285.62,
-286.74,
-285.6,
-285.88,
-284.64,
-287.4,
-289.2,
-287.8,
-287.94,
-285.68,
-284.27,
-285.35,
-283.89,
-285.09,
-286.78,
-287.01,
-287.65,
-288.91,
-289.55,
-287.03,
-287.83,
-290.56,
-286.57,
-286.85,
-286.31,
-283.34,
-283.34,
-286.82,
-291.6,
-293.03,
-294.88,
-294.91,
-295.09,
-293.94,
-289.62,
-289.52,
-291.44,
-296.91,
-296.63,
-287.3,
-287.53,
-287.85,
-291.55,
-292.57,
-292.88,
-290.71,
-287.05,
-286.46,
-286.77,
-288.8,
-290.94,
-289.76,
-292.85,
-294.68,
-295.2,
-292.48,
-294.47,
-296.64,
-297.47,
-296.3,
-291.93,
-292.67,
-294.87,
-294.69,
-296.01,
-298.73,
-297.95,
-293.27,
-291.53,
-289.98,
-292.94,
-288.82,
-290.32,
-289.87,
-291.17,
-293.65,
-296.44,
-298.18,
-297.28,
-293.25,
-292.48,
-291.88,
-295.92,
-296.7,
-296.55,
-296.55,
-294.46,
-295.06,
-294.9,
-294.54,
-297.03,
-298.11,
-298.75,
-294.53,
-292.57,
-293.89,
-293.23,
-293.1,
-290.37,
-291.82,
-289.57,
-288.71,
-290.15,
-294.22,
-295.4,
-294.83,
-290.17,
-291.32,
-295.88,
-293.8,
-291.3,
-290.28,
-286.56,
-287.46,
-290.63,
-292.0,
-293.0,
-291.72,
-292.82,
-294.14,
-291.91,
-288.35,
-288.91,
-290.45,
-292.57,
-294.11,
-294.61,
-294.61,
-294.17,
-294.98,
-294.68,
-295.5,
-292.81,
-289.83,
-287.78,
-288.93,
-289.71,
-290.72,
-288.25,
-284.76,
-285.37,
-285.05,
-287.32,
-287.97,
-282.88,
-284.8,
-288.44,
-287.64,
-284.46,
-286.76,
-290.27,
-291.32,
-288.17,
-285.12,
-285.16,
-288.36,
-280.7,
-279.35,
-280.2,
-275.82,
-279.46,
-287.39,
-286.8,
-286.03,
-280.82,
-286.42,
-281.92,
-278.23,
-286.11,
-290.55,
-284.86,
-277.62,
-278.32,
-278.73,
-280.79,
-281.05,
-279.8,
-276.68,
-281.93,
-279.18,
-277.74,
-281.76,
-283.42,
-288.38,
-283.08,
-286.79,
-285.31,
-276.23,
-279.58,
-281.93,
-274.83,
-271.76,
-279.12,
-285.98,
-273.82,
-271.56,
-272.83,
-277.13,
-275.36,
-271.33,
-271.47,
-272.82,
-278.49,
-284.41,
-279.91,
-284.67,
-285.19,
-287.11,
-280.8,
-281.53,
-281.75,
-275.72,
-272.46,
-269.75,
-266.07,
-270.56,
-273.59,
-274.43,
-275.95,
-279.72,
-277.26,
-272.6,
-273.27,
-276.88,
-272.34,
-272.06,
-273.02,
-274.02,
-274.51,
-275.85,
-272.49,
-271.38,
-269.13,
-269.93,
-273.1,
-269.88,
-267.92,
-264.25,
-261.03,
-267.78,
-266.16,
-263.07,
-266.48,
-273.83,
-269.27,
-270.57,
-277.19,
-281.81,
-278.7,
-268.82,
-267.15,
-271.42,
-269.12,
-272.76,
-274.64,
-274.95,
-271.3,
-264.67,
-256.81,
-258.25,
-263.86,
-259.27,
-256.55,
-258.23,
-261.28,
-259.6,
-256.29,
-257.15,
-266.34,
-267.26,
-265.5,
-258.68,
-257.56,
-259.85,
-266.26,
-272.89,
-267.97,
-262.47,
-262.77,
-265.37,
-266.5,
-266.27,
-268.33,
-262.18,
-269.22,
-272.8,
-271.31,
-269.01,
-267.5,
-274.51,
-269.63,
-270.15,
-264.67,
-264.43,
-267.97,
-269.19,
-269.18,
-272.16,
-275.52,
-280.12,
-275.87,
-272.94,
-277.89,
-276.73,
-272.99,
-273.85,
-272.85,
-271.01,
-272.56,
-274.13,
-273.06,
-278.01,
-280.62,
-282.73,
-275.41,
-272.0,
-272.31,
-270.12,
-274.28,
-279.41,
-282.89,
-269.11,
-266.34,
-270.33,
-271.95,
-273.04,
-275.4,
-281.31,
-281.83,
-281.78,
-280.86,
-279.34,
-279.87,
-277.54,
-276.24,
-275.92,
-279.84,
-283.63,
-281.62,
-282.56,
-274.24,
-276.69,
-281.6,
-286.61,
-275.2,
-273.88,
-273.37,
-273.92,
-274.69,
-278.31,
-285.55,
-285.97,
-276.49,
-274.79,
-275.98,
-281.01,
-277.24,
-276.14,
-276.49,
-277.49,
-277.76,
-272.97,
-275.75,
-277.91,
-283.02,
-281.08,
-282.54,
-282.3,
-284.25,
-285.68,
-289.35,
-290.29,
-294.69,
-294.69,
-293.0,
-279.32,
-283.54,
-286.21,
-285.25,
-285.05,
-281.43,
-283.22,
-285.86,
-287.7,
-283.31,
-281.17,
-282.11,
-282.22,
-283.95,
-286.03,
-287.04,
-285.29,
-286.39,
-284.39,
-283.25,
-284.28,
-286.3,
-292.11,
-291.72,
-287.51,
-286.91,
-283.9,
-281.32,
-283.12,
-287.26,
-291.45,
-295.07,
-290.95,
-285.16,
-283.15,
-283.48,
-287.69,
-295.22,
-293.9,
-290.09,
-289.08,
-289.65,
-291.85,
-293.27,
-290.88,
-290.15,
-292.45,
-293.92,
-293.89,
-291.25,
-290.93,
-289.82,
-290.44,
-293.27,
-292.67,
-293.32,
-291.58,
-288.06,
-288.25,
-288.06,
-289.61,
-293.12,
-290.87,
-291.38,
-291.95,
-292.9,
-291.72,
-292.62,
-290.88,
-292.53,
-287.85,
-288.35,
-289.85,
-289.81,
-288.63,
-290.38,
-290.6,
-288.77,
-288.08,
-290.62,
-291.25,
-291.6,
-289.28,
-289.92,
-293.17,
-294.7,
-291.52,
-289.97,
-289.8,
-294.95,
-294.06,
-294.1,
-292.61,
-291.95,
-289.74,
-289.43,
-288.83,
-291.05,
-290.36,
-286.48,
-286.61,
-289.65,
-289.07,
-287.88,
-289.07,
-289.25,
-289.67,
-290.46,
-290.76,
-290.97,
-292.6,
-289.77,
-289.64,
-290.78,
-294.81,
-291.25,
-291.9,
-290.77,
-283.29,
-283.78,
-285.55,
-289.15,
-290.53,
-289.46,
-290.09,
-292.41,
-290.27,
-287.77,
-286.9,
-283.02,
-283.82,
-287.01,
-289.9,
-291.56,
-288.94,
-283.68,
-285.46,
-288.01,
-281.33,
-280.4,
-282.31,
-280.39,
-277.14,
-281.42,
-284.76,
-285.65,
-287.24,
-284.64,
-282.66,
-283.3,
-280.3,
-276.33,
-275.03,
-274.94,
-280.68,
-281.65,
-283.15,
-284.48,
-287.23,
-285.17,
-279.25,
-281.2,
-280.65,
-280.42,
-285.43,
-279.29,
-277.66,
-282.31,
-283.98,
-285.89,
-285.29,
-278.58,
-271.21,
-274.0,
-277.18,
-277.8,
-278.74,
-280.56,
-282.27,
-283.13,
-276.22,
-278.66,
-279.23,
-280.5,
-280.1,
-280.12,
-277.8,
-277.56,
-279.05,
-274.54,
-276.88,
-277.34,
-272.84,
-272.0,
-271.57,
-271.24,
-269.12,
-266.83,
-264.81,
-267.68,
-271.98,
-276.58,
-276.6,
-274.69,
-273.28,
-270.88,
-266.36,
-265.65,
-268.23,
-271.92,
-265.23,
-265.5,
-263.43,
-262.82,
-264.0,
-271.43,
-271.03,
-264.83,
-270.04,
-266.55,
-270.47,
-281.82,
-270.78,
-269.11,
-267.79,
-265.6,
-268.6,
-263.97,
-266.67,
-261.35,
-261.01,
-265.85,
-262.28,
-264.66,
-267.26,
-266.78,
-265.57,
-262.69,
-263.69,
-265.52,
-266.62,
-269.95,
-268.28,
-270.08,
-268.22,
-261.49,
-268.45,
-265.6,
-265.6,
-270.56,
-270.48,
-271.58,
-271.8,
-266.72,
-271.58,
-268.57,
-263.88,
-263.5,
-265.62,
-269.07,
-269.51,
-265.97,
-269.21,
-267.49,
-266.0,
-272.24,
-274.4,
-272.89,
-270.2,
-267.46,
-264.84,
-268.69,
-271.18,
-272.08,
-269.93,
-273.83,
-275.97,
-261.95,
-262.77,
-270.07,
-271.31,
-272.49,
-269.6,
-268.61,
-262.21,
-267.47,
-275.48,
-269.49,
-261.24,
-265.22,
-268.87,
-268.07,
-272.08,
-270.55,
-265.07,
-263.75,
-264.36,
-268.18,
-267.21,
-268.41,
-270.35,
-270.6,
-271.2,
-271.59,
-271.83,
-271.66,
-270.5,
-272.15,
-273.3,
-275.72,
-274.78,
-274.91,
-275.67,
-273.52,
-275.57,
-274.36,
-274.66,
-273.72,
-274.67,
-270.97,
-268.59,
-268.09,
-271.11,
-272.98,
-274.56,
-269.94,
-274.23,
-274.63,
-274.25,
-275.33,
-276.44,
-276.37,
-276.5,
-273.76,
-280.33,
-278.67,
-278.53,
-276.58,
-279.19,
-278.29,
-278.14,
-278.27,
-278.08,
-276.2,
-274.55,
-280.43,
-284.24,
-289.7,
-289.03,
-289.72,
-280.0,
-280.55,
-279.59,
-282.51,
-277.88,
-280.53,
-288.48,
-293.54,
-294.64,
-294.04,
-286.01,
-281.4,
-281.74,
-284.08,
-287.68,
-289.47,
-291.94,
-290.53,
-283.1,
-283.6,
-282.37,
-280.92,
-283.65,
-282.95,
-287.75,
-286.09,
-286.23,
-282.65,
-283.44,
-283.64,
-284.52,
-285.94,
-285.84,
-286.5,
-284.87,
-280.44,
-281.68,
-284.82,
-286.16,
-285.72,
-284.97,
-286.94,
-287.92,
-288.85,
-289.97,
-289.64,
-290.15,
-287.69,
-289.08,
-292.48,
-294.98,
-296.14,
-295.43,
-292.54,
-292.16,
-294.08,
-293.91,
-287.75,
-289.94,
-291.25,
-292.15,
-293.28,
-295.43,
-295.18,
-294.25,
-290.7,
-294.34,
-292.15,
-285.47,
-286.92,
-291.97,
-291.53,
-286.64,
-288.68,
-289.56,
-293.18,
-292.42,
-290.87,
-287.84,
-289.25,
-289.12,
-289.55,
-290.14,
-289.77,
-290.63,
-289.68,
-290.58,
-292.6,
-292.84,
-294.84,
-296.97,
-294.78,
-290.26,
-286.67,
-287.57,
-290.2,
-289.96,
-290.47,
-292.64,
-294.77,
-295.05,
-292.84,
-294.36,
-296.13,
-297.59,
-298.23,
-299.23,
-296.94,
-292.52,
-289.67,
-291.79,
-291.33,
-291.48,
-292.12,
-292.9,
-292.47,
-293.7,
-292.83,
-293.5,
-292.78,
-292.35,
-291.92,
-288.9,
-290.24,
-292.9,
-292.65,
-290.42,
-290.3,
-293.0,
-293.71,
-287.08,
-287.88,
-289.36,
-286.94,
-286.24,
-290.84,
-292.97,
-293.86,
-293.44,
-289.15,
-287.41,
-289.4,
-284.77,
-283.34,
-285.95,
-288.15,
-289.17,
-288.88,
-289.11,
-290.43,
-290.73,
-288.15,
-289.55,
-291.37,
-284.8,
-284.92,
-282.97,
-282.49,
-281.43,
-281.55,
-284.56,
-287.57,
-290.38,
-289.78,
-284.78,
-277.0,
-274.95,
-277.94,
-283.41,
-286.53,
-287.51,
-285.39,
-284.12,
-284.38,
-283.11,
-280.83,
-277.57,
-279.15,
-281.96,
-286.08,
-284.2,
-282.9,
-290.0,
-288.76,
-279.81,
-276.87,
-274.49,
-275.6,
-276.44,
-275.0,
-283.76,
-287.36,
-286.4,
-280.56,
-277.33,
-275.87,
-277.02,
-277.5,
-276.6,
-274.02,
-273.31,
-270.11,
-271.43,
-276.77,
-280.2,
-283.48,
-272.59,
-277.31,
-280.6,
-276.45,
-271.65,
-274.37,
-275.3,
-278.45,
-284.36,
-283.03,
-279.52,
-280.78,
-274.27,
-284.97,
-285.38,
-276.77,
-275.65,
-277.38,
-282.78,
-285.3,
-277.42,
-271.86,
-269.75,
-269.27,
-272.92,
-273.25,
-274.88,
-278.22,
-272.91,
-269.08,
-270.11,
-271.43,
-272.15,
-273.67,
-272.93,
-268.42,
-269.13,
-272.93,
-272.15,
-271.43,
-269.13,
-267.63,
-267.63,
-269.13,
-268.42,
-266.31,
-267.53,
-268.93,
-268.07,
-271.44,
-273.24,
-270.17,
-266.07,
-270.06,
-276.01,
-274.05,
-273.32,
-270.43,
-269.93,
-271.71,
-271.59,
-271.18,
-268.82,
-266.29,
-268.32,
-269.98,
-272.75,
-276.35,
-276.48,
-272.6,
-276.18,
-278.77,
-279.92,
-281.67,
-276.18,
-269.1,
-271.33,
-266.2,
-268.35,
-270.86,
-264.81,
-268.42,
-272.21,
-274.1,
-269.76,
-272.7,
-269.25,
-267.4,
-268.17,
-266.46,
-273.36,
-277.25,
-273.33,
-268.23,
-272.94,
-278.66,
-281.6,
-274.81,
-271.9,
-272.35,
-275.87,
-280.0,
-273.84,
-267.58,
-270.72,
-273.59,
-280.47,
-268.89,
-265.85,
-273.1,
-277.27,
-275.8,
-282.35,
-274.45,
-268.95,
-272.87,
-275.41,
-280.02,
-276.57,
-276.81,
-271.65,
-271.07,
-271.78,
-271.77,
-273.91,
-264.53,
-269.67,
-273.07,
-272.58,
-272.23,
-274.53,
-275.28,
-278.22,
-281.89,
-282.44,
-277.55,
-277.57,
-281.49,
-273.2,
-271.79,
-271.67,
-271.99,
-277.93,
-286.29,
-282.51,
-279.7,
-282.13,
-287.89,
-287.49,
-287.09,
-294.01,
-295.84,
-292.85,
-289.04,
-284.15,
-277.46,
-273.55,
-274.24,
-279.08,
-277.15,
-274.86,
-277.21,
-276.66,
-273.87,
-276.41,
-278.02,
-278.21,
-279.11,
-282.38,
-285.97,
-288.12,
-288.81,
-286.24,
-282.18,
-286.95,
-283.05,
-280.28,
-278.15,
-278.42,
-279.51,
-287.24,
-287.18,
-275.26,
-277.23,
-277.55,
-278.94,
-282.73,
-286.75,
-289.15,
-284.3,
-284.34,
-289.83,
-290.65,
-291.25,
-291.91,
-291.53,
-291.55,
-287.33,
-284.26,
-285.78,
-289.02,
-288.04,
-283.56,
-285.34,
-288.22,
-288.63,
-291.81,
-283.28,
-284.87,
-285.43,
-282.4,
-282.96,
-286.86,
-287.34,
-288.84,
-290.82,
-292.2,
-290.51,
-292.63,
-293.06,
-291.73,
-295.17,
-294.02,
-291.99,
-292.73,
-293.63,
-295.12,
-297.15,
-298.0,
-298.2,
-291.91,
-291.28,
-290.47,
-293.94,
-293.5,
-289.92,
-286.49,
-289.02,
-291.86,
-292.54,
-292.88,
-289.77,
-291.86,
-295.79,
-292.58,
-291.63,
-293.21,
-295.29,
-294.52,
-288.56,
-288.28,
-287.62,
-289.35,
-291.57,
-296.36,
-296.63,
-295.94,
-296.19,
-291.83,
-294.29,
-295.64,
-295.8,
-288.41,
-288.85,
-289.43,
-290.93,
-292.54,
-294.64,
-296.11,
-297.34,
-297.55,
-296.31,
-296.15,
-295.28,
-296.72,
-294.35,
-291.26,
-291.4,
-291.33,
-290.1,
-285.61,
-289.53,
-291.06,
-291.75,
-287.5,
-285.36,
-289.21,
-287.38,
-284.58,
-286.99,
-290.59,
-292.31,
-288.22,
-286.87,
-289.48,
-291.88,
-294.57,
-294.82,
-289.05,
-284.37,
-288.28,
-291.62,
-292.29,
-291.09,
-287.94,
-288.23,
-289.23,
-291.51,
-292.82,
-293.43,
-289.84,
-286.87,
-286.19,
-284.62,
-286.04,
-287.65,
-282.1,
-286.49,
-289.92,
-292.32,
-288.09,
-283.68,
-289.99,
-282.36,
-282.93,
-279.25,
-279.88,
-283.49,
-283.51,
-283.55,
-283.95,
-277.71,
-276.21,
-280.54,
-280.72,
-277.71,
-280.68,
-278.63,
-276.11,
-275.13,
-273.53,
-273.75,
-274.77,
-277.44,
-278.53,
-275.67,
-273.57,
-273.29,
-273.14,
-274.77,
-270.19,
-270.55,
-273.68,
-273.93,
-274.94,
-271.5,
-277.22,
-281.65,
-286.75,
-287.95,
-278.96,
-275.25,
-277.15,
-280.67,
-271.71,
-272.16,
-272.25,
-271.7,
-275.12,
-275.31,
-277.0,
-273.12,
-274.77,
-274.6,
-273.15,
-268.77,
-264.02,
-268.94,
-273.94,
-269.21,
-269.61,
-262.35,
-262.88,
-265.72,
-266.73,
-266.75,
-269.53,
-261.11,
-266.55,
-270.53,
-273.36,
-273.27,
-275.63,
-273.7,
-271.05,
-265.15,
-266.01,
-270.92,
-279.13,
-273.33,
-274.6,
-273.25,
-271.0,
-269.0,
-267.85,
-265.93,
-267.59,
-269.44,
-266.69,
-273.71,
-273.78,
-267.3,
-266.82,
-269.3,
-266.78,
-266.08,
-265.3,
-267.95,
-272.25,
-267.67,
-264.4,
-266.15,
-265.24,
-260.31,
-259.95,
-262.86,
-263.77,
-256.55,
-259.61,
-262.84,
-257.73,
-256.0,
-255.31,
-259.31,
-262.44,
-265.71,
-259.14,
-256.61,
-264.75,
-264.37,
-270.41,
-271.76,
-273.08,
-272.94,
-273.57,
-267.76,
-264.55,
-266.91,
-262.48,
-265.37,
-267.79,
-261.98,
-262.13,
-258.19,
-257.95,
-256.14,
-255.8,
-261.96,
-266.85,
-270.2,
-272.88,
-273.5,
-273.63,
-272.09,
-267.29,
-263.3,
-258.86,
-263.04,
-266.1,
-270.13,
-273.2,
-260.46,
-262.7,
-274.6,
-266.36,
-262.77,
-272.41,
-271.43,
-261.57,
-265.85,
-273.88,
-270.8,
-264.16,
-271.41,
-277.57,
-279.82,
-278.85,
-272.14,
-272.33,
-279.32,
-279.3,
-275.94,
-277.54,
-279.21,
-278.85,
-277.09,
-280.19,
-283.66,
-275.13,
-270.55,
-270.32,
-274.27,
-274.07,
-270.19,
-270.54,
-270.35,
-269.41,
-270.71,
-271.88,
-276.12,
-274.36,
-280.19,
-278.02,
-279.43,
-288.87,
-286.6,
-273.36,
-275.18,
-279.85,
-282.28,
-284.4,
-280.4,
-277.29,
-275.74,
-280.0,
-280.54,
-282.04,
-288.12,
-288.11,
-283.8,
-285.28,
-286.23,
-281.41,
-282.93,
-284.31,
-280.89,
-287.12,
-280.58,
-283.64,
-284.47,
-284.13,
-280.03,
-281.26,
-282.32,
-283.23,
-279.43,
-280.16,
-284.5,
-289.66,
-291.91,
-284.04,
-282.76,
-281.15,
-280.27,
-283.22,
-281.32,
-284.61,
-285.55,
-286.61,
-288.14,
-285.78,
-284.73,
-284.9,
-287.09,
-286.82,
-283.67,
-288.69,
-286.67,
-287.28,
-287.57,
-289.39,
-290.09,
-291.37,
-286.38,
-288.18,
-290.29,
-286.31,
-286.97,
-286.8,
-289.98,
-288.62,
-287.18,
-286.47,
-291.6,
-294.21,
-295.63,
-297.1,
-296.01,
-292.03,
-292.63,
-292.37,
-291.06,
-292.67,
-293.39,
-295.16,
-295.92,
-295.7,
-294.97,
-295.85,
-289.74,
-290.01,
-288.56,
-291.79,
-290.42,
-290.6,
-292.37,
-291.03,
-290.86,
-291.31,
-291.49,
-291.14,
-292.02,
-292.5,
-293.23,
-293.18,
-292.27,
-293.42,
-294.39,
-291.72,
-291.54,
-292.81,
-292.14,
-288.41,
-292.53,
-295.7,
-294.91,
-294.6,
-293.73,
-294.0,
-293.41,
-295.14,
-295.15,
-295.08,
-294.63,
-294.62,
-294.17,
-294.9,
-294.1,
-291.94,
-290.97,
-292.26,
-292.66,
-293.99,
-294.68,
-290.43,
-286.12,
-289.3,
-291.82,
-293.06,
-288.13,
-290.1,
-291.33,
-285.98,
-287.15,
-286.6,
-287.39,
-289.69,
-289.17,
-287.85,
-289.19,
-288.78,
-285.12,
-286.27,
-289.79,
-286.41,
-288.77,
-292.25,
-292.45,
-290.15,
-287.5,
-287.68,
-291.24,
-292.07,
-287.48,
-287.04,
-288.05,
-285.11,
-288.64,
-285.78,
-289.17,
-288.73,
-283.33,
-281.21,
-279.97,
-278.67,
-277.13,
-279.65,
-277.71,
-277.35,
-279.03,
-284.32,
-287.53,
-284.04,
-286.04,
-284.2,
-284.39,
-283.43,
-283.33,
-279.79,
-278.28,
-276.88,
-274.84,
-276.01,
-284.52,
-274.51,
-272.23,
-273.06,
-277.54,
-285.12,
-286.7,
-279.93,
-281.29,
-278.42,
-283.18,
-286.58,
-282.5,
-285.97,
-278.2,
-277.17,
-280.87,
-278.44,
-272.27,
-268.95,
-271.23,
-273.25,
-279.06,
-278.35,
-271.14,
-270.41,
-272.05,
-274.62,
-277.45,
-282.86,
-279.8,
-278.74,
-278.85,
-277.26,
-277.53,
-273.05,
-272.63,
-276.9,
-280.37,
-276.13,
-274.17,
-274.05,
-266.6,
-263.13,
-266.44,
-265.66,
-265.45,
-265.52,
-267.97,
-268.39,
-273.12,
-277.55,
-271.51,
-266.09,
-264.82,
-269.31,
-269.7,
-278.45,
-271.02,
-269.29,
-268.5,
-266.73,
-272.93,
-277.69,
-281.09,
-275.39,
-272.29,
-273.17,
-273.33,
-277.25,
-276.35,
-274.25}
-
diff --git a/Test/tas_mytest_3d_i.asc b/Test/tas_mytest_3d_i.asc
deleted file mode 100644
index 58414bf..0000000
--- a/Test/tas_mytest_3d_i.asc
+++ /dev/null
@@ -1,19 +0,0 @@
-tas
-K
-3
-256
-128
-3
-longitude
-degrees_east
--180.0 -178.59375 -177.1875 -175.78125 -174.375 -172.96875 -171.5625 -170.15625 -168.75 -167.34375 -165.9375 -164.53125 -163.125 -161.71875 -160.3125 -158.90625 -157.5 -156.09375 -154.6875 -153.28125 -151.875 -150.46875 -149.0625 -147.65625 -146.25 -144.84375 -143.4375 -142.03125 -140.625 -139.21875 -137.8125 -136.40625 -135.0 -133.59375 -132.1875 -130.78125 -129.375 -127.96875 -126.5625 -125.15625 -123.75 -122.34375 -120.9375 -119.53125 -118.125 -116.71875 -115.3125 -113.90625 -112.5 -1 [...]
--180.703125 -179.296875 -179.296875 -177.890625 -177.890625 -176.484375 -176.484375 -175.078125 -175.078125 -173.671875 -173.671875 -172.265625 -172.265625 -170.859375 -170.859375 -169.453125 -169.453125 -168.046875 -168.046875 -166.640625 -166.640625 -165.234375 -165.234375 -163.828125 -163.828125 -162.421875 -162.421875 -161.015625 -161.015625 -159.609375 -159.609375 -158.203125 -158.203125 -156.796875 -156.796875 -155.390625 -155.390625 -153.984375 -153.984375 -152.578125 -152.578125  [...]
-latitude
-degrees_north
--88.9277353523 -87.538705213 -86.1414721015 -84.7423855907 -83.3425960441 -81.9424662992 -80.5421464346 -79.1417096486 -77.7411958655 -76.3406287024 -74.9400230196 -73.5393886338 -72.1387322892 -70.7380587725 -69.337371575 -67.9366733026 -66.5359659402 -65.135251026 -63.7345297708 -62.3338031405 -60.9330719152 -59.5323367318 -58.1315981156 -56.7308565037 -55.3301122627 -53.9293657026 -52.5286170871 -51.1278666424 -49.7271145631 -48.3263610182 -46.9256061547 -45.5248501013 -44.1240929714  [...]
--90.0 -88.2332202827 -88.2332202827 -86.8400886573 -86.8400886573 -85.4419288461 -85.4419288461 -84.0424908174 -84.0424908174 -82.6425311716 -82.6425311716 -81.2423063669 -81.2423063669 -79.8419280416 -79.8419280416 -78.4414527571 -78.4414527571 -77.0409122839 -77.0409122839 -75.640325861 -75.640325861 -74.2397058267 -74.2397058267 -72.8390604615 -72.8390604615 -71.4383955308 -71.4383955308 -70.0377151737 -70.0377151737 -68.6370224388 -68.6370224388 -67.2363196214 -67.2363196214 -65.8356 [...]
-time
-days since 0000-1-1
-682565.5 682595.0 682624.5
-682550.0 682581.0 682581.0 682609.0 682609.0 682640.0
-246 236 226 249 239 232 254 245 239 259 250 245 263 254 249 265 256 247 266 255 243 267 255 243 268 260 250 269 263 252 269 265 254 269 267 255 271 269 257 271 270 259 271 272 263 271 273 266 272 273 269 272 274 271 274 275 272 274 275 273 275 276 274 276 277 274 276 277 275 277 278 276 278 279 277 279 280 278 280 280 279 281 281 280 282 282 281 283 284 283 285 285 285 287 287 286 288 288 288 290 290 289 291 291 290 292 292 291 292 292 291 292 293 292 293 293 292 293 293 292 293 294 293  [...]
diff --git a/Test/tas_mytest_3d_i.input b/Test/tas_mytest_3d_i.input
deleted file mode 100644
index b9ade75..0000000
--- a/Test/tas_mytest_3d_i.input
+++ /dev/null
@@ -1 +0,0 @@
-Test/tas_mytest_3d_i.asc
diff --git a/Test/tas_mytest_noreorder.asc b/Test/tas_mytest_noreorder.asc
deleted file mode 100644
index a1fc15b..0000000
--- a/Test/tas_mytest_noreorder.asc
+++ /dev/null
@@ -1,19 +0,0 @@
-tas
-K
-3
-3
-128
-256
-time
-days since 0000-1-1
-682565.5 682595.0 682624.5
-682550.0 682581.0 682581.0 682609.0 682609.0 682640.0
-latitude
-degrees_north
--88.9277353523 -87.538705213 -86.1414721015 -84.7423855907 -83.3425960441 -81.9424662992 -80.5421464346 -79.1417096486 -77.7411958655 -76.3406287024 -74.9400230196 -73.5393886338 -72.1387322892 -70.7380587725 -69.337371575 -67.9366733026 -66.5359659402 -65.135251026 -63.7345297708 -62.3338031405 -60.9330719152 -59.5323367318 -58.1315981156 -56.7308565037 -55.3301122627 -53.9293657026 -52.5286170871 -51.1278666424 -49.7271145631 -48.3263610182 -46.9256061547 -45.5248501013 -44.1240929714  [...]
--90.0 -88.2332202827 -88.2332202827 -86.8400886573 -86.8400886573 -85.4419288461 -85.4419288461 -84.0424908174 -84.0424908174 -82.6425311716 -82.6425311716 -81.2423063669 -81.2423063669 -79.8419280416 -79.8419280416 -78.4414527571 -78.4414527571 -77.0409122839 -77.0409122839 -75.640325861 -75.640325861 -74.2397058267 -74.2397058267 -72.8390604615 -72.8390604615 -71.4383955308 -71.4383955308 -70.0377151737 -70.0377151737 -68.6370224388 -68.6370224388 -67.2363196214 -67.2363196214 -65.8356 [...]
-longitude
-degrees_east
-0.0 1.40625 2.8125 4.21875 5.625 7.03125 8.4375 9.84375 11.25 12.65625 14.0625 15.46875 16.875 18.28125 19.6875 21.09375 22.5 23.90625 25.3125 26.71875 28.125 29.53125 30.9375 32.34375 33.75 35.15625 36.5625 37.96875 39.375 40.78125 42.1875 43.59375 45.0 46.40625 47.8125 49.21875 50.625 52.03125 53.4375 54.84375 56.25 57.65625 59.0625 60.46875 61.875 63.28125 64.6875 66.09375 67.5 68.90625 70.3125 71.71875 73.125 74.53125 75.9375 77.34375 78.75 80.15625 81.5625 82.96875 84.375 85.78125 8 [...]
--0.703125 0.703125 0.703125 2.109375 2.109375 3.515625 3.515625 4.921875 4.921875 6.328125 6.328125 7.734375 7.734375 9.140625 9.140625 10.546875 10.546875 11.953125 11.953125 13.359375 13.359375 14.765625 14.765625 16.171875 16.171875 17.578125 17.578125 18.984375 18.984375 20.390625 20.390625 21.796875 21.796875 23.203125 23.203125 24.609375 24.609375 26.015625 26.015625 27.421875 27.421875 28.828125 28.828125 30.234375 30.234375 31.640625 31.640625 33.046875 33.046875 34.453125 34.453 [...]
-246.145 246.104 246.062 246.023 245.991 245.963 245.931 245.9 245.868 245.843 245.81 245.778 245.744 245.722 245.694 245.661 245.637 245.606 245.577 245.556 245.531 245.505 245.477 245.452 245.416 245.39 245.373 245.349 245.315 245.289 245.26 245.228 245.203 245.187 245.15 245.134 245.115 245.094 245.077 245.056 245.054 245.039 245.024 245.008 244.998 245.007 244.981 244.955 244.937 244.931 244.957 244.918 244.913 244.974 244.917 244.87 244.928 244.949 244.945 244.939 244.958 244.949 244 [...]
diff --git a/Test/tas_mytest_reorder.asc b/Test/tas_mytest_reorder.asc
deleted file mode 100644
index 8d23396..0000000
--- a/Test/tas_mytest_reorder.asc
+++ /dev/null
@@ -1,19 +0,0 @@
-tas
-K
-3
-3
-256
-128
-time
-days since 0000-1-1
-682565.5 682595.0 682624.5
-682550.0 682581.0 682581.0 682609.0 682609.0 682640.0
-longitude
-degrees_east
-0.0 1.40625 2.8125 4.21875 5.625 7.03125 8.4375 9.84375 11.25 12.65625 14.0625 15.46875 16.875 18.28125 19.6875 21.09375 22.5 23.90625 25.3125 26.71875 28.125 29.53125 30.9375 32.34375 33.75 35.15625 36.5625 37.96875 39.375 40.78125 42.1875 43.59375 45.0 46.40625 47.8125 49.21875 50.625 52.03125 53.4375 54.84375 56.25 57.65625 59.0625 60.46875 61.875 63.28125 64.6875 66.09375 67.5 68.90625 70.3125 71.71875 73.125 74.53125 75.9375 77.34375 78.75 80.15625 81.5625 82.96875 84.375 85.78125 8 [...]
--0.703125 0.703125 0.703125 2.109375 2.109375 3.515625 3.515625 4.921875 4.921875 6.328125 6.328125 7.734375 7.734375 9.140625 9.140625 10.546875 10.546875 11.953125 11.953125 13.359375 13.359375 14.765625 14.765625 16.171875 16.171875 17.578125 17.578125 18.984375 18.984375 20.390625 20.390625 21.796875 21.796875 23.203125 23.203125 24.609375 24.609375 26.015625 26.015625 27.421875 27.421875 28.828125 28.828125 30.234375 30.234375 31.640625 31.640625 33.046875 33.046875 34.453125 34.453 [...]
-latitude
-degrees_north
--88.9277353523 -87.538705213 -86.1414721015 -84.7423855907 -83.3425960441 -81.9424662992 -80.5421464346 -79.1417096486 -77.7411958655 -76.3406287024 -74.9400230196 -73.5393886338 -72.1387322892 -70.7380587725 -69.337371575 -67.9366733026 -66.5359659402 -65.135251026 -63.7345297708 -62.3338031405 -60.9330719152 -59.5323367318 -58.1315981156 -56.7308565037 -55.3301122627 -53.9293657026 -52.5286170871 -51.1278666424 -49.7271145631 -48.3263610182 -46.9256061547 -45.5248501013 -44.1240929714  [...]
--90.0 -88.2332202827 -88.2332202827 -86.8400886573 -86.8400886573 -85.4419288461 -85.4419288461 -84.0424908174 -84.0424908174 -82.6425311716 -82.6425311716 -81.2423063669 -81.2423063669 -79.8419280416 -79.8419280416 -78.4414527571 -78.4414527571 -77.0409122839 -77.0409122839 -75.640325861 -75.640325861 -74.2397058267 -74.2397058267 -72.8390604615 -72.8390604615 -71.4383955308 -71.4383955308 -70.0377151737 -70.0377151737 -68.6370224388 -68.6370224388 -67.2363196214 -67.2363196214 -65.8356 [...]
-246.145 247.091 247.99 249.12 250.756 251.989 252.279 252.055 251.674 251.793 252.932 256.082 261.129 267.244 270.278 271.72 271.779 271.786 272.055 272.318 272.709 273.339 273.785 273.924 274.009 274.488 275.321 276.315 277.537 278.895 280.113 281.36 282.661 283.886 285.162 286.4 287.559 288.812 289.957 290.911 291.783 292.746 293.629 294.108 294.306 294.333 294.297 294.318 294.409 294.63 295.049 295.55 296.181 297.015 297.79 298.357 298.859 299.295 299.466 299.447 299.409 299.433 299.5 [...]
diff --git a/Test/tas_mytest_reorder_split_lon.asc b/Test/tas_mytest_reorder_split_lon.asc
deleted file mode 100644
index aa3c6dd..0000000
--- a/Test/tas_mytest_reorder_split_lon.asc
+++ /dev/null
@@ -1,19 +0,0 @@
-tas
-K
-3
-3
-256
-128
-time
-days since 0000-1-1
-682565.5 682595.0 682624.5
-682550.0 682581.0 682581.0 682609.0 682609.0 682640.0
-longitude
-degrees_east
--180.0 -178.59375 -177.1875 -175.78125 -174.375 -172.96875 -171.5625 -170.15625 -168.75 -167.34375 -165.9375 -164.53125 -163.125 -161.71875 -160.3125 -158.90625 -157.5 -156.09375 -154.6875 -153.28125 -151.875 -150.46875 -149.0625 -147.65625 -146.25 -144.84375 -143.4375 -142.03125 -140.625 -139.21875 -137.8125 -136.40625 -135.0 -133.59375 -132.1875 -130.78125 -129.375 -127.96875 -126.5625 -125.15625 -123.75 -122.34375 -120.9375 -119.53125 -118.125 -116.71875 -115.3125 -113.90625 -112.5 -1 [...]
--180.703125 -179.296875 -179.296875 -177.890625 -177.890625 -176.484375 -176.484375 -175.078125 -175.078125 -173.671875 -173.671875 -172.265625 -172.265625 -170.859375 -170.859375 -169.453125 -169.453125 -168.046875 -168.046875 -166.640625 -166.640625 -165.234375 -165.234375 -163.828125 -163.828125 -162.421875 -162.421875 -161.015625 -161.015625 -159.609375 -159.609375 -158.203125 -158.203125 -156.796875 -156.796875 -155.390625 -155.390625 -153.984375 -153.984375 -152.578125 -152.578125  [...]
-latitude
-degrees_north
--88.9277353523 -87.538705213 -86.1414721015 -84.7423855907 -83.3425960441 -81.9424662992 -80.5421464346 -79.1417096486 -77.7411958655 -76.3406287024 -74.9400230196 -73.5393886338 -72.1387322892 -70.7380587725 -69.337371575 -67.9366733026 -66.5359659402 -65.135251026 -63.7345297708 -62.3338031405 -60.9330719152 -59.5323367318 -58.1315981156 -56.7308565037 -55.3301122627 -53.9293657026 -52.5286170871 -51.1278666424 -49.7271145631 -48.3263610182 -46.9256061547 -45.5248501013 -44.1240929714  [...]
--90.0 -88.2332202827 -88.2332202827 -86.8400886573 -86.8400886573 -85.4419288461 -85.4419288461 -84.0424908174 -84.0424908174 -82.6425311716 -82.6425311716 -81.2423063669 -81.2423063669 -79.8419280416 -79.8419280416 -78.4414527571 -78.4414527571 -77.0409122839 -77.0409122839 -75.640325861 -75.640325861 -74.2397058267 -74.2397058267 -72.8390604615 -72.8390604615 -71.4383955308 -71.4383955308 -70.0377151737 -70.0377151737 -68.6370224388 -68.6370224388 -67.2363196214 -67.2363196214 -65.8356 [...]
-246.618 249.44 254.053 259.269 263.412 265.81 266.671 267.247 268.652 269.128 269.342 269.956 271.082 271.672 271.857 271.848 272.066 272.884 274.032 274.974 275.571 276.138 276.852 277.663 278.513 279.382 280.321 281.277 282.345 283.824 285.465 287.109 288.687 290.136 291.497 292.241 292.577 292.83 293.149 293.552 293.944 294.327 294.746 295.222 295.703 296.208 296.765 297.292 297.794 298.332 298.836 299.173 299.382 299.601 299.958 300.391 300.694 300.789 300.849 300.818 300.562 300.125 [...]
diff --git a/Test/test1.f90 b/Test/test1.f90
deleted file mode 100644
index d5c5068..0000000
--- a/Test/test1.f90
+++ /dev/null
@@ -1,454 +0,0 @@
-!!$pgf90 -I/work/NetCDF/5.1/include -L/work/NetCDF/5.1/lib -l netcdf -L. -l cmor Test/test1.f90 -IModules -o cmor_test
-!!$pgf90 -g -I/pcmdi/charles_work/NetCDF//include -L/pcmdi/charles_work/NetCDF//lib -lnetcdf -module Modules -IModules -L. -lcmor Test/test1.f90 -o cmor_test
-
-MODULE local_subs
-
-  PRIVATE
-  PUBLIC read_coords, read_time, read_3d_input_files, read_2d_input_files
-CONTAINS
-  
-  SUBROUTINE read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-
-    IMPLICIT NONE
-    
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alats
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alons
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: plevs
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lat
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lon
-    
-    INTEGER :: i
-    
-    DO i = 1, SIZE(alons)
-       alons(i) = (i-1)*360./SIZE(alons)
-       bnds_lon(1,i) = (i - 1.5)*360./SIZE(alons)
-       bnds_lon(2,i) = (i - 0.5)*360./SIZE(alons)
-    END DO
-    
-    DO i = 1, SIZE(alats)
-       alats(i) = i*10
-       bnds_lat(1,i) = i*10. - 5.
-       bnds_lat(2,i) = i*10. + 5.
-    END DO
-    
-    DO i = 1, SIZE(plevs)
-       plevs(i) = i*1.0e4
-    END DO
-      plevs = (/100000., 92500., 85000., 70000.,&
-       60000., 50000., 40000., 30000., 25000., 20000.,&
-       15000., 10000., 7000., 5000., 3000., 2000., 1000. /)
-  
-    RETURN
-  END SUBROUTINE read_coords
-
-  SUBROUTINE read_time(it, time, time_bnds)
-    
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    DOUBLE PRECISION, INTENT(OUT) :: time
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(2) :: time_bnds
-    
-    time = (it-0.5)*30.
-    time_bnds(1) = (it-1)*30.
-    time_bnds(2) = it*30.
-    
-    RETURN
-  END SUBROUTINE read_time
-  
-INCLUDE "reader_2D_3D.f90"
-
-END MODULE local_subs
-
-
-PROGRAM mip_contribution
-!
-!   Purpose:   To serve as a generic example of an application that
-!       uses the "Climate Model Output Rewriter" (CMOR)
-
-!    CMOR writes CF-compliant netCDF files.
-!    Its use is required by many community-coordinated standard 
-!       climate model experiments (e.g., AMIP, CMIP, CFMIP, APE, and
-!       IPCC scenario runs)
-!
-!   Background information for this sample code:
-!
-!      Standard output requested by AMIP is listed in 6 different 
-!   tables.  This sample code processes only 2 variables listed in AMIP 
-!   Table 1a ("3-d" fields, containing monthly mean data that are a 
-!   function of longitude, latitude, pressure and time) and only 3 
-!   variables in AMIP Table 2 ("2-d" fields, containing monthly mean 
-!   data that are a function of longitude, latitude, and time).  The 
-!   extension to many more fields is trivial.
-!
-!      For this example, the user must fill in the sections of code that 
-!   extract the 3-d and 2-d fields from his monthly mean "history" 
-!   files (which usually contain many variables but only a single time 
-!   slice).  The CMOR code will write each field in a separate file, but 
-!   many monthly mean time-samples will be stored together.  These 
-!   constraints partially determine the structure of the code.
-!
-!   Record of revisions:
-
-!       Date        Programmer(s)           Description of change
-!       ====        ==========              =====================
-!      10/22/03     Rusty Koder              Original code
-!       1/28/04     Les R. Koder             Revised to be consistent
-!                                            with evolving code design
-
-! include module that contains the user-accessible cmor functions.
-  USE cmor_users_functions
-  USE local_subs
-
-  IMPLICIT NONE
-
-  !   dimension parameters:
-  ! ---------------------------------
-  INTEGER, PARAMETER :: ntimes = 2    ! number of time samples to process
-  INTEGER, PARAMETER :: lon = 4       ! number of longitude grid cells  
-  INTEGER, PARAMETER :: lat = 3       ! number of latitude grid cells
-  INTEGER, PARAMETER :: lev = 17       ! number of standard pressure levels
-  INTEGER, PARAMETER :: n2d = 3       ! number of AMIP Table 2 fields to be
-                                      !     output.
-  INTEGER, PARAMETER :: n3d = 2       ! number of AMIP Table 1a fields to 
-                                      !     be output.  
-
-  !   Tables associating the user's variables with AMIP standard output 
-  !   variables.  The user may choose to make this association in a 
-  !   different way (e.g., by defining values of pointers that allow him 
-  !   to directly retrieve data from a data record containing many 
-  !   different variables), but in some way the user will need to map his 
-  !   model output onto the Tables specifying the MIP standard output.
-
-  ! ----------------------------------
-
-                                ! My variable names for Table 1a fields
-  CHARACTER (LEN=2), DIMENSION(n3d) :: varin3d=(/ 'U', 'T'/)
-                                ! Units appropriate to my data
-  CHARACTER (LEN=5), DIMENSION(n3d) :: &
-                                  units3d=(/ 'm s-1',   'K    '  /)
-  CHARACTER (LEN=4), DIMENSION(n3d) ::  &
-                              positive3d= (/   '',       '' /)
-                     ! Corresponding AMIP Table 1a entry (variable name) 
-  CHARACTER (LEN=2), DIMENSION(n3d) :: entry3d = (/ 'ua', 'ta' /)
-
-                                ! My variable names for Table 2 fields
-  CHARACTER (LEN=8), DIMENSION(n2d) :: &
-                          varin2d=(/ 'LATENT  ', 'TSURF   ', 'SOIL_WET' /)
-                                ! Units appropriate to my data
-   CHARACTER (LEN=6), DIMENSION(n2d) :: &
-                          units2d=(/ 'W m-2 ', 'K     ', 'kg m-2' /)
-   CHARACTER (LEN=4), DIMENSION(n2d) :: &
-                      positive2d= (/  'down',  '    ',       '    ' /)
-! Corresponding AMIP Table 2 entry (variable name) 
-  CHARACTER (LEN=5), DIMENSION(n2d) :: &
-                        entry2d = (/ 'hfls ', 'tas  ', 'mrsos' /)
-
-!  uninitialized variables used in communicating with CMOR:
-!  ---------------------------------------------------------
-
-  INTEGER :: error_flag
-  INTEGER, DIMENSION(3) :: axis2d_ids
-  INTEGER, DIMENSION(3) :: axis2d_ids2
-  INTEGER, DIMENSION(4) :: axis3d_ids
-  INTEGER, DIMENSION(n2d) :: var2d_ids
-  INTEGER, DIMENSION(n3d) :: var3d_ids
-  REAL, DIMENSION(lat,lon) :: data2d
-  REAL, DIMENSION(lev,lon,lat) :: data3d
-  DOUBLE PRECISION, DIMENSION(lat) :: alats
-  DOUBLE PRECISION, DIMENSION(lon) :: alons
-  DOUBLE PRECISION, DIMENSION(lev) :: plevs
-  DOUBLE PRECISION :: time,bt
-  DOUBLE PRECISION, DIMENSION(2):: bnds_time
-  DOUBLE PRECISION, DIMENSION(2,lat) :: bnds_lat
-  DOUBLE PRECISION, DIMENSION(2,lon) :: bnds_lon
-
-!!$  REAL, DIMENSION(lat*lon*lev) :: tmp3d
-!!$  REAL, DIMENSION(lat*lon) :: tmp2d
-
-  !  Other variables:
-  !  ---------------------
-  
-  INTEGER :: it, m
-  bt=0
-  
-  ! ================================
-  !  Execution begins here:
-  ! ================================
-  
-  ! Read coordinate information from model into arrays that will be passed 
-  !   to CMOR.
-  ! Read latitude, longitude, and pressure coordinate values into 
-  !   alats, alons, and plevs, respectively.  Also generate latitude and 
-  !   longitude bounds, and store in bnds_lat and bnds_lon, respectively.
-  
-  !   The user must write the subroutine that fills the coordinate arrays 
-  !   and their bounds with actual data.  The following line is simply a
-  !   a place-holder for the user's code, which should replace it.
-  
-  !  *** possible user-written call ***	
-  
-  print*, 'calling read_coords '
-
-  call read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-
-  print*, 'returned from read_coords'
-  
-  ! Specify path where tables can be found, indicate that existing netCDF 
-  !    files should not be overwritten, and instruct CMOR to error exit on 
-  !    encountering errors of any severity.
-  
-  error_flag = cmor_setup(inpath='Test',   &
-       netcdf_file_action='replace',                                       &
-       set_verbosity=1,                                                    &
-       exit_control=1)
-  
-  ! Define dataset as output from the GICC model (first member of an
-  !   ensemble of simulations) runcmor_write under IPCC 2xCO2 equilibrium experiment 
-  !   conditions, and provide information to be included as attributes in 
-  !   all CF-netCDF files written as part of this dataset.
-
-  print*, 'calling cmor_dataset'
-  error_flag = cmor_dataset(                                   &
-       outpath='Test',         &
-       experiment_id='abrupt 4XCO2',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       ' Geneva, Switzerland)',                                &
-       source='GICCM1  2002(giccm_0_brnchT_itea_2, T63L32)',    &
-       calendar='360_day',                                      &
-       realization=1,                                          &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also ' //          &
-       'see http://www.GICC.su/giccm/doc/index.html '  //      &
-       ' 2XCO2 simulation described in Dorkey et al. '//       &
-       '(Clim. Dyn., 2003, 323-357.)',model_id="GICCM1", &
-       forcing="Nat",contact="Barry Bonds",institute_id="PCMDI",&
-       parent_experiment_id="N/A",branch_time=bt)
-  
-  print*, 'returned from cmor_dataset'
-
-  !  Define axes for 3-d fields
-
-  print*, 'defining 3-d axes'
-  
-  axis2d_ids2(1) = cmor_axis(  &
-       table='Tables/CMIP5_Lmon',    &
-       table_entry='latitude',       &
-       units='degrees_north',        &  
-       length=lat,                   &
-       coord_vals=alats,             & 
-       cell_bounds=bnds_lat)              
-  axis2d_ids2(2) = cmor_axis(  &
-       table='Tables/CMIP5_Lmon',    &
-       table_entry='longitude',      &
-       length=lon,                   &
-       units='degrees_east',         &
-       coord_vals=alons,             &
-       cell_bounds=bnds_lon)              
-  axis2d_ids2(3) = cmor_axis(  &
-       table='Tables/CMIP5_Lmon',    &
-       table_entry='time',           &
-       units='days since 1979-1-1',  &
-       length=ntimes,                &
-       interval='1 month')
-  axis3d_ids(3) = cmor_axis(  &
-       table='Tables/CMIP5_Amon',    &
-       table_entry='latitude',       &
-       units='degrees_north',        &  
-       length=lat,                   &
-       coord_vals=alats,             & 
-       cell_bounds=bnds_lat)              
-  axis3d_ids(2) = cmor_axis(  &
-       table='Tables/CMIP5_Amon',    &
-       table_entry='longitude',      &
-       length=lon,                   &
-       units='degrees_east',         &
-       coord_vals=alons,             &
-       cell_bounds=bnds_lon)              
-  axis3d_ids(1) = cmor_axis(  &
-       table='Tables/CMIP5_Amon',    &
-       table_entry='plevs',       &
-       units='Pa',                   &
-       length=lev,                   &
-       coord_vals=plevs)
-  !   note that the time axis is defined next, but the time coordinate 
-  !   values and bounds will be passed to cmor through function 
-  !   cmor_write (below).
-print*, 'before time '
-  axis3d_ids(4) = cmor_axis(  &
-       table='Tables/CMIP5_Amon',    &
-       table_entry='time',           &
-       units='days since 1979-1-1',  &
-       length=ntimes,                &
-       interval='1 month')
-  
-  print*, 'finished defining 3-d axes'
-
-  !  Define axes for 2-d fields
-  
-  print*, 'defining 2-d axes'
-
-  axis2d_ids(1) = axis3d_ids(3)          
-  axis2d_ids(2) = axis3d_ids(2)           
-  axis2d_ids(3) = axis3d_ids(4)
-  
-print*, 'finished defining 2-d axes'
-
-  !  Define variables found in AMIP table 1a (3-d variables)
-  
-  DO m=1,n3d
-     var3d_ids(m) = cmor_variable(    &   
-          table='Tables/CMIP5_Amon',  &
-          table_entry=entry3d(m),     &
-!!$          file_suffix='1979-2001',    &
-          units=units3d(m),           &
-          axis_ids=axis3d_ids,        &
-          missing_value=1.0e20,       &
-          positive=positive3d(m),     &
-          original_name=varin3d(m))
-  ENDDO
-  
-
-  !  Define variables found in AMIP table 2a (2-d variables)
-  
-  DO m=1,n2d
-     if (m.eq.3) then
-        print*, 'ok our axes are: ',axis2d_ids2
-        var2d_ids(m) = cmor_variable(    &
-             table='Tables/CMIP5_Lmon',  & 
-             table_entry=entry2d(m),     & 
-!!$          file_suffix='1979-2001',    &
-             units=units2d(m),           & 
-             axis_ids=axis2d_ids2,       &
-             missing_value=1.0e20,       &
-             positive=positive2d(m),     &
-             original_name=varin2d(m))  
-     else 
-        var2d_ids(m) = cmor_variable(    &
-             table='Tables/CMIP5_Amon',  & 
-             table_entry=entry2d(m),     & 
-!!$          file_suffix='1979-2001',    &
-             units=units2d(m),           & 
-             axis_ids=axis2d_ids,        &
-             missing_value=1.0e20,       &
-             positive=positive2d(m),     &
-             original_name=varin2d(m))   
-     endif
-  ENDDO
-
-print*, 'completed everything up to writing output fields '
-  
-  !  Loop through history files (each containing several different fields, 
-  !       but only a single month of data, averaged over the month).  Then 
-  !       extract fields of interest and write these to netCDF files (with 
-  !       one field per file, but all months included in the loop).
-  
-  time_loop: DO it=1, ntimes
-     
-     ! In the following loops over the 3d and 2d fields, the user-written    
-     ! subroutines (read_3d_input_files and read_2d_input_files) retrieve 
-     ! the requested AMIP table 1a and table 2 fields and store them in 
-     ! data3d and data2d, respectively.  In addition a user-written code 
-     ! (read_time) retrieves the time and time-bounds associated with the 
-     ! time sample (in units of 'days since 1970-1-1', consistent with the 
-     ! axis definitions above).  The bounds are set to the beginning and 
-     ! the end of the month retrieved, indicating the averaging period.
-     
-     ! The user must write a code to obtain the times and time-bounds for
-     !   the time slice.  The following line is simply a place-holder for
-     !   the user's code, which should replace it.
-     
-    call read_time(it, time, bnds_time)
-     
-     ! Cycle through the 3-d fields, retrieve the requested variable and 
-     ! append each to the appropriate netCDF file.
-    
- 
-
-    DO m=1,n3d
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-
-        call read_3d_input_files(it, varin3d(m), data3d)
-
-       
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-        print*, RESHAPE(bnds_time, (/ 2,1 /))
-        error_flag = cmor_write(var_id =        var3d_ids(m),   &
-                                data =          RESHAPE(data3d, (/ lat*lon*lev /)),          &
-                                ntimes_passed = 1,              &
-                                time_vals =     (/ time /),           &
-                                time_bnds =     RESHAPE(bnds_time, (/ 2,1 /)))
-
-print*, 'after writing variable, ', var3d_ids(m)
-print*, '    error flag = ', error_flag
-
-        IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) ' Error encountered writing AMIP Table 1a ' &
-                // 'field ', entry3d(m), ', which I call ', varin3d(m)
-           write(*,*) ' Was processing time sample: ', time
-           
-!!$            error_flag = cmor_error_trace(device=0)
-           
-        END IF
-
-     END DO
-     
-     ! Cycle through the 2-d fields, retrieve the requested variable and 
-     ! append each to the appropriate netCDF file.
-     
-     DO m=1,n2d
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-        
-        call read_2d_input_files(it, varin2d(m), data2d)                  
-
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-
-        print*, RESHAPE(bnds_time, (/ 2,1 /))
-        error_flag = cmor_write(var_id =        var2d_ids(m),   &
-                                data =          RESHAPE(data2d, (/ lat*lon /)),        &
-                                ntimes_passed = 1,              &
-                                time_vals =     (/ time /),           &
-                                time_bnds =     RESHAPE(bnds_time, (/ 2,1 /)))
-        
-print*, 'after writing variable, ', var2d_ids(m)
-print*, '    error flag = ', error_flag
-       IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) ' Error encountered writing AMIP Table 2 ' &
-                // 'field ', entry2d(m), ', which I call ', varin2d(m)
-           write(*,*) ' Was processing time sample: ', time 
-           
-!!$            error_flag = cmor_error_trace(device=0)
-           
-        END IF
-        
-     END DO
-     
-  END DO time_loop
-  
-  !   Close all files opened by CMOR.
-  
-  error_flag = cmor_close()  
-
-print*, '******************************'
-print*, ' '
-print*, 'CMOR COMPLETED SUCCESSFULLY '   
-print*, ' '
-print*, '******************************'
-
-END PROGRAM mip_contribution
-
diff --git a/Test/test2.f90 b/Test/test2.f90
deleted file mode 100644
index be80c40..0000000
--- a/Test/test2.f90
+++ /dev/null
@@ -1,454 +0,0 @@
-!!$pgf90 -I/work/NetCDF/5.1/include -L/work/NetCDF/5.1/lib -l netcdf -L. -l cmor Test/test1.f90 -IModules -o cmor_test
-!!$pgf90 -g -I/pcmdi/charles_work/NetCDF//include -L/pcmdi/charles_work/NetCDF//lib -lnetcdf -module Modules -IModules -L. -lcmor Test/test1.f90 -o cmor_test
-
-MODULE local_subs
-
-  PRIVATE
-  PUBLIC read_coords, read_time, read_3d_input_files, read_2d_input_files
-CONTAINS
-  
-  SUBROUTINE read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-
-    IMPLICIT NONE
-    
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alats
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alons
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: plevs
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lat
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lon
-    
-    INTEGER :: i, irev
-    
-    DO i = 1, SIZE(alons)
-       irev = SIZE(alons)+1-i
-       alons(irev) = (i-1)*360./SIZE(alons)
-       bnds_lon(1,irev) = (i - 1.5)*360./SIZE(alons)
-       bnds_lon(2,irev) = (i - 0.5)*360./SIZE(alons)
-       print*, i,irev,alons(irev),bnds_lon(1,irev),bnds_lon(2,irev)
-    END DO
-    
-    DO i = 1, SIZE(alats)
-       alats(i) = i*10
-       bnds_lat(1,i) = i*10. - 5.
-       bnds_lat(2,i) = i*10. + 5.
-    END DO
-  
-    DO i = 1, SIZE(plevs)
-       plevs(i) = i*1.0e4
-    END DO
-       plevs = (/100000., 92500., 85000., 70000.,&
-       60000., 50000., 40000., 30000., 25000., 20000.,&
-       15000., 10000., 7000., 5000., 3000., 2000., 1000. /)
-   
-    RETURN
-  END SUBROUTINE read_coords
-
-  SUBROUTINE read_time(it, time, time_bnds)
-    
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    DOUBLE PRECISION, INTENT(OUT) :: time
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(2) :: time_bnds
-    
-    time = (it-0.5)*30.
-    time_bnds(1) = (it-1)*30.
-    time_bnds(2) = it*30.
-    
-    RETURN
-  END SUBROUTINE read_time
-  
-INCLUDE "reader_2D_3D.f90"
-
-END MODULE local_subs
-
-
-PROGRAM mip_contribution
-!
-!   Purpose:   To serve as a generic example of an application that
-!       uses the "Climate Model Output Rewriter" (CMOR)
-
-!    CMOR writes CF-compliant netCDF files.
-!    Its use is required by many community-coordinated standard 
-!       climate model experiments (e.g., AMIP, CMIP, CFMIP, APE, and
-!       IPCC scenario runs)
-!
-!   Background information for this sample code:
-!
-!      Standard output requested by AMIP is listed in 6 different 
-!   tables.  This sample code processes only 2 variables listed in AMIP 
-!   Table 1a ("3-d" fields, containing monthly mean data that are a 
-!   function of longitude, latitude, pressure and time) and only 3 
-!   variables in AMIP Table 2 ("2-d" fields, containing monthly mean 
-!   data that are a function of longitude, latitude, and time).  The 
-!   extension to many more fields is trivial.
-!
-!      For this example, the user must fill in the sections of code that 
-!   extract the 3-d and 2-d fields from his monthly mean "history" 
-!   files (which usually contain many variables but only a single time 
-!   slice).  The CMOR code will write each field in a separate file, but 
-!   many monthly mean time-samples will be stored together.  These 
-!   constraints partially determine the structure of the code.
-!
-!   Record of revisions:
-
-!       Date        Programmer(s)           Description of change
-!       ====        ==========              =====================
-!      10/22/03     Rusty Koder              Original code
-!       1/28/04     Les R. Koder             Revised to be consistent
-!                                            with evolving code design
-
-! include module that contains the user-accessible cmor functions.
-  USE cmor_users_functions
-  USE local_subs
-
-  IMPLICIT NONE
-
-  !   dimension parameters:
-  ! ---------------------------------
-  INTEGER, PARAMETER :: ntimes = 2    ! number of time samples to process
-  INTEGER, PARAMETER :: lon = 4       ! number of longitude grid cells  
-  INTEGER, PARAMETER :: lat = 3       ! number of latitude grid cells
-  INTEGER, PARAMETER :: lev = 17       ! number of standard pressure levels
-  INTEGER, PARAMETER :: n2d = 3       ! number of AMIP Table 2 fields to be
-                                      !     output.
-  INTEGER, PARAMETER :: n3d = 2       ! number of AMIP Table 1a fields to 
-                                      !     be output.  
-
-  !   Tables associating the user's variables with AMIP standard output 
-  !   variables.  The user may choose to make this association in a 
-  !   different way (e.g., by defining values of pointers that allow him 
-  !   to directly retrieve data from a data record containing many 
-  !   different variables), but in some way the user will need to map his 
-  !   model output onto the Tables specifying the MIP standard output.
-
-  ! ----------------------------------
-
-                                ! My variable names for Table 1a fields
-  CHARACTER (LEN=2), DIMENSION(n3d) :: varin3d=(/ 'U', 'T'/)
-                                ! Units appropriate to my data
-  CHARACTER (LEN=5), DIMENSION(n3d) :: &
-                                  units3d=(/ 'm s-1',   'K    '  /)
-  CHARACTER (LEN=4), DIMENSION(n3d) ::  &
-                              positive3d= (/   '',       '' /)
-                     ! Corresponding AMIP Table 1a entry (variable name) 
-  CHARACTER (LEN=2), DIMENSION(n3d) :: entry3d = (/ 'ua', 'ta' /)
-
-                                ! My variable names for Table 2 fields
-  CHARACTER (LEN=8), DIMENSION(n2d) :: &
-                          varin2d=(/ 'LATENT  ', 'TSURF   ', 'SOIL_WET' /)
-                                ! Units appropriate to my data
-   CHARACTER (LEN=6), DIMENSION(n2d) :: &
-                          units2d=(/ 'W m-2 ', 'K     ', 'kg m-2' /)
-   CHARACTER (LEN=4), DIMENSION(n2d) :: &
-                      positive2d= (/  'down',  '    ',       '    ' /)
-                     ! Corresponding AMIP Table 2 entry (variable name) 
-  CHARACTER (LEN=5), DIMENSION(n2d) :: &
-                        entry2d = (/ 'hfls ', 'tas  ', 'mrsos' /)
-
-!  uninitialized variables used in communicating with CMOR:
-!  ---------------------------------------------------------
-
-  INTEGER :: error_flag
-  INTEGER, DIMENSION(3) :: axis2d_ids
-  INTEGER, DIMENSION(3) :: axis2d_ids2
-  INTEGER, DIMENSION(4) :: axis3d_ids
-  INTEGER, DIMENSION(n2d) :: var2d_ids
-  INTEGER, DIMENSION(n3d) :: var3d_ids
-  REAL, DIMENSION(lat,lon) :: data2d
-  REAL, DIMENSION(lev,lon,lat) :: data3d
-  DOUBLE PRECISION, DIMENSION(lat) :: alats
-  DOUBLE PRECISION, DIMENSION(lon) :: alons
-  DOUBLE PRECISION, DIMENSION(lev) :: plevs
-  DOUBLE PRECISION :: time,bt
-  DOUBLE PRECISION, DIMENSION(2):: bnds_time
-  DOUBLE PRECISION, DIMENSION(2,lat) :: bnds_lat
-  DOUBLE PRECISION, DIMENSION(2,lon) :: bnds_lon
-
-!!$  REAL, DIMENSION(lat*lon*lev) :: tmp3d
-!!$  REAL, DIMENSION(lat*lon) :: tmp2d
-
-  !  Other variables:
-  !  ---------------------
-  
-  INTEGER :: it, m
-  
-  bt=0.
-  ! ================================
-  !  Execution begins here:
-  ! ================================
-  
-  ! Read coordinate information from model into arrays that will be passed 
-  !   to CMOR.
-  ! Read latitude, longitude, and pressure coordinate values into 
-  !   alats, alons, and plevs, respectively.  Also generate latitude and 
-  !   longitude bounds, and store in bnds_lat and bnds_lon, respectively.
-  
-  !   The user must write the subroutine that fills the coordinate arrays 
-  !   and their bounds with actual data.  The following line is simply a
-  !   a place-holder for the user's code, which should replace it.
-  
-  !  *** possible user-written call ***	
-  
-  print*, 'calling read_coords '
-
-  call read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-
-  print*, 'returned from read_coords'
-  
-  ! Specify path where tables can be found, indicate that existing netCDF 
-  !    files should not be overwritten, and instruct CMOR to error exit on 
-  !    encountering errors of any severity.
-  
-  error_flag = cmor_setup(inpath='Test',   &
-       netcdf_file_action='replace',                                       &
-       set_verbosity=1,                                                    &
-       exit_control=1)
-  
-  ! Define dataset as output from the GICC model (first member of an
-  !   ensemble of simulations) runcmor_write under IPCC 2xCO2 equilibrium experiment 
-  !   conditions, and provide information to be included as attributes in 
-  !   all CF-netCDF files written as part of this dataset.
-
-  print*, 'calling cmor_dataset'
-  error_flag = cmor_dataset(                                   &
-       outpath='Test',                                         &
-       experiment_id='abrupt 4XCO2',                           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       ' Geneva, Switzerland)',                                &
-       source='GICCM1  2002(giccm_0_brnchT_itea_2, T63L32)',    &
-       calendar='360_day',                                     &
-       realization=1,                                          &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also ' //          &
-       'see http://www.GICC.su/giccm/doc/index.html '  //      &
-       ' 2XCO2 simulation described in Dorkey et al. '//       &
-       '(Clim. Dyn., 2003, 323-357.)' ,                        &
-       model_id="GICCM1",forcing="SO",contact="Barry Bonds",&
-       parent_experiment_id="N/A",branch_time=bt,institute_id="PCMDI")
-  
-  print*, 'returned from cmor_dataset'
-
-  !  Define axes for 3-d fields
-
-  print*, 'defining 3-d axes'
-  
-  axis2d_ids2(1) = cmor_axis(  &
-       table='Tables/CMIP5_Lmon',    &
-       table_entry='latitude',       &
-       units='degrees_north',        &  
-       length=lat,                   &
-       coord_vals=alats,             & 
-       cell_bounds=bnds_lat)              
-  axis2d_ids2(2) = cmor_axis(  &
-       table='Tables/CMIP5_Lmon',    &
-       table_entry='longitude',      &
-       length=lon,                   &
-       units='degrees_east',         &
-       coord_vals=alons,             &
-       cell_bounds=bnds_lon)              
-  axis3d_ids(3) = cmor_axis(  &
-       table='Tables/CMIP5_Amon',    &
-       table_entry='latitude',       &
-       units='degrees_north',        &  
-       length=lat,                   &
-       coord_vals=alats,             & 
-       cell_bounds=bnds_lat)     
-  print*, 'alons:',alons         
-  print*, 'blons:',bnds_lon         
-  axis3d_ids(2) = cmor_axis(  &
-       table='Tables/CMIP5_Amon',    &
-       table_entry='longitude',      &
-       length=lon,                   &
-       units='degrees_east',         &
-       coord_vals=alons,             &
-       cell_bounds=bnds_lon)              
-  axis3d_ids(1) = cmor_axis(  &
-       table='Tables/CMIP5_Amon',    &
-       table_entry='plevs',       &
-       units='Pa',                   &
-       length=lev,                   &
-       coord_vals=plevs)
-  !   note that the time axis is defined next, but the time coordinate 
-  !   values and bounds will be passed to cmor through function 
-  !   cmor_write (below).
-print*, 'before time '
-  axis2d_ids2(3) = cmor_axis(  &
-       table='Tables/CMIP5_Lmon',    &
-       table_entry='time',           &
-       units='days since 1979-1-1',  &
-       length=ntimes,                &
-       interval='1 month')
-  axis3d_ids(4) = cmor_axis(  &
-       table='Tables/CMIP5_Amon',    &
-       table_entry='time',           &
-       units='days since 1979-1-1',  &
-       length=ntimes,                &
-       interval='1 month')
-  
-  print*, 'finished defining 3-d axes'
-
-  !  Define axes for 2-d fields
-  
-  print*, 'defining 2-d axes'
-
-  axis2d_ids(1) = axis3d_ids(3)          
-  axis2d_ids(2) = axis3d_ids(2)           
-  axis2d_ids(3) = axis3d_ids(4)
-  
-print*, 'finished defining 2-d axes'
-
-  !  Define variables found in AMIP table 1a (3-d variables)
-  
-  DO m=1,n3d
-     var3d_ids(m) = cmor_variable(    &   
-          table='Tables/CMIP5_Amon',  &
-          table_entry=entry3d(m),     &
-          units=units3d(m),           &
-          axis_ids=axis3d_ids,        &
-          missing_value=1.0e20,       &
-          positive=positive3d(m),     &
-          original_name=varin3d(m))
-  ENDDO
-  
-
-  !  Define variables found in AMIP table 2a (2-d variables)
-  
-  DO m=1,n2d
-     if (m.eq.3) then
-        var2d_ids(m) = cmor_variable(    &
-             table='Tables/CMIP5_Lmon',  & 
-             table_entry=entry2d(m),     & 
-!!$          file_suffix='1979-2001',    &
-             units=units2d(m),           & 
-             axis_ids=axis2d_ids2,        &
-             missing_value=1.0e20,       &
-             positive=positive2d(m),     &
-             original_name=varin2d(m))  
-     else 
-     var2d_ids(m) = cmor_variable(    &
-          table='Tables/CMIP5_Amon',  & 
-          table_entry=entry2d(m),     & 
-          units=units2d(m),           & 
-          axis_ids=axis2d_ids,        &
-          missing_value=1.0e20,       &
-          positive=positive2d(m),     &
-          original_name=varin2d(m))   
-  endif
-  ENDDO
-
-print*, 'completed everything up to writing output fields '
-  
-  !  Loop through history files (each containing several different fields, 
-  !       but only a single month of data, averaged over the month).  Then 
-  !       extract fields of interest and write these to netCDF files (with 
-  !       one field per file, but all months included in the loop).
-  
-  time_loop: DO it=1, ntimes
-     
-     ! In the following loops over the 3d and 2d fields, the user-written    
-     ! subroutines (read_3d_input_files and read_2d_input_files) retrieve 
-     ! the requested AMIP table 1a and table 2 fields and store them in 
-     ! data3d and data2d, respectively.  In addition a user-written code 
-     ! (read_time) retrieves the time and time-bounds associated with the 
-     ! time sample (in units of 'days since 1970-1-1', consistent with the 
-     ! axis definitions above).  The bounds are set to the beginning and 
-     ! the end of the month retrieved, indicating the averaging period.
-     
-     ! The user must write a code to obtain the times and time-bounds for
-     !   the time slice.  The following line is simply a place-holder for
-     !   the user's code, which should replace it.
-     
-    call read_time(it, time, bnds_time)
-     
-     ! Cycle through the 3-d fields, retrieve the requested variable and 
-     ! append each to the appropriate netCDF file.
-    
- 
-
-    DO m=1,n3d
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-
-        call read_3d_input_files(it, varin3d(m), data3d)
-
-       
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-        
-        error_flag = cmor_write(var_id =        var3d_ids(m),   &
-                                data =          RESHAPE(data3d, (/ lat*lon*lev /)),          &
-                                ntimes_passed = 1,              &
-                                time_vals =     (/ time /),           &
-                                time_bnds =     RESHAPE(bnds_time, (/ 2,1 /)))
-
-print*, 'after writing variable, ', var3d_ids(m)
-print*, '    error flag = ', error_flag
-
-        IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) ' Error encountered writing AMIP Table 1a ' &
-                // 'field ', entry3d(m), ', which I call ', varin3d(m)
-           write(*,*) ' Was processing time sample: ', time
-           
-!!$            error_flag = cmor_error_trace(device=0)
-           
-        END IF
-
-     END DO
-     
-     ! Cycle through the 2-d fields, retrieve the requested variable and 
-     ! append each to the appropriate netCDF file.
-     
-     DO m=1,n2d
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-        
-        call read_2d_input_files(it, varin2d(m), data2d)                  
-
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-
-        error_flag = cmor_write(var_id =        var2d_ids(m),   &
-                                data =          RESHAPE(data2d, (/ lat*lon /)),        &
-                                ntimes_passed = 1,              &
-                                time_vals =     (/ time /),           &
-                                time_bnds =     RESHAPE(bnds_time, (/ 2,1 /)))
-        
-print*, 'after writing variable, ', var2d_ids(m)
-print*, '    error flag = ', error_flag
-       IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) ' Error encountered writing AMIP Table 2 ' &
-                // 'field ', entry2d(m), ', which I call ', varin2d(m)
-           write(*,*) ' Was processing time sample: ', time 
-           
-!!$            error_flag = cmor_error_trace(device=0)
-           
-        END IF
-        
-     END DO
-     
-  END DO time_loop
-  
-  !   Close all files opened by CMOR.
-  
-  error_flag = cmor_close()  
-
-print*, '******************************'
-print*, ' '
-print*, 'CMOR COMPLETED SUCCESSFULLY '   
-print*, ' '
-print*, '******************************'
-
-END PROGRAM mip_contribution
-
diff --git a/Test/test3.f90 b/Test/test3.f90
deleted file mode 100644
index 59b8791..0000000
--- a/Test/test3.f90
+++ /dev/null
@@ -1,454 +0,0 @@
-!!$pgf90 -I/work/NetCDF/5.1/include -L/work/NetCDF/5.1/lib -l netcdf -L. -l cmor Test/test1.f90 -IModules -o cmor_test
-!!$pgf90 -g -I/pcmdi/charles_work/NetCDF//include -L/pcmdi/charles_work/NetCDF//lib -lnetcdf -module Modules -IModules -L. -lcmor Test/test1.f90 -o cmor_test
-
-MODULE local_subs
-
-  PRIVATE
-  PUBLIC read_coords, read_time, read_3d_input_files, read_2d_input_files
-CONTAINS
-  
-  SUBROUTINE read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-
-    IMPLICIT NONE
-    
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alats
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alons
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: plevs
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lat
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lon
-    
-    INTEGER :: i, irev, ioff
-    
-    DO i = 1, SIZE(alons)
-       irev = SIZE(alons)+1-i
-       ioff = irev +2
-       if (ioff>SIZE(alons)) ioff = ioff - SIZE(alons)
-       alons(ioff) = (i-1)*360./SIZE(alons)
-       bnds_lon(1,ioff) = (i - 1.5)*360./SIZE(alons)
-       bnds_lon(2,ioff) = (i - 0.5)*360./SIZE(alons)
-    END DO
-    
-    DO i = 1, SIZE(alats)
-       alats(i) = i*10
-       bnds_lat(1,i) = i*10. - 5.
-       bnds_lat(2,i) = i*10. + 5.
-    END DO
-  
-    DO i = 1, SIZE(plevs)
-       plevs(i) = i*1.0e4
-    END DO
-    
-      plevs = (/100000., 92500., 85000., 70000.,&
-       60000., 50000., 40000., 30000., 25000., 20000.,&
-       15000., 10000., 7000., 5000., 3000., 2000., 1000. /)
-  
-    RETURN
-  END SUBROUTINE read_coords
-
-  SUBROUTINE read_time(it, time, time_bnds)
-    
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    DOUBLE PRECISION, INTENT(OUT) :: time
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(2) :: time_bnds
-    
-    time = (it-0.5)*30.
-    time_bnds(1) = (it-1)*30.
-    time_bnds(2) = it*30.
-    
-    RETURN
-  END SUBROUTINE read_time
-  
-INCLUDE "reader_2D_3D.f90"
-
-END MODULE local_subs
-
-
-PROGRAM mip_contribution
-!
-!   Purpose:   To serve as a generic example of an application that
-!       uses the "Climate Model Output Rewriter" (CMOR)
-
-!    CMOR writes CF-compliant netCDF files.
-!    Its use is required by many community-coordinated standard 
-!       climate model experiments (e.g., AMIP, CMIP, CFMIP, APE, and
-!       IPCC scenario runs)
-!
-!   Background information for this sample code:
-!
-!      Standard output requested by AMIP is listed in 6 different 
-!   tables.  This sample code processes only 2 variables listed in AMIP 
-!   Table 1a ("3-d" fields, containing monthly mean data that are a 
-!   function of longitude, latitude, pressure and time) and only 3 
-!   variables in AMIP Table 2 ("2-d" fields, containing monthly mean 
-!   data that are a function of longitude, latitude, and time).  The 
-!   extension to many more fields is trivial.
-!
-!      For this example, the user must fill in the sections of code that 
-!   extract the 3-d and 2-d fields from his monthly mean "history" 
-!   files (which usually contain many variables but only a single time 
-!   slice).  The CMOR code will write each field in a separate file, but 
-!   many monthly mean time-samples will be stored together.  These 
-!   constraints partially determine the structure of the code.
-!
-!   Record of revisions:
-
-!       Date        Programmer(s)           Description of change
-!       ====        ==========              =====================
-!      10/22/03     Rusty Koder              Original code
-!       1/28/04     Les R. Koder             Revised to be consistent
-!                                            with evolving code design
-
-! include module that contains the user-accessible cmor functions.
-  USE cmor_users_functions
-  USE local_subs
-
-  IMPLICIT NONE
-
-  !   dimension parameters:
-  ! ---------------------------------
-  INTEGER, PARAMETER :: ntimes = 2    ! number of time samples to process
-  INTEGER, PARAMETER :: lon = 4       ! number of longitude grid cells  
-  INTEGER, PARAMETER :: lat = 3       ! number of latitude grid cells
-  INTEGER, PARAMETER :: lev = 17       ! number of standard pressure levels
-  INTEGER, PARAMETER :: n2d = 3       ! number of AMIP Table 2 fields to be
-                                      !     output.
-  INTEGER, PARAMETER :: n3d = 2       ! number of AMIP Table 1a fields to 
-                                      !     be output.  
-
-  !   Tables associating the user's variables with AMIP standard output 
-  !   variables.  The user may choose to make this association in a 
-  !   different way (e.g., by defining values of pointers that allow him 
-  !   to directly retrieve data from a data record containing many 
-  !   different variables), but in some way the user will need to map his 
-  !   model output onto the Tables specifying the MIP standard output.
-
-  ! ----------------------------------
-
-                                ! My variable names for Table 1a fields
-  CHARACTER (LEN=2), DIMENSION(n3d) :: varin3d=(/ 'U', 'T'/)
-                                ! Units appropriate to my data
-  CHARACTER (LEN=5), DIMENSION(n3d) :: &
-                                  units3d=(/ 'm s-1',   'K    '  /)
-  CHARACTER (LEN=4), DIMENSION(n3d) ::  &
-                              positive3d= (/   '    ',       '    ' /)
-                     ! Corresponding AMIP Table 1a entry (variable name) 
-  CHARACTER (LEN=2), DIMENSION(n3d) :: entry3d = (/ 'ua', 'ta' /)
-
-                                ! My variable names for Table 2 fields
-  CHARACTER (LEN=8), DIMENSION(n2d) :: &
-                          varin2d=(/ 'LATENT  ', 'TSURF   ', 'SOIL_WET' /)
-                                ! Units appropriate to my data
-   CHARACTER (LEN=6), DIMENSION(n2d) :: &
-                          units2d=(/ 'W m-2 ', 'K     ', 'kg m-2' /)
-   CHARACTER (LEN=4), DIMENSION(n2d) :: &
-                      positive2d= (/  'down',  '    ',       '    ' /)
-                     ! Corresponding AMIP Table 2 entry (variable name) 
-  CHARACTER (LEN=5), DIMENSION(n2d) :: &
-                        entry2d = (/ 'hfls ', 'tas  ', 'mrsos' /)
-
-!  uninitialized variables used in communicating with CMOR:
-!  ---------------------------------------------------------
-
-  INTEGER :: error_flag
-  INTEGER, DIMENSION(3) :: axis2d_ids
-  INTEGER, DIMENSION(3) :: axis2d_ids2
-  INTEGER, DIMENSION(4) :: axis3d_ids
-  INTEGER, DIMENSION(n2d) :: var2d_ids
-  INTEGER, DIMENSION(n3d) :: var3d_ids
-  REAL, DIMENSION(lat,lon) :: data2d
-  REAL, DIMENSION(lev,lon,lat) :: data3d
-  DOUBLE PRECISION, DIMENSION(lat) :: alats
-  DOUBLE PRECISION, DIMENSION(lon) :: alons
-  DOUBLE PRECISION, DIMENSION(lev) :: plevs
-  DOUBLE PRECISION :: time,bt
-  DOUBLE PRECISION, DIMENSION(2):: bnds_time
-  DOUBLE PRECISION, DIMENSION(2,lat) :: bnds_lat
-  DOUBLE PRECISION, DIMENSION(2,lon) :: bnds_lon
-
-!!$  REAL, DIMENSION(lat*lon*lev) :: tmp3d
-!!$  REAL, DIMENSION(lat*lon) :: tmp2d
-
-  !  Other variables:
-  !  ---------------------
-  
-  INTEGER :: it, m
-  bt=0.
-  
-  ! ================================
-  !  Execution begins here:
-  ! ================================
-  
-  ! Read coordinate information from model into arrays that will be passed 
-  !   to CMOR.
-  ! Read latitude, longitude, and pressure coordinate values into 
-  !   alats, alons, and plevs, respectively.  Also generate latitude and 
-  !   longitude bounds, and store in bnds_lat and bnds_lon, respectively.
-  
-  !   The user must write the subroutine that fills the coordinate arrays 
-  !   and their bounds with actual data.  The following line is simply a
-  !   a place-holder for the user's code, which should replace it.
-  
-  !  *** possible user-written call ***	
-  
-  print*, 'calling read_coords '
-
-  call read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-
-  print*, 'returned from read_coords'
-  
-  ! Specify path where tables can be found, indicate that existing netCDF 
-  !    files should not be overwritten, and instruct CMOR to error exit on 
-  !    encountering errors of any severity.
-  
-  error_flag = cmor_setup(inpath='Test',   &
-       netcdf_file_action='replace',                                       &
-       set_verbosity=1,                                                    &
-       exit_control=1)
-  
-  ! Define dataset as output from the GICC model (first member of an
-  !   ensemble of simulations) runcmor_write under IPCC 2xCO2 equilibrium experiment 
-  !   conditions, and provide information to be included as attributes in 
-  !   all CF-netCDF files written as part of this dataset.
-
-  print*, 'calling cmor_dataset'
-  error_flag = cmor_dataset(                                   &
-       outpath='Test',         &
-       experiment_id='abrupt 4XCO2',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       ' Geneva, Switzerland)',                                &
-       source='GICCM1  2002(giccm_0_brnchT_itea_2, T63L32)',    &
-       calendar='360_day',                                      &
-       realization=1,                                          &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also ' //          &
-       'see http://www.GICC.su/giccm/doc/index.html '  //      &
-       ' 2XCO2 simulation described in Dorkey et al. '//       &
-       '(Clim. Dyn., 2003, 323-357.)' , &
-       model_id="GICCM1",forcing='TO',contact="Barry Bonds",&
-       parent_experiment_id="N/A",branch_time=bt,institute_id="PCMDI");
-  
-  print*, 'returned from cmor_dataset'
-
-  !  Define axes for 3-d fields
-
-  print*, 'defining 3-d axes'
-  
-  axis2d_ids2(1) = cmor_axis(  &
-       table='Tables/CMIP5_Lmon',    &
-       table_entry='latitude',       &
-       units='degrees_north',        &  
-       length=lat,                   &
-       coord_vals=alats,             & 
-       cell_bounds=bnds_lat)              
-  axis2d_ids2(2) = cmor_axis(  &
-       table='Tables/CMIP5_Lmon',    &
-       table_entry='longitude',      &
-       length=lon,                   &
-       units='degrees_east',         &
-       coord_vals=alons,             &
-       cell_bounds=bnds_lon)              
-  axis2d_ids2(3) = cmor_axis(  &
-       table='Tables/CMIP5_Lmon',    &
-       table_entry='time',           &
-       units='days since 1979-1-1',  &
-       length=ntimes,                &
-       interval='1 month')
-  axis3d_ids(3) = cmor_axis(  &
-       table='Tables/CMIP5_Amon',    &
-       table_entry='latitude',       &
-       units='degrees_north',        &  
-       length=lat,                   &
-       coord_vals=alats,             & 
-       cell_bounds=bnds_lat)              
-  axis3d_ids(2) = cmor_axis(  &
-       table='Tables/CMIP5_Amon',    &
-       table_entry='longitude',      &
-       length=lon,                   &
-       units='degrees_east',         &
-       coord_vals=alons,             &
-       cell_bounds=bnds_lon)           
-  axis3d_ids(1) = cmor_axis(  &
-       table='Tables/CMIP5_Amon',    &
-       table_entry='plevs',       &
-       units='Pa',                   &
-       length=lev,                   &
-       coord_vals=plevs)
-  !   note that the time axis is defined next, but the time coordinate 
-  !   values and bounds will be passed to cmor through function 
-  !   cmor_write (below).
-print*, 'before time '
-  axis3d_ids(4) = cmor_axis(  &
-       table='Tables/CMIP5_Amon',    &
-       table_entry='time',           &
-       units='days since 1979-1-1',  &
-       length=ntimes,                &
-       interval='30 days')
-  
-  print*, 'finished defining 3-d axes'
-
-  !  Define axes for 2-d fields
-  
-  print*, 'defining 2-d axes'
-
-  axis2d_ids(1) = axis3d_ids(3)          
-  axis2d_ids(2) = axis3d_ids(2)           
-  axis2d_ids(3) = axis3d_ids(4)
-  
-print*, 'finished defining 2-d axes'
-
-  !  Define variables found in AMIP table 1a (3-d variables)
-  
-  DO m=1,n3d
-     var3d_ids(m) = cmor_variable(    &   
-          table='Tables/CMIP5_Amon',  &
-          table_entry=entry3d(m),     &
-          units=units3d(m),           &
-          axis_ids=axis3d_ids,        &
-          missing_value=1.0e20,       &
-          positive=positive3d(m),     &
-          original_name=varin3d(m))
-  ENDDO
-  
-
-  !  Define variables found in AMIP table 2a (2-d variables)
-  
-  DO m=1,n2d
-     if (m.eq.3) then
-        var2d_ids(m) = cmor_variable(    &
-             table='Tables/CMIP5_Lmon',  & 
-             table_entry=entry2d(m),     & 
-!!$          file_suffix='1979-2001',    &
-             units=units2d(m),           & 
-             axis_ids=axis2d_ids2,        &
-             missing_value=1.0e20,       &
-             positive=positive2d(m),     &
-             original_name=varin2d(m))  
-     else 
-     var2d_ids(m) = cmor_variable(    &
-          table='Tables/CMIP5_Amon',  & 
-          table_entry=entry2d(m),     & 
-          units=units2d(m),           & 
-          axis_ids=axis2d_ids,        &
-          missing_value=1.0e20,       &
-          positive=positive2d(m),     &
-          original_name=varin2d(m))   
-  endif
-  ENDDO
-
-print*, 'completed everything up to writing output fields '
-  
-  !  Loop through history files (each containing several different fields, 
-  !       but only a single month of data, averaged over the month).  Then 
-  !       extract fields of interest and write these to netCDF files (with 
-  !       one field per file, but all months included in the loop).
-  
-  time_loop: DO it=1, ntimes
-     
-     ! In the following loops over the 3d and 2d fields, the user-written    
-     ! subroutines (read_3d_input_files and read_2d_input_files) retrieve 
-     ! the requested AMIP table 1a and table 2 fields and store them in 
-     ! data3d and data2d, respectively.  In addition a user-written code 
-     ! (read_time) retrieves the time and time-bounds associated with the 
-     ! time sample (in units of 'days since 1970-1-1', consistent with the 
-     ! axis definitions above).  The bounds are set to the beginning and 
-     ! the end of the month retrieved, indicating the averaging period.
-     
-     ! The user must write a code to obtain the times and time-bounds for
-     !   the time slice.  The following line is simply a place-holder for
-     !   the user's code, which should replace it.
-     
-    call read_time(it, time, bnds_time)
-     
-     ! Cycle through the 3-d fields, retrieve the requested variable and 
-     ! append each to the appropriate netCDF file.
-    
- 
-
-    DO m=1,n3d
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-
-        call read_3d_input_files(it, varin3d(m), data3d)
-
-       
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-        
-        error_flag = cmor_write(var_id =        var3d_ids(m),   &
-                                data =          RESHAPE(data3d, (/ lat*lon*lev /)),          &
-                                ntimes_passed = 1,              &
-                                time_vals =     (/ time /),           &
-                                time_bnds =     RESHAPE(bnds_time, (/ 2,1 /)))
-
-print*, 'after writing variable, ', var3d_ids(m)
-print*, '    error flag = ', error_flag
-
-        IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) ' Error encountered writing AMIP Table 1a ' &
-                // 'field ', entry3d(m), ', which I call ', varin3d(m)
-           write(*,*) ' Was processing time sample: ', time
-           
-!!$            error_flag = cmor_error_trace(device=0)
-           
-        END IF
-
-     END DO
-     
-     ! Cycle through the 2-d fields, retrieve the requested variable and 
-     ! append each to the appropriate netCDF file.
-     
-     DO m=1,n2d
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-        
-        call read_2d_input_files(it, varin2d(m), data2d)                  
-
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-
-        error_flag = cmor_write(var_id =        var2d_ids(m),   &
-                                data =          RESHAPE(data2d, (/ lat*lon /)),        &
-                                ntimes_passed = 1,              &
-                                time_vals =     (/ time /),           &
-                                time_bnds =     RESHAPE(bnds_time, (/ 2,1 /)))
-        
-print*, 'after writing variable, ', var2d_ids(m)
-print*, '    error flag = ', error_flag
-       IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) ' Error encountered writing AMIP Table 2 ' &
-                // 'field ', entry2d(m), ', which I call ', varin2d(m)
-           write(*,*) ' Was processing time sample: ', time 
-           
-!!$            error_flag = cmor_error_trace(device=0)
-           
-        END IF
-        
-     END DO
-     
-  END DO time_loop
-  
-  !   Close all files opened by CMOR.
-  
-  error_flag = cmor_close()  
-
-print*, '******************************'
-print*, ' '
-print*, 'CMOR COMPLETED SUCCESSFULLY '   
-print*, ' '
-print*, '******************************'
-
-END PROGRAM mip_contribution
-
diff --git a/Test/test4.f90 b/Test/test4.f90
deleted file mode 100644
index be61379..0000000
--- a/Test/test4.f90
+++ /dev/null
@@ -1,470 +0,0 @@
-!!$pgf90 -I/work/NetCDF/5.1/include -L/work/NetCDF/5.1/lib -l netcdf -L. -l cmor Test/main_prog.f90 -IModules -L/work/Unidata/lib -ludunits -o cmor_test
-!!$pgf90 -g -I/pcmdi/charles_work/NetCDF//include -L/pcmdi/charles_work/NetCDF//lib -lnetcdf -module Modules -IModules -L. -lcmor Test/main_prog.f90 -L/pcmdi/charles_work/Unidata/lib -ludunits -o cmor_test
-
-MODULE local_subs
-
-  PRIVATE
-  PUBLIC read_coords, read_time, read_3d_input_files, read_2d_input_files
-CONTAINS
-  
-  SUBROUTINE read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-
-    IMPLICIT NONE
-    
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alats
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alons
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: plevs
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lat
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lon
-    
-    INTEGER :: i
-    
-    DO i = 1, SIZE(alons)
-       alons(i) = (i-1)*360./SIZE(alons)
-       bnds_lon(1,i) = (i - 1.5)*360./SIZE(alons)
-        bnds_lon(2,i) = (i - 0.5)*360./SIZE(alons)
-    END DO
-    
-    DO i = 1, SIZE(alats)
-       alats(i) = i*10
-       bnds_lat(1,i) = i*10. - 5.
-       bnds_lat(2,i) = i*10. + 5.
-    END DO
-  
-    DO i = 1, SIZE(plevs)
-       plevs(i) = i*1.0e4
-    END DO
-       plevs = (/100000., 92500., 85000., 70000.,&
-       60000., 50000., 40000., 30000., 25000., 20000.,&
-       15000., 10000., 7000., 5000., 3000., 2000., 1000. /)
-  
-   
-    RETURN
-  END SUBROUTINE read_coords
-
-  SUBROUTINE read_time(it, time, time_bnds)
-    
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    DOUBLE PRECISION, INTENT(OUT) :: time
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(2) :: time_bnds
-    
-    time = (it-0.5)*30.
-    time_bnds(1) = (it-1)*30.
-    time_bnds(2) = it*30.
-    
-    RETURN
-  END SUBROUTINE read_time
-  
-INCLUDE "reader_2D_3D.f90"
-
-END MODULE local_subs
-
-
-PROGRAM mip_contribution
-!
-!   Purpose:   To serve as a generic example of an application that
-!       uses the "Climate Model Output Rewriter" (CMOR)
-
-!    CMOR writes CF-compliant netCDF files.
-!    Its use is required by many community-coordinated standard 
-!       climate model experiments (e.g., AMIP, CMIP, CFMIP, APE, and
-!       IPCC scenario runs)
-!
-!   Background information for this sample code:
-!
-!      Standard output requested by AMIP is listed in 6 different 
-!   tables.  This sample code processes only 2 variables listed in AMIP 
-!   Table 1a ("3-d" fields, containing monthly mean data that are a 
-!   function of longitude, latitude, pressure and time) and only 3 
-!   variables in AMIP Table 2 ("2-d" fields, containing monthly mean 
-!   data that are a function of longitude, latitude, and time).  The 
-!   extension to many more fields is trivial.
-!
-!      For this example, the user must fill in the sections of code that 
-!   extract the 3-d and 2-d fields from his monthly mean "history" 
-!   files (which usually contain many variables but only a single time 
-!   slice).  The CMOR code will write each field in a separate file, but 
-!   many monthly mean time-samples will be stored together.  These 
-!   constraints partially determine the structure of the code.
-!
-!   Record of revisions:
-
-!       Date        Programmer(s)           Description of change
-!       ====        ==========              =====================
-!      10/22/03     Rusty Koder              Original code
-!       1/28/04     Les R. Koder             Revised to be consistent
-!                                            with evolving code design
-
-! include module that contains the user-accessible cmor functions.
-  USE cmor_users_functions
-  USE local_subs
-
-  IMPLICIT NONE
-
-  !   dimension parameters:
-  ! ---------------------------------
-  INTEGER, PARAMETER :: ntimes = 2    ! number of time samples to process
-  INTEGER, PARAMETER :: lon = 4       ! number of longitude grid cells  
-  INTEGER, PARAMETER :: lat = 3       ! number of latitude grid cells
-  INTEGER, PARAMETER :: lev = 17       ! number of standard pressure levels
-  INTEGER, PARAMETER :: n2d = 3       ! number of AMIP Table 2 fields to be
-                                      !     output.
-  INTEGER, PARAMETER :: n3d = 2       ! number of AMIP Table 1a fields to 
-                                      !     be output.  
-
-  !   Tables associating the user's variables with AMIP standard output 
-  !   variables.  The user may choose to make this association in a 
-  !   different way (e.g., by defining values of pointers that allow him 
-  !   to directly retrieve data from a data record containing many 
-  !   different variables), but in some way the user will need to map his 
-  !   model output onto the Tables specifying the MIP standard output.
-
-  ! ----------------------------------
-
-                                ! My variable names for Table 1a fields
-  CHARACTER (LEN=2), DIMENSION(n3d) :: varin3d=(/ 'U', 'T'/)
-                                ! Units appropriate to my data
-  CHARACTER (LEN=5), DIMENSION(n3d) :: &
-                                  units3d=(/ 'm s-1',   'degF '  /)
-  CHARACTER (LEN=4), DIMENSION(n3d) ::  &
-                              positive3d= (/   '    ',       '    ' /)
-                     ! Corresponding AMIP Table 1a entry (variable name) 
-  CHARACTER (LEN=2), DIMENSION(n3d) :: entry3d = (/ 'ua', 'ta' /)
-
-                                ! My variable names for Table 2 fields
-  CHARACTER (LEN=8), DIMENSION(n2d) :: &
-                          varin2d=(/ 'LATENT  ', 'TSURF   ', 'SOIL_WET' /)
-                                ! Units appropriate to my data
-   CHARACTER (LEN=6), DIMENSION(n2d) :: &
-                          units2d=(/ 'W m-2 ', 'K     ', 'kg m-2' /)
-   CHARACTER (LEN=4), DIMENSION(n2d) :: &
-                      positive2d= (/  'down',  '    ',       '    ' /)
-                     ! Corresponding AMIP Table 2 entry (variable name) 
-  CHARACTER (LEN=5), DIMENSION(n2d) :: &
-                        entry2d = (/ 'hfls ', 'tas  ', 'mrsos' /)
-
-!  uninitialized variables used in communicating with CMOR:
-!  ---------------------------------------------------------
-
-  INTEGER :: error_flag
-  INTEGER, DIMENSION(3) :: axis2d_ids
-  INTEGER, DIMENSION(3) :: axis2d_ids2
-  INTEGER, DIMENSION(4) :: axis3d_ids
-  INTEGER, DIMENSION(n2d) :: var2d_ids
-  INTEGER, DIMENSION(n3d) :: var3d_ids
-  REAL, DIMENSION(lon,lat) :: data2d
-  REAL, DIMENSION(lon,lat,lev) :: data3d
-  DOUBLE PRECISION, DIMENSION(lat) :: alats
-  DOUBLE PRECISION, DIMENSION(lon) :: alons
-  DOUBLE PRECISION, DIMENSION(lev) :: plevs
-  DOUBLE PRECISION, DIMENSION(lev*lon*lat) :: mydata
-  DOUBLE PRECISION :: time,bt
-  DOUBLE PRECISION, DIMENSION(2):: bnds_time
-  DOUBLE PRECISION, DIMENSION(2,lat) :: bnds_lat
-  DOUBLE PRECISION, DIMENSION(2,lon) :: bnds_lon
-
-!!$  REAL, DIMENSION(lat*lon*lev) :: tmp3d
-!!$  REAL, DIMENSION(lat*lon) :: tmp2d
-
-  !  Other variables:
-  !  ---------------------
-  
-  INTEGER :: it, m,i
-  
-  character(256) outputpath
-
-  real mymax,mytmp
-
-  mymax=0.
-
-  bt=0.
-  ! ================================
-  !  Execution begins here:
-  ! ================================
-  
-  ! Read coordinate information from model into arrays that will be passed 
-  !   to CMOR.
-  ! Read latitude, longitude, and pressure coordinate values into 
-  !   alats, alons, and plevs, respectively.  Also generate latitude and 
-  !   longitude bounds, and store in bnds_lat and bnds_lon, respectively.
-  
-  !   The user must write the subroutine that fills the coordinate arrays 
-  !   and their bounds with actual data.  The following line is simply a
-  !   a place-holder for the user's code, which should replace it.
-  
-  !  *** possible user-written call ***	
-  
-  print*, 'calling read_coords '
-
-  call read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-
-  print*, 'returned from read_coords'
-  
-  ! Specify path where tables can be found, indicate that existing netCDF 
-  !    files should not be overwritten, and instruct CMOR to error exit on 
-  !    encountering errors of any severity.
-  
-  error_flag = cmor_setup(inpath='Test',   &
-       netcdf_file_action='replace',                                       &
-       set_verbosity=1,                                                    &
-       exit_control=1)
-  
-  ! Define dataset as output from the GICC model (first member of an
-  !   ensemble of simulations) runcmor_write under IPCC 2xCO2 equilibrium experiment 
-  !   conditions, and provide information to be included as attributes in 
-  !   all CF-netCDF files written as part of this dataset.
-
-  print*, 'calling cmor_dataset'
-  error_flag = cmor_dataset(                                   &
-       outpath='Test',         &
-       experiment_id='abrupt 4XCO2',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       'Geneva, Switzerland)',                                 &
-       source='GICCM1  2002(giccm_0_brnchT_itea_2, T63L32)',    &
-       calendar='360_day',                                      &
-       realization=1,                                          &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also ' //          &
-       'see http://www.GICC.su/giccm/doc/index.html '  //      &
-       ' 2XCO2 simulation described in Dorkey et al. '//       &
-       '(Clim. Dyn., 2003, 323-357.)' , model_id="GICCM1", &
-       forcing = 'TO',contact="Barry Bonds",&
-       parent_experiment_id="N/A",branch_time=bt,institute_id="PCMDI")
-  
-  print*, 'returned from cmor_dataset'
-
-  !  Define axes for 3-d fields
-
-  print*, 'defining 3-d axes'
-  
-  axis2d_ids2(1) = cmor_axis(  &
-       table='Tables/CMIP5_Lmon',    &
-       table_entry='latitude',       &
-       units='degrees_north',        &  
-       length=lat,                   &
-       coord_vals=alats,             & 
-       cell_bounds=bnds_lat)              
-  axis2d_ids2(2) = cmor_axis(  &
-       table='Tables/CMIP5_Lmon',    &
-       table_entry='longitude',      &
-       length=lon,                   &
-       units='degrees_east',         &
-       coord_vals=alons,             &
-       cell_bounds=bnds_lon)              
-  axis2d_ids2(3) = cmor_axis(  &
-       table='Tables/CMIP5_Lmon',    &
-       table_entry='time',           &
-       units='days since 1979-1-1',  &
-       length=ntimes,                &
-       interval='1 month')
-  axis3d_ids(2) = cmor_axis(  &
-       table='Tables/CMIP5_Amon',    &
-       table_entry='latitude',       &
-       units='degrees_north',        &  
-       length=lat,                   &
-       coord_vals=alats,             & 
-       cell_bounds=bnds_lat)              
-  axis3d_ids(1) = cmor_axis(  &
-       table='Tables/CMIP5_Amon',    &
-       table_entry='longitude',      &
-       length=lon,                   &
-       units='degrees_east',         &
-       coord_vals=alons,             &
-       cell_bounds=bnds_lon)              
-  axis3d_ids(3) = cmor_axis(  &
-       table='Tables/CMIP5_Amon',    &
-       table_entry='plevs',       &
-       units='Pa',                   &
-       length=lev,                   &
-       coord_vals=plevs)
-  !   note that the time axis is defined next, but the time coordinate 
-  !   values and bounds will be passed to cmor through function 
-  !   cmor_write (below).
-print*, 'before time '
-  axis3d_ids(4) = cmor_axis(  &
-       table='Tables/CMIP5_Amon',    &
-       table_entry='time',           &
-       units='days since 1979-1-1',  &
-       length=ntimes,                &
-       interval='31 days')
-  
-  print*, 'finished defining 3-d axes'
-
-  !  Define axes for 2-d fields
-  
-  print*, 'defining 2-d axes'
-
-  axis2d_ids(1) = axis3d_ids(1)          
-  axis2d_ids(2) = axis3d_ids(2)           
-  axis2d_ids(3) = axis3d_ids(4)
-  
-print*, 'finished defining 2-d axes'
-
-  !  Define variables found in AMIP table 1a (3-d variables)
-  
-  DO m=1,n3d
-     var3d_ids(m) = cmor_variable(    &   
-          table='Tables/CMIP5_Amon',  &
-          table_entry=entry3d(m),     &
-          units=units3d(m),           &
-          axis_ids=axis3d_ids,        &
-          missing_value=1.0e20,       &
-          positive=positive3d(m),     &
-          original_name=varin3d(m))
-     print*, m,'varind',varin3d(m),var3d_ids(m)
-  ENDDO
-  
-
-  !  Define variables found in AMIP table 2a (2-d variables)
-  
-  DO m=1,n2d
-     if (m.eq.3) then
-        var2d_ids(m) = cmor_variable(    &
-             table='Tables/CMIP5_Lmon',  & 
-             table_entry=entry2d(m),     & 
-!!$          file_suffix='1979-2001',    &
-             units=units2d(m),           & 
-             axis_ids=axis2d_ids2,        &
-             missing_value=1.0e20,       &
-             positive=positive2d(m),     &
-             original_name=varin2d(m))  
-     else 
-        var2d_ids(m) = cmor_variable(    &
-             table='Tables/CMIP5_Amon',  & 
-             table_entry=entry2d(m),     & 
-             units=units2d(m),           & 
-             axis_ids=axis2d_ids,        &
-             missing_value=1.0e20,       &
-             positive=positive2d(m),     &
-             original_name=varin2d(m))   
-     endif
-  ENDDO
-
-print*, 'completed everything up to writing output fields '
-  
-  !  Loop through history files (each containing several different fields, 
-  !       but only a single month of data, averaged over the month).  Then 
-  !       extract fields of interest and write these to netCDF files (with 
-  !       one field per file, but all months included in the loop).
-  
-  time_loop: DO it=1, ntimes
-     
-     ! In the following loops over the 3d and 2d fields, the user-written    
-     ! subroutines (read_3d_input_files and read_2d_input_files) retrieve 
-     ! the requested AMIP table 1a and table 2 fields and store them in 
-     ! data3d and data2d, respectively.  In addition a user-written code 
-     ! (read_time) retrieves the time and time-bounds associated with the 
-     ! time sample (in units of 'days since 1970-1-1', consistent with the 
-     ! axis definitions above).  The bounds are set to the beginning and 
-     ! the end of the month retrieved, indicating the averaging period.
-     
-     ! The user must write a code to obtain the times and time-bounds for
-     !   the time slice.  The following line is simply a place-holder for
-     !   the user's code, which should replace it.
-     
-    call read_time(it, time, bnds_time)
-     
-     ! Cycle through the 3-d fields, retrieve the requested variable and 
-     ! append each to the appropriate netCDF file.
-    
- 
-
-    DO m=1,n3d
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-
-       print*, 'Calling',m,'varind:',varin3d(m),var3d_ids(m)
-        call read_3d_input_files(it, varin3d(m), data3d)
-
-       
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-        call cmor_create_output_path(var3d_ids(m),outputpath)
-        print*, 'Test Code: we are dumping this varialbe ',var3d_ids(m),'to:',outputpath
-        mydata = RESHAPE(data3d, (/ lat*lon*lev /))
-        if (m.eq.2) then
-           do i=1,lat*lon*lev
-              mydata(i)=(mydata(i)-273.15)*9./5.+32.
-           enddo
-        endif
-        print*,'Done converting units for',m
-        error_flag = cmor_write(var_id =        var3d_ids(m),   &
-                                data =          mydata, &
-                                ntimes_passed = 1,              &
-                                time_vals =     (/ time /),           &
-                                time_bnds =     RESHAPE(bnds_time, (/ 2,1 /)))
-
-print*, 'after writing variable, ', var3d_ids(m)
-print*, '    error flag = ', error_flag
-
-        IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) ' Error encountered writing AMIP Table 1a ' &
-                // 'field ', entry3d(m), ', which I call ', varin3d(m)
-           write(*,*) ' Was processing time sample: ', time
-           
-!!$            error_flag = cmor_error_trace(device=0)
-           
-        END IF
-
-     END DO
-     
-     ! Cycle through the 2-d fields, retrieve the requested variable and 
-     ! append each to the appropriate netCDF file.
-     
-     DO m=1,n2d
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-        
-        call read_2d_input_files(it, varin2d(m), data2d)                  
-
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-        call cmor_create_output_path(var2d_ids(m),outputpath)
-        print*, 'Test Code: we are dumping this varialbe ',var2d_ids(m),'to:',outputpath
-
-        error_flag = cmor_write(var_id =        var2d_ids(m),   &
-                                data =          RESHAPE(data2d, (/ lat*lon /)),        &
-                                ntimes_passed = 1,              &
-                                time_vals =     (/ time /),           &
-                                time_bnds =     RESHAPE(bnds_time, (/ 2,1 /)))
-        
-print*, 'after writing variable 2d, ', var2d_ids(m)
-print*, '    error flag = ', error_flag
-       IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) ' Error encountered writing AMIP Table 2 ' &
-                // 'field ', entry2d(m), ', which I call ', varin2d(m)
-           write(*,*) ' Was processing time sample: ', time 
-           
-!!$            error_flag = cmor_error_trace(device=0)
-           
-        END IF
-        
-     END DO
-     
-  END DO time_loop
-  
-  !   Close all files opened by CMOR.
-  
-  error_flag = cmor_close()  
-
-print*, '******************************'
-print*, ' '
-print*, 'CMOR COMPLETED SUCCESSFULLY '   
-print*, ' '
-print*, '******************************'
-
-END PROGRAM mip_contribution
-
diff --git a/Test/test_3h.f90 b/Test/test_3h.f90
deleted file mode 100644
index 477abc9..0000000
--- a/Test/test_3h.f90
+++ /dev/null
@@ -1,515 +0,0 @@
-!!$pgf90 -I/work/NetCDF/5.1/include -L/work/NetCDF/5.1/lib -l netcdf -L. -l cmor Test/test_dimensionless.f90 -IModules -o cmor_test
-!!$pgf90 -g -I/pcmdi/charles_work/NetCDF/include -L/pcmdi/charles_work/NetCDF/lib -lnetcdf -module Modules -IModules -L. -lcmor -I/pcmdi/charles_work/Unidata/include -L/pcmdi/charles_work/Unidata/lib -ludunits Test/test_dimensionless.f90 -o cmor_test
-
-MODULE local_subs
-
-  USE cmor_users_functions
-  PRIVATE
-  PUBLIC read_coords, read_time, read_3d_input_files, read_2d_input_files
-CONTAINS
-  
-  SUBROUTINE read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-
-    IMPLICIT NONE
-    
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alats
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alons
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: plevs
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lat
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lon
-    
-    INTEGER :: i
-    
-    DO i = 1, SIZE(alons)
-       alons(i) = (i-1)*360./SIZE(alons)
-       bnds_lon(1,i) = (i - 1.5)*360./SIZE(alons)
-       bnds_lon(2,i) = (i - 0.5)*360./SIZE(alons)
-    END DO
-    
-    DO i = 1, SIZE(alats)
-       alats(i) = (size(alats)+1-i)*10
-       bnds_lat(1,i) = (size(alats)+1-i)*10 + 5.
-       bnds_lat(2,i) = (size(alats)+1-i)*10 - 5.
-    END DO
-  
-    DO i = 1, SIZE(plevs)
-       plevs(i) = i*1.0e4
-    END DO
-       plevs = (/100000., 92500., 85000., 70000.,&
-       60000., 50000., 40000., 30000., 25000., 20000.,&
-       15000., 10000., 7000., 5000., 3000., 2000., 1000. /)
-   
-    RETURN
-  END SUBROUTINE read_coords
-
-  SUBROUTINE read_time(it, time, time_bnds)
-    
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    DOUBLE PRECISION, INTENT(OUT) :: time
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(2,1) :: time_bnds
-    
-    time = (it-0.5)*3
-    time_bnds(1,1) = (it-1)*3.
-    time_bnds(2,1) = it*3.
-    
-    RETURN
-  END SUBROUTINE read_time
-
-INCLUDE "reader_2D_3D.f90"
-
-END MODULE local_subs
-
-
-PROGRAM ipcc_test_code
-!
-!   Purpose:   To serve as a generic example of an application that
-!       uses the "Climate Model Output Rewriter" (CMOR)
-
-!    CMOR writes CF-compliant netCDF files.
-!    Its use is strongly encouraged by the IPCC and is intended for use 
-!       by those participating in many community-coordinated standard 
-!       climate model experiments (e.g., AMIP, CMIP, CFMIP, PMIP, APE,
-!       etc.)
-!
-!   Background information for this sample code:
-!
-!      Atmospheric standard output requested by IPCC are listed in 
-!   tables available on the web.  Monthly mean output is found in
-!   tables A1a and A1c.  This sample code processes only two 3-d 
-!   variables listed in table A1c ("monthly mean atmosphere 3-D data" 
-!   and only four 2-d variables listed in table A1a ("monthly mean 
-!   atmosphere + land surface 2-D (latitude, longitude) data").  The 
-!   extension to many more fields is trivial.
-!
-!      For this example, the user must fill in the sections of code that 
-!   extract the 3-d and 2-d fields from his monthly mean "history" 
-!   files (which usually contain many variables but only a single time 
-!   slice).  The CMOR code will write each field in a separate file, but 
-!   many monthly mean time-samples will be stored together.  These 
-!   constraints partially determine the structure of the code.
-!
-!
-!   Record of revisions:
-
-!       Date        Programmer(s)           Description of change
-!       ====        ==========              =====================
-!      10/22/03     Rusty Koder              Original code
-!       1/28/04     Les R. Koder             Revised to be consistent
-!                                            with evolving code design
-
-! include module that contains the user-accessible cmor functions.
-  USE cmor_users_functions
-  USE local_subs
-
-  IMPLICIT NONE
-
-  !   dimension parameters:
-  ! ---------------------------------
-  INTEGER, PARAMETER :: ntimes = 2    ! number of time samples to process
-  INTEGER, PARAMETER :: lon = 4       ! number of longitude grid cells  
-  INTEGER, PARAMETER :: lat = 3       ! number of latitude grid cells
-  INTEGER, PARAMETER :: lev2 = 17       ! number of standard pressure levels
-  INTEGER, PARAMETER :: lev = 5       ! number of standard pressure levels
-  INTEGER, PARAMETER :: n2d = 3       ! number of IPCC Table A1a fields to be
-                                      !     output.
-  INTEGER, PARAMETER :: n3d = 3       ! number of IPCC Table A1c fields to 
-                                      !     be output.  
-
-  !   Tables associating the user's variables with IPCC standard output 
-  !   variables.  The user may choose to make this association in a 
-  !   different way (e.g., by defining values of pointers that allow him 
-  !   to directly retrieve data from a data record containing many 
-  !   different variables), but in some way the user will need to map his 
-  !   model output onto the Tables specifying the MIP standard output.
-
-  ! ----------------------------------
-
-                                ! My variable names for IPCC Table A1c fields
-  CHARACTER (LEN=5), DIMENSION(n3d) :: &
-                                 varin3d=(/'CLOUD', 'U    ', 'T    '/)
-
-                                ! Units appropriate to my data
-  CHARACTER (LEN=5), DIMENSION(n3d) :: &
-                                  units3d=(/ '%    ', 'm s-1',   'K    '  /)
-
-                     ! Corresponding IPCC Table A1c entry (variable name) 
-  CHARACTER (LEN=2), DIMENSION(n3d) :: entry3d = (/ 'cl', 'ua', 'ta' /)
-
-                                ! My variable names for IPCC Table A1a fields
-  CHARACTER (LEN=8), DIMENSION(n2d) :: &
-                  varin2d=(/ 'LATENT  ','PRECIP  ', 'TSURF   ' /)
-
-                                ! Units appropriate to my data
-   CHARACTER (LEN=10), DIMENSION(n2d) :: &
-                          units2d=(/ 'W m-2     ', 'kg m-2 s-1', 'K         ' /)
-
-   CHARACTER (LEN=4), DIMENSION(n2d) :: &
-                      positive2d= (/  'down',  '    ', '    '  /)
-
-                     ! Corresponding IPCC Table A1a entry (variable name) 
-  CHARACTER (LEN=5), DIMENSION(n2d) :: &
-                        entry2d = (/ 'hfls ', 'pr   ',  'tas  ' /)
-
-!  uninitialized variables used in communicating with CMOR:
-!  ---------------------------------------------------------
-
-  INTEGER :: error_flag
-  INTEGER :: znondim_id, zfactor_id
-  INTEGER, DIMENSION(n2d) :: var2d_ids
-  INTEGER, DIMENSION(n3d) :: var3d_ids
-  REAL, DIMENSION(lon,lat) :: data2d
-  REAL, DIMENSION(lon,lat,lev) :: data3d
-  DOUBLE PRECISION, DIMENSION(lat) :: alats
-  DOUBLE PRECISION, DIMENSION(lon) :: alons
-  DOUBLE PRECISION, DIMENSION(lev2) :: plevs
-  DOUBLE PRECISION, DIMENSION(1) :: time
-  DOUBLE PRECISION, DIMENSION(2,1):: bnds_time
-  DOUBLE PRECISION, DIMENSION(2,lat) :: bnds_lat
-  DOUBLE PRECISION, DIMENSION(2,lon) :: bnds_lon
-  DOUBLE PRECISION, DIMENSION(lev) :: zlevs
-  DOUBLE PRECISION, DIMENSION(lev+1) :: zlev_bnds
-  REAL, DIMENSION(lev) :: a_coeff
-  REAL, DIMENSION(lev) :: b_coeff
-  REAL :: p0
-  REAL, DIMENSION(lev+1) :: a_coeff_bnds
-  REAL, DIMENSION(lev+1) :: b_coeff_bnds
-  INTEGER :: ilon, ilat, ipres, ilev, itim, itim1
-  double precision bt
-
-  !  Other variables:
-  !  ---------------------
-  
-  INTEGER :: it, m  
-  bt=0.
-  ! ================================
-  !  Execution begins here:
-  ! ================================
-  
-  ! Read coordinate information from model into arrays that will be passed 
-  !   to CMOR.
-  ! Read latitude, longitude, and pressure coordinate values into 
-  !   alats, alons, and plevs, respectively.  Also generate latitude and 
-  !   longitude bounds, and store in bnds_lat and bnds_lon, respectively.
-  !   Note that all variable names in this code can be freely chosen by
-  !   the user.
-
-  !   The user must write the subroutine that fills the coordinate arrays 
-  !   and their bounds with actual data.  The following line is simply a
-  !   a place-holder for the user's code, which should replace it.
-  
-  !  *** possible user-written call ***
-  
-  call read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-  
-  ! Specify path where tables can be found and indicate that existing 
-  !    netCDF files should not be overwritten.
-  
-  error_flag = cmor_setup(inpath='Test', netcdf_file_action='replace')!,logfile='test_3h.LOG')
-  
-  ! Define dataset as output from the GICC model (first member of an
-  !   ensemble of simulations) run under IPCC 2xCO2 equilibrium
-  !   experiment conditions, and provide information to be included as 
-  !   attributes in all CF-netCDF files written as part of this dataset.
-
-  error_flag = cmor_dataset(                                   &
-       outpath='Test',                                         &
-       experiment_id='abrupt 4XCO2',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       'Geneva, Switzerland)',                                 &
-       source='GICCM1 (2002): ' //                             &
-       'atmosphere:  GICAM3 (gicam_0_brnchT_itea_2, T63L32); '// &
-       'ocean: MOM (mom3_ver_3.5.2, 2x3L15); '             //  &
-       'sea ice: GISIM4; land: GILSM2.5',                      &
-       calendar='360_day',                                      &
-       realization=1,                                          &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also '        //   &
-       'see http://www.GICC.su/giccm/doc/index.html '     //   &
-       ' 2XCO2 simulation described in Dorkey et al. '    //   &
-       '(Clim. Dyn., 2003, 323-357.)', model_id="GICCM1", &
-       forcing='TO',contact="Barry Bonds",institute_id="PCMDI",&
-       parent_experiment_id="N/A",branch_time=bt)
-  
-  !  Define all axes that will be needed
-
-  ilat = cmor_axis(  &
-       table='Tables/CMIP5_3hr',    &
-       table_entry='latitude',       &
-       units='degrees_north',        &  
-       length=lat,                   &
-       coord_vals=alats,             & 
-       cell_bounds=bnds_lat)        
-      
-  ilon = cmor_axis(  &
-       table='Tables/CMIP5_3hr',    &
-       table_entry='longitude',      &
-       length=lon,                   &
-       units='degrees_east',         &
-       coord_vals=alons,             &
-       cell_bounds=bnds_lon)      
-        
-!!$  ipres = cmor_axis(  &
-!!$       table='Tables/CMIP5_3hr',    &
-!!$       table_entry='pressure',       &
-!!$       units='Pa',                   &
-!!$       length=lev,                   &
-!!$       coord_vals=plevs)
-!!$
-  !   note that the time axis is defined next, but the time coordinate 
-  !   values and bounds will be passed to cmor through function 
-  !   cmor_write (later, below).
-
-  itim = cmor_axis(  &
-       table='Tables/CMIP5_3hr',    &
-       table_entry='time',           &
-       units='hours since 2030-1-1',  &
-       length=ntimes,                &
-       interval='3 hours')
-
-  itim1 = cmor_axis(  &
-       table='Tables/CMIP5_3hr',    &
-       table_entry='time1',           &
-       units='hours since 2030-1-1',  &
-       length=ntimes)
-!!$  
-!!$  !  define model eta levels (although these must be provided, they will
-!!$  !    actually be replaced by a+b before writing the netCDF file)
-!!$  zlevs = (/ 0.1, 0.3, 0.55, 0.7, 0.9 /)
-!!$  zlev_bnds=(/ 0.,.2, .42, .62, .8, 1. /)
-!!$
-!!$  ilev = cmor_axis(  &
-!!$       table='Tables/CMIP5_3hr',    &
-!!$       table_entry='standard_hybrid_sigma',       &
-!!$       length=lev,                   &
-!!$       coord_vals=zlevs,             &
-!!$       cell_bounds=zlev_bnds)
-!!$
-!!$  !   define z-factors needed to transform from model level to pressure
-!!$  p0 = 1.e5
-!!$  a_coeff = (/ 0.1, 0.2, 0.3, 0.22, 0.1 /)
-!!$  b_coeff = (/ 0.0, 0.1, 0.2, 0.5, 0.8 /)
-!!$
-!!$  a_coeff_bnds=(/0.,.15, .25, .25, .16, 0./)
-!!$  b_coeff_bnds=(/0.,.05, .15, .35, .65, 1./)
-!!$
-!!$  error_flag = cmor_zfactor(  &
-!!$       zaxis_id=ilev,                      &
-!!$       zfactor_name='p0',                  &
-!!$       units='Pa',                         &
-!!$       zfactor_values = p0)
-!!$
-!!$  error_flag = cmor_zfactor(  &
-!!$       zaxis_id=ilev,                       & 
-!!$       zfactor_name='b',                    &
-!!$       axis_ids= (/ ilev /),                &
-!!$       zfactor_values = b_coeff,            &
-!!$       zfactor_bounds = b_coeff_bnds  )
-!!$
-!!$  error_flag = cmor_zfactor(  &
-!!$       zaxis_id=ilev,                       &
-!!$       zfactor_name='a',                    &
-!!$       axis_ids= (/ ilev /),                &
-!!$       zfactor_values = a_coeff,            &
-!!$       zfactor_bounds = a_coeff_bnds )
-!!$
-!!$  zfactor_id = cmor_zfactor(  &
-!!$       zaxis_id=ilev,                         &
-!!$       zfactor_name='ps',                     &
-!!$       axis_ids=(/ ilon, ilat, itim /),       &
-!!$       units='Pa' )
-!!$
-!!$  !  Define the only field to be written that is a function of model level
-!!$  !    (appearing in IPCC table A1c)
-!!$
-!!$  var3d_ids(1) = cmor_variable(    &
-!!$       table='Tables/CMIP5_3hr',  &
-!!$       table_entry=entry3d(1),     &
-!!$       units=units3d(1),           &
-!!$       axis_ids=(/ ilon, ilat, ilev, itim /),  &
-!!$       missing_value=1.0e28, &
-!!$       original_name=varin3d(1))
-!!$  
-!!$  !  Define variables appearing in IPCC table A1c that are a function of pressure
-!!$  !         (3-d variables)
-!!$  
-!!$  DO m=2,n3d
-!!$     var3d_ids(m) = cmor_variable(    &
-!!$          table='Tables/CMIP5_3hr',  &
-!!$          table_entry=entry3d(m),     &
-!!$          units=units3d(m),           &
-!!$          axis_ids=(/ ilon, ilat, ipres, itim /), &
-!!$          missing_value=1.0e28,       &
-!!$          original_name=varin3d(m))
-!!$  ENDDO
-!!$  
-
-  !  Define variables appearing in IPCC table A1a (2-d variables)
-  
-  DO m=1,n2d
-     print*, m,entry2d(m)
-     IF (m.ne.3) THEN
-        print*, 'itim axis ids: ',ilon,ilat,itim
-        var2d_ids(m) = cmor_variable(    &
-             table='Tables/CMIP5_3hr',  &
-             table_entry=entry2d(m),     & 
-             units=units2d(m),           & 
-             axis_ids=(/ ilon, ilat, itim /), &
-             missing_value=1.0e28,       &
-             positive=positive2d(m),     &
-             original_name=varin2d(m))   
-
-     ELSE
-        print*, 'itim1 axis ids: ',ilon,ilat,itim1
-        var2d_ids(m) = cmor_variable(    &
-             table='Tables/CMIP5_3hr',  &
-             table_entry=entry2d(m),     & 
-             units=units2d(m),           & 
-             axis_ids=(/ ilon, ilat, itim1 /), &
-             missing_value=1.0e28,       &
-             positive=positive2d(m),     &
-             original_name=varin2d(m))  
-
-     END IF
-
-  ENDDO
-
-  PRINT*, ' '
-  PRINT*, 'completed everything up to writing output fields '
-  PRINT*, ' '
-
-  !  Loop through history files (each containing several different fields, 
-  !       but only a single month of data, averaged over the month).  Then 
-  !       extract fields of interest and write these to netCDF files (with 
-  !       one field per file, but all months included in the loop).
-  
-  time_loop: DO it=1, ntimes
-     
-     ! In the following loops over the 3d and 2d fields, the user-written    
-     ! subroutines (read_3d_input_files and read_2d_input_files) retrieve 
-     ! the requested IPCC table A1c and table A1a fields and store them in 
-     ! data3d and data2d, respectively.  In addition a user-written code 
-     ! (read_time) retrieves the time and time-bounds associated with the 
-     ! time sample (in units of 'days since 1970-1-1', consistent with the 
-     ! axis definitions above).  The bounds are set to the beginning and 
-     ! the end of the month retrieved, indicating the averaging period.
-     
-     ! The user must write a code to obtain the times and time-bounds for
-     !   the time slice.  The following line is simply a place-holder for
-     !   the user's code, which should replace it.
-     
-    call read_time(it, time(1), bnds_time)
-
-!!$    call read_3d_input_files(it, varin3d(1), data3d)
-!!$
-!!$    error_flag = cmor_write(                                  &
-!!$         var_id        = var3d_ids(1),                        &
-!!$         data          = data3d,                              &
-!!$         ntimes_passed = 1,                                   &
-!!$         time_vals     = time,                                &
-!!$         time_bnds     = bnds_time   )
-!!$
-!!$    call read_2d_input_files(it, varin2d(4), data2d)                  
-!!$
-!!$    error_flag = cmor_write(                                  &
-!!$         var_id        = zfactor_id,                          &
-!!$         data          = data2d,                              &
-!!$         ntimes_passed = 1,                                   &
-!!$         time_vals     = time,                                &
-!!$         time_bnds     = bnds_time,                           &
-!!$         store_with    = var3d_ids(1) )
-
-    ! Cycle through the 3-d fields (stored on pressure levels), 
-    ! and retrieve the requested variable and append each to the 
-    ! appropriate netCDF file.
-
-!!$    DO m=2,n3d
-!!$        
-!!$        ! The user must write the code that fills the arrays of data
-!!$        ! that will be passed to CMOR.  The following line is simply a
-!!$        ! a place-holder for the user's code, which should replace it.
-!!$
-!!$        call read_3d_input_files(it, varin3d(m), data3d)
-!!$       
-!!$        ! append a single time sample of data for a single field to 
-!!$        ! the appropriate netCDF file.
-!!$        
-!!$        error_flag = cmor_write(                                  &
-!!$             var_id        = var3d_ids(m),                        &
-!!$             data          = data3d,                              &
-!!$             ntimes_passed = 1,                                   &
-!!$             time_vals     = time,                                &
-!!$             time_bnds     = bnds_time  )
-!!$        
-!!$        IF (error_flag < 0) THEN
-!!$           ! write diagnostic messages to standard output device
-!!$           write(*,*) ' Error encountered writing IPCC Table A1c ' &
-!!$                // 'field ', entry3d(m), ', which I call ', varin3d(m)
-!!$           write(*,*) ' Was processing time sample: ', time
-!!$                      
-!!$        END IF
-!!$
-!!$     END DO
-!!$     
-     ! Cycle through the 2-d fields, retrieve the requested variable and 
-     ! append each to the appropriate netCDF file.
-     
-     DO m=1,n2d
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-        
-        call read_2d_input_files(it, varin2d(m), data2d)                  
-
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-
-        IF (m.ne.3) THEN
-           print*, 'Passing times (1):',time
-           error_flag = cmor_write(                                  &
-                var_id        = var2d_ids(m),                        &
-                data          = data2d,                              &
-                ntimes_passed = 1,                                   &
-                time_vals     = time,                                &
-                time_bnds     = bnds_time  )
-        ELSE
-            print*, 'Passing times (2):',time
-          error_flag = cmor_write(                                  &
-                var_id        = var2d_ids(m),                        &
-                data          = data2d,                              &
-                ntimes_passed = 1,                                   &
-                time_vals     = time)
-        END IF
-
-       IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) ' Error encountered writing IPCC Table A1a ' &
-                // 'field ', entry2d(m), ', which I call ', varin2d(m)
-           write(*,*) ' Was processing time sample: ', time 
-                      
-        END IF
-        
-     END DO
-     
-  END DO time_loop
-  
-  !   Close all files opened by CMOR.
-  
-  error_flag = cmor_close()  
-
-  print*, ' '
-  print*, '******************************'
-  print*, ' '
-  print*, 'ipcc_test_code executed to completion '   
-  print*, ' '
-  print*, '******************************'
-  
-END PROGRAM ipcc_test_code
-
diff --git a/Test/test_any_from_asc.f90 b/Test/test_any_from_asc.f90
deleted file mode 100644
index c649158..0000000
--- a/Test/test_any_from_asc.f90
+++ /dev/null
@@ -1,352 +0,0 @@
-program main
-
-  USE cmor_users_functions
-  implicit none
-
-  integer ncid
-
-  type dims
-     integer n
-     character(256) name
-     character(256) units
-     double precision, DIMENSION(:), pointer :: values
-     double precision, DIMENSION(:,:), pointer :: bounds     
-     type(dims), pointer :: next
-  end type dims
-  character(256) filein
-  type(dims), pointer :: mydims,current,ptimes
-  integer ndim,i,j,ntot
-!  real, allocatable, dimension(:,:,:):: arrayin
-  real, allocatable, dimension(:,:):: arrayin2d
-  real, allocatable, dimension(:,:,:):: arrayin3d
-  real, allocatable, dimension(:,:,:,:):: arrayin4d
-  real, allocatable, dimension(:,:,:,:,:):: arrayin5d
-  integer, dimension(7):: dimlength = (/ (1,i=1,7) /)
-  integer, PARAMETER::verbosity = 2
-  integer ierr
-  integer, allocatable, dimension(:) :: myaxis
-  integer myvar
-  character(50) :: var,units
-  double precision bt
-
-  print*, 'Test Code: Welcome to the general from ascii testing code'
-  read(5,'(A)') filein
-  open(unit=23,file=filein,form='formatted') 
-  call allocate_dims(23,mydims,ndim,dimlength,var,units)
-  allocate(myaxis(ndim))
-  current=>mydims
-  ntot=1
-  do i =1,ndim
-     ntot=ntot*current%n
-     current=>current%next
-  enddo
-  if (ndim.eq.2) then
-     allocate(arrayin2d(dimlength(1),dimlength(2)))
-     call read_ascii2d(23,mydims, ndim,ntot,arrayin2d)
-     print*,'Test Code: allocate data:',shape(arrayin2d)
-  else if (ndim.eq.3) then
-     allocate(arrayin3d(dimlength(1),dimlength(2),dimlength(3)))
-     call read_ascii3d(23,mydims, ndim,ntot,arrayin3d)
-     print*,'Test Code: allocate data:',shape(arrayin3d)
-  else if (ndim.eq.4) then
-     allocate(arrayin4d(dimlength(1),dimlength(2),dimlength(3),dimlength(4)))
-     call read_ascii4d(23,mydims, ndim,ntot,arrayin4d)
-     print*,'Test Code: allocate data:',shape(arrayin4d)
-  else if (ndim.eq.5) then
-     call read_ascii5d(23,mydims, ndim,ntot,arrayin5d)
-     allocate(arrayin5d(dimlength(1),dimlength(2),dimlength(3),dimlength(4),dimlength(5)))
-     print*,'Test Code: allocate data:',shape(arrayin5d)
-  endif
-  
-  
-!!$!! Ok here is the part where we define or variable/axis,etc... 
-!!$!! Assuming that Karl's code is ok...
-!!$
-  
-  print*,'Test Code: CMOR SETUP'
-!!$  
-  ierr = cmor_setup(inpath='Test',   &
-       netcdf_file_action='replace',                                       &
-       set_verbosity=1,                                                    &
-       exit_control=1)
-    
-  print*,'Test Code: CMOR DATASET'
-  bt=0.
-  ierr = cmor_dataset(                                   &
-       outpath='Test',         &
-       experiment_id='abrupt 4XCO2',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       ' Geneva, Switzerland)',                                &
-       source='GICCM1  2002(giccm_0_brnchT_itea_2, T63L32)',    &
-       calendar='noleap',                                      &
-       realization=1,                                          &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also ' //          &
-       'see http://www.GICC.su/giccm/doc/index.html '  //      &
-       ' 2XCO2 simulation described in Dorkey et al. '//       &
-       '(Clim. Dyn., 2003, 323-357.)', &
-       model_id='GICCM1',forcing='Nat', &
-       parent_experiment_id="N/A",branch_time=bt,&
-       contact="Freddy Krueger",institute_id="PCMDI" )
-  
-  current=>mydims
-  do i = 0,ndim-1
-     print*,'Test Code: CMOR AXIS',i
-     print*, 'Test Code: Axis Name:',trim(adjustl(current%name))
-     if (trim(adjustl(current%name)).eq.'time') then
-        print*, 'Test Code: time found'
-        ptimes => current
-        myaxis(ndim-i)=cmor_axis('Tables/CMIP5_Amon', &
-             table_entry=current%name,&
-             units=current%units,&
-             length=current%n,&
-!!$          coord_vals=current%values,&
-!!$          cell_bounds=current%bounds, &
-             interval='1 month')
-     else
-        myaxis(ndim-i)=cmor_axis('Tables/CMIP5_Amon', &
-             table_entry=current%name,&
-             units=current%units,&
-             length=current%n,&
-             coord_vals=current%values,&
-             cell_bounds=current%bounds)
-        print*, 'Test Code: not time'
-     endif
-     current=>current%next
-  enddo
-  
-  print*,'Test Code: CMOR VAR'
-  myvar=cmor_variable('Tables/CMIP5_Amon',&
-       var,&
-       units,&
-       myaxis,&
-       missing_value=1.e20)
-
-  !! figures out length of dimension other than time
-
-  print*, 'Test Code: time before:',ptimes%values(i:i)
-  if (ndim.eq.2) then 
-     if (ptimes%name.eq.mydims%name) then
-        do i=1,ptimes%n
-           print*, 'Test code: Write time',i,ptimes%values(i)
-           ierr = cmor_write( &
-                var_id        = myvar, &
-                data          = arrayin2d(:,i:i), &
-                ntimes_passed = 1,   &
-                time_vals     = (/ptimes%values(i)/),  &
-                time_bnds     = RESHAPE (ptimes%bounds(1:2,i), (/2,1/)) &
-                )
-        enddo
-     else
-        print*, 'Test code: Write all times at once'
-        ierr = cmor_write( &
-             var_id        = myvar, &
-             data          = arrayin2d, &
-             ntimes_passed = ptimes%n,   &
-             time_vals     = ptimes%values,  &
-             time_bnds     = ptimes%bounds &
-             )
-     endif
-  else if (ndim.eq.3) then
-     if (ptimes%name.eq.mydims%name) then
-        do i=1,ptimes%n
-           print*, 'Test code: Write time',i,ptimes%values(i)
-           ierr = cmor_write( &
-                var_id        = myvar, &
-                data          = arrayin3d(:,:,i:i), &
-                ntimes_passed = 1,   &
-                time_vals     = (/ptimes%values(i)/),  &
-                time_bnds     = RESHAPE (ptimes%bounds(1:2,i), (/2,1/)) &
-                )
-        enddo
-     else
-        print*, 'Test code: Write all times at once',ptimes%units,ptimes%values
-        ierr = cmor_write( &
-             var_id        = myvar, &
-             data          = arrayin3d, &
-             ntimes_passed = ptimes%n,   &
-             time_vals     = ptimes%values,  &
-             time_bnds     = ptimes%bounds &
-             )
-     endif
-  else if (ndim.eq.4) then
-     if (ptimes%name.eq.mydims%name) then
-        do i=1,ptimes%n
-           print*, 'Test code: Write time',i,ptimes%values(i)
-           ierr = cmor_write( &
-                var_id        = myvar, &
-                data          = arrayin4d(:,:,:,i:i), &
-                ntimes_passed = 1,   &
-                time_vals     = (/ptimes%values(i)/),  &
-                time_bnds     = RESHAPE (ptimes%bounds(1:2,i), (/2,1/)) &
-                )
-        enddo
-     else
-        print*, 'Test code: Write all times at once',ptimes%units
-        ierr = cmor_write( &
-             var_id        = myvar, &
-             data          = arrayin4d, &
-             ntimes_passed = ptimes%n,   &
-             time_vals     = ptimes%values,  &
-             time_bnds     = ptimes%bounds &
-             )
-     endif
-  else
-     if (ptimes%name.eq.mydims%name) then
-        do i=1,ptimes%n
-           print*, 'Test code: Write time',i,ptimes%values(i)
-           ierr = cmor_write( &
-                var_id        = myvar, &
-                data          = arrayin5d(:,:,:,:,i:i), &
-                ntimes_passed = 1,   &
-                time_vals     = (/ptimes%values(i)/),  &
-                time_bnds     = RESHAPE (ptimes%bounds(1:2,i), (/2,1/)) &
-                )
-        enddo
-     else
-        print*, 'Test code: Write all times at once'
-        ierr = cmor_write( &
-             var_id        = myvar, &
-             data          = arrayin5d, &
-             ntimes_passed = ptimes%n,   &
-             time_vals     = ptimes%values,  &
-             time_bnds     = ptimes%bounds &
-             )
-     endif
-  endif
-  ierr = cmor_close()
-
-contains
-  subroutine allocate_dims(file_id,mydims,ndim,dimlength,var,units)
-    implicit none
-    integer i,n,j,tmp,file_id
-    integer, intent(inout)::ndim
-    integer, intent(inout):: dimlength(7)
-    type(dims) , pointer :: tmpdims,mydims
-    character(50), intent(inout) :: var,units
-    read(file_id,'(A)') var
-    read(file_id,'(A)') units
-    read(file_id,'(I4)') ndim
-    n=1
-    allocate(mydims)
-    tmpdims=>mydims
-    do i = 1, ndim
-       read(file_id,'(I4)') tmp
-       dimlength(4-i)=tmp
-       allocate(tmpdims%values(tmp))
-       allocate(tmpdims%bounds(2,tmp))
-       tmpdims%n=tmp
-       allocate(tmpdims%next)
-       tmpdims=>tmpdims%next
-       n=n*tmp
-    enddo
-    deallocate(tmpdims)
-  end subroutine allocate_dims
-  
-  subroutine read_ascii2d(file_unit,mydims,ndim,ntot,arrayin)
-    implicit none
-    type(dims), pointer::  mydims
-    real, dimension(:,:),intent(inout) :: arrayin
-    type(dims), pointer ::  current
-    integer, intent(in)::ndim,file_unit
-    integer n,ntot,i,j,k,l
-    
-    current=>mydims
-    ntot=1
-    do i =1,ndim
-       n=current%n
-       ntot=ntot*n
-       read(file_unit,'(A)') current%name
-       print*, 'Test Code: NAME is:',current%name
-       read(file_unit,'(A)') current%units
-       print*, 'Test Code: UNITS is:',current%units
-       read(file_unit,*) (current%values(j),j=1,n)
-       read(file_unit,*) ((current%bounds(j,k),j=1,2),k=1,n)
-       print*, 'Test Code: bounds',current%bounds(1,1),current%bounds(1,2)
-       current=>current%next
-    enddo
-    read(file_unit,*) ((arrayin(j,k),j=1,size(arrayin,1)),k=1,size(arrayin,2))
-  end subroutine read_ascii2d
-  subroutine read_ascii3d(file_unit,mydims,ndim,ntot,arrayin)
-    implicit none
-    type(dims), pointer::  mydims
-    real, dimension(:,:,:),intent(inout) :: arrayin
-    type(dims), pointer ::  current
-    integer, intent(in)::ndim,file_unit
-    integer n,ntot,i,j,k,l
-    
-    current=>mydims
-    ntot=1
-    do i =1,ndim
-       n=current%n
-       ntot=ntot*n
-       read(file_unit,'(A)') current%name
-       print*, 'Test Code: NAME is:',current%name
-       read(file_unit,'(A)') current%units
-       print*, 'Test Code: UNITS is:',current%units
-       read(file_unit,*) (current%values(j),j=1,n)
-       read(file_unit,*) ((current%bounds(j,k),j=1,2),k=1,n)
-       print*, 'Test Code: bounds',current%bounds(1,1),current%bounds(1,2)
-       current=>current%next
-    enddo
-    read(file_unit,*) (((arrayin(j,k,l),j=1,size(arrayin,1)),k=1,size(arrayin,2)),l=1,size(arrayin,3))
-  end subroutine read_ascii3d
-  subroutine read_ascii4d(file_unit,mydims,ndim,ntot,arrayin)
-    implicit none
-    type(dims), pointer::  mydims
-    real, dimension(:,:,:,:),intent(inout) :: arrayin
-    type(dims), pointer ::  current
-    integer, intent(in)::ndim,file_unit
-    integer n,ntot,i,j,k,l,m
-    
-    current=>mydims
-    ntot=1
-    do i =1,ndim
-       n=current%n
-       ntot=ntot*n
-       read(file_unit,'(A)') current%name
-       print*, 'Test Code: NAME is:',current%name
-       read(file_unit,'(A)') current%units
-       print*, 'Test Code: UNITS is:',current%units
-       read(file_unit,*) (current%values(j),j=1,n)
-       read(file_unit,*) ((current%bounds(j,k),j=1,2),k=1,n)
-       print*, 'Test Code: bounds',current%bounds(1,1),current%bounds(1,2)
-       current=>current%next
-    enddo
-    read(file_unit,*) ((((arrayin(j,k,l,m),j=1,size(arrayin,1)),k=1,size(arrayin,2)),l=1,size(arrayin,3)),m=1,size(arrayin,4))
-  end subroutine read_ascii4d
-  subroutine read_ascii5d(file_unit,mydims,ndim,ntot,arrayin)
-    implicit none
-    type(dims), pointer::  mydims
-    real, dimension(:,:,:,:,:),intent(inout) :: arrayin
-    type(dims), pointer ::  current
-    integer, intent(in)::ndim,file_unit
-    integer n,ntot,i,j,k,l,m,o
-    
-    current=>mydims
-    ntot=1
-    do i =1,ndim
-       n=current%n
-       ntot=ntot*n
-       read(file_unit,'(A)') current%name
-       print*, 'Test Code: NAME is:',current%name
-       read(file_unit,'(A)') current%units
-       print*, 'Test Code: UNITS is:',current%units
-       read(file_unit,*) (current%values(j),j=1,n)
-       read(file_unit,*) ((current%bounds(j,k),j=1,2),k=1,n)
-       print*, 'Test Code: bounds',current%bounds(1,1),current%bounds(1,2)
-       current=>current%next
-    enddo
-    read(file_unit,*) (((((arrayin(j,k,l,m,o),j=1,size(arrayin,1)),&
-         k=1,size(arrayin,2)),l=1,size(arrayin,3)),m=1,size(arrayin,4)),&
-         o=1,size(arrayin,5))
-  end subroutine read_ascii5d
-
-
-end program main
-
diff --git a/Test/test_any_from_asc_d.f90 b/Test/test_any_from_asc_d.f90
deleted file mode 100644
index 7609260..0000000
--- a/Test/test_any_from_asc_d.f90
+++ /dev/null
@@ -1,352 +0,0 @@
-program main
-
-  USE cmor_users_functions
-  implicit none
-
-  integer ncid
-
-  type dims
-     integer n
-     character(256) name
-     character(256) units
-     double precision, DIMENSION(:), pointer :: values
-     double precision, DIMENSION(:,:), pointer :: bounds     
-     type(dims), pointer :: next
-  end type dims
-  character(256) filein
-  type(dims), pointer :: mydims,current,ptimes
-  integer ndim,i,j,ntot
-!  double precision, allocatable, dimension(:,:,:):: arrayin
-  double precision, allocatable, dimension(:,:):: arrayin2d
-  double precision, allocatable, dimension(:,:,:):: arrayin3d
-  double precision, allocatable, dimension(:,:,:,:):: arrayin4d
-  double precision, allocatable, dimension(:,:,:,:,:):: arrayin5d
-  integer, dimension(7):: dimlength = (/ (1,i=1,7) /)
-  integer, PARAMETER::verbosity = 2
-  integer ierr
-  integer, allocatable, dimension(:) :: myaxis
-  integer myvar
-  character(50) :: var,units
-  double precision bt
-  double precision mymissing 
-  bt=0.
-mymissing=1.e20;
-  print*, 'Test Code: Welcome to the general from ascii testing code'
-  read(5,'(A)') filein
-  open(unit=23,file=filein,form='formatted') 
-  call allocate_dims(23,mydims,ndim,dimlength,var,units)
-  allocate(myaxis(ndim))
-  current=>mydims
-  ntot=1
-  do i =1,ndim
-     ntot=ntot*current%n
-     current=>current%next
-  enddo
-  if (ndim.eq.2) then
-     allocate(arrayin2d(dimlength(1),dimlength(2)))
-     call read_ascii2d(23,mydims, ndim,ntot,arrayin2d)
-     print*,'Test Code: allocate data:',shape(arrayin2d)
-  else if (ndim.eq.3) then
-     allocate(arrayin3d(dimlength(1),dimlength(2),dimlength(3)))
-     call read_ascii3d(23,mydims, ndim,ntot,arrayin3d)
-     print*,'Test Code: allocate data:',shape(arrayin3d)
-  else if (ndim.eq.4) then
-     allocate(arrayin4d(dimlength(1),dimlength(2),dimlength(3),dimlength(4)))
-     call read_ascii4d(23,mydims, ndim,ntot,arrayin4d)
-     print*,'Test Code: allocate data:',shape(arrayin4d)
-  else if (ndim.eq.5) then
-     call read_ascii5d(23,mydims, ndim,ntot,arrayin5d)
-     allocate(arrayin5d(dimlength(1),dimlength(2),dimlength(3),dimlength(4),dimlength(5)))
-     print*,'Test Code: allocate data:',shape(arrayin5d)
-  endif
-  
-  
-!!$!! Ok here is the part where we define or variable/axis,etc... 
-!!$!! Assuming that Karl's code is ok...
-!!$
-  
-  print*,'Test Code: CMOR SETUP'
-!!$  
-  ierr = cmor_setup(inpath='Test',   &
-       netcdf_file_action='replace',                                       &
-       set_verbosity=1,                                                    &
-       exit_control=1)
-    
-  print*,'Test Code: CMOR DATASET'
-  ierr = cmor_dataset(                                   &
-       outpath='Test',         &
-       experiment_id='abrupt 4XCO2',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       ' Geneva, Switzerland)',                                &
-       source='GICCM1  2002(giccm_0_brnchT_itea_2, T63L32)',    &
-       calendar='noleap',                                      &
-       realization=1,                                          &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also ' //          &
-       'see http://www.GICC.su/giccm/doc/index.html '  //      &
-       ' 2XCO2 simulation described in Dorkey et al. '//       &
-       '(Clim. Dyn., 2003, 323-357.)' ,   &
-       model_id = "GICCM1",forcing='TO',contact="Barry Bonds",&
-       parent_experiment_id="N/A",branch_time=bt,institute_id="PCMDI")
-  
-  current=>mydims
-  do i = 0,ndim-1
-     print*,'Test Code: CMOR AXIS',i
-     print*, 'Test Code: Axis Name:',trim(adjustl(current%name))
-     if (trim(adjustl(current%name)).eq.'time') then
-        print*, 'Test Code: time found'
-        ptimes => current
-        myaxis(ndim-i)=cmor_axis('Tables/CMIP5_Amon', &
-             table_entry=current%name,&
-             units=current%units,&
-             length=current%n,&
-!!$          coord_vals=current%values,&
-!!$          cell_bounds=current%bounds, &
-             interval='1 month')
-     else
-        myaxis(ndim-i)=cmor_axis('Tables/CMIP5_Amon', &
-             table_entry=current%name,&
-             units=current%units,&
-             length=current%n,&
-             coord_vals=current%values,&
-             cell_bounds=current%bounds)
-        print*, 'Test Code: not time'
-     endif
-     current=>current%next
-  enddo
-  
-  print*,'Test Code: CMOR VAR'
-  myvar=cmor_variable('Tables/CMIP5_Amon',&
-       var,&
-       units,&
-       myaxis,&
-       missing_value=mymissing)
-
-  !! figures out length of dimension other than time
-
-  print*, 'Test Code: time before:',ptimes%values(i:i)
-  if (ndim.eq.2) then 
-     if (ptimes%name.eq.mydims%name) then
-        do i=1,ptimes%n
-           print*, 'Test code: Write time',i,ptimes%values(i)
-           ierr = cmor_write( &
-                var_id        = myvar, &
-                data          = arrayin2d(:,i:i), &
-                ntimes_passed = 1,   &
-                time_vals     = (/ptimes%values(i)/),  &
-                time_bnds     = RESHAPE (ptimes%bounds(1:2,i), (/2,1/)) &
-                )
-        enddo
-     else
-        print*, 'Test code: Write all times at once'
-        ierr = cmor_write( &
-             var_id        = myvar, &
-             data          = arrayin2d, &
-             ntimes_passed = ptimes%n,   &
-             time_vals     = ptimes%values,  &
-             time_bnds     = ptimes%bounds &
-             )
-     endif
-  else if (ndim.eq.3) then
-     if (ptimes%name.eq.mydims%name) then
-        do i=1,ptimes%n
-           print*, 'Test code: Write time',i,ptimes%values(i)
-           ierr = cmor_write( &
-                var_id        = myvar, &
-                data          = arrayin3d(:,:,i:i), &
-                ntimes_passed = 1,   &
-                time_vals     = (/ptimes%values(i)/),  &
-                time_bnds     = RESHAPE (ptimes%bounds(1:2,i), (/2,1/)) &
-                )
-        enddo
-     else
-        print*, 'Test code: Write all times at once'
-        ierr = cmor_write( &
-             var_id        = myvar, &
-             data          = arrayin3d, &
-             ntimes_passed = ptimes%n,   &
-             time_vals     = ptimes%values,  &
-             time_bnds     = ptimes%bounds &
-             )
-     endif
-  else if (ndim.eq.4) then
-     if (ptimes%name.eq.mydims%name) then
-        do i=1,ptimes%n
-           print*, 'Test code: Write time',i,ptimes%values(i)
-           ierr = cmor_write( &
-                var_id        = myvar, &
-                data          = arrayin4d(:,:,:,i:i), &
-                ntimes_passed = 1,   &
-                time_vals     = (/ptimes%values(i)/),  &
-                time_bnds     = RESHAPE (ptimes%bounds(1:2,i), (/2,1/)) &
-                )
-        enddo
-     else
-        print*, 'Test code: Write all times at once'
-        ierr = cmor_write( &
-             var_id        = myvar, &
-             data          = arrayin4d, &
-             ntimes_passed = ptimes%n,   &
-             time_vals     = ptimes%values,  &
-             time_bnds     = ptimes%bounds &
-             )
-     endif
-  else
-     if (ptimes%name.eq.mydims%name) then
-        do i=1,ptimes%n
-           print*, 'Test code: Write time',i,ptimes%values(i)
-           ierr = cmor_write( &
-                var_id        = myvar, &
-                data          = arrayin5d, &
-                ntimes_passed = 1,   &
-                time_vals     = (/ptimes%values(i)/),  &
-                time_bnds     = RESHAPE (ptimes%bounds(1:2,i), (/2,1/)) &
-                )
-        enddo
-     else
-        print*, 'Test code: Write all times at once'
-        ierr = cmor_write( &
-             var_id        = myvar, &
-             data          = arrayin5d(:,:,:,:,i:i), &
-             ntimes_passed = ptimes%n,   &
-             time_vals     = ptimes%values,  &
-             time_bnds     = ptimes%bounds &
-             )
-     endif
-  endif
-  ierr = cmor_close()
-
-contains
-  subroutine allocate_dims(file_id,mydims,ndim,dimlength,var,units)
-    implicit none
-    integer i,n,j,tmp,file_id
-    integer, intent(inout)::ndim
-    integer, intent(inout):: dimlength(7)
-    type(dims) , pointer :: tmpdims,mydims
-    character(50), intent(inout) :: var,units
-    read(file_id,'(A)') var
-    read(file_id,'(A)') units
-    read(file_id,'(I4)') ndim
-    n=1
-    allocate(mydims)
-    tmpdims=>mydims
-    do i = 1, ndim
-       read(file_id,'(I4)') tmp
-       dimlength(4-i)=tmp
-       allocate(tmpdims%values(tmp))
-       allocate(tmpdims%bounds(2,tmp))
-       tmpdims%n=tmp
-       allocate(tmpdims%next)
-       tmpdims=>tmpdims%next
-       n=n*tmp
-    enddo
-    deallocate(tmpdims)
-  end subroutine allocate_dims
-  
-  subroutine read_ascii2d(file_unit,mydims,ndim,ntot,arrayin)
-    implicit none
-    type(dims), pointer::  mydims
-    double precision, dimension(:,:),intent(inout) :: arrayin
-    type(dims), pointer ::  current
-    integer, intent(in)::ndim,file_unit
-    integer n,ntot,i,j,k,l
-    
-    current=>mydims
-    ntot=1
-    do i =1,ndim
-       n=current%n
-       ntot=ntot*n
-       read(file_unit,'(A)') current%name
-       print*, 'Test Code: NAME is:',current%name
-       read(file_unit,'(A)') current%units
-       print*, 'Test Code: UNITS is:',current%units
-       read(file_unit,*) (current%values(j),j=1,n)
-       read(file_unit,*) ((current%bounds(j,k),j=1,2),k=1,n)
-       print*, 'Test Code: bounds',current%bounds(1,1),current%bounds(1,2)
-       current=>current%next
-    enddo
-    read(file_unit,*) ((arrayin(j,k),j=1,size(arrayin,1)),k=1,size(arrayin,2))
-  end subroutine read_ascii2d
-  subroutine read_ascii3d(file_unit,mydims,ndim,ntot,arrayin)
-    implicit none
-    type(dims), pointer::  mydims
-    double precision, dimension(:,:,:),intent(inout) :: arrayin
-    type(dims), pointer ::  current
-    integer, intent(in)::ndim,file_unit
-    integer n,ntot,i,j,k,l
-    
-    current=>mydims
-    ntot=1
-    do i =1,ndim
-       n=current%n
-       ntot=ntot*n
-       read(file_unit,'(A)') current%name
-       print*, 'Test Code: NAME is:',current%name
-       read(file_unit,'(A)') current%units
-       print*, 'Test Code: UNITS is:',current%units
-       read(file_unit,*) (current%values(j),j=1,n)
-       read(file_unit,*) ((current%bounds(j,k),j=1,2),k=1,n)
-       print*, 'Test Code: bounds',current%bounds(1,1),current%bounds(1,2)
-       current=>current%next
-    enddo
-    read(file_unit,*) (((arrayin(j,k,l),j=1,size(arrayin,1)),k=1,size(arrayin,2)),l=1,size(arrayin,3))
-  end subroutine read_ascii3d
-  subroutine read_ascii4d(file_unit,mydims,ndim,ntot,arrayin)
-    implicit none
-    type(dims), pointer::  mydims
-    double precision, dimension(:,:,:,:),intent(inout) :: arrayin
-    type(dims), pointer ::  current
-    integer, intent(in)::ndim,file_unit
-    integer n,ntot,i,j,k,l,m
-    
-    current=>mydims
-    ntot=1
-    do i =1,ndim
-       n=current%n
-       ntot=ntot*n
-       read(file_unit,'(A)') current%name
-       print*, 'Test Code: NAME is:',current%name
-       read(file_unit,'(A)') current%units
-       print*, 'Test Code: UNITS is:',current%units
-       read(file_unit,*) (current%values(j),j=1,n)
-       read(file_unit,*) ((current%bounds(j,k),j=1,2),k=1,n)
-       print*, 'Test Code: bounds',current%bounds(1,1),current%bounds(1,2)
-       current=>current%next
-    enddo
-    read(file_unit,*) ((((arrayin(j,k,l,m),j=1,size(arrayin,1)),k=1,size(arrayin,2)),l=1,size(arrayin,3)),m=1,size(arrayin,4))
-  end subroutine read_ascii4d
-  subroutine read_ascii5d(file_unit,mydims,ndim,ntot,arrayin)
-    implicit none
-    type(dims), pointer::  mydims
-    double precision, dimension(:,:,:,:,:),intent(inout) :: arrayin
-    type(dims), pointer ::  current
-    integer, intent(in)::ndim,file_unit
-    integer n,ntot,i,j,k,l,m,o
-    
-    current=>mydims
-    ntot=1
-    do i =1,ndim
-       n=current%n
-       ntot=ntot*n
-       read(file_unit,'(A)') current%name
-       print*, 'Test Code: NAME is:',current%name
-       read(file_unit,'(A)') current%units
-       print*, 'Test Code: UNITS is:',current%units
-       read(file_unit,*) (current%values(j),j=1,n)
-       read(file_unit,*) ((current%bounds(j,k),j=1,2),k=1,n)
-       print*, 'Test Code: bounds',current%bounds(1,1),current%bounds(1,2)
-       current=>current%next
-    enddo
-    read(file_unit,*) (((((arrayin(j,k,l,m,o),j=1,size(arrayin,1)),&
-         k=1,size(arrayin,2)),l=1,size(arrayin,3)),m=1,size(arrayin,4)),&
-         o=1,size(arrayin,5))
-  end subroutine read_ascii5d
-
-
-end program main
-
diff --git a/Test/test_any_from_asc_i.f90 b/Test/test_any_from_asc_i.f90
deleted file mode 100644
index c5a406b..0000000
--- a/Test/test_any_from_asc_i.f90
+++ /dev/null
@@ -1,350 +0,0 @@
-program main
-
-  USE cmor_users_functions
-  implicit none
-
-  integer ncid
-
-  type dims
-     integer n
-     character(256) name
-     character(256) units
-     double precision, DIMENSION(:), pointer :: values
-     double precision, DIMENSION(:,:), pointer :: bounds     
-     type(dims), pointer :: next
-  end type dims
-  character(256) filein
-  type(dims), pointer :: mydims,current,ptimes
-  integer ndim,i,j,ntot
-!  integer, allocatable, dimension(:,:,:):: arrayin
-  integer, allocatable, dimension(:,:):: arrayin2d
-  integer, allocatable, dimension(:,:,:):: arrayin3d
-  integer, allocatable, dimension(:,:,:,:):: arrayin4d
-  integer, allocatable, dimension(:,:,:,:,:):: arrayin5d
-  integer, dimension(7):: dimlength = (/ (1,i=1,7) /)
-  integer, PARAMETER::verbosity = 2
-  integer ierr
-  integer, allocatable, dimension(:) :: myaxis
-  integer myvar
-  character(50) :: var,units
-  double precision bt
-  bt = 0.
-  print*, 'Test Code: Welcome to the general from ascii testing code'
-  read(5,'(A)') filein
-  open(unit=23,file=filein,form='formatted') 
-  call allocate_dims(23,mydims,ndim,dimlength,var,units)
-  allocate(myaxis(ndim))
-  current=>mydims
-  ntot=1
-  do i =1,ndim
-     ntot=ntot*current%n
-     current=>current%next
-  enddo
-  if (ndim.eq.2) then
-     allocate(arrayin2d(dimlength(1),dimlength(2)))
-     call read_ascii2d(23,mydims, ndim,ntot,arrayin2d)
-     print*,'Test Code: allocate data:',shape(arrayin2d)
-  else if (ndim.eq.3) then
-     allocate(arrayin3d(dimlength(1),dimlength(2),dimlength(3)))
-     call read_ascii3d(23,mydims, ndim,ntot,arrayin3d)
-     print*,'Test Code: allocate data:',shape(arrayin3d)
-  else if (ndim.eq.4) then
-     allocate(arrayin4d(dimlength(1),dimlength(2),dimlength(3),dimlength(4)))
-     call read_ascii4d(23,mydims, ndim,ntot,arrayin4d)
-     print*,'Test Code: allocate data:',shape(arrayin4d)
-  else if (ndim.eq.5) then
-     call read_ascii5d(23,mydims, ndim,ntot,arrayin5d)
-     allocate(arrayin5d(dimlength(1),dimlength(2),dimlength(3),dimlength(4),dimlength(5)))
-     print*,'Test Code: allocate data:',shape(arrayin5d)
-  endif
-  
-  
-!!$!! Ok here is the part where we define or variable/axis,etc... 
-!!$!! Assuming that Karl's code is ok...
-!!$
-  
-  print*,'Test Code: CMOR SETUP'
-!!$  
-  ierr = cmor_setup(inpath='Test',   &
-       netcdf_file_action='replace',                                       &
-       set_verbosity=1,                                                    &
-       exit_control=1)
-    
-  print*,'Test Code: CMOR DATASET'
-  ierr = cmor_dataset(                                   &
-       outpath='Test',         &
-       experiment_id='abrupt 4XCO2',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       ' Geneva, Switzerland)',                                &
-       source='GICCM1  2002(giccm_0_brnchT_itea_2, T63L32)',    &
-       calendar='noleap',                                      &
-       realization=1,                                          &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also ' //          &
-       'see http://www.GICC.su/giccm/doc/index.html '  //      &
-       ' 2XCO2 simulation described in Dorkey et al. '//       &
-       '(Clim. Dyn., 2003, 323-357.)', &
-       model_id = "GICCM1", forcing='TO',contact="Barry Bonds",&
-       parent_experiment_id="N/A",branch_time=bt,institute_id="PCMDI")
-  
-  current=>mydims
-  do i = 0,ndim-1
-     print*,'Test Code: CMOR AXIS',i
-     print*, 'Test Code: Axis Name:',trim(adjustl(current%name))
-     if (trim(adjustl(current%name)).eq.'time') then
-        print*, 'Test Code: time found'
-        ptimes => current
-        myaxis(ndim-i)=cmor_axis('Tables/CMIP5_Amon', &
-             table_entry=current%name,&
-             units=current%units,&
-             length=current%n,&
-!!$          coord_vals=current%values,&
-!!$          cell_bounds=current%bounds, &
-             interval='1 month')
-     else
-        myaxis(ndim-i)=cmor_axis('Tables/CMIP5_Amon', &
-             table_entry=current%name,&
-             units=current%units,&
-             length=current%n,&
-             coord_vals=current%values,&
-             cell_bounds=current%bounds)
-        print*, 'Test Code: not time'
-     endif
-     current=>current%next
-  enddo
-  
-  print*,'Test Code: CMOR VAR',var,units
-  myvar=cmor_variable('Tables/CMIP5_Amon',&
-       var,&
-       units,&
-       myaxis,&
-       missing_value=120)
-
-  !! figures out length of dimension other than time
-
-  print*, 'Test Code: time before:',ptimes%values(i:i)
-  if (ndim.eq.2) then 
-     if (ptimes%name.eq.mydims%name) then
-        do i=1,ptimes%n
-           print*, 'Test code: Write time',i,ptimes%values(i)
-           ierr = cmor_write( &
-                var_id        = myvar, &
-                data          = arrayin2d, &
-                ntimes_passed = 1,   &
-                time_vals     = (/ptimes%values(i)/),  &
-                time_bnds     = RESHAPE (ptimes%bounds(1:2,i), (/2,1/)) &
-                )
-        enddo
-     else
-        print*, 'Test code: Write all times at once'
-        ierr = cmor_write( &
-             var_id        = myvar, &
-             data          = arrayin2d, &
-             ntimes_passed = ptimes%n,   &
-             time_vals     = ptimes%values,  &
-             time_bnds     = ptimes%bounds &
-             )
-     endif
-  else if (ndim.eq.3) then
-     if (ptimes%name.eq.mydims%name) then
-        do i=1,ptimes%n
-           print*, 'Test code: Write time',i,ptimes%values(i)
-           ierr = cmor_write( &
-                var_id        = myvar, &
-                data          = arrayin3d, &
-                ntimes_passed = 1,   &
-                time_vals     = (/ptimes%values(i)/),  &
-                time_bnds     = RESHAPE (ptimes%bounds(1:2,i), (/2,1/)) &
-                )
-        enddo
-     else
-        print*, 'Test code: Write all times at once'
-        ierr = cmor_write( &
-             var_id        = myvar, &
-             data          = arrayin3d, &
-             ntimes_passed = ptimes%n,   &
-             time_vals     = ptimes%values,  &
-             time_bnds     = ptimes%bounds &
-             )
-     endif
-  else if (ndim.eq.4) then
-     if (ptimes%name.eq.mydims%name) then
-        do i=1,ptimes%n
-           print*, 'Test code: Write time',i,ptimes%values(i)
-           ierr = cmor_write( &
-                var_id        = myvar, &
-                data          = arrayin4d, &
-                ntimes_passed = 1,   &
-                time_vals     = (/ptimes%values(i)/),  &
-                time_bnds     = RESHAPE (ptimes%bounds(1:2,i), (/2,1/)) &
-                )
-        enddo
-     else
-        print*, 'Test code: Write all times at once'
-        ierr = cmor_write( &
-             var_id        = myvar, &
-             data          = arrayin4d, &
-             ntimes_passed = ptimes%n,   &
-             time_vals     = ptimes%values,  &
-             time_bnds     = ptimes%bounds &
-             )
-     endif
-  else
-     if (ptimes%name.eq.mydims%name) then
-        do i=1,ptimes%n
-           print*, 'Test code: Write time',i,ptimes%values(i)
-           ierr = cmor_write( &
-                var_id        = myvar, &
-                data          = arrayin5d, &
-                ntimes_passed = 1,   &
-                time_vals     = (/ptimes%values(i)/),  &
-                time_bnds     = RESHAPE (ptimes%bounds(1:2,i), (/2,1/)) &
-                )
-        enddo
-     else
-        print*, 'Test code: Write all times at once'
-        ierr = cmor_write( &
-             var_id        = myvar, &
-             data          = arrayin5d, &
-             ntimes_passed = ptimes%n,   &
-             time_vals     = ptimes%values,  &
-             time_bnds     = ptimes%bounds &
-             )
-     endif
-  endif
-  ierr = cmor_close()
-
-contains
-  subroutine allocate_dims(file_id,mydims,ndim,dimlength,var,units)
-    implicit none
-    integer i,n,j,tmp,file_id
-    integer, intent(inout)::ndim
-    integer, intent(inout):: dimlength(7)
-    type(dims) , pointer :: tmpdims,mydims
-     character(50), intent(inout) :: var,units
-    read(file_id,'(A)') var
-    read(file_id,'(A)') units
-   read(file_id,'(I4)') ndim
-    n=1
-    allocate(mydims)
-    tmpdims=>mydims
-    do i = 1, ndim
-       read(file_id,'(I4)') tmp
-       dimlength(4-i)=tmp
-       allocate(tmpdims%values(tmp))
-       allocate(tmpdims%bounds(2,tmp))
-       tmpdims%n=tmp
-       allocate(tmpdims%next)
-       tmpdims=>tmpdims%next
-       n=n*tmp
-    enddo
-    deallocate(tmpdims)
-  end subroutine allocate_dims
-  
-  subroutine read_ascii2d(file_unit,mydims,ndim,ntot,arrayin)
-    implicit none
-    type(dims), pointer::  mydims
-    integer, dimension(:,:),intent(inout) :: arrayin
-    type(dims), pointer ::  current
-    integer, intent(in)::ndim,file_unit
-    integer n,ntot,i,j,k,l
-    
-    current=>mydims
-    ntot=1
-    do i =1,ndim
-       n=current%n
-       ntot=ntot*n
-       read(file_unit,'(A)') current%name
-       print*, 'Test Code: NAME is:',current%name
-       read(file_unit,'(A)') current%units
-       print*, 'Test Code: UNITS is:',current%units
-       read(file_unit,*) (current%values(j),j=1,n)
-       read(file_unit,*) ((current%bounds(j,k),j=1,2),k=1,n)
-       print*, 'Test Code: bounds',current%bounds(1,1),current%bounds(1,2)
-       current=>current%next
-    enddo
-    read(file_unit,*) ((arrayin(j,k),j=1,size(arrayin,1)),k=1,size(arrayin,2))
-  end subroutine read_ascii2d
-  subroutine read_ascii3d(file_unit,mydims,ndim,ntot,arrayin)
-    implicit none
-    type(dims), pointer::  mydims
-    integer, dimension(:,:,:),intent(inout) :: arrayin
-    type(dims), pointer ::  current
-    integer, intent(in)::ndim,file_unit
-    integer n,ntot,i,j,k,l
-    
-    current=>mydims
-    ntot=1
-    do i =1,ndim
-       n=current%n
-       ntot=ntot*n
-       read(file_unit,'(A)') current%name
-       print*, 'Test Code: NAME is:',current%name
-       read(file_unit,'(A)') current%units
-       print*, 'Test Code: UNITS is:',current%units
-       read(file_unit,*) (current%values(j),j=1,n)
-       read(file_unit,*) ((current%bounds(j,k),j=1,2),k=1,n)
-       print*, 'Test Code: bounds',current%bounds(1,1),current%bounds(1,2)
-       current=>current%next
-    enddo
-    read(file_unit,*) (((arrayin(j,k,l),j=1,size(arrayin,1)),k=1,size(arrayin,2)),l=1,size(arrayin,3))
-  end subroutine read_ascii3d
-  subroutine read_ascii4d(file_unit,mydims,ndim,ntot,arrayin)
-    implicit none
-    type(dims), pointer::  mydims
-    integer, dimension(:,:,:,:),intent(inout) :: arrayin
-    type(dims), pointer ::  current
-    integer, intent(in)::ndim,file_unit
-    integer n,ntot,i,j,k,l,m
-    
-    current=>mydims
-    ntot=1
-    do i =1,ndim
-       n=current%n
-       ntot=ntot*n
-       read(file_unit,'(A)') current%name
-       print*, 'Test Code: NAME is:',current%name
-       read(file_unit,'(A)') current%units
-       print*, 'Test Code: UNITS is:',current%units
-       read(file_unit,*) (current%values(j),j=1,n)
-       read(file_unit,*) ((current%bounds(j,k),j=1,2),k=1,n)
-       print*, 'Test Code: bounds',current%bounds(1,1),current%bounds(1,2)
-       current=>current%next
-    enddo
-    read(file_unit,*) ((((arrayin(j,k,l,m),j=1,size(arrayin,1)),k=1,size(arrayin,2)),l=1,size(arrayin,3)),m=1,size(arrayin,4))
-  end subroutine read_ascii4d
-  subroutine read_ascii5d(file_unit,mydims,ndim,ntot,arrayin)
-    implicit none
-    type(dims), pointer::  mydims
-    integer, dimension(:,:,:,:,:),intent(inout) :: arrayin
-    type(dims), pointer ::  current
-    integer, intent(in)::ndim,file_unit
-    integer n,ntot,i,j,k,l,m,o
-    
-    current=>mydims
-    ntot=1
-    do i =1,ndim
-       n=current%n
-       ntot=ntot*n
-       read(file_unit,'(A)') current%name
-       print*, 'Test Code: NAME is:',current%name
-       read(file_unit,'(A)') current%units
-       print*, 'Test Code: UNITS is:',current%units
-       read(file_unit,*) (current%values(j),j=1,n)
-       read(file_unit,*) ((current%bounds(j,k),j=1,2),k=1,n)
-       print*, 'Test Code: bounds',current%bounds(1,1),current%bounds(1,2)
-       current=>current%next
-    enddo
-    read(file_unit,*) (((((arrayin(j,k,l,m,o),j=1,size(arrayin,1)),&
-         k=1,size(arrayin,2)),l=1,size(arrayin,3)),m=1,size(arrayin,4)),&
-         o=1,size(arrayin,5))
-  end subroutine read_ascii5d
-
-
-end program main
-
diff --git a/Test/test_checker_works.py b/Test/test_checker_works.py
deleted file mode 100644
index cf217ca..0000000
--- a/Test/test_checker_works.py
+++ /dev/null
@@ -1,1767 +0,0 @@
-####
-# This is trying to test all that cmor_checker catches all the possible failures
-###
-
-import sys
-import cmor
-import shutil
-import os
-import cdms2
-cdms2.setNetcdfShuffleFlag(0)
-cdms2.setNetcdfDeflateFlag(0)
-cdms2.setNetcdfDeflateLevelFlag(0)
-
-fo = sys.stdout
-
-if fo != sys.stdout:
-    fo=open(fo,"w")
-    
-# First of all run the Test script that generates the "good" file
-#execfile("Test/test_python_joerg_3.py")
-
-file = 'Test/CMIP5/output/INSTITUTE_ID/pcmdi-10a/noVolc2000/6hr/atmos/hus/r1i1p1/hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010218.nc'
-
-
-cmor.checkCMOR(fo,file,"Tables/CMIP5_6hrLev")
-
-
-## #Ok at this point we are going to test failures to make sure it actually checks for each things
-## # Ok testing the DRS
-
-## try:
-##     F="Test/CMIP5/output/INSTITUTE_ID/pcmdi-10a/noVolc2000/6hr/atmos/hus/hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
-##     print 'Testing DRS'
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev")
-##     raise "DRS Check failed!"
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     print 'Failed with CMOR error as expected:',err
-##     pass
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-
-## try:
-##     F="Test/CMIP5/output/INSTITUTE_ID/pcmdi-10a/noVolc2000/6hr/atmos/huhs/r1i1p1/hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010218.nc"
-##     try:
-##         os.makedirs(os.path.split(F)[0])
-##     except:
-##         pass
-##     shutil.copy(file,F)
-##     print 'Testing DRS'
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev")
-##     raise "DRS Check failed!"
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     print 'Failed with CMOR error as expected:',err
-##     pass
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-
-## try:
-##     F="Test/CMIP5/output/INSTITUTE_ID/pcmdi-10a/noVolc2000/6hr/atmfos/hus/r1i1p1/hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010218.nc"
-##     try:
-##         os.makedirs(os.path.split(F)[0])
-##     except:
-##         pass
-##     shutil.copy(file,F)
-##     print 'Testing DRS'
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev")
-##     raise "DRS Check failed!"
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     print 'Failed with CMOR error as expected:',err
-##     pass
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-
-## try:
-##     F="Test/CMIP5/output/INSTITUTE_ID/pcmdi-10a/noVolc2000/16hr/atmos/hus/r1i1p1/hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010218.nc"
-##     try:
-##         os.makedirs(os.path.split(F)[0])
-##     except:
-##         pass
-##     shutil.copy(file,F)
-##     print 'Testing DRS'
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev")
-##     raise "DRS Check failed!"
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     print 'Failed with CMOR error as expected:',err
-##     pass
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-
-## try:
-##     F="Test/CMIP5/output/INSTITUTE_ID/pcmdi-10a/noVolfdc2000/6hr/atmos/hus/r1i1p1/hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010218.nc"
-##     try:
-##         os.makedirs(os.path.split(F)[0])
-##     except:
-##         pass
-##     shutil.copy(file,F)
-##     print 'Testing DRS'
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev")
-##     raise "DRS Check failed!"
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     print 'Failed with CMOR error as expected:',err
-##     pass
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-
-## try:
-##     F="Test/CMIP5/output/INSTITUTE_ID/pcmdi-10b/noVolc2000/6hr/atmos/hus/r1i1p1/hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010218.nc"
-##     try:
-##         os.makedirs(os.path.split(F)[0])
-##     except:
-##         pass
-##     shutil.copy(file,F)
-##     print 'Testing DRS'
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev")
-##     raise "DRS Check failed!"
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     print 'Failed with CMOR error as expected:',err
-##     pass
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-
-## try:
-##     F="Test/CMIP5/output/INSTITUTEd_ID/pcmdi-10a/noVolc2000/6hr/atmos/hus/r1i1p1/hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010218.nc"
-##     try:
-##         os.makedirs(os.path.split(F)[0])
-##     except:
-##         pass
-##     shutil.copy(file,F)
-##     print 'Testing DRS'
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev")
-##     raise "DRS Check failed!"
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     print 'Failed with CMOR error as expected:',err
-##     pass
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-
-## try:
-##     F="Test/CMIP5/outputt/INSTITUTE_ID/pcmdi-10a/noVolc2000/6hr/atmos/hus/r1i1p1/hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010218.nc"
-##     try:
-##         os.makedirs(os.path.split(F)[0])
-##     except:
-##         pass
-##     shutil.copy(file,F)
-##     print 'Testing DRS'
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev")
-##     raise "DRS Check failed!"
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     print 'Failed with CMOR error as expected:',err
-##     pass
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-
-## try:
-##     F="Test/CMIpP5/output/INSTITUTE_ID/pcmdi-10a/noVolc2000/6hr/atmos/hus/r1i1p1/hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010218.nc"
-##     try:
-##         os.makedirs(os.path.split(F)[0])
-##     except:
-##         pass
-##     shutil.copy(file,F)
-##     print 'Testing DRS'
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev")
-##     raise "DRS Check failed!"
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     print 'Failed with CMOR error as expected:',err
-##     pass
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-
-
-## try:
-##     F="Test/hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010218.nc"
-##     try:
-##         os.makedirs(os.path.split(F)[0])
-##     except:
-##         pass
-##     shutil.copy(file,F)
-##     print 'Testing DRS'
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev")
-##     raise "DRS Check failed!"
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     print 'Failed with CMOR error as expected:',err
-##     pass
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-
-## try:
-##     F="hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010218.nc"
-##     try:
-##         os.makedirs(os.path.split(F)[0])
-##     except:
-##         pass
-##     shutil.copy(file,F)
-##     print 'Testing DRS'
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev")
-##     raise "DRS Check failed!"
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     print 'Failed with CMOR error as expected:',err
-##     pass
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-
-## #The following should pass, DRS test turned off
-## F="hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010218.nc"
-## try:
-##     os.makedirs(os.path.split(F)[0])
-## except:
-##     pass
-## shutil.copy(file,F)
-## print 'No Testing DRS'
-## cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev",dodrs=False)
-## os.remove(F)
-
-## try:
-##     F="Test/CMIP5/output/INSTITUTE_ID/pcmdi-10a/noVolc2000/6hr/atmos/hus/r1i1p1/hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_20f10010100-2010010218.nc"
-##     shutil.copy(file,F)
-##     print 'Testing DRS wrong date'
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev")
-##     raise "DRS Check failed!"
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     print 'Failed with CMOR error as expected:',err
-##     pass
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-## try:
-##     F="Test/CMIP5/output/INSTITUTE_ID/pcmdi-10a/noVolc2000/6hr/atmos/hus/r1i1p1/hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_20100g10100-2010010218.nc"
-##     shutil.copy(file,F)
-##     print 'Testing DRS wrong date'
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev")
-##     raise "DRS Check failed!"
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     print 'Failed with CMOR error as expected:',err
-##     pass
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-## try:
-##     F="Test/CMIP5/output/INSTITUTE_ID/pcmdi-10a/noVolc2000/6hr/atmos/hus/r1i1p1/hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010g100-2010010218.nc"
-##     shutil.copy(file,F)
-##     print 'Testing DRS wrong date'
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev")
-##     raise "DRS Check failed!"
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     print 'Failed with CMOR error as expected:',err
-##     pass
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-## try:
-##     F="Test/CMIP5/output/INSTITUTE_ID/pcmdi-10a/noVolc2000/6hr/atmos/hus/r1i1p1/hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_201001010g0-2010010218.nc"
-##     shutil.copy(file,F)
-##     print 'Testing DRS wrong date'
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev")
-##     raise "DRS Check failed!"
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     print 'Failed with CMOR error as expected:',err
-##     pass
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-## try:
-##     F="Test/CMIP5/output/INSTITUTE_ID/pcmdi-10a/noVolc2000/6hr/atmos/hus/r1i1p1/hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2f01001041 8.nc"
-##     shutil.copy(file,F)
-##     print 'Testing DRS wrong date'
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev")
-##     raise "DRS Check failed!"
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     print 'Failed with CMOR error as expected:',err
-##     pass
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-## try:
-##     F="Test/CMIP5/output/INSTITUTE_ID/pcmdi-10a/noVolc2000/6hr/atmos/hus/r1i1p1/hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010h010218.nc"
-##     shutil.copy(file,F)
-##     print 'Testing DRS wrong date'
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev")
-##     raise "DRS Check failed!"
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     print 'Failed with CMOR error as expected:',err
-##     pass
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-## try:
-##     F="Test/CMIP5/output/INSTITUTE_ID/pcmdi-10a/noVolc2000/6hr/atmos/hus/r1i1p1/hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010h418.nc"
-##     shutil.copy(file,F)
-##     print 'Testing DRS wrong date'
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev")
-##     raise "DRS Check failed!"
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     print 'Failed with CMOR error as expected:',err
-##     pass
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-## try:
-##     F="Test/CMIP5/output/INSTITUTE_ID/pcmdi-10a/noVolc2000/6hr/atmos/hus/r1i1p1/hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-201001041g8.nc"
-##     shutil.copy(file,F)
-##     print 'Testing DRS wrong date'
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev")
-##     raise "DRS Check failed!"
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     print 'Failed with CMOR error as expected:',err
-##     pass
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-
-## try:
-##     F="hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
-##     f=cdms2.open(F,"a")
-##     h=f("hus")
-##     f.write(h,id='hur')
-##     f.close()
-##     print 'Testing many vars'
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev",dodrs=False)
-##     raise "Too man vars Check failed!"
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     print 'Failed with CMOR error as expected:',err
-##     pass
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-
-## gbl = ['branch_time','contact','Conventions','creation_date','experiment','experiment_id','forcing','frequency','initialization_method','institute_id','institution','model_id','modeling_realm','parent_experiment_id','physics_version','product','project_id','realization','source','table_id','tracking_id']
-## for gatt in gbl:
-##     try:
-##         print 'Testing no %s global att' % (gatt)
-##         F="hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010218.nc"
-##         shutil.copy(file,F)
-##         os.popen("ncdump %s > crap.txt"%F).readlines()
-##         fi=open("crap.txt")
-##         f=open("crapo.txt","w")
-##         fglb=False
-##         for l in fi.xreadlines():
-##             if l.find("// global attributes")>-1:
-##                 fglb = True
-##             if fglb is False:
-##                 f.write(l)
-##             elif l.find(":%s" % gatt)==-1:
-##                 f.write(l)
-##         f.close()
-##         fi.close()
-##         os.remove(F)
-##         os.popen("ncgen -b -o %s crapo.txt" % (F)).readlines()
-##         os.remove("crap.txt")
-##         os.remove("crapo.txt")
-##         cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev",dodrs=False)
-##         raise Exception,"No global attribute %s test failed" % (gatt)
-##     except cmor.check_CMOR_compliant.CMORError,err:
-##         if str(err).find("File must have global attribute: %s" % (gatt))>-1:
-##             print 'Failed with CMOR error as expected:',err
-##             pass
-##         else:
-##             raise Exception,"Checker of global attribute %s failed for the wrong reason! %s" % (gatt,err)
-##     except Exception,err:
-##         raise Exception,err
-##     os.remove(F)
-
-# test validity of Creation Time
-## try:
-##     gatt = "creation_date"
-##     print 'Testing Validity of %s' % (gatt)
-##     F="hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
-##     os.popen("ncdump %s > crap.txt"%F).readlines()
-##     fi=open("crap.txt")
-##     f=open("crapo.txt","w")
-##     fglb=False
-##     for l in fi.xreadlines():
-##         if l.find("// global attributes")>-1:
-##             fglb = True
-##         if fglb is False:
-##             f.write(l)
-##         elif l.find(":%s" % gatt)==-1:
-##             f.write(l)
-##         else:
-##             f.write(l.strip()[:-3]+'blabla" ;\n')
-##     f.close()
-##     fi.close()
-##     os.remove(F)
-##     os.popen("ncgen -b -o %s crapo.txt" % (F)).readlines()
-##     os.remove("crap.txt")
-##     os.remove("crapo.txt")
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev",dodrs=False)
-##     print 'Did we get here?'
-##     raise Exception,"wrong global attribute %s test failed" % (gatt)
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     if str(err).find("Creation Date must be in format: %Y-%m-%dT%H:%M:%SZ yours is")>-1:
-##         print 'Failed with CMOR error as expected:',err
-##         pass
-##     else:
-##         raise Exception,"Checker of global attribute %s failed for the wrong reason! %s" % (gatt,err)
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-## try:
-##     gatt = "branch_time"
-##     print 'Testing Validity of %s' % (gatt)
-##     F="hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
-##     os.popen("ncdump %s > crap.txt"%F).readlines()
-##     fi=open("crap.txt")
-##     f=open("crapo.txt","w")
-##     fglb=False
-##     for l in fi.xreadlines():
-##         if l.find("// global attributes")>-1:
-##             fglb = True
-##         if fglb is False:
-##             f.write(l)
-##         elif l.find(":%s" % gatt)==-1:
-##             f.write(l)
-##         else:
-##             f.write(l.strip()[:-4]+'"blabla" ;\n')
-##     f.close()
-##     fi.close()
-##     os.remove(F)
-##     os.popen("ncgen -b -o %s crapo.txt" % (F)).readlines()
-##     os.remove("crap.txt")
-##     os.remove("crapo.txt")
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev",dodrs=False)
-##     raise Exception,"wrong global attribute %s test failed" % (gatt)
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     if str(err).find("branch_time must be convertible to float, you have")>-1:
-##         print 'Failed with CMOR error as expected:',err
-##         pass
-##     else:
-##         raise Exception,"Checker of global attribute %s failed for the wrong reason! %s" % (gatt,err)
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-## try:
-##     gatt = "branch_time"
-##     print 'Testing Validity of %s' % (gatt)
-##     F="hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
-##     os.popen("ncdump %s > crap.txt"%F).readlines()
-##     fi=open("crap.txt")
-##     f=open("crapo.txt","w")
-##     fglb=False
-##     for l in fi.xreadlines():
-##         if l.find("// global attributes")>-1:
-##             fglb = True
-##         if fglb is False:
-##             f.write(l)
-##         elif l.find(":%s" % gatt)==-1:
-##             f.write(l)
-##         else:
-##             f.write(l.strip()[:-4]+'1. ;\n')
-##     f.close()
-##     fi.close()
-##     os.remove(F)
-##     os.popen("ncgen -b -o %s crapo.txt" % (F)).readlines()
-##     os.remove("crap.txt")
-##     os.remove("crapo.txt")
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev",dodrs=False)
-##     raise Exception,"wrong global attribute %s test failed" % (gatt)
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     if str(err).find("if global attribute parent_experiment_id is N/A then branch_time must be 0., you have")>-1:
-##         print 'Failed with CMOR error as expected:',err
-##         pass
-##     else:
-##         raise Exception,"Checker of global attribute %s failed for the wrong reason! %s" % (gatt,err)
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-## try:
-##     gatt = "experiment_id"
-##     print 'Testing Validity of %s' % (gatt)
-##     F="hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
-##     os.popen("ncdump %s > crap.txt"%F).readlines()
-##     fi=open("crap.txt")
-##     f=open("crapo.txt","w")
-##     fglb=False
-##     for l in fi.xreadlines():
-##         if l.find("// global attributes")>-1:
-##             fglb = True
-##         if fglb is False:
-##             f.write(l)
-##         elif l.find(":%s" % gatt)==-1:
-##             f.write(l)
-##         else:
-##             f.write(l.strip()[:-3]+'x" ;\n')
-##     f.close()
-##     fi.close()
-##     os.remove(F)
-##     os.popen("ncgen -b -o %s crapo.txt" % (F)).readlines()
-##     os.remove("crap.txt")
-##     os.remove("crapo.txt")
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev",dodrs=False)
-##     raise Exception,"wrong global attribute %s test failed" % (gatt)
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     if str(err).find("experiment_id file attribute must be one of")>-1:
-##         print 'Failed with CMOR error as expected:',err
-##         pass
-##     else:
-##         raise Exception,"Checker of global attribute %s failed for the wrong reason! %s" % (gatt,err)
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-## try:
-##     gatt = "experiment"
-##     print 'Testing Validity of %s' % (gatt)
-##     F="hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
-##     os.popen("ncdump %s > crap.txt"%F).readlines()
-##     fi=open("crap.txt")
-##     f=open("crapo.txt","w")
-##     fglb=False
-##     for l in fi.xreadlines():
-##         if l.find("// global attributes")>-1:
-##             fglb = True
-##         if fglb is False:
-##             f.write(l)
-##         elif l.find(":%s" % gatt)==-1:
-##             f.write(l)
-##         else:
-##             f.write(l.strip()[:-3]+'x" ;\n')
-##     f.close()
-##     fi.close()
-##     os.remove(F)
-##     os.popen("ncgen -b -o %s crapo.txt" % (F)).readlines()
-##     os.remove("crap.txt")
-##     os.remove("crapo.txt")
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev",dodrs=False)
-##     raise Exception,"wrong global attribute %s test failed" % (gatt)
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     if str(err).find("experiment file attribute must be one of")>-1:
-##         print 'Failed with CMOR error as expected:',err
-##         pass
-##     else:
-##         raise Exception,"Checker of global attribute %s failed for the wrong reason! %s" % (gatt,err)
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-## try:
-##     gatt = "forcing"
-##     print 'Testing Validity of %s' % (gatt)
-##     F="hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
-##     os.popen("ncdump %s > crap.txt"%F).readlines()
-##     fi=open("crap.txt")
-##     f=open("crapo.txt","w")
-##     fglb=False
-##     for l in fi.xreadlines():
-##         if l.find("// global attributes")>-1:
-##             fglb = True
-##         if fglb is False:
-##             f.write(l)
-##         elif l.find(":%s" % gatt)==-1:
-##             f.write(l)
-##         else:
-##             f.write(l.strip()[:-3]+'x" ;\n')
-##     f.close()
-##     fi.close()
-##     os.remove(F)
-##     os.popen("ncgen -b -o %s crapo.txt" % (F)).readlines()
-##     os.remove("crap.txt")
-##     os.remove("crapo.txt")
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev",dodrs=False)
-##     raise Exception,"wrong global attribute %s test failed" % (gatt)
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     if str(err).find("file attribute forcing must be a comma separated list with values in")>-1:
-##         print 'Failed with CMOR error as expected:',err
-##         pass
-##     else:
-##         raise Exception,"Checker of global attribute %s failed for the wrong reason! %s" % (gatt,err)
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-## try:
-##     gatt = "frequency"
-##     print 'Testing Validity of %s' % (gatt)
-##     F="hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
-##     os.popen("ncdump %s > crap.txt"%F).readlines()
-##     fi=open("crap.txt")
-##     f=open("crapo.txt","w")
-##     fglb=False
-##     for l in fi.xreadlines():
-##         if l.find("// global attributes")>-1:
-##             fglb = True
-##         if fglb is False:
-##             f.write(l)
-##         elif l.find(":%s" % gatt)==-1:
-##             f.write(l)
-##         else:
-##             f.write(l.strip()[:-6]+'moyn" ;\n')
-##     f.close()
-##     fi.close()
-##     os.remove(F)
-##     os.popen("ncgen -b -o %s crapo.txt" % (F)).readlines()
-##     os.remove("crap.txt")
-##     os.remove("crapo.txt")
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev",dodrs=False)
-##     raise Exception,"wrong global attribute %s test failed" % (gatt)
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     if str(err).find("frequency must be one")>-1:
-##         print 'Failed with CMOR error as expected:',err
-##         pass
-##     else:
-##         raise Exception,"Checker of global attribute %s failed for the wrong reason! %s" % (gatt,err)
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-## try:
-##     gatt = "frequency"
-##     print 'Testing Validity of %s' % (gatt)
-##     F="hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
-##     os.popen("ncdump %s > crap.txt"%F).readlines()
-##     fi=open("crap.txt")
-##     f=open("crapo.txt","w")
-##     fglb=False
-##     for l in fi.xreadlines():
-##         if l.find("// global attributes")>-1:
-##             fglb = True
-##         if fglb is False:
-##             f.write(l)
-##         elif l.find(":%s" % gatt)==-1:
-##             f.write(l)
-##         else:
-##             f.write(l.strip()[:-6]+'mon" ;\n')
-##     f.close()
-##     fi.close()
-##     os.remove(F)
-##     os.popen("ncgen -b -o %s crapo.txt" % (F)).readlines()
-##     os.remove("crap.txt")
-##     os.remove("crapo.txt")
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev",dodrs=False)
-##     raise Exception,"wrong global attribute %s test failed" % (gatt)
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     if str(err).find("your file name indicates a frequency of ")>-1:
-##         print 'Failed with CMOR error as expected:',err
-##         pass
-##     else:
-##         raise Exception,"Checker of global attribute %s failed for the wrong reason! %s" % (gatt,err)
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-## try:
-##     gatt = "parent_experiment_id"
-##     print 'Testing Validity of %s' % (gatt)
-##     F="hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
-##     os.popen("ncdump %s > crap.txt"%F).readlines()
-##     fi=open("crap.txt")
-##     f=open("crapo.txt","w")
-##     fglb=False
-##     for l in fi.xreadlines():
-##         if l.find("// global attributes")>-1:
-##             fglb = True
-##         if fglb is False:
-##             f.write(l)
-##         elif l.find(":%s" % gatt)==-1:
-##             f.write(l)
-##         else:
-##             f.write(l.strip()[:-3]+'bla" ;\n')
-##     f.close()
-##     fi.close()
-##     os.remove(F)
-##     os.popen("ncgen -b -o %s crapo.txt" % (F)).readlines()
-##     os.remove("crap.txt")
-##     os.remove("crapo.txt")
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev",dodrs=False)
-##     raise Exception,"wrong global attribute %s test failed" % (gatt)
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     if str(err).find("parent_experiment_id file attribute must be one of")>-1:
-##         print 'Failed with CMOR error as expected:',err
-##         pass
-##     else:
-##         raise Exception,"Checker of global attribute %s failed for the wrong reason! %s" % (gatt,err)
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-## try:
-##     gatt = "parent_experiment_id"
-##     print 'Testing Validity of %s' % (gatt)
-##     F="hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
-##     os.popen("ncdump %s > crap.txt"%F).readlines()
-##     fi=open("crap.txt")
-##     f=open("crapo.txt","w")
-##     fglb=False
-##     for l in fi.xreadlines():
-##         if l.find("// global attributes")>-1:
-##             fglb = True
-##         if fglb is False:
-##             f.write(l)
-##         elif l.find(":%s" % gatt)==-1:
-##             f.write(l)
-##         else:
-##             f.write(l.strip()[:-6]+'noVolc2000" ;\n')
-##     f.close()
-##     fi.close()
-##     os.remove(F)
-##     os.popen("ncgen -b -o %s crapo.txt" % (F)).readlines()
-##     os.remove("crap.txt")
-##     os.remove("crapo.txt")
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev",dodrs=False)
-##     raise Exception,"wrong global attribute %s test failed" % (gatt)
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     if str(err).find("parent_experiment_id and experiment_id cannot be the same")>-1:
-##         print 'Failed with CMOR error as expected:',err
-##         pass
-##     else:
-##         raise Exception,"Checker of global attribute %s failed for the wrong reason! %s" % (gatt,err)
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-## try:
-##     gatt = "project_id"
-##     print 'Testing Validity of %s' % (gatt)
-##     F="hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
-##     os.popen("ncdump %s > crap.txt"%F).readlines()
-##     fi=open("crap.txt")
-##     f=open("crapo.txt","w")
-##     fglb=False
-##     for l in fi.xreadlines():
-##         if l.find("// global attributes")>-1:
-##             fglb = True
-##         if fglb is False:
-##             f.write(l)
-##         elif l.find(":%s" % gatt)==-1:
-##             f.write(l)
-##         else:
-##             f.write(l.strip()[:-3]+'0" ;\n')
-##     f.close()
-##     fi.close()
-##     os.remove(F)
-##     os.popen("ncgen -b -o %s crapo.txt" % (F)).readlines()
-##     os.remove("crap.txt")
-##     os.remove("crapo.txt")
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev",dodrs=False)
-##     raise Exception,"wrong global attribute %s test failed" % (gatt)
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     if str(err).find("project_id must be ")>-1:
-##         print 'Failed with CMOR error as expected:',err
-##         pass
-##     else:
-##         raise Exception,"Checker of global attribute %s failed for the wrong reason! %s" % (gatt,err)
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-
-## try:
-##     print 'Testing Validity of variable type'
-##     F="hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
-##     os.popen("ncdump %s > crap.txt"%F).readlines()
-##     fi=open("crap.txt")
-##     f=open("crapo.txt","w")
-##     for l in fi.xreadlines():
-##         if l.find("float hus(time")>-1:
-##             f.write(l.replace("float","double"))
-##             fglb = True
-##         else:
-##             f.write(l)
-##     f.close()
-##     fi.close()
-##     os.remove(F)
-##     os.popen("ncgen -b -o %s crapo.txt" % (F)).readlines()
-##     os.remove("crap.txt")
-##     os.remove("crapo.txt")
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev",dodrs=False)
-##     raise Exception,"wrong variable type test failed"
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     if str(err).find("variable typecode must be ")>-1:
-##         print 'Failed with CMOR error as expected:',err
-##         pass
-##     else:
-##         raise Exception,"Checker of variable type failed for the wrong reason! %s" % (err)
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-## try:
-##     print 'Testing Validity of coordinate type'
-##     F="hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
-##     os.popen("ncdump %s > crap.txt"%F).readlines()
-##     fi=open("crap.txt")
-##     f=open("crapo.txt","w")
-##     for l in fi.xreadlines():
-##         if l.find("double lon(")>-1:
-##             f.write(l.replace("double","float"))
-##             fglb = True
-##         else:
-##             f.write(l)
-##     f.close()
-##     fi.close()
-##     os.remove(F)
-##     os.popen("ncgen -b -o %s crapo.txt" % (F)).readlines()
-##     os.remove("crap.txt")
-##     os.remove("crapo.txt")
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev",dodrs=False)
-##     raise Exception,"wrong coord type test failed"
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     if str(err).find("required typecode")>-1:
-##         print 'Failed with CMOR error as expected:',err
-##         pass
-##     else:
-##         raise Exception,"Checker of variable type failed for the wrong reason! %s" % (err)
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-## try:
-##     print 'Testing Validity of coordinate type'
-##     F="hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
-##     os.popen("ncdump %s > crap.txt"%F).readlines()
-##     fi=open("crap.txt")
-##     f=open("crapo.txt","w")
-##     for l in fi.xreadlines():
-##         if l.find("double ap(")>-1:
-##             f.write(l.replace("double","float"))
-##             fglb = True
-##         else:
-##             f.write(l)
-##     f.close()
-##     fi.close()
-##     os.remove(F)
-##     os.popen("ncgen -b -o %s crapo.txt" % (F)).readlines()
-##     os.remove("crap.txt")
-##     os.remove("crapo.txt")
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev",dodrs=False)
-##     raise Exception,"wrong coord type test failed"
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     if str(err).find("variable typecode")>-1:
-##         print 'Failed with CMOR error as expected:',err
-##         pass
-##     else:
-##         raise Exception,"Checker of variable type failed for the wrong reason! %s" % (err)
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-## try:
-##     print 'Testing Validity of coordinate name'
-##     F="hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
-##     os.popen("ncdump %s > crap.txt"%F).readlines()
-##     fi=open("crap.txt")
-##     f=open("crapo.txt","w")
-##     for l in fi.xreadlines():
-##         if l.find("lat")>-1:
-##             if l.find('"latitude"')>-1:
-##                 f.write(l.replace("lat","latitude",1))
-##             else:
-##                 f.write(l.replace("lat","latitude"))                
-##         else:
-##             f.write(l)
-##     f.close()
-##     fi.close()
-##     os.remove(F)
-##     os.popen("ncgen -b -o %s crapo.txt" % (F)).readlines()
-##     os.remove("crap.txt")
-##     os.remove("crapo.txt")
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev",dodrs=False)
-##     raise Exception,"wrong coord name test failed"
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     if str(err).find("Axis name latitude is not valid")>-1:
-##         print 'Failed with CMOR error as expected:',err
-##         pass
-##     else:
-##         raise Exception,"Checker of variable type failed for the wrong reason! %s" % (err)
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-## try:
-##     print 'Testing Validity of coordinate units'
-##     F="hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
-##     os.popen("ncdump %s > crap.txt"%F).readlines()
-##     fi=open("crap.txt")
-##     f=open("crapo.txt","w")
-##     for l in fi.xreadlines():
-##         if l.find("lev:units")>-1:
-##             f.write(l.replace("1","%"))                
-##         else:
-##             f.write(l)
-##     f.close()
-##     fi.close()
-##     os.remove(F)
-##     os.popen("ncgen -b -o %s crapo.txt" % (F)).readlines()
-##     os.remove("crap.txt")
-##     os.remove("crapo.txt")
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev",dodrs=False)
-##     raise Exception,"wrong coord units test failed"
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     if str(err).find("are not the required units")>-1:
-##         print 'Failed with CMOR error as expected:',err
-##         pass
-##     else:
-##         raise Exception,"Checker of variable type failed for the wrong reason! %s" % (err)
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-## try:
-##     import cdms2
-##     print 'Testing Validity of time units'
-##     F="hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
-##     f=cdms2.open(F,"r+")
-##     t=f['hus'].getTime()
-##     t.toRelativeTime("seconds since 2010")
-##     f.close()
-##     f=open("Tables/CMIP5_6hrLev")
-##     fot=open("tmp_table.txt","w")
-##     for ln in f.xreadlines():
-##         if ln.find("approx_in")>-1:
-##             fot.write(ln.replace("0.25","21600."))
-##         else:
-##             fot.write(ln)
-##     fot.close()
-##     cmor.checkCMOR(fo,F,"tmp_table.txt",dodrs=False)
-##     os.remove("tmp_table.txt")
-##     raise Exception,"wrong time units test failed"
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     if str(err).find('Time units must be in "days since')>-1:
-##         print 'Failed with CMOR error as expected:',err
-##         pass
-##     else:
-##         raise Exception,"Checker of variable type failed for the wrong reason! %s" % (err)
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-
-
-## data = """time_bnds =
-##   -0.125, 0.125,
-##   0.125, 0.375,
-##   0.375, 0.625,
-##   0.625, 0.875,
-##   0.875, 1.125,
-##   1.125, 1.375,
-##   1.375, 1.625,
-##   1.625, 1.875 ;"""
-## data2 = """time_bnds =
-##   -0.1251, 0.1251,
-##   0.1251, 0.3751,
-##   0.3751, 0.6251,
-##   0.6251, 0.8751,
-##   0.8751, 1.1251,
-##   1.1251, 1.3751,
-##   1.3751, 1.6251,
-##   1.6251, 1.8751 ;"""
-## try:
-##     import cdms2
-##     print 'Testing time is mean of bounds'
-##     F="hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
-##     os.popen("ncdump %s > crap.txt"%F).readlines()
-##     fi=open("crap.txt")
-##     f=open("crapo.txt","w")
-##     f.write(fi.read().replace(data,data2))
-##     f.close()
-##     fi.close()
-##     os.remove(F)
-##     os.popen("ncgen -b -o %s crapo.txt" % (F)).readlines()
-##     os.remove("crap.txt")
-##     os.remove("crapo.txt")
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev",dodrs=False)
-##     raise Exception,"time is avg of bounds test failed"
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     if str(err).find('Time units must be in "days since')>-1:
-##         print 'Failed with CMOR error as expected:',err
-##         pass
-##     else:
-##         raise Exception,"Checker of variable type failed for the wrong reason! %s" % (err)
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-
-## data = """ time_bnds =
-##   -0.125, 0.125,
-##   0.125, 0.375,
-##   0.375, 0.625,
-##   0.625, 0.875,
-##   0.875, 1.125,
-##   1.125, 1.375,
-##   1.375, 1.625,
-##   1.625, 1.875 ;"""
-## try:
-##     import cdms2
-##     print 'Testing lack of bounds'
-##     F="hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
-##     os.popen("ncdump %s > crap.txt"%F).readlines()
-##     fi=open("crap.txt")
-##     s=fi.read()
-##     fi.close()
-##     fi=open("crap.txt",'w')
-##     fi.write(s.replace(data,""))
-##     fi.close()
-##     fi=open("crap.txt")
-##     f=open("crapo.txt","w")
-##     for ln in fi.xreadlines():
-##         if ln.find("time:bounds")>-1:
-##             continue
-##         if ln.find("double time_bnds")>-1:
-##             continue
-##         f.write(ln)
-##     f.close()
-##     fi.close()
-##     os.remove(F)
-##     os.popen("ncgen -b -o %s crapo.txt" % (F)).readlines()
-##     os.remove("crap.txt")
-##     os.remove("crapo.txt")
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev",dodrs=False)
-##     raise Exception,"lack of bounds test failed"
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     if str(err).find('attribute bounds is required for axis')>-1:
-##         print 'Failed with CMOR error as expected:',err
-##         pass
-##     else:
-##         raise Exception,"Checker of variable type failed for the wrong reason! %s" % (err)
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-## data = """ time_bnds =
-##   -0.125, 0.125,
-##   0.125, 0.375,
-##   0.375, 0.625,
-##   0.625, 0.875,
-##   0.875, 1.125,
-##   1.125, 1.375,
-##   1.375, 1.625,
-##   1.625, 1.875 ;"""
-## try:
-##     import cdms2
-##     print 'Testing lack of bounds'
-##     F="hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
-##     os.popen("ncdump %s > crap.txt"%F).readlines()
-##     fi=open("crap.txt")
-##     s=fi.read()
-##     fi.close()
-##     fi=open("crap.txt",'w')
-##     fi.write(s.replace(data,""))
-##     fi.close()
-##     fi=open("crap.txt")
-##     f=open("crapo.txt","w")
-##     for ln in fi.xreadlines():
-##         if ln.find("time:bounds")>-1:
-##             continue
-##         if ln.find("double time_bnds")>-1:
-##             continue
-##         f.write(ln)
-##     f.close()
-##     fi.close()
-##     os.remove(F)
-##     os.popen("ncgen -b -o %s crapo.txt" % (F)).readlines()
-##     os.remove("crap.txt")
-##     os.remove("crapo.txt")
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev",dodrs=False)
-##     raise Exception,"lack of bounds test failed"
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     if str(err).find('attribute bounds is required for axis')>-1:
-##         print 'Failed with CMOR error as expected:',err
-##         pass
-##     else:
-##         raise Exception,"Checker of variable type failed for the wrong reason! %s" % (err)
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-## data="""double ap(lev) ;"""
-## n=567
-## data=data[:15]
-## data2=""" ap = 0.1, 0.2, 0.3, 0.22, 0.1 ;
-
-##  b = 0, 0.1, 0.2, 0.5, 0.8 ;
-
-##  ps ="""
-
-## data3=""" ap_bnds =
-##   0, 0.15,
-##   0.15, 0.25,
-##   0.25, 0.25,
-##   0.25, 0.16,
-##   0.16, 0 ;
-
-##  b_bnds =
-##   0, 0.05,
-##   0.05, 0.15,
-##   0.15, 0.35,
-##   0.35, 0.65,
-##   0.65, 1 ;
-## """
-## try:
-##     import cdms2
-##     print 'Testing lack of formulaterms'
-##     F="hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
-##     os.popen("ncdump %s > crap.txt"%F).readlines()
-##     fi=open("crap.txt")
-##     s=fi.read()
-##     fi.close()
-##     print 'orig:',len(s)
-##     i=s.find(data)
-##     print 'i,n:',i,n
-##     s=s[:i]+s[i+n:]
-##     s=s.replace(data2,"")
-##     s=s.replace(data3,"")
-##     print 'end:',len(s)
-##     fi=open("crap.txt",'w')
-##     fi.write(s)
-##     fi.close()
-##     fi=open("crap.txt")
-##     f=open("crapo.txt","w")
-##     for ln in fi.xreadlines():
-##         if ln.find("formula")>-1:
-##             continue
-##         if ln.find("1013")>-1:
-##             continue
-##         f.write(ln)
-##     f.close()
-##     fi.close()
-##     os.remove(F)
-##     os.popen("ncgen -b -o %s crapo.txt" % (F)).readlines()
-##     os.remove("crap.txt")
-##     os.remove("crapo.txt")
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev",dodrs=False)
-##     raise Exception,"lack of formula_terms test failed"
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     if str(err).find('attribute formula_terms is required for axis')>-1:
-##         print 'Failed with CMOR error as expected:',err
-##         pass
-##     else:
-##         raise Exception,"Checker of variable type failed for the wrong reason! %s" % (err)
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-## try:
-##     print 'Testing wrong names on zfactors axis for hybrid'
-##     F="hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
-##     os.popen("ncdump %s > crap.txt"%F).readlines()
-##     fi=open("crap.txt")
-##     f=open("crapo.txt","w")
-##     for ln in fi.xreadlines():
-##         if ln.find("ap")>-1:
-##             tmp=ln.replace("ap","ap2")
-##             if tmp.find("formula_term")>-1: tmp=tmp.replace("ap2:","ap:")
-##             tmp=tmp.replace("ap2_bnds","ap_bnds")
-##             f.write(tmp)
-##             continue
-##         f.write(ln)
-##     f.close()
-##     fi.close()
-##     os.remove(F)
-##     os.popen("ncgen -b -o %s crapo.txt" % (F)).readlines()
-##     os.remove("crap.txt")
-##     os.remove("crapo.txt")
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev",dodrs=False)
-##     raise Exception,"lack of formula_terms test failed"
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     if str(err).find('formula should be')>-1:
-##         print 'Failed with CMOR error as expected:',err
-##         pass
-##     else:
-##         raise Exception,"Checker of variable type failed for the wrong reason! %s" % (err)
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-## try:
-##     print 'Testing wrong names on stabdard_name axis for hybrid'
-##     F="hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
-##     os.popen("ncdump %s > crap.txt"%F).readlines()
-##     fi=open("crap.txt")
-##     f=open("crapo.txt","w")
-##     for ln in fi.xreadlines():
-##         ln=ln.replace("atmosphere_hybrid_sigma_pressure_coordinate","atmosphere_ln_pressure_coordinate")
-##         f.write(ln)
-##     f.close()
-##     fi.close()
-##     os.remove(F)
-##     os.popen("ncgen -b -o %s crapo.txt" % (F)).readlines()
-##     os.remove("crap.txt")
-##     os.remove("crapo.txt")
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev",dodrs=False)
-##     raise Exception,"lack of formula_terms test failed"
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     if str(err).find('axis attribute formula should be')>-1:
-##         print 'Failed with CMOR error as expected:',err
-##         pass
-##     else:
-##         raise Exception,"Checker of variable type failed for the wrong reason! %s" % (err)
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-## for anm in ['lon','lat','lev','time']:
-    ## try:
-    ##     print 'Testing axis attribute'
-    ##     F="hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010218.nc"
-    ##     shutil.copy(file,F)
-    ##     os.popen("ncdump %s > crap.txt"%F).readlines()
-    ##     fi=open("crap.txt")
-    ##     f=open("crapo.txt","w")
-    ##     for ln in fi.xreadlines():
-    ##         if ln.find("%s:axis"%anm)>-1:
-    ##             continue
-    ##         f.write(ln)
-    ##     f.close()
-    ##     fi.close()
-    ##     os.remove(F)
-    ##     os.popen("ncgen -b -o %s crapo.txt" % (F)).readlines()
-    ##     os.remove("crap.txt")
-    ##     os.remove("crapo.txt")
-    ##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev",dodrs=False)
-    ##     raise Exception,"no axis attribute test failed"
-    ## except cmor.check_CMOR_compliant.CMORError,err:
-    ##     if str(err).find('axis must have associated axis attribute')>-1:
-    ##         print 'Failed with CMOR error as expected:',err
-    ##         pass
-    ##     else:
-    ##         raise Exception,"Checker of variable type failed for the wrong reason! %s" % (err)
-    ## except Exception,err:
-    ##     raise Exception,err
-    ## os.remove(F)
-## try:
-##     print 'Testing calendar attribute'
-##     F="hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
-##     os.popen("ncdump %s > crap.txt"%F).readlines()
-##     fi=open("crap.txt")
-##     f=open("crapo.txt","w")
-##     for ln in fi.xreadlines():
-##         if ln.find("time:calendar")>-1:
-##             continue
-##         f.write(ln)
-##     f.close()
-##     fi.close()
-##     os.remove(F)
-##     os.popen("ncgen -b -o %s crapo.txt" % (F)).readlines()
-##     os.remove("crap.txt")
-##     os.remove("crapo.txt")
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev",dodrs=False)
-##     raise Exception,"no calendar attribute test failed"
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     if str(err).find('calendar attribute must be defined')>-1:
-##         print 'Failed with CMOR error as expected:',err
-##         pass
-##     else:
-##         raise Exception,"Checker of variable type failed for the wrong reason! %s" % (err)
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-## try:
-##     print 'Testing wrong calendar attribute'
-##     F="hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
-##     os.popen("ncdump %s > crap.txt"%F).readlines()
-##     fi=open("crap.txt")
-##     f=open("crapo.txt","w")
-##     for ln in fi.xreadlines():
-##         if ln.find("time:calendar")>-1:
-##             f.write('time:calendar = "mayan" ;')
-##             continue
-##         f.write(ln)
-##     f.close()
-##     fi.close()
-##     os.remove(F)
-##     os.popen("ncgen -b -o %s crapo.txt" % (F)).readlines()
-##     os.remove("crap.txt")
-##     os.remove("crapo.txt")
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev",dodrs=False)
-##     raise Exception,"no calendar attribute test failed"
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     if str(err).find('calendar must be one of')>-1:
-##         print 'Failed with CMOR error as expected:',err
-##         pass
-##     else:
-##         raise Exception,"Checker of variable type failed for the wrong reason! %s" % (err)
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-## try:
-##     print 'Testing wrong variable datatype'
-##     F="hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
-##     os.popen("ncdump %s > crap.txt"%F).readlines()
-##     fi=open("crap.txt")
-##     f=open("crapo.txt","w")
-##     for ln in fi.xreadlines():
-##         if ln.find("float hus")>-1:
-##             f.write(ln.replace("float hus","double hus"))
-##             continue
-##         f.write(ln)
-##     f.close()
-##     fi.close()
-##     os.remove(F)
-##     os.popen("ncgen -b -o %s crapo.txt" % (F)).readlines()
-##     os.remove("crap.txt")
-##     os.remove("crapo.txt")
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev",dodrs=False)
-##     raise Exception,"wrong var typecode test failed"
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     if str(err).find('variable typecode must be')>-1:
-##         print 'Failed with CMOR error as expected:',err
-##         pass
-##     else:
-##         raise Exception,"Checker of variable type failed for the wrong reason! %s" % (err)
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-## try:
-##     print 'Testing wrong variable name'
-##     F="HUS_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
-##     os.popen("ncdump %s > crap.txt"%F).readlines()
-##     fi=open("crap.txt")
-##     f=open("crapo.txt","w")
-##     for ln in fi.xreadlines():
-##         if ln.find("hus")>-1:
-##             f.write(ln.replace("hus","HUS"))
-##             continue
-##         f.write(ln)
-##     f.close()
-##     fi.close()
-##     os.remove(F)
-##     os.popen("ncgen -b -o %s crapo.txt" % (F)).readlines()
-##     os.remove("crap.txt")
-##     os.remove("crapo.txt")
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev",dodrs=False)
-##     raise Exception,"wrong var name test failed"
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     if str(err).find('does not start with standard CMIP5 variable name ')>-1:
-##         print 'Failed with CMOR error as expected:',err
-##         pass
-##     else:
-##         raise Exception,"Checker of variable type failed for the wrong reason! %s" % (err)
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-## try:
-##     print 'Testing wrong variable name'
-##     F="hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
-##     os.popen("ncdump %s > crap.txt"%F).readlines()
-##     fi=open("crap.txt")
-##     f=open("crapo.txt","w")
-##     for ln in fi.xreadlines():
-##         if ln.find("hus")>-1:
-##             f.write(ln.replace("hus","tas"))
-##             continue
-##         f.write(ln)
-##     f.close()
-##     fi.close()
-##     os.remove(F)
-##     os.popen("ncgen -b -o %s crapo.txt" % (F)).readlines()
-##     os.remove("crap.txt")
-##     os.remove("crapo.txt")
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev",dodrs=False)
-##     raise Exception,"wrong var name test failed"
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     if str(err).find('Your file name says it contains variable')>-1:
-##         print 'Failed with CMOR error as expected:',err
-##         pass
-##     else:
-##         raise Exception,"Checker of variable type failed for the wrong reason! %s" % (err)
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-## try:
-##     print 'Testing wrong variable units'
-##     F="hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
-##     os.popen("ncdump %s > crap.txt"%F).readlines()
-##     fi=open("crap.txt")
-##     f=open("crapo.txt","w")
-##     for ln in fi.xreadlines():
-##         if ln.find("hus:units")>-1:
-##             f.write('                hus:units = "%" ;\n')
-##             continue
-##         f.write(ln)
-##     f.close()
-##     fi.close()
-##     os.remove(F)
-##     os.popen("ncgen -b -o %s crapo.txt" % (F)).readlines()
-##     os.remove("crap.txt")
-##     os.remove("crapo.txt")
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev",dodrs=False)
-##     raise Exception,"wrong var name test failed"
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     if str(err).find('do not match IPCC units')>-1:
-##         print 'Failed with CMOR error as expected:',err
-##         pass
-##     else:
-##         raise Exception,"Checker of variable type failed for the wrong reason! %s" % (err)
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-## try:
-##     print 'Testing wrong dim ordering'
-##     F="hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
-##     os.popen("ncdump %s > crap.txt"%F).readlines()
-##     fi=open("crap.txt")
-##     f=open("crapo.txt","w")
-##     for ln in fi.xreadlines():
-##         if ln.find("float hus(time, lev, lat, lon)")>-1:
-##             f.write(ln.replace("lat, lon","lon, lat"))
-##             continue
-##         f.write(ln)
-##     f.close()
-##     fi.close()
-##     os.remove(F)
-##     os.popen("ncgen -b -o %s crapo.txt" % (F)).readlines()
-##     os.remove("crap.txt")
-##     os.remove("crapo.txt")
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev",dodrs=False)
-##     raise Exception,"wrong var ordering test failed"
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     if str(err).find('in ordering for dimension')>-1:
-##         print 'Failed with CMOR error as expected:',err
-##         pass
-##     else:
-##         raise Exception,"Checker of variable type failed for the wrong reason! %s" % (err)
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-
-## data = """ lon = 2, 6, 10, 14, 18, 22, 26, 30, 34, 38, 42, 46, 50, 54, 58, 62, 66, 70, 
-##     74, 78, 82, 86, 90, 94, 98, 102, 106, 110, 114, 118, 122, 126, 130, 134, 
-##     138, 142, 146, 150, 154, 158, 162, 166, 170, 174, 178, 182, 186, 190, 
-##     194, 198, 202, 206, 210, 214, 218, 222, 226, 230, 234, 238, 242, 246, 
-##     250, 254, 258, 262, 266, 270, 274, 278, 282, 286, 290, 294, 298, 302, 
-##     306, 310, 314, 318, 322, 326, 330, 334, 338, 342, 346, 350, 354, 358 ;"""
-## datanew = """ lon = """+"""358, 354, 350, 346, 342, 338, 334, 330, 326, 322, 318, 314, 310, 306, 302, 298, 294, 290, 286, 282, 278, 274, 270, 266, 262, 258, 254, 250, 246, 242, 238, 234, 230, 226, 222, 218, 214, 210, 206, 202, 198, 194, 190, 186, 182, 178, 174, 170, 166, 162, 158, 154, 150, 146, 142, 138, 134, 130, 126, 122, 118, 114, 110, 106, 102, 98, 94, 90, 86, 82, 78, 74, 70, 66, 62, 58, 54, 50, 46, 42, 38, 34, 30, 26, 22, 18, 14, 10, 6, 2 ;"""
-## try:
-##     print 'Testing wrong dim ordering'
-##     F="hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
-##     os.popen("ncdump %s > crap.txt"%F).readlines()
-##     fi=open("crap.txt")
-##     s=fi.read()
-##     fi.close()
-##     fi=open("crap.txt","w")
-##     fi.write(s.replace(data,datanew))
-##     fi.close()
-##     fi=open("crap.txt")
-##     f=open("crapo.txt","w")
-##     for ln in fi.xreadlines():
-##         f.write(ln)
-##     f.close()
-##     fi.close()
-##     os.remove(F)
-##     os.popen("ncgen -b -o %s crapo.txt" % (F)).readlines()
-##     os.remove("crap.txt")
-##     os.remove("crapo.txt")
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev",dodrs=False)
-##     raise Exception,"wrong var ordering test failed"
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     if str(err).find('axis values for lon must be stored:increasingly')>-1:
-##         print 'Failed with CMOR error as expected:',err
-##         pass
-##     else:
-##         raise Exception,"Checker of variable type failed for the wrong reason! %s" % (err)
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-## try:
-##     print 'Testing wrong dim ordering'
-##     F="hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
-##     os.popen("ncdump %s > crap.txt"%F).readlines()
-##     fi=open("crap.txt")
-##     f=open("crapo.txt","w")
-##     for ln in fi.xreadlines():
-##         if ln.find("lon = 2, 6, 10"):
-##             f.write(ln.replace("lon = 2, 6, 10","lon = -2, 6, 10"))
-##             continue
-##         f.write(ln)
-##     f.close()
-##     fi.close()
-##     os.remove(F)
-##     os.popen("ncgen -b -o %s crapo.txt" % (F)).readlines()
-##     os.remove("crap.txt")
-##     os.remove("crapo.txt")
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev",dodrs=False)
-##     raise Exception,"wrong var ordering test failed"
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     if str(err).find('first longitude must be >= 0 degrees_east')>-1:
-##         print 'Failed with CMOR error as expected:',err
-##         pass
-##     else:
-##         raise Exception,"Checker of variable type failed for the wrong reason! %s" % (err)
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-## data = """ lat = -88, -84, -80, -76, -72, -68, -64, -60, -56, -52, -48, -44, -40, -36, 
-##     -32, -28, -24, -20, -16, -12, -8, -4, 0, 4, 8, 12, 16, 20, 24, 28, 32, 
-##     36, 40, 44, 48, 52, 56, 60, 64, 68, 72, 76, 80, 84, 88 ;"""
-## datanew = """ lat = """+"""88, 84, 80, 76, 72, 68, 64, 60, 56, 52, 48, 44, 40, 36, 
-##     32, 28, 24, 20, 16, 12, 8, 4, 0, -4, -8, -12, -16, -20, -24, -28, -32, 
-##     -36, -40, -44, -48, -52, -56, -60, -64, -68, -72, -76, -80, -84, -88 ;"""
-## try:
-##     print 'Testing wrong dim ordering'
-##     F="hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
-##     os.popen("ncdump %s > crap.txt"%F).readlines()
-##     fi=open("crap.txt")
-##     s=fi.read()
-##     fi.close()
-##     fi=open("crap.txt","w")
-##     fi.write(s.replace(data,datanew))
-##     fi.close()
-##     fi=open("crap.txt")
-##     f=open("crapo.txt","w")
-##     for ln in fi.xreadlines():
-##         f.write(ln)
-##     f.close()
-##     fi.close()
-##     os.remove(F)
-##     os.popen("ncgen -b -o %s crapo.txt" % (F)).readlines()
-##     os.remove("crap.txt")
-##     os.remove("crapo.txt")
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev",dodrs=False)
-##     raise Exception,"wrong var ordering test failed"
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     if str(err).find('axis values for lat must be stored:increasingly')>-1:
-##         print 'Failed with CMOR error as expected:',err
-##         pass
-##     else:
-##         raise Exception,"Checker of variable type failed for the wrong reason! %s" % (err)
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-## data = """ time = 0, 0.25, 0.5, 0.75, 1, 1.25, 1.5, 1.75 ;"""
-## datanew = """ time = 0, -0.25, -0.5, -0.75, -1, -1.25, -1.5, -1.75 ;"""
-
-## try:
-##     print 'Testing wrong dim ordering'
-##     F="hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2009123018.nc"
-##     shutil.copy(file,F)
-##     os.popen("ncdump %s > crap.txt"%F).readlines()
-##     fi=open("crap.txt")
-##     s=fi.read()
-##     fi.close()
-##     fi=open("crap.txt","w")
-##     fi.write(s.replace(data,datanew))
-##     fi.close()
-##     fi=open("crap.txt")
-##     f=open("crapo.txt","w")
-##     for ln in fi.xreadlines():
-##         f.write(ln)
-##     f.close()
-##     fi.close()
-##     os.remove(F)
-##     os.popen("ncgen -b -o %s crapo.txt" % (F)).readlines()
-##     os.remove("crap.txt")
-##     os.remove("crapo.txt")
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev",dodrs=False)
-##     raise Exception,"wrong var ordering test failed"
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     if str(err).find('axis values for time must be stored:increasingly')>-1:
-##         print 'Failed with CMOR error as expected:',err
-##         pass
-##     else:
-##         raise Exception,"Checker of variable type failed for the wrong reason! %s" % (err)
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-## try:
-##     print 'Testing fill and miss values different ordering'
-##     F="hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
-##     os.popen("ncdump %s > crap.txt"%F).readlines()
-##     fi=open("crap.txt")
-##     f=open("crapo.txt","w")
-##     for ln in fi.xreadlines():
-##         if ln.find("hus:mis")>-1:
-##             f.write("                hus:missing_value = 1.e+30f ;\n")
-##             continue
-##         elif ln.find("hus:_F")>-1:
-##             f.write("                hus:_FillValue = 1.e+20f ;\n")
-##             continue
-##         f.write(ln)
-##     f.close()
-##     fi.close()
-##     os.remove(F)
-##     os.popen("ncgen -b -o %s crapo.txt" % (F)).readlines()
-##     os.remove("crap.txt")
-##     os.remove("crapo.txt")
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev",dodrs=False)
-##     raise Exception,"wrong var ordering test failed"
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     if str(err).find('missing_value and _FillValue attributes are different')>-1:
-##         print 'Failed with CMOR error as expected:',err
-##         pass
-##     else:
-##         raise Exception,"Checker of variable type failed for the wrong reason! %s" % (err)
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-## try:
-##     print 'Testing fill and miss values different ordering'
-##     F="hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
-##     os.popen("ncdump %s > crap.txt"%F).readlines()
-##     fi=open("crap.txt")
-##     f=open("crapo.txt","w")
-##     for ln in fi.xreadlines():
-##         if ln.find("hus:mis")>-1:
-##             f.write("                hus:missing_value = 1.e+30f ;\n")
-##             continue
-##         elif ln.find("hus:_F")>-1:
-##             f.write("                hus:_FillValue = 1.e+30f ;\n")
-##             continue
-##         f.write(ln)
-##     f.close()
-##     fi.close()
-##     os.remove(F)
-##     os.popen("ncgen -b -o %s crapo.txt" % (F)).readlines()
-##     os.remove("crap.txt")
-##     os.remove("crapo.txt")
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev",dodrs=False)
-##     raise Exception,"wrong var ordering test failed"
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     if str(err).find('missing_value and _FillValue must be set to 1.e20f')>-1:
-##         print 'Failed with CMOR error as expected:',err
-##         pass
-##     else:
-##         raise Exception,"Checker of variable type failed for the wrong reason! %s" % (err)
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-## for att in ['associated_files','cell_measures','long_name','standard_name','units']:
-##     try:
-##         print 'Testing required var att %s' % att
-##         F="hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010218.nc"
-##         shutil.copy(file,F)
-##         os.popen("ncdump %s > crap.txt"%F).readlines()
-##         fi=open("crap.txt")
-##         f=open("crapo.txt","w")
-##         for ln in fi.xreadlines():
-##             if ln.find("hus:%s"%att)>-1:
-##                 continue
-##             f.write(ln)
-##         f.close()
-##         fi.close()
-##         os.remove(F)
-##         os.popen("ncgen -b -o %s crapo.txt" % (F)).readlines()
-##         os.remove("crap.txt")
-##         os.remove("crapo.txt")
-##         cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev",dodrs=False)
-##         raise Exception,"missing var att %s test failed" % att
-##     except cmor.check_CMOR_compliant.CMORError,err:
-##         if str(err).find('Attribute %s is required but not set for var hus' % att)>-1:
-##             print 'Failed with CMOR error as expected:',err
-##             pass
-##         else:
-##             raise Exception,"Checker of variable type failed for the wrong reason! %s" % (err)
-##     except Exception,err:
-##         raise Exception,err
-##     os.remove(F)
-## att = 'associated_files'
-## try:
-##     print 'Testing wrong var att %s' % att
-##     F="hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
-##     os.popen("ncdump %s > crap.txt"%F).readlines()
-##     fi=open("crap.txt")
-##     f=open("crapo.txt","w")
-##     for ln in fi.xreadlines():
-##         if ln.find("hus:%s"%att)>-1:
-##             f.write('   hus:%s = "blabla" ; \n' % att)
-##             continue
-##         f.write(ln)
-##     f.close()
-##     fi.close()
-##     os.remove(F)
-##     os.popen("ncgen -b -o %s crapo.txt" % (F)).readlines()
-##     os.remove("crap.txt")
-##     os.remove("crapo.txt")
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev",dodrs=False)
-##     raise Exception,"missing var att %s test failed" % att
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     if str(err).find('associated_files attributes must contain a baseURL')>-1:
-##         print 'Failed with CMOR error as expected:',err
-##         pass
-##     else:
-##         raise Exception,"Checker of variable type failed for the wrong reason! %s" % (err)
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-## try:
-##     print 'Testing wrong var att %s' % att
-##     F="hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010218.nc"
-##     shutil.copy(file,F)
-##     os.popen("ncdump %s > crap.txt"%F).readlines()
-##     fi=open("crap.txt")
-##     f=open("crapo.txt","w")
-##     for ln in fi.xreadlines():
-##         if ln.find("hus:%s"%att)>-1:
-##             f.write(' hus:associated_files = "baseURL: http://cmip-pcmdi.llnl.gov/CMIP5/dataLocation gridspecFile: gridspec_fx_pcmdi-10a_noVolc2000_r0i0p0.nc cellAreaFile: areacellla_fx_pcmdi-10a_noVolc2000_r0i0p0.nc" ;')
-##             continue
-##         f.write(ln)
-##     f.close()
-##     fi.close()
-##     os.remove(F)
-##     os.popen("ncgen -b -o %s crapo.txt" % (F)).readlines()
-##     os.remove("crap.txt")
-##     os.remove("crapo.txt")
-##     cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev",dodrs=False)
-##     raise Exception,"missing var att %s test failed" % att
-## except cmor.check_CMOR_compliant.CMORError,err:
-##     if str(err).find('associated files should point to file containing: areacella')>-1:
-##         print 'Failed with CMOR error as expected:',err
-##         pass
-##     else:
-##         raise Exception,"Checker of variable type failed for the wrong reason! %s" % (err)
-## except Exception,err:
-##     raise Exception,err
-## os.remove(F)
-att="cell_measures"
-try:
-    print 'Testing wrong var att %s' % att
-    F="hus_6hrLev_pcmdi-10a_noVolc2000_r1i1p1_2010010100-2010010218.nc"
-    shutil.copy(file,F)
-    os.popen("ncdump %s > crap.txt"%F).readlines()
-    fi=open("crap.txt")
-    f=open("crapo.txt","w")
-    for ln in fi.xreadlines():
-        if ln.find("hus:%s"%att)>-1:
-            f.write(' hus:%s = "area: cl" ;' % att)
-            continue
-        f.write(ln)
-    f.close()
-    fi.close()
-    os.remove(F)
-    os.popen("ncgen -b -o %s crapo.txt" % (F)).readlines()
-    os.remove("crap.txt")
-    os.remove("crapo.txt")
-    cmor.checkCMOR(fo,F,"Tables/CMIP5_6hrLev",dodrs=False)
-    raise Exception,"missing var att %s test failed" % att
-except cmor.check_CMOR_compliant.CMORError,err:
-    if str(err).find('variable attribute cell_measures should be')>-1:
-        print 'Failed with CMOR error as expected:',err
-        pass
-    else:
-        raise Exception,"Checker of variable type failed for the wrong reason! %s" % (err)
-except Exception,err:
-    raise Exception,err
-os.remove(F)
-
-
-
-
-
diff --git a/Test/test_cmor_grid_alejandro.f90 b/Test/test_cmor_grid_alejandro.f90
deleted file mode 100644
index 600261b..0000000
--- a/Test/test_cmor_grid_alejandro.f90
+++ /dev/null
@@ -1,167 +0,0 @@
-PROGRAM test_cmor_grid
-   USE cmor_users_functions
-
-   IMPLICIT NONE
-
-   INTEGER, PARAMETER :: n_sections = 3
-   INTEGER, PARAMETER :: n_points = 10
-   INTEGER, PARAMETER :: n_lev = 4
-   real, parameter :: R_UNDEF = -1.0E+30
-   INTEGER :: i, j, k, var_id,option
-!    REAL :: x(n_lev,n_points,n_sections)
-   REAL :: x(n_points,n_sections,n_lev)
-   real :: z_ax(n_lev),z_bounds(2,n_points)
-   double precision :: profile_ax(n_points),section_ax(n_sections)
-   real :: lat(n_points,n_sections),lon(n_points,n_sections)
-   real :: lat_bounds(4,n_points,n_sections),lon_bounds(4,n_points,n_sections)
-   character(len=128) :: table='Test/CMIP5_cf3hr.txt'
-   character(len=32) :: sec_units='days since 2000-01-01'
-   integer :: error_flag,height_axid,time_axid,profile_axid,grid_id,section_axid
-   real :: lat_step,lon_step
-   integer latvar_id,lonvar_id
-   integer blatvar_id,blonvar_id
-
-   print *, 'Option (0,1,other)?'
-   read(*,*) option
-
-   if (option == 0) then ! 1D grid, no time dimension
-      table='Test/CMIP5_cf3hr_0.txt'
-      sec_units='1'
-   endif
-   if (option == 1) then ! 1D grid, section as time dimension
-      table='Test/CMIP5_cf3hr_1.txt'
-      sec_units='days since 2000-01-01'
-   endif
-   
-   !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-   ! Fill in variables with some data
-   !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-   do k=1,n_sections
-     do j=1,n_points
-       do i=1,n_lev
-          x(j,k,i) = k*1000000 + 1000*j + i
-       enddo
-     enddo
-   enddo
-
-   ! Values for section axis
-   do i=1,n_sections
-     section_ax(i) = float(i)
-   enddo
-
-   ! Values for profile axis
-   do i=1,n_points
-     profile_ax(i) = float(i)
-   enddo
-      
-   ! Height of vertical levels
-   do i=1,n_lev
-     z_ax(i) = 240.0 + 480.0*(i-1)
-     z_bounds(1,i) = z_ax(i) - 240.0
-     z_bounds(2,i) = z_ax(i) + 240.0
-   enddo
-    
-   lat_step = 180.0/(n_points+2)
-   lon_step = 360.0/(n_points+2)
-   do i=1,n_points
-      lat(i,:) = -90.0 + lat_step*0.5 + lat_step*i
-      lon(i,:) =   0.0 + lon_step*0.5 + lon_step*i
-       lat_bounds(1,i,:) = lat(i,:) - lat_step*0.5
-       lat_bounds(2,i,:) = lat(i,:) - lat_step*0.5
-       lat_bounds(3,i,:) = lat(i,:) + lat_step*0.5
-       lat_bounds(4,i,:) = lat(i,:) + lat_step*0.5
-       lon_bounds(1,i,:) = lon(i,:) - lon_step*0.5
-       lon_bounds(2,i,:) = lon(i,:) + lon_step*0.5
-       lon_bounds(3,i,:) = lon(i,:) - lon_step*0.5
-       lon_bounds(4,i,:) = lon(i,:) + lon_step*0.5
-   enddo
-
-
-   !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-   ! Specify path for tables and set up other CMOR options
-   !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-   error_flag = cmor_setup(inpath='./',netcdf_file_action="replace",create_subdirectories=0)
-
-   print *, '---------------Define dataset'
-   !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-   ! Define dataset as output from COSP, and other model details
-   !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-   error_flag = cmor_dataset(outpath='Test/',experiment_id='AMIP',institution='Met Office', &
-                    source='GICCM1 2002 source',calendar='360_day',realization=1,contact='alejandro.bodas at metoffice.gov.uk', &
-                    history='history',comment='En un lugar de la Mancha de cuyo nombre no quiero acordarme', &
-                    references='references',forcing="CH4",&
-                    institute_id="PCMDI",model_id="GICCM1")
-   
-   print *, '---------------Define axis'
-   !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-   ! Define axis
-   !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-   profile_axid = cmor_axis(table=table, table_entry='location', units='1', &
-                                                       length=n_points, coord_vals=profile_ax)
-   height_axid  = cmor_axis(table=table, table_entry='height40', units='m', &
-                                                       length=n_lev, coord_vals=z_ax,cell_bounds=z_bounds)
-   section_axid  = cmor_axis(table=table, table_entry='section', units=sec_units, &
-                                                       length=n_sections, coord_vals=section_ax)
-   
-   print *, '---------------Define grid'
-   !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-   ! Define grid
-   !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-   if ((option == 0).or.(option == 1)) then
-     grid_id = cmor_grid((/profile_axid/), lat(:,1), lon(:,1))
-   else
-      print*, "AXES FOR GRID: ",(/profile_axid, section_axid/)
-     grid_id = cmor_grid((/profile_axid, section_axid/),nvertices=4)
-     print*, 'got grid:',grid_id
-     !need to add code for defining the lat lon var here
-     latvar_id = cmor_time_varying_grid_coordinate(grid_id,table_entry='latitude',units='degrees_north')
-     lonvar_id = cmor_time_varying_grid_coordinate(grid_id,table_entry='longitude',units='degrees_east')
-     blatvar_id = cmor_time_varying_grid_coordinate(grid_id,table_entry='vertices_latitude',units='degrees_north')
-     blonvar_id = cmor_time_varying_grid_coordinate(grid_id,table_entry='vertices_longitude',units='degrees_east')
-   endif
-   if (grid_id > 0) then
-        print *,  '*********** Error, grid_id: ', grid_id
-        stop
-   endif
-   
-   print *, '---------------Define variables'
-   !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-   ! Define variables. Fill in dimensions table first if needed
-   !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-   if ((option == 0).or.(option == 1)) then
-     var_id = cmor_variable(table=table, table_entry='curtain', units='1', &
-                                 axis_ids=(/grid_id,section_axid,height_axid/), missing_value=R_UNDEF)
-   else
-     var_id = cmor_variable(table=table, table_entry='curtain', units='1', &
-                                 axis_ids=(/grid_id,height_axid/), missing_value=R_UNDEF)
-   endif
-   
-   print *, '---------------Write variables'
-   !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-   ! Write variables to file
-   !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-   if ((option == 0).or.(option == 1)) then
-     error_flag = cmor_write(var_id=var_id, data=x)
-   else
-     error_flag = cmor_write(var_id=var_id, data=x)
-     error_flag = cmor_write(var_id=latvar_id, data=lat, store_with=var_id)
-     error_flag = cmor_write(var_id=lonvar_id, data=lon, store_with=var_id)
-     error_flag = cmor_write(var_id=latvar_id, data=lat, store_with=var_id)
-     error_flag = cmor_write(var_id=lonvar_id, data=lon, store_with=var_id)
-     print*, 'writing blat',blatvar_id
-     error_flag = cmor_write(var_id=blatvar_id, data=lat_bounds, store_with=var_id)
-     print*, 'writing blon',blonvar_id
-     error_flag = cmor_write(var_id=blonvar_id, data=lon_bounds, store_with=var_id)
-   endif
-   if (error_flag /= 0) then
-        print *,  '*********** Error writing variable: ', error_flag
-        stop
-   endif
-   
-   !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-   ! Close files
-   !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-   error_flag = cmor_close()
-                               
-   
- END
diff --git a/Test/test_compression.py b/Test/test_compression.py
deleted file mode 100644
index af9a1e9..0000000
--- a/Test/test_compression.py
+++ /dev/null
@@ -1,63 +0,0 @@
-import sys,os
-try:
-    import cdms2
-except:
-    print 'This test requires cdms2 for I/O'
-    sys.exit()
-    
-import cmor,numpy
-
-f=cdms2.open(os.path.join(cmor.__path__[0],'..','..','..','..','sample_data/clt.nc'))
-
-pth = os.path.split(os.path.realpath(os.curdir))
-if pth[-1]=='Test':
-    ipth = opth = '.'
-else:
-    ipth = opth = 'Test'
-cmor.setup(inpath=ipth,
-           set_verbosity=cmor.CMOR_NORMAL,
-           netcdf_file_action = cmor.CMOR_REPLACE)
-
-cmor.dataset(
-    outpath = opth,
-    experiment_id = "historical",
-    institution = "PCMDI",
-    source = "GICCM1 2002",
-    calendar = "standard",
-    contact="Tim Lincecum",
-    institute_id="PCMDI",
-    model_id="GICCM1",forcing="Nat",parent_experiment_id="N/A",branch_time=0.)
-
-cmor.load_table("Tables/CMIP5_Amon")
-
-s=f("clt",slice(14))
-Saxes = s.getAxisList()
-
-axes=[]
-for ax in Saxes[1:]:
-    tmp = cmor.axis(ax.id,coord_vals=ax[:],cell_bounds=ax.getBounds(),units=ax.units)
-    axes.append(tmp)
-
-#Now creates a dummy HUGE axis for resizing s as really big
-factor = 100
-nt = s.shape[0]*factor
-print 'nt is:',nt
-t = numpy.arange(nt)
-
-tmp = cmor.axis('time',coord_vals=t,units=Saxes[0].units,cell_bounds=numpy.arange(nt+1))
-axes.insert(0,tmp)
-print axes
-var_id1 = cmor.variable(s.id,s.units,axes)
-## the one with 2 at the end is compressed
-var_id2 = cmor.variable(s.id,s.units,axes)
-sh=list(s.shape)
-sh[0]=nt
-s=numpy.resize(s,sh)
-#s=numpy.where(numpy.greater(s,100.),100,s)
-s=numpy.random.random(s.shape)*100.
-print s.shape
-cmor.write(var_id1,s)
-cmor.close(var_id1)
-cmor.write(var_id2,s)
-
-cmor.close()
diff --git a/Test/test_dimensionless.f90 b/Test/test_dimensionless.f90
deleted file mode 100644
index 276b4f1..0000000
--- a/Test/test_dimensionless.f90
+++ /dev/null
@@ -1,519 +0,0 @@
-!!$pgf90 -I/work/NetCDF/5.1/include -L/work/NetCDF/5.1/lib -l netcdf -L. -l cmor Test/test_dimensionless.f90 -IModules -o cmor_test
-!!$pgf90 -g -I/pcmdi/charles_work/NetCDF/include -L/pcmdi/charles_work/NetCDF/lib -lnetcdf -module Modules -IModules -L. -lcmor -I/pcmdi/charles_work/Unidata/include -L/pcmdi/charles_work/Unidata/lib -ludunits Test/test_dimensionless.f90 -o cmor_test
-
-MODULE local_subs
-
-  USE cmor_users_functions
-  PRIVATE
-  PUBLIC read_coords, read_time, read_3d_input_files, read_2d_input_files
-CONTAINS
-  
-  SUBROUTINE read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-
-    IMPLICIT NONE
-    
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alats
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alons
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: plevs
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lat
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lon
-    
-    INTEGER :: i
-    
-    DO i = 1, SIZE(alons)
-       alons(i) = (i-1)*360./SIZE(alons)
-       bnds_lon(1,i) = (i - 1.5)*360./SIZE(alons)
-        bnds_lon(2,i) = (i - 0.5)*360./SIZE(alons)
-    END DO
-    
-    DO i = 1, SIZE(alats)
-       alats(i) = i*10
-       bnds_lat(1,i) = i*10. - 5.
-       bnds_lat(2,i) = i*10. + 5.
-    END DO
-  
-    DO i = 1, SIZE(plevs)
-       plevs(i) = i*1.0e4
-    END DO
-          plevs = (/100000., 92500., 85000., 70000.,&
-       60000., 50000., 40000., 30000., 25000., 20000.,&
-       15000., 10000., 7000., 5000., 3000., 2000., 1000. /)
-
-    RETURN
-  END SUBROUTINE read_coords
-
-  SUBROUTINE read_time(it, time, time_bnds)
-    
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    DOUBLE PRECISION, INTENT(OUT) :: time
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(2,1) :: time_bnds
-    
-    time = (it-0.5)*30.
-    time_bnds(1,1) = (it-1)*30.
-    time_bnds(2,1) = it*30.
-    
-    RETURN
-  END SUBROUTINE read_time
-  
-INCLUDE "reader_2D_3D.f90"
-
-END MODULE local_subs
-
-
-PROGRAM ipcc_test_code
-!
-!   Purpose:   To serve as a generic example of an application that
-!       uses the "Climate Model Output Rewriter" (CMOR)
-
-!    CMOR writes CF-compliant netCDF files.
-!    Its use is strongly encouraged by the IPCC and is intended for use 
-!       by those participating in many community-coordinated standard 
-!       climate model experiments (e.g., AMIP, CMIP, CFMIP, PMIP, APE,
-!       etc.)
-!
-!   Background information for this sample code:
-!
-!      Atmospheric standard output requested by IPCC are listed in 
-!   tables available on the web.  Monthly mean output is found in
-!   tables A1a and A1c.  This sample code processes only two 3-d 
-!   variables listed in table A1c ("monthly mean atmosphere 3-D data" 
-!   and only four 2-d variables listed in table A1a ("monthly mean 
-!   atmosphere + land surface 2-D (latitude, longitude) data").  The 
-!   extension to many more fields is trivial.
-!
-!      For this example, the user must fill in the sections of code that 
-!   extract the 3-d and 2-d fields from his monthly mean "history" 
-!   files (which usually contain many variables but only a single time 
-!   slice).  The CMOR code will write each field in a separate file, but 
-!   many monthly mean time-samples will be stored together.  These 
-!   constraints partially determine the structure of the code.
-!
-!
-!   Record of revisions:
-
-!       Date        Programmer(s)           Description of change
-!       ====        ==========              =====================
-!      10/22/03     Rusty Koder              Original code
-!       1/28/04     Les R. Koder             Revised to be consistent
-!                                            with evolving code design
-
-! include module that contains the user-accessible cmor functions.
-  USE cmor_users_functions
-  USE local_subs
-
-  IMPLICIT NONE
-
-  !   dimension parameters:
-  ! ---------------------------------
-  INTEGER, PARAMETER :: ntimes = 2    ! number of time samples to process
-  INTEGER, PARAMETER :: lon = 4       ! number of longitude grid cells  
-  INTEGER, PARAMETER :: lat = 3       ! number of latitude grid cells
-  INTEGER, PARAMETER :: lev = 5       ! number of standard pressure levels
-  INTEGER, PARAMETER :: lev2 = 17       ! number of standard pressure levels
-  INTEGER, PARAMETER :: n2d = 4       ! number of IPCC Table A1a fields to be
-                                      !     output.
-  INTEGER, PARAMETER :: n3d = 4       ! number of IPCC Table A1c fields to 
-                                      !     be output.  
-
-  !   Tables associating the user's variables with IPCC standard output 
-  !   variables.  The user may choose to make this association in a 
-  !   different way (e.g., by defining values of pointers that allow him 
-  !   to directly retrieve data from a data record containing many 
-  !   different variables), but in some way the user will need to map his 
-  !   model output onto the Tables specifying the MIP standard output.
-
-  ! ----------------------------------
-
-                                ! My variable names for IPCC Table A1c fields
-  CHARACTER (LEN=5), DIMENSION(n3d) :: &
-                                 varin3d=(/'CLOUD', 'tro3 ', 'U    ', 'T    '/)
-
-                                ! Units appropriate to my data
-  CHARACTER (LEN=5), DIMENSION(n3d) :: &
-                                  units3d=(/ '%    ', '1e-9 ',  'm s-1',   'K    '  /)
-
-                     ! Corresponding IPCC Table A1c entry (variable name) 
-  CHARACTER (LEN=4), DIMENSION(n3d) :: entry3d = (/ 'cl  ', 'tro3', 'ua  ', 'ta  ' /)
-
-                                ! My variable names for IPCC Table A1a fields
-  CHARACTER (LEN=8), DIMENSION(n2d) :: &
-                  varin2d=(/ 'LATENT  ', 'TSURF   ', 'SOIL_WET', 'PSURF   ' /)
-
-                                ! Units appropriate to my data
-   CHARACTER (LEN=6), DIMENSION(n2d) :: &
-                          units2d=(/ 'W m-2 ', 'K     ', 'kg m-2', 'Pa    ' /)
-
-   CHARACTER (LEN=4), DIMENSION(n2d) :: &
-                      positive2d= (/  'down',  '    ', '    ', '    '  /)
-
-                     ! Corresponding IPCC Table A1a entry (variable name) 
-  CHARACTER (LEN=5), DIMENSION(n2d) :: &
-                        entry2d = (/ 'hfls ', 'tas  ', 'mrsos', 'ps   ' /)
-
-!  uninitialized variables used in communicating with CMOR:
-!  ---------------------------------------------------------
-
-  INTEGER :: error_flag
-  INTEGER :: znondim_id, zfactor_id
-  INTEGER, DIMENSION(n2d) :: var2d_ids
-  INTEGER, DIMENSION(n3d) :: var3d_ids
-  REAL, DIMENSION(lon,lat) :: data2d
-  REAL, DIMENSION(lev2,lon,lat) :: data3d
-  DOUBLE PRECISION, DIMENSION(lat) :: alats
-  DOUBLE PRECISION, DIMENSION(lon) :: alons
-  DOUBLE PRECISION, DIMENSION(lev2) :: plevs
-  DOUBLE PRECISION, DIMENSION(1) :: time
-  DOUBLE PRECISION, DIMENSION(2,1):: bnds_time
-  DOUBLE PRECISION, DIMENSION(2,lat) :: bnds_lat
-  DOUBLE PRECISION, DIMENSION(2,lon) :: bnds_lon
-  DOUBLE PRECISION, DIMENSION(lev) :: zlevs
-  DOUBLE PRECISION, DIMENSION(lev+1) :: zlev_bnds
-  REAL, DIMENSION(lev) :: a_coeff
-  REAL, DIMENSION(lev) :: b_coeff
-  REAL :: p0
-  REAL, DIMENSION(lev+1) :: a_coeff_bnds
-  REAL, DIMENSION(lev+1) :: b_coeff_bnds
-  INTEGER :: ilon, ilat, ipres, ilev, itim, ilon2,ilat2,itim2
-  double precision bt
-
-  !  Other variables:
-  !  ---------------------
-  
-  INTEGER :: it, m  
-  bt=0.
-  
-  ! ================================
-  !  Execution begins here:
-  ! ================================
-  
-  ! Read coordinate information from model into arrays that will be passed 
-  !   to CMOR.
-  ! Read latitude, longitude, and pressure coordinate values into 
-  !   alats, alons, and plevs, respectively.  Also generate latitude and 
-  !   longitude bounds, and store in bnds_lat and bnds_lon, respectively.
-  !   Note that all variable names in this code can be freely chosen by
-  !   the user.
-
-  !   The user must write the subroutine that fills the coordinate arrays 
-  !   and their bounds with actual data.  The following line is simply a
-  !   a place-holder for the user's code, which should replace it.
-  
-  !  *** possible user-written call ***
-  
-  call read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-  
-  ! Specify path where tables can be found and indicate that existing 
-  !    netCDF files should not be overwritten.
-  
-  error_flag = cmor_setup(inpath='Test', netcdf_file_action='replace')
-  
-  ! Define dataset as output from the GICC model (first member of an
-  !   ensemble of simulations) run under IPCC 2xCO2 equilibrium
-  !   experiment conditions, and provide information to be included as 
-  !   attributes in all CF-netCDF files written as part of this dataset.
-
-  error_flag = cmor_dataset(                                   &
-       outpath='Test',                                         &
-       experiment_id='abrupt 4XCO2',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       'Geneva, Switzerland)',                                 &
-       source='GICCM1 (2002): ' //                             &
-       'atmosphere:  GICAM3 (gicam_0_brnchT_itea_2, T63L32); '// &
-       'ocean: MOM (mom3_ver_3.5.2, 2x3L15); '             //  &
-       'sea ice: GISIM4; land: GILSM2.5',                      &
-       calendar='360_day',                                      &
-       realization=1,                                          &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also '        //   &
-       'see http://www.GICC.su/giccm/doc/index.html '     //   &
-       ' 2XCO2 simulation described in Dorkey et al. '    //   &
-       '(Clim. Dyn., 2003, 323-357.)', model_id="GICCM1", &
-       forcing='TO',contact="Barry Bonds",institute_id="PCMDI",&
-       parent_experiment_id="N/A",branch_time=bt)
-  
-  !  Define all axes that will be needed
-  
-  ilat = cmor_axis(  &
-       table='Tables/CMIP5_Amon',        &
-       table_entry='latitude',       &
-       units='degrees_north',        &  
-       length=lat,                   &
-       coord_vals=alats,             & 
-       cell_bounds=bnds_lat)        
-      
-  ilon = cmor_axis(  &
-       table='Tables/CMIP5_Amon',        &
-       table_entry='longitude',      &
-       length=lon,                   &
-       units='degrees_east',         &
-       coord_vals=alons,             &
-       cell_bounds=bnds_lon)      
-        
-  ilat2 = cmor_axis(  &
-       table='Tables/CMIP5_Lmon',        &
-       table_entry='latitude',       &
-       units='degrees_north',        &  
-       length=lat,                   &
-       coord_vals=alats,             & 
-       cell_bounds=bnds_lat)        
-      
-  ilon2 = cmor_axis(  &
-       table='Tables/CMIP5_Lmon',        &
-       table_entry='longitude',      &
-       length=lon,                   &
-       units='degrees_east',         &
-       coord_vals=alons,             &
-       cell_bounds=bnds_lon)      
-        
-
-print*, 'Test Code:',lev,':',plevs
-  ipres = cmor_axis(  &
-       table='Tables/CMIP5_Amon',        &
-       table_entry='plevs',       &
-       units='Pa',                   &
-       length=lev2,                   &
-       coord_vals=plevs)
-  !   note that the time axis is defined next, but the time coordinate 
-  !   values and bounds will be passed to cmor through function 
-  !   cmor_write (later, below).
-
-  itim = cmor_axis(  &
-       table='Tables/CMIP5_Amon',        &
-       table_entry='time',           &
-       units='days since 2030-1-1',  &
-       length=ntimes,                &
-       interval='1 month')
-  
-  itim2 = cmor_axis(  &
-       table='Tables/CMIP5_Lmon',        &
-       table_entry='time',           &
-       units='days since 2030-1-1',  &
-       length=ntimes,                &
-       interval='1 month')
-  
-  !  define model eta levels
-  zlevs = (/ 0.1, 0.3, 0.55, 0.7, 0.9 /)
-  zlev_bnds=(/ 0.,.2, .42, .62, .8, 1. /)
-
-  ilev = cmor_axis(  &
-       table='Tables/CMIP5_Amon',        &
-       table_entry='standard_hybrid_sigma',       &
-       units='1',  &
-       length=lev,                   &
-       coord_vals=zlevs,             &
-       cell_bounds=zlev_bnds)
-
-  !   define z-factors needed to transform from model level to pressure
-  p0 = 1.e5
-  a_coeff = (/ 0.1, 0.2, 0.3, 0.2, 0.1 /)
-  b_coeff = (/ 0.0, 0.1, 0.2, 0.5, 0.8 /)
-
-  a_coeff_bnds=(/0.,.15, .25, .25, .15, 0./)
-  b_coeff_bnds=(/0.,.05, .15, .35, .65, 1./)
-
-  error_flag = cmor_zfactor(  &
-       zaxis_id=ilev,                      &
-       zfactor_name='p0',                  &
-       units='Pa',                         &
-       zfactor_values = p0)
-
-  error_flag = cmor_zfactor(  &
-       zaxis_id=ilev,                       & 
-       zfactor_name='b',                    &
-       axis_ids= (/ ilev /),                &
-       zfactor_values = b_coeff,            &
-       zfactor_bounds = b_coeff_bnds  )
-
-  error_flag = cmor_zfactor(  &
-       zaxis_id=ilev,                       &
-       zfactor_name='a',                    &
-       axis_ids= (/ ilev /),                &
-       zfactor_values = a_coeff,            &
-       zfactor_bounds = a_coeff_bnds )
-
-  zfactor_id = cmor_zfactor(  &
-       zaxis_id=ilev,                         &
-       zfactor_name='ps',                     &
-       axis_ids=(/ ilon, ilat, itim /),       &
-       units='Pa' )
-
-  !  Define the only field to be written that is a function of model level
-  !    (appearing in IPCC table A1c)
-
-  var3d_ids(1) = cmor_variable(    &
-       table='Tables/CMIP5_Amon',      &
-       table_entry=entry3d(1),     &
-       units=units3d(1),           &
-       axis_ids=(/ ilev, ilon, ilat, itim /),  &
-       missing_value=1.0e28, &
-       original_name=varin3d(1))
-  
-  !  Define variables appearing in IPCC table A1c that are a function of pressure
-  !         (3-d variables)
-  
-  DO m=2,n3d
-     var3d_ids(m) = cmor_variable(    &
-          table='Tables/CMIP5_Amon',      &
-          table_entry=entry3d(m),     &
-          units=units3d(m),           &
-          axis_ids=(/ ipres, ilon, ilat, itim /), &
-          missing_value=1.0e28,       &
-          original_name=varin3d(m))
-  ENDDO
-  
-
-  !  Define variables appearing in IPCC table A1a (2-d variables)
-  
-  DO m=1,n2d
-     print*, m, entry2d(m)
-     if (m.ne.3) then
-     var2d_ids(m) = cmor_variable(    &
-          table='Tables/CMIP5_Amon',      &
-          table_entry=entry2d(m),     & 
-          units=units2d(m),           & 
-          axis_ids=(/ ilon, ilat, itim /), &
-          missing_value=1.0e28,       &
-          positive=positive2d(m),     &
-          original_name=varin2d(m))   
-  else
-     var2d_ids(m) = cmor_variable(    &
-          table='Tables/CMIP5_Lmon',      &
-          table_entry=entry2d(m),     & 
-          units=units2d(m),           & 
-          axis_ids=(/ ilon2, ilat2, itim2 /), &
-          missing_value=1.0e28,       &
-          positive=positive2d(m),     &
-          original_name=varin2d(m)) 
-  endif
-  ENDDO
-
-  PRINT*, ' '
-  PRINT*, 'completed everything up to writing output fields '
-  PRINT*, ' '
-
-  !  Loop through history files (each containing several different fields, 
-  !       but only a single month of data, averaged over the month).  Then 
-  !       extract fields of interest and write these to netCDF files (with 
-  !       one field per file, but all months included in the loop).
-  
-  time_loop: DO it=1, ntimes
-     
-     ! In the following loops over the 3d and 2d fields, the user-written    
-     ! subroutines (read_3d_input_files and read_2d_input_files) retrieve 
-     ! the requested IPCC table A1c and table A1a fields and store them in 
-     ! data3d and data2d, respectively.  In addition a user-written code 
-     ! (read_time) retrieves the time and time-bounds associated with the 
-     ! time sample (in units of 'days since 1970-1-1', consistent with the 
-     ! axis definitions above).  The bounds are set to the beginning and 
-     ! the end of the month retrieved, indicating the averaging period.
-     
-     ! The user must write a code to obtain the times and time-bounds for
-     !   the time slice.  The following line is simply a place-holder for
-     !   the user's code, which should replace it.
-     
-    call read_time(it, time(1), bnds_time)
-
-    call read_3d_input_files(it, varin3d(1), data3d)
-
-    error_flag = cmor_write(                                  &
-         var_id        = var3d_ids(1),                        &
-         data          = data3d,                              &
-         ntimes_passed = 1,                                   &
-         time_vals     = time,                                &
-         time_bnds     = bnds_time   )
-
-    call read_2d_input_files(it, varin2d(4), data2d)                  
-
-    error_flag = cmor_write(                                  &
-         var_id        = zfactor_id,                          &
-         data          = data2d,                              &
-         ntimes_passed = 1,                                   &
-         time_vals     = time,                                &
-         time_bnds     = bnds_time,                           &
-         store_with    = var3d_ids(1) )
-
-    ! Cycle through the 3-d fields (stored on pressure levels), 
-    ! and retrieve the requested variable and append each to the 
-    ! appropriate netCDF file.
-
-    DO m=2,n3d
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-
-        call read_3d_input_files(it, varin3d(m), data3d)
-       
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-        
-        error_flag = cmor_write(                                  &
-             var_id        = var3d_ids(m),                        &
-             data          = data3d,                              &
-             ntimes_passed = 1,                                   &
-             time_vals     = time,                                &
-             time_bnds     = bnds_time  )
-
-        IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) ' Error encountered writing IPCC Table A1c ' &
-                // 'field ', entry3d(m), ', which I call ', varin3d(m)
-           write(*,*) ' Was processing time sample: ', time
-                      
-        END IF
-
-     END DO
-     
-     ! Cycle through the 2-d fields, retrieve the requested variable and 
-     ! append each to the appropriate netCDF file.
-     
-     DO m=1,n2d
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-        
-        call read_2d_input_files(it, varin2d(m), data2d)                  
-
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-
-        error_flag = cmor_write(                                  &
-             var_id        = var2d_ids(m),                        &
-             data          = data2d,                              &
-             ntimes_passed = 1,                                   &
-             time_vals     = time,                                &
-             time_bnds     = bnds_time  )
-        
-       IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) ' Error encountered writing IPCC Table A1a ' &
-                // 'field ', entry2d(m), ', which I call ', varin2d(m)
-           write(*,*) ' Was processing time sample: ', time 
-                      
-        END IF
-        
-     END DO
-     
-  END DO time_loop
-  
-  !   Close all files opened by CMOR.
-  
-  error_flag = cmor_close()  
-
-  print*, ' '
-  print*, '******************************'
-  print*, ' '
-  print*, 'ipcc_test_code executed to completion '   
-  print*, ' '
-  print*, '******************************'
-  
-END PROGRAM ipcc_test_code
-
diff --git a/Test/test_fortran_example_00.f90 b/Test/test_fortran_example_00.f90
deleted file mode 100644
index 35301ad..0000000
--- a/Test/test_fortran_example_00.f90
+++ /dev/null
@@ -1,447 +0,0 @@
-MODULE local_subs
-
-  USE cmor_users_functions
-!!$  PRIVATE
-!!$  PUBLIC read_coords, read_time, read_3d_input_files, read_2d_input_files
-CONTAINS
-  
-  SUBROUTINE read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-
-    IMPLICIT NONE
-    
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alats
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alons
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: plevs
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lat
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lon
-    
-    INTEGER :: i
-    
-    DO i = 1, SIZE(alons)
-       alons(i) = (i-1)*360./SIZE(alons)
-       bnds_lon(1,i) = (i - 1.5)*360./SIZE(alons)
-       bnds_lon(2,i) = (i - 0.5)*360./SIZE(alons)
-    END DO
-    
-    DO i = 1, SIZE(alats)
-       alats(i) = (size(alats)+1-i)*10
-       bnds_lat(1,i) = (size(alats)+1-i)*10 + 5.
-       bnds_lat(2,i) = (size(alats)+1-i)*10 - 5.
-    END DO
-  
-    DO i = 1, SIZE(plevs)
-       plevs(i) = i*1.0e4
-    END DO
-          plevs = (/100000., 92500., 85000., 70000.,&
-       60000., 50000., 40000., 30000., 25000., 20000.,&
-       15000., 10000., 7000., 5000., 3000., 2000., 1000. /)
-  
-
-    RETURN
-  END SUBROUTINE read_coords
-
-  SUBROUTINE read_time(it, time, time_bnds)
-    
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    DOUBLE PRECISION, INTENT(OUT) :: time
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(2,1) :: time_bnds
-    
-    time = (it-0.5)*30.
-    time_bnds(1,1) = (it-1)*30.
-    time_bnds(2,1) = it*30.
-    
-    RETURN
-  END SUBROUTINE read_time
-  
-include "reader_2D_3D.f90"
-
-END MODULE local_subs
-
-program testing
-  use cmor_users_functions
-  use local_subs
-    implicit none
-    integer error_flag
-  INTEGER, PARAMETER :: ntimes = 2    ! number of time samples to process
-  INTEGER, PARAMETER :: lon = 4       ! number of longitude grid cells  
-  INTEGER, PARAMETER :: lat = 3       ! number of latitude grid cells
-  INTEGER, PARAMETER :: lev = 5       ! number of standard pressure levels
-  INTEGER, PARAMETER :: lev2 = 17       ! number of standard pressure levels
-  INTEGER, PARAMETER :: n2d = 4       ! number of IPCC Table A1a fields to be
-                                      !     output.
-  INTEGER, PARAMETER :: n3d = 3       ! number of IPCC Table A1c fields to 
-                                      !     be output.  
-                                ! My variable names for IPCC Table A1c fields
-  CHARACTER (LEN=5), DIMENSION(n3d) :: &
-                                 varin3d=(/'CLOUD', 'U    ', 'T    '/)
-
-                                ! Units appropriate to my data
-  CHARACTER (LEN=6), DIMENSION(n3d) :: &
-                                  units3d=(/ '%     ', 'm s-1 ',   'K     ' /)
-
-                     ! Corresponding IPCC Table A1c entry (variable name) 
-  CHARACTER (LEN=2), DIMENSION(n3d) :: entry3d = (/ 'cl', 'ua', 'ta' /)
-
-                                ! My variable names for IPCC Table A1a fields
-  CHARACTER (LEN=8), DIMENSION(n2d) :: &
-                  varin2d=(/ 'LATENT  ', 'TSURF   ', 'SOIL_WET', 'PSURF   ' /)
-
-                                ! Units appropriate to my data
-   CHARACTER (LEN=6), DIMENSION(n2d) :: &
-                          units2d=(/ 'W m-2 ', 'K     ', 'kg m-2', 'Pa    ' /)
-
-   CHARACTER (LEN=4), DIMENSION(n2d) :: &
-                      positive2d= (/  'down',  '    ', '    ', '    '  /)
-
-                     ! Corresponding IPCC Table A1a entry (variable name) 
-  CHARACTER (LEN=5), DIMENSION(n2d) :: &
-                        entry2d = (/ 'hfls ', 'tas  ', 'mrsos', 'ps   ' /)
-
-!  uninitialized variables used in communicating with CMOR:
-!  ---------------------------------------------------------
-
-  INTEGER :: znondim_id, zfactor_id
-  INTEGER, DIMENSION(n2d) :: var2d_ids
-  INTEGER, DIMENSION(n3d) :: var3d_ids
-  REAL, DIMENSION(lon,lat) :: data2d
-  real, DIMENSION(lon*lat) ::  data1dtest
-  REAL, DIMENSION(lon,lat,lev2) :: data3d
-  DOUBLE PRECISION, DIMENSION(lat) :: alats
-  DOUBLE PRECISION, DIMENSION(lon) :: alons
-  DOUBLE PRECISION, DIMENSION(lev2) :: plevs
-  DOUBLE PRECISION, DIMENSION(1) :: time
-  DOUBLE PRECISION, DIMENSION(2,1):: bnds_time
-  DOUBLE PRECISION, DIMENSION(2,lat) :: bnds_lat
-  DOUBLE PRECISION, DIMENSION(2,lon) :: bnds_lon
-  DOUBLE PRECISION, DIMENSION(lev) :: zlevs
-  DOUBLE PRECISION, DIMENSION(lev+1) :: zlev_bnds
-  real, DIMENSION(lev) :: a_coeff
-  DOUBLE PRECISION, DIMENSION(lev) :: b_coeff
-  DOUBLE PRECISION :: p0,bt
-  DOUBLE PRECISION :: p0array(1)
-  real, DIMENSION(lev+1) :: a_coeff_bnds
-  DOUBLE PRECISION, DIMENSION(lev+1) :: b_coeff_bnds
-  INTEGER :: ilon, ilat, ipres, ilev, itim,i,ilon2,ilat2,itim2
-  real :: missing
-
-  !  Other variables:
-  !  ---------------------
-  
-  INTEGER :: it, m, j,k
-
-  bt=0.
-  j = CMOR_REPLACE
-  k = CMOR_EXIT_ON_MAJOR
-  error_flag = cmor_setup(inpath='Test', netcdf_file_action=j,&
-       exit_control=k)
-  print*,'Test code: done'
-  error_flag = cmor_dataset(                                   &
-       outpath='Test',                                         &
-       experiment_id='abrupt 4XCO2',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       'Geneva, Switzerland)',                                 &
-       source='GICCM1 (2002): ' //                             &
-       'atmosphere:  GICAM3 (gicam_0_brnchT_itea_2, T63L32); '// &
-       'ocean: MOM (mom3_ver_3.5.2, 2x3L15); '             //  &
-       'sea ice: GISIM4; land: GILSM2.5',                      &
-       calendar='360_day',                                      &
-       realization=1,                                          &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also '        //   &
-       'see http://www.GICC.su/giccm/doc/index.html '     //   &
-       ' 2XCO2 simulation described in Dorkey et al. '    //   &
-       '(Clim. Dyn., 2003, 323-357.)', model_id="GICCM1", &
-       forcing='TO',contact="Barry Bonds",institute_id="PCMDI",&
-       parent_experiment_id="N/A",branch_time=bt)
-  print*, 'Test code: done 2 lalala'
-  
-  call read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-  
-
-  ilat2 = cmor_axis(  &
-       table='Tables/CMIP5_Lmon',        &
-       table_entry='latitude',       &
-       units='degrees_north',        &  
-       length=lat,                   &
-       coord_vals=alats,             & 
-       cell_bounds=bnds_lat)        
-      
-  ilon2 = cmor_axis(  &
-       table='Tables/CMIP5_Lmon',        &
-       table_entry='longitude',      &
-       length=lon,                   &
-       units='degrees_east',         &
-       coord_vals=alons,             &
-       cell_bounds=bnds_lon)      
-        
-  itim2 = cmor_axis(  &
-       table='Tables/CMIP5_Lmon',        &
-       table_entry='time',           &
-       units='days since 2030-1-1',  &
-       length=ntimes,                &
-       interval='1 month')
-
-  print*, 'Test code: ok calling axis stuff lat'
-  ilat = cmor_axis(  &
-       table='Tables/CMIP5_Amon',    &
-       table_entry='latitude',       &
-       units='degrees_north',        &  
-       length=lat,                   &
-       coord_vals=alats,             & 
-       cell_bounds=bnds_lat)        
-      
-  print*, 'Test code: ok calling axis stuff lon',ilat
-  ilon = cmor_axis(  &
-       table='Tables/CMIP5_Amon',    &
-       table_entry='longitude',      &
-       length=lon,                   &
-       units='degrees_east',         &
-       coord_vals=alons,             &
-       cell_bounds=bnds_lon)      
-        
-  print*, 'Test code: ok calling axis stuff pressure',ilon
-  ipres = cmor_axis(  &
-       table='Tables/CMIP5_Amon',    &
-       table_entry='plevs',       &
-       units='Pa',                   &
-       length=lev2,                   &
-       coord_vals=plevs)
-
-  !   note that the time axis is defined next, but the time coordinate 
-  !   values and bounds will be passed to cmor through function 
-  !   cmor_write (later, below).
-
-  print*, 'Test code: ok calling axis stuff time',ipres
-  itim = cmor_axis(  &
-       table='Tables/CMIP5_Amon',    &
-       table_entry='time',           &
-       units='days since 2030-1-1',  &
-       length=ntimes,                &
-       interval='30 days')
-
-  !  define model eta levels (although these must be provided, they will
-  !    actually be replaced by a+b before writing the netCDF file)
-  zlevs = (/ 0.1, 0.3, 0.55, 0.7, 0.9 /)
-  zlev_bnds=(/ 0.,.2, .42, .62, .8, 1. /)
-
-  print*, 'Test code: ok calling axis stuff lev2',itim
-  ilev = cmor_axis(  &
-       table='Tables/CMIP5_Amon',    &
-       table_entry='standard_hybrid_sigma',       &
-       units="1",   &
-       length=lev,                   &
-       coord_vals=zlevs,             &
-       cell_bounds=zlev_bnds)
-
-  print*, 'Test code: ok called stuff lev2',ilev
-  !   define z-factors needed to transform from model level to pressure
-  p0 = 1.e5
-  p0array(1)=p0
-  a_coeff = (/ 0.1, 0.2, 0.3, 0.22, 0.1 /)
-  b_coeff = (/ 0.0, 0.1, 0.2, 0.5, 0.8 /)
-
-  a_coeff_bnds=(/0.,.15, .25, .25, .16, 0./)
-  b_coeff_bnds=(/0.,.05, .15, .35, .65, 1./)
-
-  print*, 'Test code: zfactor p0'
-  error_flag = cmor_zfactor(  &
-       zaxis_id=ilev,                      &
-       zfactor_name='p0',                  &
-       units='Pa',                         &
-       zfactor_values = p0)
-
-  print*, 'Test code: result',error_flag
-  print*, 'Test code: zfactor b'
-  error_flag = cmor_zfactor(  &
-       zaxis_id=ilev,                       & 
-       zfactor_name='b',                    &
-       axis_ids= (/ ilev /),                &
-       zfactor_values = b_coeff,            &
-       zfactor_bounds = b_coeff_bnds  )
-
-  print*, 'Test code: result',error_flag
-  print*, 'Test code: zfactor a'
-  error_flag = cmor_zfactor(  &
-       zaxis_id=ilev,                       &
-       zfactor_name='a',                    &
-       axis_ids= (/ ilev /),                &
-       zfactor_values = a_coeff,            &
-       zfactor_bounds = a_coeff_bnds )
-
-  print*, 'Test code: result',error_flag
-  print*, 'Test code: zfactor ps'
-  zfactor_id = cmor_zfactor(  &
-       zaxis_id=ilev,                         &
-       zfactor_name='ps',                     &
-       axis_ids=(/ ilon, ilat, itim /),       &
-       units='Pa' )
-
-  print*, 'Test code: result',zfactor_id
-  print*, 'Test code: var3d'
-  missing = 1.e28
-  var3d_ids(1) = cmor_variable(    &
-       table='Tables/CMIP5_Amon',  &
-       table_entry=entry3d(1),     &
-       units=units3d(1),           &
-       axis_ids=(/ ilon, ilat, ilev, itim /),  &
-       missing_value=missing, &
-       original_name=varin3d(1))
-  
-  !  Define variables appearing in IPCC table A1c that are a function of pressure
-  !         (3-d variables)
-  
-  print*, 'Test code: result',var3d_ids(1)
-  DO m=2,n3d
-     print*, 'Test code: var: ',entry3d(m)
-     var3d_ids(m) = cmor_variable(    &
-          table='Tables/CMIP5_Amon',  &
-          table_entry=entry3d(m),     &
-          units=units3d(m),           &
-          axis_ids=(/ ilon, ilat, ipres, itim /), &
-          missing_value=missing,       &
-          original_name=varin3d(m))
-     print*, 'Test code: result',var3d_ids(m)
-  ENDDO
-  
-
-  !  Define variables appearing in IPCC table A1a (2-d variables)
-  
-  DO m=1,n2d
-     print*, 'Test code: var: ',entry2d(m)
-     if (m.ne.3) then
-     var2d_ids(m) = cmor_variable(    &
-          table='Tables/CMIP5_Amon',      &
-          table_entry=entry2d(m),     & 
-          units=units2d(m),           & 
-          axis_ids=(/ ilon, ilat, itim /), &
-          missing_value=1.0e28,       &
-          positive=positive2d(m),     &
-          original_name=varin2d(m))   
-  else
-     var2d_ids(m) = cmor_variable(    &
-          table='Tables/CMIP5_Lmon',      &
-          table_entry=entry2d(m),     & 
-          units=units2d(m),           & 
-          axis_ids=(/ ilon2, ilat2, itim2 /), &
-          missing_value=1.0e28,       &
-          positive=positive2d(m),     &
-          original_name=varin2d(m)) 
-  endif
-     print*, 'Test code: result',var2d_ids(m)
-  ENDDO
-
-  PRINT*, 'Test code:  '
-  PRINT*, 'Test code: completed everything up to writing output fields '
-  PRINT*, 'Test code:  '
-  time_loop: DO it=1, ntimes
-     
-     ! In the following loops over the 3d and 2d fields, the user-written    
-     ! subroutines (read_3d_input_files and read_2d_input_files) retrieve 
-     ! the requested IPCC table A1c and table A1a fields and store them in 
-     ! data3d and data2d, respectively.  In addition a user-written code 
-     ! (read_time) retrieves the time and time-bounds associated with the 
-     ! time sample (in units of 'days since 1970-1-1', consistent with the 
-     ! axis definitions above).  The bounds are set to the beginning and 
-     ! the end of the month retrieved, indicating the averaging period.
-     
-     ! The user must write a code to obtain the times and time-bounds for
-     !   the time slice.  The following line is simply a place-holder for
-     !   the user's code, which should replace it.
-     
-    call read_time(it, time(1), bnds_time)
-
-    call read_3d_input_files(it, varin3d(1), data3d)
-
-    error_flag = cmor_write(                                  &
-         var_id        = var3d_ids(1),                        &
-         data          = data3d,                              &
-         ntimes_passed = 1,                                   &
-         time_vals     = time,                                &
-         time_bnds     = bnds_time   )
-
-    call read_2d_input_files(it, varin2d(4), data2d)                  
-
-    error_flag = cmor_write(                                  &
-         var_id        = zfactor_id,                          &
-         data          = data2d,                              &
-         ntimes_passed = 1,                                   &
-         time_vals     = time,                                &
-         time_bnds     = bnds_time,                           &
-         store_with    = var3d_ids(1) )
-
-    print*, 'Test code: result',error_flag
-   ! Cycle through the 3-d fields (stored on pressure levels), 
-    ! and retrieve the requested variable and append each to the 
-    ! appropriate netCDF file.
-
-    DO m=2,n3d
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-
-        call read_3d_input_files(it, varin3d(m), data3d)
-       
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-        
-        error_flag = cmor_write(                                  &
-             var_id        = var3d_ids(m),                        &
-             data          = data3d,                              &
-             ntimes_passed = 1,                                   &
-             time_vals     = time,                                &
-             time_bnds     = bnds_time  )
-        
-        IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) 'Test code:  Error encountered writing IPCC Table A1c ' &
-                // 'field ', entry3d(m), ', which I call ', varin3d(m)
-           write(*,*) 'Test code:  Was processing time sample: ', time
-                      
-        END IF
-
-     END DO
-!!$     
-!!$     ! Cycle through the 2-d fields, retrieve the requested variable and 
-!!$     ! append each to the appropriate netCDF file.
-!!$     
-     DO m=1,n2d
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-        
-        call read_2d_input_files(it, varin2d(m), data2d)                  
-
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-
-        error_flag = cmor_write(                                  &
-             var_id        = var2d_ids(m),                        &
-             data          = data2d,                              &
-             ntimes_passed = 1,                                   &
-             time_vals     = time,                                &
-             time_bnds     = bnds_time  )
-        
-       IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) 'Test code:  Error encountered writing IPCC Table A1a ' &
-                // 'field ', entry2d(m), ', which I call ', varin2d(m)
-           write(*,*) 'Test code:  Was processing time sample: ', time 
-                      
-        END IF
-        
-     END DO
-     
-  END DO time_loop
-
-  error_flag = cmor_close()
-
-end program testing
diff --git a/Test/test_fortran_example_01.f90 b/Test/test_fortran_example_01.f90
deleted file mode 100644
index d3672cf..0000000
--- a/Test/test_fortran_example_01.f90
+++ /dev/null
@@ -1,265 +0,0 @@
-MODULE local_subs
-
-  USE cmor_users_functions
-!!$  PRIVATE
-!!$  PUBLIC read_coords, read_time, read_3d_input_files, read_2d_input_files
-CONTAINS
-  
-  SUBROUTINE read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-
-    IMPLICIT NONE
-    
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alats
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alons
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: plevs
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lat
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lon
-    
-    INTEGER :: i
-    
-    DO i = 1, SIZE(alons)
-       alons(i) = (i-1)*360./SIZE(alons)
-       bnds_lon(1,i) = (i - 1.5)*360./SIZE(alons)
-       bnds_lon(2,i) = (i - 0.5)*360./SIZE(alons)
-    END DO
-    
-    DO i = 1, SIZE(alats)
-       alats(i) = (size(alats)+1-i)*10
-       bnds_lat(1,i) = (size(alats)+1-i)*10 + 5.
-       bnds_lat(2,i) = (size(alats)+1-i)*10 - 5.
-    END DO
-  
-    DO i = 1, SIZE(plevs)
-       plevs(i) = i*1.0e4
-    END DO
-    
-    RETURN
-  END SUBROUTINE read_coords
-
-  SUBROUTINE read_time(it, time, time_bnds)
-    
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    DOUBLE PRECISION, INTENT(OUT) :: time
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(2,1) :: time_bnds
-    
-    time = (it-0.5)*30.
-    time_bnds(1,1) = (it-1)*30.
-    time_bnds(2,1) = it*30.
-    
-    RETURN
-  END SUBROUTINE read_time
-  
-include "reader_2D_3D.f90"
-
-END MODULE local_subs
-
-program testing
-  use cmor_users_functions
-  use local_subs
-    implicit none
-    integer error_flag
-  INTEGER, PARAMETER :: nvert = 4    ! number of time samples to process
-  INTEGER, PARAMETER :: ntimes = 2    ! number of time samples to process
-  INTEGER, PARAMETER :: lon = 3       ! number of longitude grid cells  
-  INTEGER, PARAMETER :: lat = 4       ! number of latitude grid cells
-  INTEGER, PARAMETER :: lev = 5       ! number of standard pressure levels
-  INTEGER, PARAMETER :: n2d = 4       ! number of IPCC Table A1a fields to be
-                                      !     output.
-  INTEGER, PARAMETER :: n3d = 3       ! number of IPCC Table A1c fields to 
-                                      !     be output.  
-                                ! My variable names for IPCC Table A1c fields
-  CHARACTER (LEN=5), DIMENSION(n3d) :: &
-                                 varin3d=(/'CLOUD', 'U    ', 'T    '/)
-
-                                ! Units appropriate to my data
-  CHARACTER (LEN=6), DIMENSION(n3d) :: &
-                                  units3d=(/ '%     ', 'm s-1 ',   'K     ' /)
-
-                     ! Corresponding IPCC Table A1c entry (variable name) 
-  CHARACTER (LEN=2), DIMENSION(n3d) :: entry3d = (/ 'cl', 'ua', 'ta' /)
-
-                                ! My variable names for IPCC Table A1a fields
-  CHARACTER (LEN=8), DIMENSION(n2d) :: &
-                  varin2d=(/ 'LATENT  ', 'TSURF   ', 'SOIL_WET', 'PSURF   ' /)
-
-                                ! Units appropriate to my data
-   CHARACTER (LEN=6), DIMENSION(n2d) :: &
-                          units2d=(/ 'W m-2 ', 'K     ', 'kg m-2', 'Pa    ' /)
-
-   CHARACTER (LEN=4), DIMENSION(n2d) :: &
-                      positive2d= (/  'down',  '    ', '    ', '    '  /)
-
-                     ! Corresponding IPCC Table A1a entry (variable name) 
-  CHARACTER (LEN=5), DIMENSION(n2d) :: &
-                        entry2d = (/ 'hfls ', 'tas  ', 'mrsos', 'ps   ' /)
-
-!  uninitialized variables used in communicating with CMOR:
-!  ---------------------------------------------------------
-
-  INTEGER :: znondim_id, zfactor_id
-  INTEGER, DIMENSION(n2d) :: var2d_ids
-  INTEGER, DIMENSION(n3d) :: var3d_ids
-  REAL, DIMENSION(lon,lat) :: data2d
-  real, DIMENSION(lon*lat) ::  data1dtest
-  REAL, DIMENSION(lon,lat,lev) :: data3d
-  DOUBLE PRECISION, DIMENSION(lat) :: alats
-  DOUBLE PRECISION, DIMENSION(lon) :: alons
-  DOUBLE PRECISION, DIMENSION(lev) :: plevs
-  DOUBLE PRECISION, DIMENSION(1) :: time
-  DOUBLE PRECISION, DIMENSION(2,1):: bnds_time
-  DOUBLE PRECISION, DIMENSION(2,lat) :: bnds_lat
-  DOUBLE PRECISION, DIMENSION(2,lon) :: bnds_lon
-  DOUBLE PRECISION, DIMENSION(lev) :: zlevs
-  DOUBLE PRECISION, DIMENSION(lev+1) :: zlev_bnds
-  real, DIMENSION(lev) :: a_coeff
-  DOUBLE PRECISION, DIMENSION(lev) :: b_coeff
-  DOUBLE PRECISION :: p0,bt
-  DOUBLE PRECISION :: p0array(1)
-  real, DIMENSION(lev+1) :: a_coeff_bnds
-  DOUBLE PRECISION, DIMENSION(lev+1) :: b_coeff_bnds
-  INTEGER :: ilon, ilat, ipres, ilev, itim,i
-  real :: missing
-  character(1024) inpath,mapnm
-  character(len=30),dimension(6) ::params =(/ "standard_parallel1            ",&
-       "longitude_of_central_meridian ","latitude_of_projection_origin ",&
-       "false_easting                 ","false_northing                ", &
-       "standard_parallel2            " /)
-  character(len=5) ,dimension(6) :: punits = (/ "     ","     ","     ","     ","     ","     " /)
-  double precision,dimension(6) :: pvalues = (/-20.,175.,13.,8.,0.,20. /)
-  !  Other variables:
-  !  ---------------------
-  
-  INTEGER :: it, m, j,k,tables(2),vars(10),axes(10)
-
-  integer pass_axes(2)
-
-  integer :: grid_id
-
-
-  real lon_coords(lon,lat),lat_coords(lon,lat)
-  real lon_vertices(nvert,lon,lat),lat_vertices(nvert,lon,lat)
-  real area(lon,lat)
-  real x(lon),y(lat)
-  
-  real lon0,lat0,delta_lon,delta_lat
-  
-  bt=0.
-
-  lon0 = 280.
-  lat0=0.;
-  delta_lon = 10.;
-  delta_lat = 10.;
-  
-!!$  /* first construct grid lon/lat */
-  do j=1,lat
-     y(j)=j
-     do i=1,lon
-        x(i)=i
-        lon_coords(i,j) = lon0+delta_lon*(j+i-1);
-        lat_coords(i,j) = lat0+delta_lat*(j-i-2);
-!!$      /* vertices lon*/
-!!$      k = i*4+j*lon*4+0;
-!!$      printf('i,j,k: %i, %i, %i\n',i,j,k);
-        lon_vertices(1,i,j) = lon_coords(i,j)-delta_lon;
-        lon_vertices(2,i,j) = lon_coords(i,j);
-        lon_vertices(3,i,j) = lon_coords(i,j)+delta_lon;
-        lon_vertices(4,i,j) = lon_coords(i,j);
-!!$      /* vertices lat */
-        lat_vertices(1,i,j) = lat_coords(i,j);
-        lat_vertices(2,i,j) = lat_coords(i,j)-delta_lat;
-        lat_vertices(3,i,j) = lat_coords(i,j);
-        lat_vertices(4,i,j) = lat_coords(i,j)+delta_lat;
-     end do
-  end do
-
-  inpath ='Test'
-  j = CMOR_REPLACE
-  k = CMOR_EXIT_ON_MAJOR
-  error_flag = cmor_setup(inpath='Test', netcdf_file_action=j,&
-       exit_control=k)
-  
-    error_flag = cmor_dataset(                                   &
-       outpath='Test',                                         &
-       experiment_id='abrupt 4XCO2',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       'Geneva, Switzerland)',                                 &
-       source='GICCM1 (2002): ' //                             &
-       'atmosphere:  GICAM3 (gicam_0_brnchT_itea_2, T63L32); '// &
-       'ocean: MOM (mom3_ver_3.5.2, 2x3L15); '             //  &
-       'sea ice: GISIM4; land: GILSM2.5',                      &
-       calendar='360_day',                                      &
-       realization=1,                                          &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also '        //   &
-       'see http://www.GICC.su/giccm/doc/index.html '     //   &
-       ' 2XCO2 simulation described in Dorkey et al. '    //   &
-       '(Clim. Dyn., 2003, 323-357.)',model_id="GICCM1", &
-       forcing='TO',contact="Barry Bonds",institute_id="PCMDI",&
-       parent_experiment_id="N/A",branch_time=bt)
-
-    tables(1) = cmor_load_table('Tables/CMIP5_Amon')
-    tables(2) = cmor_load_table('Tables/CMIP5_grids')
-
-    axes(1) = cmor_axis(table_entry = 'x', &
-                        units = 'm', &
-                        length = lon, &
-                        coord_vals = x)
-    axes(2) = cmor_axis(table_entry = 'y', &
-                        units = 'm', &
-                        length = lat, &
-                        coord_vals = y)
-                        
-    grid_id = cmor_grid(axis_ids = axes, &
-                        latitude = lat_coords, &
-                        longitude = lon_coords, &
-                        latitude_vertices = lat_vertices, &
-                        longitude_vertices = lon_vertices)
-    print*, 'Got grid id: ',grid_id
-    
-    mapnm = 'lambert_conformal_conic'
-    error_flag = cmor_set_grid_mapping(grid_id,&
-         mapnm,params,pvalues,punits)
-
-    call cmor_set_table(table_id=tables(2))
-
-     
-    axes(3) = cmor_axis(table = 'Tables/CMIP5_Amon',&
-                        table_entry = 'time',&
-                        units = 'days since 1980',&
-                        length = 2 &
-                        )
-    
-    
-    pass_axes(2) = axes(3)
-    pass_axes(1) = grid_id
-    
-    vars(1) = cmor_variable(table = 'Tables/CMIP5_Amon',&
-                            table_entry = 'hfls',&
-                            units = 'W m-2',&
-                            axis_ids = pass_axes,&
-                            positive = 'down',&
-                            original_name = 'HFLS',&
-                            history = 'no history',&
-                            comment = 'no future'&
-                            )
-    do i=1,ntimes
-       call read_time(i, time(1), bnds_time)
-       print*, 'Test code: writing time:',i,'of',ntimes,time(1)
-       call read_2d_input_files(i, 'LATENT', data2d)
-       error_flag = cmor_write(var_id = vars(1) ,&
-                               data =data2d,&
-                               ntimes_passed = 1,&
-                               time_vals = time,&
-                               time_bnds = bnds_time)
-    end do
-   error_flag = cmor_close()
-    
-  end program testing
-  
diff --git a/Test/test_fortran_example_02.f90 b/Test/test_fortran_example_02.f90
deleted file mode 100644
index 2680528..0000000
--- a/Test/test_fortran_example_02.f90
+++ /dev/null
@@ -1,376 +0,0 @@
-MODULE local_subs
-
-  USE cmor_users_functions
-!!$  PRIVATE
-!!$  PUBLIC read_coords, read_time, read_3d_input_files, read_2d_input_files
-CONTAINS
-  
-  SUBROUTINE read_coords(alats, alons, plevs, bnds_lat, bnds_lon, station, st_lons, st_lats)
-
-    IMPLICIT NONE
-    
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alats
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alons
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: plevs
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lat
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lon
-    INTEGER, INTENT(OUT), DIMENSION(:) ::  station
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: st_lats
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: st_lons
-    
-    INTEGER :: i, j, k
-    
-    DO i = 1, SIZE(alons)
-       alons(i) = (i-1)*360./SIZE(alons)
-       bnds_lon(1,i) = (i - 1.5)*360./SIZE(alons)
-       bnds_lon(2,i) = (i - 0.5)*360./SIZE(alons)
-    END DO
-    
-    DO i = 1, SIZE(alats)
-       alats(i) = (size(alats)+1-i)*10
-       bnds_lat(1,i) = (size(alats)+1-i)*10 + 5.
-       bnds_lat(2,i) = (size(alats)+1-i)*10 - 5.
-    END DO
-  
-    DO i = 1, SIZE(plevs)
-       plevs(i) = i*1.0e4
-    END DO
-    
-    k = 1
-    DO i = 1, SIZE(alons)
-      DO j = 1, SIZE(alats)
-        station(k) = k
-        st_lons(k) = alons(i)
-        st_lats(k) = alats(j)
-        k = k+1
-      END DO   
-    END DO 
-    
-    
-    RETURN
-  END SUBROUTINE read_coords
-
-  SUBROUTINE read_time(it, time, time_bnds)
-    
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    DOUBLE PRECISION, INTENT(OUT) :: time
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(2,1) :: time_bnds
-    
-    time = (it-0.5)*30.
-    time_bnds(1,1) = (it-1)*30.
-    time_bnds(2,1) = it*30.
-    
-    RETURN
-  END SUBROUTINE read_time
-  
-  !------------------------------------------------
-  SUBROUTINE read_3d_input_files(it, varname, field)
-
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    CHARACTER(len=*), INTENT(IN) :: varname
-    REAL, INTENT(OUT), DIMENSION(:,:,:) :: field
-    
-    INTEGER :: i, j, k
-    REAL :: factor, offset
-    CHARACTER(len=LEN(varname)) :: tmp
-    
-    tmp = TRIM(ADJUSTL(varname))
-    SELECT CASE (tmp)
-    CASE ('CLOUD')  
-       factor = 0.1
-       offset = -50.
-    CASE ('U')  
-       factor = 1.
-       offset = 100.
-    CASE ('T')
-       factor = 0.5
-       offset = -150.
-    END SELECT
-    
-    DO k=1,SIZE(field, 3)
-       DO j=1,SIZE(field, 2)
-          DO i=1,SIZE(field, 1)
-             field(i,j,k) = ((k-1)*64 + (j-1)*16 + (i-1)*4 + it)*factor - offset
-          END DO
-       END DO
-    END DO
-    
-  END SUBROUTINE read_3d_input_files
-  
-  !------------------------------------------------
-  SUBROUTINE read_2d_input_files(it, varname, field)
-
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    CHARACTER(len=*), INTENT(IN) :: varname
-    REAL, INTENT(OUT), DIMENSION(:,:) :: field
-    
-    INTEGER :: i, j
-    REAL :: factor, offset
-    CHARACTER(len=LEN(varname)) :: tmp
-    
-    tmp = TRIM(ADJUSTL(varname))
-    SELECT CASE (tmp)
-    CASE ('LATENT')  
-       
-       factor = 1.
-       offset = 20.
-    CASE ('TSURF')
-       factor = 2.0
-       offset = -220.
-    CASE ('SOIL_WET')
-       factor = 10.
-       offset = 0.
-    CASE ('PSURF')
-       factor = 100.
-       offset = -9.7e4
-    END SELECT
-    
-    DO j=1,SIZE(field, 2)
-       DO i=1,SIZE(field, 1)
-          field(i,size(field,2)+1-j) = ((j-1)*16 + (i-1)*4 + it)*factor - offset
-       END DO
-    END DO
-
-  END SUBROUTINE read_2d_input_files
-
-END MODULE local_subs
-
-
-!=======================================================
-program testing
-  use cmor_users_functions
-  use local_subs
-    implicit none
-    integer error_flag
-  INTEGER, PARAMETER :: ntimes = 2    ! number of time samples to process
-  INTEGER, PARAMETER :: lon = 4       ! number of longitude grid cells  
-  INTEGER, PARAMETER :: lat = 3       ! number of latitude grid cells
-  INTEGER, PARAMETER :: lev = 5       ! number of standard pressure levels
-  INTEGER, PARAMETER :: nst = 12      ! number of stations
-  INTEGER, PARAMETER :: n2d = 4       ! number of IPCC Table A1a fields to be
-                                      !     output.
-  INTEGER, PARAMETER :: n3d = 3       ! number of IPCC Table A1c fields to 
-                                      !     be output.  
-                                ! My variable names for IPCC Table A1c fields
-  CHARACTER (LEN=5), DIMENSION(n3d) :: &
-                                 varin3d=(/'CLOUD', 'U    ', 'T    '/)
-
-                                ! Units appropriate to my data
-  CHARACTER (LEN=6), DIMENSION(n3d) :: &
-                                  units3d=(/ '%     ', 'm s-1 ',   'K     ' /)
-
-                     ! Corresponding IPCC Table A1c entry (variable name) 
-  CHARACTER (LEN=2), DIMENSION(n3d) :: entry3d = (/ 'cl', 'ua', 'ta' /)
-
-                                ! My variable names for IPCC Table A1a fields
-  CHARACTER (LEN=8), DIMENSION(n2d) :: &
-                  varin2d=(/ 'LATENT  ', 'TSURF   ', 'SOIL_WET', 'PSURF   ' /)
-
-                                ! Units appropriate to my data
-   CHARACTER (LEN=6), DIMENSION(n2d) :: &
-                          units2d=(/ 'W m-2 ', 'K     ', 'kg m-2', 'Pa    ' /)
-
-   CHARACTER (LEN=4), DIMENSION(n2d) :: &
-                      positive2d= (/  'down',  '    ', '    ', '    '  /)
-
-                     ! Corresponding IPCC Table A1a entry (variable name) 
-  CHARACTER (LEN=5), DIMENSION(n2d) :: &
-                        entry2d = (/ 'hfls ', 'tas  ', 'mrsos', 'ps   ' /)
-
-  INTEGER igrid;
-                          
-!  uninitialized variables used in communicating with CMOR:
-!  ---------------------------------------------------------
-
-  INTEGER :: znondim_id, zfactor_id
-  INTEGER, DIMENSION(n2d) :: var2d_ids
-  INTEGER, DIMENSION(n3d) :: var3d_ids
-  REAL, DIMENSION(lon,lat) :: data2d
-  real, DIMENSION(lon*lat) ::  data1dtest
-  REAL, DIMENSION(lon,lat,lev) :: data3d
-  REAL, DIMENSION(lon*lat,lev) :: data2d_st
-  DOUBLE PRECISION, DIMENSION(lat) :: alats
-  DOUBLE PRECISION, DIMENSION(lon) :: alons
-  DOUBLE PRECISION, DIMENSION(lev) :: plevs
-  INTEGER, DIMENSION(lon*lat) :: station
-  DOUBLE PRECISION, DIMENSION(lon*lat) :: st_lons
-  DOUBLE PRECISION, DIMENSION(lon*lat) :: st_lats
-  DOUBLE PRECISION, DIMENSION(1) :: time
-  DOUBLE PRECISION, DIMENSION(2,1):: bnds_time
-  DOUBLE PRECISION, DIMENSION(2,lat) :: bnds_lat
-  DOUBLE PRECISION, DIMENSION(2,lon) :: bnds_lon
-  DOUBLE PRECISION, DIMENSION(lev) :: zlevs
-  DOUBLE PRECISION, DIMENSION(lev+1) :: zlev_bnds
-  real, DIMENSION(lev) :: a_coeff
-  DOUBLE PRECISION, DIMENSION(lev) :: b_coeff
-  DOUBLE PRECISION :: p0
-  DOUBLE PRECISION :: p0array(1)
-  real, DIMENSION(lev+1) :: a_coeff_bnds
-  DOUBLE PRECISION, DIMENSION(lev+1) :: b_coeff_bnds
-  INTEGER :: ilon, ilat, ipres, ilev, itim, i, ist
-  real :: missing
-
-  !  Other variables:
-  !  ---------------------
-  
-  INTEGER :: it, m, j,k
-
-  j = CMOR_REPLACE
-  k = CMOR_EXIT_ON_MAJOR
-  error_flag = cmor_setup(inpath='Test', netcdf_file_action=j,&
-       exit_control=k)
-  print*,'Test code: done'
-  error_flag = cmor_dataset(                                   &
-       outpath='Test',                                         &
-       experiment_id='2xCO2 equilibrium experiment',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       'Geneva, Switzerland)',                                 &
-       source='GICCM1 (2002): ' //                             &
-       'atmosphere:  GICAM3 (gicam_0_brnchT_itea_2, T63L32); '// &
-       'ocean: MOM (mom3_ver_3.5.2, 2x3L15); '             //  &
-       'sea ice: GISIM4; land: GILSM2.5',                      &
-       calendar='360_day',                                      &
-       realization=1,                                          &
-       contact = 'Rusty Koder (koder at middle_earth.net) ',      &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also '        //   &
-       'see http://www.GICC.su/giccm/doc/index.html '     //   &
-       ' 2XCO2 simulation described in Dorkey et al. '    //   &
-       '(Clim. Dyn., 2003, 323-357.)' )
-  print*, 'Test code: done 2 lalala'
-  
-  call read_coords(alats, alons, plevs, bnds_lat, bnds_lon, station, st_lons, st_lats)
-  
-
-  print*, 'Test code: ok calling axis stuff station'
-  ist = cmor_axis(  &
-       table='IPCC_test_table_S',    &
-       table_entry='station',       &
-       units=' ',        &  
-       length=nst,                   &
-       coord_vals=station )      
-       
-   
-  print*, 'Test code: ok calling axis stuff pressure',ilon
-  ipres = cmor_axis(  &
-       table='IPCC_test_table_S',    &
-       table_entry='pressure',       &
-       units='Pa',                   &
-       length=lev,                   &
-       coord_vals=plevs)
-
-  !   note that the time axis is defined next, but the time coordinate 
-  !   values and bounds will be passed to cmor through function 
-  !   cmor_write (later, below).
-
-  print*, 'Test code: ok calling axis stuff time',ipres
-  itim = cmor_axis(  &
-       table='IPCC_test_table_S',    &
-       table_entry='time',           &
-       units='days since 2030-1-1',  &
-       length=ntimes,                &
-       interval='20 minutes')
-
-  
-       
-  igrid = cmor_grid((/ist/), st_lats, st_lons)       
-       
-  write(*,'(a, 12f6.1)'), 'lons: ',st_lons
-  write(*,'(a, 12f6.1)'), 'lats: ',st_lats
-  
-  !===============================================================
-  print*, ' '
-   
-
-  !  Define variables appearing in IPCC table A1a (2-d variables)
-  DO m=1,4
-     print*, 'Test code: var:  ',entry2d(m)
-     var2d_ids(m) = cmor_variable(    &
-          table='IPCC_test_table_S',  &
-          table_entry=entry2d(m),     & 
-          units=units2d(m),           & 
-          axis_ids=(/ igrid, itim /), &
-          missing_value=missing,       &
-          positive=positive2d(m),     &
-          original_name=varin2d(m))   
-     print*, 'Test code: result',var2d_ids(m)
-  ENDDO   
-  
-
-  PRINT*, 'Test code:  '
-  PRINT*, 'Test code: completed everything up to writing output fields '
-  PRINT*, 'Test code:  '
-  time_loop: DO it=1, ntimes
-     
-     ! In the following loops over the 3d and 2d fields, the user-written    
-     ! subroutines (read_3d_input_files and read_2d_input_files) retrieve 
-     ! the requested IPCC table A1c and table A1a fields and store them in 
-     ! data3d and data2d, respectively.  In addition a user-written code 
-     ! (read_time) retrieves the time and time-bounds associated with the 
-     ! time sample (in units of 'days since 1970-1-1', consistent with the 
-     ! axis definitions above).  The bounds are set to the beginning and 
-     ! the end of the month retrieved, indicating the averaging period.
-     
-     ! The user must write a code to obtain the times and time-bounds for
-     !   the time slice.  The following line is simply a place-holder for
-     !   the user's code, which should replace it.
-     
-    call read_time(it, time(1), bnds_time)
-
-    
-!!$     
-!!$     ! Cycle through the 2-d fields, retrieve the requested variable and 
-!!$     ! append each to the appropriate netCDF file.
-!!$     
-     DO m=1,n2d
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-        
-        call read_2d_input_files(it, varin2d(m), data2d)    
-        k = 1  
-        DO j = 1, lat
-          data1dtest(k:k+lat) = data2d(:,j) 
-          k = k+lat+1 
-        END DO   
-        !write(*,'(a, 12(f8.1,1x))'), entry2d(m), data1dtest            
-
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-
-        error_flag = cmor_write(                                  &
-             var_id        = var2d_ids(m),                        &
-             data          = data1dtest,                          &
-             file_suffix ="ftn-02",                               &
-             ntimes_passed = 1,                                   &
-             time_vals     = time,                                &
-             time_bnds     = bnds_time  )
-        
-       IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) 'Test code:  Error encountered writing IPCC Table A1a ' &
-                // 'field ', entry2d(m), ', which I call ', varin2d(m)
-           write(*,*) 'Test code:  Was processing time sample: ', time 
-                      
-        END IF
-        
-     END DO 
-     
-     
-  END DO time_loop
-
-  error_flag = cmor_close()
-
-end program testing
diff --git a/Test/test_grid.c b/Test/test_grid.c
deleted file mode 100644
index 63d17ce..0000000
--- a/Test/test_grid.c
+++ /dev/null
@@ -1,179 +0,0 @@
-#include <time.h>
-#include <stdio.h>
-#include<string.h>
-#include "cmor.h"
-#include <stdlib.h>
-#include <math.h>
-
-void read_time(it, time, time_bnds)
-     int it;
-     double time[];
-     double time_bnds[];
-{    
-  time[0] = (it-0.5)*30.;
-  time_bnds[0] = (it-1)*30.;
-  time_bnds[1] = it*30.;
-
-  time[0]=it;
-  time_bnds[0] = it;
-  time_bnds[1] = it+1;
-
-}
-  
-#include "reader_2D_3D.h"
-
-int main()
-{
-
-  /*   dimension parameters: */
-  /* --------------------------------- */
-#define   ntimes  2    /* number of time samples to process */
-#define   lon  3       /* number of longitude grid cells   */
-#define   lat  4       /* number of latitude grid cells */
-#define   lev  5       /* number of standard pressure levels */
-
-  double x[lon];
-  double y[lat];
-  double lon_coords[lon*lat];
-  double lat_coords[lon*lat];
-  double lon_vertices[lon*lat*4];
-  double lat_vertices[lon*lat*4];
- 
-  double data2d[lat*lon];
-  double data3d[lev*lat*lon];
-
-  int myaxes[10];
-  int mygrids[10];
-  int myvars[10];
-  int tables[4];
-  int axes_ids[CMOR_MAX_DIMENSIONS];
-  int i,j,k,ierr;
-
-  double Time[ntimes];
-  double  bnds_time[ntimes*2];
-  double tolerance=1.e-4;
-  double lon0 = 280.;
-  double lat0=0.;
-  double delta_lon = 10.;
-  double delta_lat = 10.;
-  char id[CMOR_MAX_STRING];
-  double tmpf=0.;
-
-#define nparam 6 /* number of grid parameters */
-#define lparam 40
-#define lunits 14
-  char params[nparam][lparam] = {"standard_parallel1","longitude_of_central_meridian","latitude_of_projection_origin","false_easting","false_northing","standard_parallel2"};
-  char punits[nparam][lunits] = {"degrees_north","degrees_east","degrees_north","m","m","degrees_north"};
-  //char punits[nparam][lunits] = {"","","","","",""};
-  double pvalues[nparam] = {-20.,175.,13.,8.,0.,20};
-  int exit_mode;
-  /* first construct grid lon/lat */
-  for (j=0;j<lat;j++) {
-    y[j]=j;
-    for (i=0;i<lon;i++) {
-      x[i]=i;
-      lon_coords[i+j*lon] = lon0+delta_lon*(j+1+i);
-      lat_coords[i+j*lon] = lat0+delta_lat*(j+1-i);
-      /* vertices lon*/
-      k = i*4+j*lon*4+0;
-      printf("i,j,k: %i, %i, %i\n",i,j,k);
-      lon_vertices[i*4+j*lon*4+0] = lon_coords[i+j*lon]-delta_lon;
-      lon_vertices[i*4+j*lon*4+1] = lon_coords[i+j*lon];
-      lon_vertices[i*4+j*lon*4+2] = lon_coords[i+j*lon]+delta_lon;
-      lon_vertices[i*4+j*lon*4+3] = lon_coords[i+j*lon];
-      /* vertices lat */
-      lat_vertices[i*4+j*lon*4+0] = lat_coords[i+j*lon];
-      lat_vertices[i*4+j*lon*4+1] = lat_coords[i+j*lon]-delta_lat;
-      lat_vertices[i*4+j*lon*4+2] = lat_coords[i+j*lon];
-      lat_vertices[i*4+j*lon*4+3] = lat_coords[i+j*lon]+delta_lat;
-      }
-  }
-
-  exit_mode = CMOR_EXIT_ON_MAJOR;
-  j = CMOR_REPLACE;
-  printf("Test code: ok init cmor, %i\n",exit_mode);
-  ierr = cmor_setup(NULL,&j,NULL,&exit_mode,NULL,NULL);
-  printf("Test code: ok init cmor\n");
-  int tmpmo[12];
-  ierr = cmor_dataset(
-       "Test",
-       "amip",
-       "GICC (Generic International Climate Center, Geneva, Switzerland)",
-       "GICCM1 (2002): atmosphere:  GICAM3 (gicam_0_brnchT_itea_2, T63L32); ocean: MOM (mom3_ver_3.5.2, 2x3L15); sea ice: GISIM4; land: GILSM2.5",
-       "standard",
-       1,
-       "Rusty Koder (koder at middle_earth.net)",
-       "Output from archive/giccm_03_std_2xCO2_2256.",
-       "Equilibrium reached after 30-year spin-up after which data were output starting with nominal date of January 2030",
-       "Model described by Koder and Tolkien (J. Geophys. Res., 2001, 576-591).  Also see http://www.GICC.su/giccm/doc/index.html  2XCO2 simulation described in Dorkey et al. '(Clim. Dyn., 2003, 323-357.)",
-       0,
-       0,
-       tmpmo,
-       "GICCM1\0","N/A",0,0,"GICC","N/A",&tmpf);
-  printf("Test code: ok load cmor table(s)\n");
-  ierr = cmor_load_table("Tables/CMIP5_Amon",&tables[1]);
-  printf("Test code: ok load cmor table(s)\n");
-  //ierr = cmor_load_table("Test/IPCC_test_table_Grids",&tables[0]);
-  ierr = cmor_load_table("Tables/CMIP5_grids",&tables[0]);
-  printf("Test code: ok load cmor table(s)\n");
-  ierr = cmor_set_table(tables[0]);
-
-  /* first define grid axes (x/y/rlon/rlat,etc... */
-  ierr = cmor_axis(&myaxes[0],"x","m",lon,&x[0],'d',NULL,0,NULL);
-  printf("Test code: ok got axes id: %i for 'x'\n",myaxes[0]);
-  ierr = cmor_axis(&myaxes[1],"y","m",lat,&y[0],'d',NULL,0,NULL);
-  printf("Test code: ok got axes id: %i for 'y'\n",myaxes[1]);
-
-  axes_ids[0] = myaxes[1];
-  axes_ids[1] = myaxes[0];
-  /*now defines the grid */
-  printf("going to grid stuff \n");
-    ierr = cmor_grid(&mygrids[0],2,&axes_ids[0],'d',&lat_coords[0],&lon_coords[0],4,&lat_vertices[0],&lon_vertices[0]);
-    //ierr = cmor_grid(&mygrids[0],2,&axes_ids[0],'d',&lat_coords[0],&lon_coords[0],0,NULL,NULL);
-
-  for (i=0;i<cmor_grids[0].ndims;i++) {
-    printf("Dim : %i the grid has the follwoing axes on itself: %i (%s)\n",i,cmor_grids[0].axes_ids[i],cmor_axes[cmor_grids[0].axes_ids[i]].id);
-  }
-
-
-
-  /* ok puts some grid mappings in it,  not sure these parmeters make sens! */
-  for(i=0;i<nparam;i++) printf("Test code: ok paramter: %i is: %s, with value %lf and units '%s'\n",i,params[i],pvalues[i],punits[i]);
-  
-  printf("back from grid going to mapping \n");
-  ierr = cmor_set_grid_mapping(mygrids[0],"lambert_conformal_conic",nparam-1,&params[0][0],lparam,pvalues,&punits[0][0],lunits);
-
-
-  for (i=0;i<cmor_grids[0].ndims;i++) {
-    printf("New Dim : %i the grid has the follwoing axes on itself: %i (%s)\n",i,cmor_grids[0].axes_ids[i],cmor_axes[cmor_grids[0].axes_ids[i]].id);
-  }
-
-  /* ok sets back the vars table */
-  cmor_set_table(tables[1]);
-
-
-  for(i=0;i<ntimes;i++) read_time(i, &Time[i], &bnds_time[2*i]);
-  ierr = cmor_axis(&myaxes[3],"time","months since 1980",2,&Time[0],'d',&bnds_time[0],2,NULL);
-
-  printf("time axis id: %i\n",myaxes[3]);
-  axes_ids[0]=myaxes[3]; /*time*/
-  axes_ids[1]=mygrids[0]; /*grid */
-
-  printf("Test code: sending axes_ids: %i %i\n",axes_ids[0],axes_ids[1]);
-
-  ierr = cmor_variable(&myvars[0],"hfls","W m-2",2,axes_ids,'d',NULL,&tolerance,"down","HFLS","no history","no future");
-  
-  for (i=0;i<ntimes;i++) {
-    printf("Test code: writing time: %i of %i\n",i+1,ntimes);
-    
-    printf("Test code: 2d\n");
-    read_2d_input_files(i, "LATENT", &data2d[0],lat,lon);
-    //for(j=0;j<10;j++) printf("Test code: %i out of %i : %lf\n",j,9,data2d[j]);
-    printf("var id: %i\n",myvars[0]);
-    ierr = cmor_write(myvars[0],&data2d,'d',NULL,1,NULL,NULL,NULL);
-  }
-  printf("ok loop done\n");
-  ierr = cmor_close();
-  printf("Test code: done\n");
-  return 0;
-}
diff --git a/Test/test_lots_of_variables.c b/Test/test_lots_of_variables.c
deleted file mode 100644
index f5f7256..0000000
--- a/Test/test_lots_of_variables.c
+++ /dev/null
@@ -1,350 +0,0 @@
-#include <time.h>
-#include <stdio.h>
-#include<string.h>
-#include "cmor.h"
-#include <stdlib.h>
-
-void read_coords(alats, alons, plevs, bnds_lat, bnds_lon,lon,lat,lev)
-     double *alats,*alons;
-     int *plevs;
-     double *bnds_lat,*bnds_lon;
-     int lon,lat,lev;
-{
-  int i;
-    
-  for (i=0;i<lon;i++) {
-    alons[i] = i*360./lon;
-    bnds_lon[2*i] = (i - 0.5)*360./lon;
-    bnds_lon[2*i+1] = (i + 0.5)*360./lon;
-  };
-  
-
-  for (i=0;i<lat;i++) {
-    alats[i] = (lat-i)*10;
-    bnds_lat[2*i] = (lat-i)*10 + 5.;
-    bnds_lat[2*i+1] = (lat-i)*10 - 5.;
-  };
-  
-
-  for (i=0;i<lev;i++) {
-    plevs[i] = (i+1)*100;
-  }
-}
-
-void read_time(it, time, time_bnds)
-     int it;
-     double time[];
-     double time_bnds[];
-{    
-  time[0] = (it-0.5)*30.;
-  time_bnds[0] = (it-1)*30.;
-  time_bnds[1] = it*30.;
-
-  time[0]=it;
-  time_bnds[0] = it;
-  time_bnds[1] = it+1;
-
-}
-  
-void read_3d_input_files(it, varname, field,n0,n1,n2)
-     int it,n0,n1,n2;
-     char *varname;
-     double field[];
-{
-  int i,j,k;
-  float factor,offset;
-    
-  if (strcmp(varname,"CLOUD")==0) {
-    factor = 0.1;
-    offset = -50.;
-  }
-  else if (strcmp(varname,"U")==0) {
-    factor = 1.;
-    offset = 100.;
-  }
-  else if (strcmp(varname,"T")==0) {
-    factor = 0.5;
-    offset = -150.;
-  }
-    
-  for (k=0;k<n2;k++) {
-    for (j=0;j<n1;j++) {
-      for (i=0;i<n0;i++) {
-        field[k*(n0*n1)+j*n0+i] = (k*64 + j*16 + i*4 + it)*factor - offset;
-      }
-    }
-  }
-}
-
-void read_2d_input_files(it, varname, field, n0, n1)
-  int it,n0,n1;
-  char *varname;
-  double field[];
-{    
-  int i, j,k;
-  double factor, offset;
-  double tmp;
-  
-  if (strcmp(varname,"LATENT")==0){
-    factor = 1.;
-    offset = 120.;
-  }
-  else if (strcmp(varname,"TSURF")==0){
-    factor = 2.0;
-    offset = -230.;
-  }
-  else if (strcmp(varname,"SOIL_WET")==0){
-    factor = 10.;
-    offset = 0.;
-  }
-  else if (strcmp(varname,"PSURF")==0){
-    factor = 1.;
-    offset = -9.7e2;
-  }
-
-  for (j=0;j<n0;j++){
-    for (i=0;i<n1;i++) {
-      tmp = ((double)j*16. + (double)(i)*4. + (double)it)*factor - offset;
-      k= (n0-1-j)*n1+i;
-      field[k] = tmp;
-    }
-  }
-}
-
-int main()
-     /*
-/*   Purpose:   To serve as a generic example of an application that */
-/*       uses the "Climate Model Output Rewriter" (CMOR) */
-
-/*    CMOR writes CF-compliant netCDF files. */
-/*    Its use is strongly encouraged by the IPCC and is intended for use  */
-/*       by those participating in many community-coordinated standard  */
-/*       climate model experiments (e.g., AMIP, CMIP, CFMIP, PMIP, APE, */
-/*       etc.) */
-
-/*   Background information for this sample code: */
-
-/*      Atmospheric standard output requested by IPCC are listed in  */
-/*   tables available on the web.  Monthly mean output is found in */
-/*   tables A1a and A1c.  This sample code processes only two 3-d  */
-/*   variables listed in table A1c ("monthly mean atmosphere 3-D data"  */
-/*   and only four 2-d variables listed in table A1a ("monthly mean  */
-/*   atmosphere + land surface 2-D (latitude, longitude) data").  The  */
-/*   extension to many more fields is trivial. */
-
-/*      For this example, the user must fill in the sections of code that  */
-/*   extract the 3-d and 2-d fields from his monthly mean "history"  */
-/*   files (which usually contain many variables but only a single time  */
-/*   slice).  The CMOR code will write each field in a separate file, but  */
-/*   many monthly mean time-samples will be stored together.  These  */
-/*   constraints partially determine the structure of the code. */
-
-
-/*   Record of revisions: */
-
-/*       Date        Programmer(s)           Description of change */
-/*       ====        ==========              ===================== */
-/*      10/22/03     Rusty Koder              Original code */
-/*       1/28/04     Les R. Koder             Revised to be consistent */
-/*                                            with evolving code design */
-{
-
-  /*   dimension parameters: */
-  /* --------------------------------- */
-#define   ntimes  2    /* number of time samples to process */
-#define   lon  4       /* number of longitude grid cells   */
-#define   lat  3       /* number of latitude grid cells */
-#define   lev  5       /* number of standard pressure levels */
-#define   n2d  4       /* number of IPCC Table A1a fields to be */                                      /*     output. */
-#define n3d 3       /* number of IPCC Table A1c fields to  */
-                     /*                                be output.   */
-
-  /*   Tables associating the user's variables with IPCC standard output  */
-  /*   variables.  The user may choose to make this association in a  */
-  /*   different way (e.g., by defining values of pointers that allow him  */
-  /*   to directly retrieve data from a data record containing many  */
-  /*   different variables), but in some way the user will need to map his  */
-  /*   model output onto the Tables specifying the MIP standard output. */
-
-  /* ---------------------------------- */
-
-  /* My variable names for IPCC Table A1c fields */
-  char varin3d[n3d][6]={"CLOUD", "U", "T" };
-  
-  /* Units appropriate to my data */
-  char units3d[n3d][6]={"%", "m s-1", "K"};
-  
-  /* Corresponding IPCC Table A1c entry (variable name)  */
-  char entry3d[n3d][3]={"cl","ua","ta"};
-
-  /* My variable names for IPCC Table A1a fields */
-  char varin2d[n2d][9]={ "LATENT","TSURF","SOIL_WET","PSURF" };
-  
-  /* Units appropriate to my data */
-  char units2d[n2d][7]={ "W m-2","K","kg m-2","Pa"};
-  
-  char positive2d[n2d][4]={"down"," ", " ", " "};
-  
-  /* Corresponding IPCC Table A1a entry (variable name)  */
-  char entry2d[n2d][6]={"hfls", "tas","mrsos","ps"};
-
-/*  uninitialized variables used in communicating with CMOR: */
-/*  --------------------------------------------------------- */
-
-  int error_flag;
-  int znondim_id, zfactor_id;
-  int var2d_ids[n2d];
-  int var3d_ids[n3d];
-  double data2d[lat*lon];
-  double data3d[lev*lat*lon];
-  double alats[lat];
-  double alons[lon];
- int ilats[lat];
-  int ilons[lon];
-  double   plevs[lev];
-  int   iplevs[lev];
-  long   lplevs[lev];
-  float   fplevs[lev];
-  double Time[2];
-  double  bnds_time[4];
-  double bnds_lat[lat*2];
-  double bnds_lon[lon*2];
-  double zlevs[lev];
-  double zlev_bnds[lev+1];
-
-  double a_coeff[lev]={ 0.1, 0.2, 0.3, 0.22, 0.1 };
-  double b_coeff[lev]={ 0.0, 0.1, 0.2, 0.5, 0.8 };
-  float p0= 1.e5;
-  double a_coeff_bnds[lev+1]={0.,.15, .25, .25, .16, 0.};
-  double b_coeff_bnds[lev+1]={0.,.05, .15, .35, .65, 1.};
-  int ilon, ilat, ipres, ilev, itim;
-  double dtmp,dtmp2;
-
-  /*  Other variables: */
-  /*  --------------------- */
-  
-  int it, m, i,ierr , j=400;
-  int myaxes[410];
-  int myaxes2[410];
-  int myvars[400];
-  char id[CMOR_MAX_STRING];
-  char units[CMOR_MAX_STRING];
-  char interval[CMOR_MAX_STRING];
-  char anames[25][CMOR_MAX_STRING];
-  char type;
-  char regions[5][16] = { "atlantic_ocean", "indian_ocean", "pacific_ocean", "global_ocean", "sf_bay"};
-  double timestest[5];
-  /* Externals funcs */
-  int tables[5];
-  char msg[555];
-  double bt=0.;
-  /* ================================ */
-  /*  Execution begins here: */
-  /* ================================ */
-  
-  /* Read coordinate information from model into arrays that will be passed  */
-  /*   to CMOR. */
-  /* Read latitude, longitude, and pressure coordinate values into  */
-  /*   alats, alons, and plevs, respectively.  Also generate latitude and  */
-  /*   longitude bounds, and store in bnds_lat and bnds_lon, respectively. */
-  /*   Note that all variable names in this code can be freely chosen by */
-  /*   the user. */
-  
-  /*   The user must write the subroutine that fills the coordinate arrays  */
-  /*   and their bounds with actual data.  The following line is simply a */
-  /*   a place-holder for the user's code, which should replace it. */
-  
-  /*  *** possible user-written call *** */
-  
-
-  
-  m = CMOR_EXIT_ON_MAJOR;
-  j = CMOR_REPLACE;
-  printf("ok mode is:%i\n",m);
-  i=0;
-  ierr = cmor_setup(NULL,&j,NULL,&m,NULL,&i);
-
-  read_coords(&alats[0], &alons[0], &iplevs[0], &bnds_lat[0], &bnds_lon[0],lon,lat,lev);
-  int tmpmo[12];
-  printf("Test code: ok init cmor\n");
-  char c1[CMOR_MAX_STRING];
-  char c2[CMOR_MAX_STRING];
-  strcpy(c1,"GICCM1\0");
-  strcpy(c2,"Nat, TO");
-
-
-  printf("yep: %s, %s\n",c1,c2);
-  ierr = cmor_dataset(
-       "Test",
-       "abrupt 4XCO2",
-       "GICC (Generic International Climate Center, Geneva, Switzerland)",
-       "GICCM1 (2002): atmosphere:  GICAM3 (gicam_0_brnchT_itea_2, T63L32); ocean: MOM (mom3_ver_3.5.2, 2x3L15); sea ice: GISIM4; land: GILSM2.5",
-       "standard",
-       1,
-       "Rusty Koder (koder at middle_earth.net)",
-       "Output from archive/giccm_03_std_2xCO2_2256.",
-       "Equilibrium reached after 30-year spin-up after which data were output starting with nominal date of January 2030",
-       "Model described by Koder and Tolkien (J. Geophys. Res., 2001, 576-591).  Also see http://www.GICC.su/giccm/doc/index.html  2XCO2 simulation described in Dorkey et al. '(Clim. Dyn., 2003, 323-357.)",
-       0,
-       0,
-       &tmpmo[0],&c1[0],&c2[0],3,0,"GICC","N/A",&bt);
-
-
-/*   cmor_set_cur_dataset_attribute("initialization_method","3",1); */
-  cmor_set_cur_dataset_attribute("physics_version","5",1);
-  printf("Test code: ok load cmor table(s)\n");
-  ierr = cmor_load_table("Test/CMIP5_Amons",&tables[0]);
-  strcpy(id,"time");
-  strcpy(units,"months since 1980");
-  strcpy(interval,"1 month");
-  j = 400;
-  for(i=0;i<j;i++) {
-    read_time(0, &Time[0], &bnds_time[0]);
-    read_time(1, &Time[1], &bnds_time[2]);
-    sprintf(units,"months since %i",1900+i);
-    ierr = cmor_axis(&myaxes[i],id,units,ntimes,&Time[0],'d',&bnds_time[0],2,interval);
-  }
-  
-  strcpy(id,"latitude");
-  strcpy(units,"degrees_north");
-  strcpy(interval,"");
-  ierr = cmor_axis(&myaxes[j],id,units,lat,&alats,'d',&bnds_lat,2,interval);
-  strcpy(id,"longitude");
-  strcpy(units,"degrees_east");
-  ierr = cmor_axis(&myaxes[j+1],id,units,lon,&alons,'d',&bnds_lon,2,interval);
-
-
-
-  dtmp = -999;
-  dtmp2=1.e-4;
-  myaxes2[1] = myaxes[j];
-  myaxes2[2] = myaxes[j+1];
-
-  printf("Test code: defining variables from table 1, %s\n",positive2d[0]);
-  for(i=0;i<j;i++) {
-    myaxes2[0] = myaxes[i];
-    sprintf(id,"hfls%i",i);
-    ierr = cmor_variable(&myvars[i],id,units2d[0],3,myaxes2,'d',NULL,&dtmp2,&positive2d[0][0],varin2d[0],"no history","no future");
-  }
-
-  for(m=0;m<j;m++) {
-    for (i=0;i<ntimes;i++) {
-      printf("Test code: writing time: %i of %i\n",i+1,ntimes);
-      printf("2d\n");
-      read_2d_input_files(i, varin2d[0], &data2d,lat,lon);
-      sprintf(id,"%i",i);
-      /*     ierr = cmor_write(myvars[0],&data2d,'d',id,1,&time,&bnds_time,NULL); */
-      /*     read_3d_input_files(i, varin3d[2], &data3d,lev,lat,lon); */
-      /*     ierr = cmor_write(myvars[1],&data3d,'d',id,1,&time,&bnds_time,NULL); */
-      /*     read_3d_input_files(i, varin3d[0], &data3d,5,lat,lon); */
-      /*     ierr = cmor_write(myvars[2],&data3d,'d',id,1,&time,&bnds_time,NULL); */
-      /*     read_2d_input_files(i, varin2d[3], &data2d,lat,lon); */
-      /*     ierr = cmor_write(myvars[3],&data2d,'d',id,1,&time,&bnds_time,&myvars[2]); */
-      printf("ok writing time %i for variable %i\n",i,m);
-      ierr = cmor_write(myvars[m],&data2d,'d',"",1,NULL,NULL,NULL);
-    }
-    ierr = cmor_close_variable(myvars[m],NULL,NULL);
-  }
-  ierr = cmor_close();
-  return 0;
-}
diff --git a/Test/test_lots_of_variables.f90 b/Test/test_lots_of_variables.f90
deleted file mode 100644
index 7458278..0000000
--- a/Test/test_lots_of_variables.f90
+++ /dev/null
@@ -1,344 +0,0 @@
-!!$pgf90 -I/work/NetCDF/5.1/include -L/work/NetCDF/5.1/lib -l netcdf -L. -l cmor Test/test1.f90 -IModules -o cmor_test
-!!$pgf90 -g -I/pcmdi/charles_work/NetCDF//include -L/pcmdi/charles_work/NetCDF//lib -lnetcdf -module Modules -IModules -L. -lcmor Test/test1.f90 -o cmor_test
-
-MODULE local_subs
-
-  PRIVATE
-  PUBLIC read_coords, read_time, read_3d_input_files, read_2d_input_files
-CONTAINS
-  
-  SUBROUTINE read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-
-    IMPLICIT NONE
-    
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alats
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alons
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: plevs
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lat
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lon
-    
-    INTEGER :: i
-    
-    DO i = 1, SIZE(alons)
-       alons(i) = (i-1)*360./SIZE(alons)
-       bnds_lon(1,i) = (i - 1.5)*360./SIZE(alons)
-       bnds_lon(2,i) = (i - 0.5)*360./SIZE(alons)
-    END DO
-    
-    DO i = 1, SIZE(alats)
-       alats(i) = i*10
-       bnds_lat(1,i) = i*10. - 5.
-       bnds_lat(2,i) = i*10. + 5.
-    END DO
-    
-    DO i = 1, SIZE(plevs)
-       plevs(i) = i*1.0e4
-    END DO
-    
-    RETURN
-  END SUBROUTINE read_coords
-
-  SUBROUTINE read_time(it, time, time_bnds)
-    
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    DOUBLE PRECISION, INTENT(OUT) :: time
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(2) :: time_bnds
-    
-    time = (it-0.5)*30.
-    time_bnds(1) = (it-1)*30.
-    time_bnds(2) = it*30.
-    
-    RETURN
-  END SUBROUTINE read_time
-    
-  SUBROUTINE read_2d_input_files(it, varname, field)                  
-    
-    INTEGER, INTENT(IN) :: it
-    CHARACTER(len=*), INTENT(IN) :: varname
-    REAL, INTENT(OUT), DIMENSION(:,:) :: field
-    
-    INTEGER :: i, j
-    REAL :: factor, offset
-    
-    
-    SELECT CASE (TRIM(ADJUSTL(varname)))
-    CASE ('LATENT')  
-       
-       factor = 1.5
-       offset = 20.
-    CASE ('TSURF')
-       factor = 2.2
-       offset = -220.
-    CASE ('SOIL_WET')
-       factor = 10.
-       offset = 0.
-    END SELECT
-    
-    DO j=1,SIZE(field, 1)
-       DO i=1,SIZE(field, 2)
-          field(j,i) = ((j-1)*16 + (i-1)*4 + it)*factor - offset
-       END DO
-    END DO
-
-  END SUBROUTINE read_2d_input_files
-
-END MODULE local_subs
-
-
-PROGRAM mip_contribution
-
-! include module that contains the user-accessible cmor functions.
-  USE cmor_users_functions
-  USE local_subs
-
-  IMPLICIT NONE
-
-  !   dimension parameters:
-  ! ---------------------------------
-  INTEGER, PARAMETER :: ntimes = 2    ! number of time samples to process
-  INTEGER, PARAMETER :: lon = 4       ! number of longitude grid cells  
-  INTEGER, PARAMETER :: lat = 3       ! number of latitude grid cells
-  INTEGER, PARAMETER :: n2d = 1       ! number of AMIP Table 2 fields to be
-                                      !     output.
-
-  !   Tables associating the user's variables with AMIP standard output 
-  !   variables.  The user may choose to make this association in a 
-  !   different way (e.g., by defining values of pointers that allow him 
-  !   to directly retrieve data from a data record containing many 
-  !   different variables), but in some way the user will need to map his 
-  !   model output onto the Tables specifying the MIP standard output.
-
-  ! ----------------------------------
-
-                                ! My variable names for Table 1a fields
-                                ! My variable names for Table 2 fields
-  CHARACTER (LEN=8), DIMENSION(n2d) :: &
-                          varin2d=(/ 'LATENT  ' /)
-                                ! Units appropriate to my data
-   CHARACTER (LEN=6), DIMENSION(n2d) :: &
-                          units2d=(/ 'W m-2 ' /)
-   CHARACTER (LEN=4), DIMENSION(n2d) :: &
-                      positive2d= (/  'down' /)
-                     ! Corresponding AMIP Table 2 entry (variable name) 
-  CHARACTER (LEN=5), DIMENSION(n2d) :: &
-                        entry2d = (/ 'hfls ' /)
-
-!  uninitialized variables used in communicating with CMOR:
-!  ---------------------------------------------------------
-
-  INTEGER :: error_flag
-  INTEGER, PARAMETER :: ntest=400
-  INTEGER, DIMENSION(3) :: axis2d_ids
-  INTEGER, DIMENSION(n2d+ntest) :: var2d_ids
-  REAL, DIMENSION(lat,lon) :: data2d
-  DOUBLE PRECISION, DIMENSION(lat) :: alats
-  DOUBLE PRECISION, DIMENSION(lon) :: alons
-  DOUBLE PRECISION, DIMENSION(5) :: plevs
-  DOUBLE PRECISION :: time,bt
-  DOUBLE PRECISION, DIMENSION(2):: bnds_time
-  DOUBLE PRECISION, DIMENSION(2,lat) :: bnds_lat
-  DOUBLE PRECISION, DIMENSION(2,lon) :: bnds_lon
-
-!!$  REAL, DIMENSION(lat*lon*lev) :: tmp3d
-!!$  REAL, DIMENSION(lat*lon) :: tmp2d
-
-  !  Other variables:
-  !  ---------------------
-  
-  INTEGER :: it, m
-  
-    character (len=200) :: msg,msg2
-    bt=0.
-  ! ================================
-  !  Execution begins here:
-  ! ================================
-  
-  ! Read coordinate information from model into arrays that will be passed 
-  !   to CMOR.
-  ! Read latitude, longitude, and pressure coordinate values into 
-  !   alats, alons, and plevs, respectively.  Also generate latitude and 
-  !   longitude bounds, and store in bnds_lat and bnds_lon, respectively.
-  
-  !   The user must write the subroutine that fills the coordinate arrays 
-  !   and their bounds with actual data.  The following line is simply a
-  !   a place-holder for the user's code, which should replace it.
-  
-  !  *** possible user-written call ***	
-  
-  print*, 'calling read_coords '
-
-  call read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-
-  print*, 'returned from read_coords'
-  
-  ! Specify path where tables can be found, indicate that existing netCDF 
-  !    files should not be overwritten, and instruct CMOR to error exit on 
-  !    encountering errors of any severity.
-  
-  error_flag = cmor_setup(inpath='Test',   &
-       netcdf_file_action='replace',                                       &
-       set_verbosity=1,                                                    &
-       exit_control=1)
-  
-  ! Define dataset as output from the GICC model (first member of an
-  !   ensemble of simulations) runcmor_write under IPCC 2xCO2 equilibrium experiment 
-  !   conditions, and provide information to be included as attributes in 
-  !   all CF-netCDF files written as part of this dataset.
-
-  print*, 'calling cmor_dataset'
-  error_flag = cmor_dataset(                                   &
-       outpath='Test',         &
-       experiment_id='abrupt 4XCO2',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       ' Geneva, Switzerland)',                                &
-       source='GICCM1  2002(giccm_0_brnchT_itea_2, T63L32)',    &
-       calendar='360_day',                                      &
-       realization=1,                                          &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also ' //          &
-       'see http://www.GICC.su/giccm/doc/index.html '  //      &
-       ' 2XCO2 simulation described in Dorkey et al. '//       &
-       '(Clim. Dyn., 2003, 323-357.)',model_id="GICCM1", &
-       forcing='TO',contact="Barry Bonds",institute_id="PCMDI",&
-       parent_experiment_id="N/A",branch_time=bt)
-
-  error_flag  = cmor_set_cur_dataset_attribute("initialization_method","4")
-  error_flag  = cmor_set_cur_dataset_attribute("physics_version","6")
-
-  print*, 'returned from cmor_dataset'
-
-  !  Define axes for 3-d fields
-
-  print*, 'defining axes'
-  
-  axis2d_ids(1) = cmor_axis(  &
-       table='CMIP5_Amons',    &
-       table_entry='latitude',       &
-       units='degrees_north',        &  
-       length=lat,                   &
-       coord_vals=alats,             & 
-       cell_bounds=bnds_lat)              
-  axis2d_ids(2) = cmor_axis(  &
-       table='CMIP5_Amons',    &
-       table_entry='longitude',      &
-       length=lon,                   &
-       units='degrees_east',         &
-       coord_vals=alons,             &
-       cell_bounds=bnds_lon)              
-  !   note that the time axis is defined next, but the time coordinate 
-  !   values and bounds will be passed to cmor through function 
-  !   cmor_write (below).
-print*, 'before time '
-  axis2d_ids(3) = cmor_axis(  &
-       table='CMIP5_Amons',    &
-       table_entry='time',           &
-       units='days since 1979-1-1',  &
-       length=ntimes,                &
-       interval='1 month')
-  
-  print*, 'finished defining axes'
-
-  
-
-  !  Define variables found in AMIP table 2a (2-d variables)
-  
-  DO m=1,ntest
-     write(msg,*)  m-1
-     msg2 = trim(entry2d(1)(1:4)//adjustl(msg))
-     print*,'Test Code: defining variable: :',msg2
-     var2d_ids(m) = cmor_variable(    &
-          table='CMIP5_Amons',  & 
-          table_entry=msg2,     & 
-!!$          file_suffix='1979-2001',    &
-          units=units2d(1),           & 
-          axis_ids=axis2d_ids,        &
-          missing_value=1.0e20,       &
-          positive=positive2d(1),     &
-          original_name=varin2d(1))   
-  ENDDO
-
-  print*, 'completed everything up to writing output fields '
-  
-  !  Loop through history files (each containing several different fields, 
-  !       but only a single month of data, averaged over the month).  Then 
-  !       extract fields of interest and write these to netCDF files (with 
-  !       one field per file, but all months included in the loop).
-  
-  DO m=1,ntest
-     time_loop: DO it=1, ntimes
-        
-        ! In the following loops over the 3d and 2d fields, the user-written    
-        ! subroutines (read_3d_input_files and read_2d_input_files) retrieve 
-        ! the requested AMIP table 1a and table 2 fields and store them in 
-        ! data3d and data2d, respectively.  In addition a user-written code 
-        ! (read_time) retrieves the time and time-bounds associated with the 
-        ! time sample (in units of 'days since 1970-1-1', consistent with the 
-        ! axis definitions above).  The bounds are set to the beginning and 
-        ! the end of the month retrieved, indicating the averaging period.
-        
-        ! The user must write a code to obtain the times and time-bounds for
-        !   the time slice.  The following line is simply a place-holder for
-        !   the user's code, which should replace it.
-        
-        call read_time(it, time, bnds_time)
-        
-        ! Cycle through the 3-d fields, retrieve the requested variable and 
-        ! append each to the appropriate netCDF file.
-        
-        
-        
-        
-        ! Cycle through the 2-d fields, retrieve the requested variable and 
-        ! append each to the appropriate netCDF file.
-        
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-        
-        call read_2d_input_files(it, varin2d(1), data2d)                  
-        
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-        
-        print*, RESHAPE(bnds_time, (/ 2,1 /))
-        error_flag = cmor_write(var_id =        var2d_ids(m),   &
-             data =          RESHAPE(data2d, (/ lat*lon /)),        &
-             ntimes_passed = 1,              &
-             time_vals =     (/ time /),           &
-             time_bnds =     RESHAPE(bnds_time, (/ 2,1 /)))
-        
-        print*, 'after writing variable, ', var2d_ids(m)
-        IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) ' Error encountered writing AMIP Table 2 ' &
-                // 'field ', entry2d(m), ', which I call ', varin2d(m)
-           write(*,*) ' Was processing time sample: ', time 
-           
-!!$            error_flag = cmor_error_trace(device=0)
-           
-        END IF
-        
-     END DO time_loop
-     error_flag = cmor_close(var2d_ids(m))
-  END DO
-  
-  !   Close all files opened by CMOR.
-  
-  error_flag = cmor_close()  
-
-print*, '******************************'
-print*, ' '
-print*, 'CMOR COMPLETED SUCCESSFULLY '   
-print*, ' '
-print*, '******************************'
-
-END PROGRAM mip_contribution
-
diff --git a/Test/test_python_1D_var.py b/Test/test_python_1D_var.py
deleted file mode 100644
index 0509778..0000000
--- a/Test/test_python_1D_var.py
+++ /dev/null
@@ -1,36 +0,0 @@
-import cmor
-
-error_flag = cmor.setup(inpath='Test', netcdf_file_action=cmor.CMOR_REPLACE)
-
-error_flag = cmor.dataset(                                   
-       outpath='Test',                                         
-       experiment_id='noVolc2000',
-       institution= 'GICC (Generic International Climate Center, Geneva, Switzerland)',                                 
-       source='GICCM1 (2002): ',
-       calendar='standard',                                      
-       realization=1,                                          
-       contact = 'Rusty Koder (koder at middle_earth.net) ',      
-       history='Output from archivcl_A1.nce/giccm_03_std_2xCO2_2256.', 
-       comment='Equilibrium reached after 30-year spin-up ',                                 
-       references='Model described by Koder and Tolkien ',
-       model_id="pcmdi-10a", 
-       forcing="TO, SO, Nat",
-       ## month_lengths=[30,28,30,30,30,30,30,31,30,31,30,30],
-       ## leap_year=3,
-       ## leap_month=1,
-       parent_experiment_id="N/A",branch_time=0)
-
-cmor.load_table("Tables/CMIP5_Omon")
-itim = cmor.axis(  
-    table_entry='time',           
-    units='months since 2010-1-1',
-    coord_vals=[0,1,2,3,4,5,6,7,8,9,10,11],
-    cell_bounds=[0,1,2,3,4,5,6,7,8,9,10,11,12])
-
-ivar = cmor.variable('thetaoga',units='K',axis_ids=[itim,])
-
-data=[280.,]*12 # 12 months worth of data
-
-cmor.write(ivar,data)
-
-cmor.close()
diff --git a/Test/test_python_2Gb_file.py b/Test/test_python_2Gb_file.py
deleted file mode 100644
index 21f4c3d..0000000
--- a/Test/test_python_2Gb_file.py
+++ /dev/null
@@ -1,48 +0,0 @@
-
-import cmor,numpy
-
-
-
-
-
-nlat = 360
-dlat = 180./nlat
-nlon = 720
-dlon = 360./nlon
-nlev = 17
-ntimes = 12
-
-lats = numpy.arange(-90+dlat/2.,90,dlat)
-blats = numpy.arange(-90,90+dlat,dlat)
-lons = numpy.arange(0+dlon/2.,360.,dlon)
-blons = numpy.arange(0,360.+dlon,dlon)
-
-
-cmor.setup(inpath='.',netcdf_file_action=cmor.CMOR_REPLACE)
-cmor.dataset('historical', 'ukmo', 'HadCM3', 'gregorian',model_id='HadCM3',outpath='Test',forcing='N/A', parent_experiment_id="lgm",branch_time=0,contact="Juan Uribe",institute_id="myinst")
-table='Tables/CMIP5_Amon'
-cmor.load_table(table)
-
-
-ilat = cmor.axis(table_entry='latitude',coord_vals=lats,cell_bounds=blats,units='degrees_north')
-ilon = cmor.axis(table_entry='longitude',coord_vals=lons,cell_bounds=blons,units='degrees_east')
-itim = cmor.axis(table_entry='time',units='months since 2010')#,coord_vals=numpy.arange(ntimes,dtype=numpy.float),cell_bounds=numpy.arange(ntimes+1,dtype=float),units='months since 2000')
-ilev = cmor.axis(table_entry='plevs',coord_vals=numpy.array([1000.,925,850,700,600,500,400,300,250,200,150,100,70,50,30,20,10]),units='hPa')
-    
-axes=[itim,ilev,ilat,ilon]
-
-var = cmor.variable(table_entry='ta',units='K',axis_ids=axes)
-ntimes=250
-
-data = numpy.random.random((nlev,nlat,nlon))*30+273.15
-
-for i in range(ntimes):
-    if i%10==0 : print 'Writing time:',i
-    cmor.write(var,data,time_vals=numpy.array([float(i),]),time_bnds=numpy.array([i,i+1.]))
-
-print cmor.close(var_id=var,file_name=True)
-cmor.close()
-
-
-
-print 'hello'
diff --git a/Test/test_python_2Gb_slice.py b/Test/test_python_2Gb_slice.py
deleted file mode 100644
index 65431d9..0000000
--- a/Test/test_python_2Gb_slice.py
+++ /dev/null
@@ -1,51 +0,0 @@
-
-import cmor,numpy
-
-
-
-
-
-nlat = 3600
-dlat = 180./nlat
-nlon = 7200
-dlon = 360./nlon
-nlev = 24
-dlev = 1000./nlev
-ntimes = 1
-
-lats = numpy.arange(-90+dlat/2.,90,dlat)
-blats = numpy.arange(-90,90+dlat,dlat)
-lons = numpy.arange(0+dlon/2.,360.,dlon)
-blons = numpy.arange(0,360.+dlon,dlon)
-
-levs = numpy.array([1000.,925,900,850,800,700,600,500,400,300,250,200,150,100,75,70,50,30,20,10,7.5,5,2.5,1])
-alllevs = numpy.arange(1000,0,-dlev).tolist()
-print len(alllevs)
-
-cmor.setup(inpath='.',netcdf_file_action=cmor.CMOR_REPLACE)
-cmor.dataset('historical', 'ukmo', 'HadCM3', 'gregorian',model_id='pcmdi-10b',outpath='Test',forcing='CH4', parent_experiment_id="lgm",branch_time=0)
-table='Tables/CMIP5_Amon'
-cmor.load_table(table)
-
-
-ilat = cmor.axis(table_entry='latitude',coord_vals=lats,cell_bounds=blats,units='degrees_north')
-ilon = cmor.axis(table_entry='longitude',coord_vals=lons,cell_bounds=blons,units='degrees_east')
-itim = cmor.axis(table_entry='time',units='months since 2010')#,coord_vals=numpy.arange(ntimes,dtype=numpy.float),cell_bounds=numpy.arange(ntimes+1,dtype=float),units='months since 2000')
-ilev = cmor.axis(table_entry='plevs',coord_vals=levs,units='hPa')
-    
-axes=[itim,ilev,ilat,ilon]
-
-var = cmor.variable(table_entry='ta',units='K',axis_ids=axes)
-
-data = numpy.random.random((nlev,nlat,nlon))*30+273.15
-
-for i in range(ntimes):
-    if i%10==0 : print 'Writing time:',i
-    cmor.write(var,data,time_vals=numpy.array([float(i),]),time_bnds=numpy.array([i,i+1.]))
-
-print cmor.close(var_id=var,file_name=True)
-cmor.close()
-
-
-
-print 'hello'
diff --git a/Test/test_python_YYYMMDDHH_exp_fmt.py b/Test/test_python_YYYMMDDHH_exp_fmt.py
deleted file mode 100644
index fc92ae7..0000000
--- a/Test/test_python_YYYMMDDHH_exp_fmt.py
+++ /dev/null
@@ -1,38 +0,0 @@
-import cmor
-
-def path_test():
-    cmor.setup(inpath='Test',netcdf_file_action=cmor.CMOR_REPLACE)
-
-    cmor.dataset('mytest2010030812', 'ukmo', 'HadCM3', '360_day',
-                 institute_id="PCMDI",
-                 model_id='HadCM3',forcing='co2')
-    
-    table='CMIP5_Amon_YYYYMMDDHH'
-    cmor.load_table(table)
-    axes = [ {'table_entry': 'time',
-              'units': 'days since 2000-01-01 00:00:00',
-              'coord_vals': [15],
-              'cell_bounds': [0, 30]
-              },
-             {'table_entry': 'latitude',
-              'units': 'degrees_north',
-              'coord_vals': [0],
-              'cell_bounds': [-1, 1]},             
-             {'table_entry': 'longitude',
-              'units': 'degrees_east',
-              'coord_vals': [90],
-              'cell_bounds': [89, 91]},
-             ]
-              
-    axis_ids = list()
-    for axis in axes:
-        axis_id = cmor.axis(**axis)
-        axis_ids.append(axis_id)
-    varid = cmor.variable('ts', 'K', axis_ids)
-    cmor.write(varid, [273])
-    path=cmor.close(varid, file_name=True)
-
-    print "Saved file: ",path
-
-if __name__ == '__main__':
-    path_test()
diff --git a/Test/test_python_appending.py b/Test/test_python_appending.py
deleted file mode 100644
index 2f62cac..0000000
--- a/Test/test_python_appending.py
+++ /dev/null
@@ -1,92 +0,0 @@
-import cmor,numpy
-
-nlat = 90
-nlon = 180
-
-def mywrite(data = None, time_vals = None, append_to = None,cell_bounds=None):
-    breq = "100000. 80000. 80000. 68000. 68000. 56000. 56000. 44000. 44000. 31000. 31000. 18000. 18000.  0.".split()
-
-    bnds_req = []
-    for b in breq:
-        bnds_req.append(float(b))
-
-    bnds_req=numpy.array(bnds_req)
-    bnds_req.shape=(7,2)
-
-    print bnds_req[-2], bnds_req.shape
-
-    levs=[]
-
-    for b in bnds_req:
-        levs.append((b[0]+b[1])/2.)
-
-    levs=numpy.array(levs)
-
-    print levs
-
-    ipth="Test"
-    if append_to is None:
-        mode = cmor.CMOR_REPLACE
-    else:
-        mode = cmor.CMOR_APPEND
-    print 'Mode in python:',mode
-    cmor.setup(inpath=ipth,
-               set_verbosity=cmor.CMOR_NORMAL,
-               netcdf_file_action = mode,
-               logfile = None)
-
-    cmor.dataset(
-        outpath = ipth,
-        experiment_id = "lgm",
-        institution = "PCMDI",
-        source = "GICCM1 2002",
-        institute_id="PCMDI",
-        calendar = "standard",
-        contact="Pablo Sandoval",
-        model_id="GICCM1",forcing="Nat",parent_experiment_id="historical",branch_time=3.14159)
-
-    cmor.load_table("Tables/CMIP5_Amon")
-
-    dlat = 180/nlat
-    dlon = 360./nlon
-    lats = numpy.arange(-90+dlat/2.,90,dlat)
-    bnds_lat = numpy.arange(-90,90+dlat,dlat)
-    lons = numpy.arange(0+dlon/2.,360.,dlon)-180.
-    bnds_lon = numpy.arange(0,360.+dlon,dlon)-180.
-
-    plevs = numpy.array([100000., 92500., 85000., 70000.,
-                         60000., 50000., 40000., 30000., 25000., 20000.,
-                         15000., 10000., 7000., 5000., 3000., 2000., 1000.])
-
-    itim = cmor.axis(table_entry='time',units='month since 2008')
-    #itim = cmor.axis(table_entry='time',units='month since 2008',coord_vals=numpy.arange(0,12,1))
-    ilat = cmor.axis(table_entry='latitude',coord_vals=lats,units='degrees_north',cell_bounds=bnds_lat)
-    ilon = cmor.axis(table_entry='longitude',coord_vals=lons,units='degrees_east',cell_bounds=bnds_lon)
-    print 'so far',itim,ilat,ilon
-    ilev = cmor.axis(table_entry="plevs",coord_vals=plevs,units="Pa")
-
-    iv = cmor.variable(table_entry='ta',axis_ids=numpy.array((itim,ilev,ilat,ilon)),units='K')
-
-    #cmor.write(iv,data)
-    if append_to is None:
-        print 'time:',time_vals
-        print 'bnds:',cell_bounds
-        cmor.write(iv,data,time_vals=time_vals,time_bnds=cell_bounds)#,file_suffix="with-appending")
-    else:
-        print 'Ok writing with a suffix',append_to
-        cmor.write(iv,data,time_vals=time_vals,file_suffix=append_to,time_bnds=cell_bounds)
-        print 'and back'
-    file = cmor.close(iv,file_name=True)
-    print 'Ok dumped to:',file
-    cmor.close()
-    return file
-
-
-ntime = 12
-data = numpy.random.random((ntime,17,nlat,nlon))+280.
-
-
-f1 = mywrite(data = data[:6], time_vals = numpy.arange(0,6,1),cell_bounds=numpy.arange(0,7,1))
-print 'First part: ',f1
-f2 = mywrite(data = data[6:], time_vals = numpy.arange(6,12,1), cell_bounds=numpy.arange(6,13,1), append_to=f1)
-print f2
diff --git a/Test/test_python_bounds_request.py b/Test/test_python_bounds_request.py
deleted file mode 100644
index e96cc8c..0000000
--- a/Test/test_python_bounds_request.py
+++ /dev/null
@@ -1,59 +0,0 @@
-import cmor,numpy
-
-breq = "100000. 80000. 80000. 68000. 68000. 56000. 56000. 44000. 44000. 31000. 31000. 18000. 18000.  0.".split()
-
-bnds_req = []
-for b in breq:
-    bnds_req.append(float(b))
-
-bnds_req=numpy.array(bnds_req)
-bnds_req.shape=(7,2)
-
-print bnds_req[-2], bnds_req.shape
-
-levs=[]
-
-for b in bnds_req:
-    levs.append((b[0]+b[1])/2.)
-
-levs=numpy.array(levs)
-
-print levs
-
-ipth="Test"
-cmor.setup(inpath=ipth,
-           set_verbosity=cmor.CMOR_NORMAL,
-           netcdf_file_action = cmor.CMOR_REPLACE,
-           logfile = None)
-
-cmor.dataset(
-    outpath = ipth,
-    experiment_id = "present-day control experiment",
-    institution = "PCMDI",
-    source = "PCMDI",
-    calendar = "standard",
-    model_id="pcmdi-09a",forcing="forcing")
-
-cmor.load_table("python_test_table_A")
-
-nlat = 90
-dlat = 180/nlat
-nlon = 180
-dlon = 360./nlon
-
-lats = numpy.arange(-90+dlat/2.,90,dlat)
-lons = numpy.arange(0,360.,dlon)
-
-ntime = 12
-
-data = numpy.random.random((ntime,7,nlat,nlon))+280.
-
-itim = cmor.axis(table_entry='time',coord_vals=numpy.arange(0,ntime,1),units='month since 2008')
-ilat = cmor.axis(table_entry='latitude',coord_vals=lats,units='degrees_north')
-ilon = cmor.axis(table_entry='longitude',coord_vals=lons,units='degrees_east')
-print 'so far',itim,ilat,ilon
-ilev = cmor.axis(table_entry="pressure2",coord_vals=levs,cell_bounds=bnds_req,units="Pa")
-
-iv = cmor.variable(table_entry='ta',axis_ids=numpy.array((itim,ilev,ilat,ilon)),units='K')
-
-cmor.write(iv,data)
diff --git a/Test/test_python_common.py b/Test/test_python_common.py
deleted file mode 100644
index 579de2b..0000000
--- a/Test/test_python_common.py
+++ /dev/null
@@ -1,164 +0,0 @@
-import numpy
-# this test tries to mimic ippc_test_code.c but from python
-# This one is using direct C calls from python not the python around it
-ntimes=2
-lon=4
-lat=3
-lev=5
-lev2=17
-varin3d=["CLOUD", "U", "T" ];
-  
-#  /* Units appropriate to my data */
-units3d=["%", "m s-1", "K"];
-  
-#  /* Corresponding IPCC Table A1c entry (variable name)  */
-entry3d=["cl","ua","ta"];
-
-#  /* My variable names for IPCC Table A1a fields */
-varin2d=[ "LATENT","TSURF","SOIL_WET","PSURF" ];
-  
-#  /* Units appropriate to my data */
-units2d=[ "W m-2","K","kg m-2","Pa"];
-  
-positive2d=["down"," ", " ", " "];
-  
-#  /* Corresponding IPCC Table A1a entry (variable name)  */
-entry2d=["hfls", "tas","mrsos","ps"];
-
-
-def gen_irreg_grid(lon,lat):
-    lon0 = 280.
-    lat0=0.;
-    delta_lon = 10.;
-    delta_lat = 10.;
-    y = numpy.arange(lat)
-    x = numpy.arange(lon)
-    lon_coords = numpy.zeros((lat,lon))
-    lat_coords = numpy.zeros((lat,lon))
-    lon_vertices = numpy.zeros((lat,lon,4))
-    lat_vertices = numpy.zeros((lat,lon,4))
-
-    for j in range(lat): # really porr coding i know
-        for i in range(lon): # getting worse i know
-            lon_coords[j,i] = lon0+delta_lon*(j+1+i);
-            lat_coords[j,i] = lat0+delta_lat*(j+1-i);
-            lon_vertices[j,i,0] = lon_coords[j,i]-delta_lon;
-            lon_vertices[j,i,1] = lon_coords[j,i];
-            lon_vertices[j,i,2] = lon_coords[j,i]+delta_lon;
-            lon_vertices[j,i,3] = lon_coords[j,i];
-## !!$      /* vertices lat */
-            lat_vertices[j,i,0] = lat_coords[j,i];
-            lat_vertices[j,i,1] = lat_coords[j,i]-delta_lat;
-            lat_vertices[j,i,2] = lat_coords[j,i];
-            lat_vertices[j,i,3] = lat_coords[j,i]+delta_lat;
-    return x,y,lon_coords,lat_coords,lon_vertices,lat_vertices
-
-# read_data funcs are highly unoptimzed....
-def read_coords(lon,lat,lev):
-    alons = numpy.zeros(lon)
-    bnds_lon = numpy.zeros(2*lon)
-    alats = numpy.zeros(lat)
-    bnds_lat = numpy.zeros(2*lat)
-    plevs = numpy.zeros(lev,dtype='i')
-    for i in range(lon):
-        alons[i] = i*360./lon
-        bnds_lon[2*i] = (i - 0.5)*360./lon
-        bnds_lon[2*i+1] = (i + 0.5)*360./lon
-        
-    for i in range(lat):
-        alats[i] = (lat-i)*10
-        bnds_lat[2*i] = (lat-i)*10 + 5.
-        bnds_lat[2*i+1] = (lat-i)*10 - 5.
-        
-
-    plevs = numpy.array([100000., 92500., 85000., 70000.,
-                         60000., 50000., 40000., 30000., 25000., 20000.,
-                         15000., 10000., 7000., 5000., 3000., 2000., 1000.])
-
-    return alats, alons, plevs, bnds_lat, bnds_lon
-
-def read_time(it):
-    time = [0]
-    time_bnds=[0,0]
-    time[0] = (it-0.5)*30.;
-    time_bnds[0] = (it-1)*30.;
-    time_bnds[1] = it*30.;
-
-    time[0]=it;
-    time_bnds[0] = it;
-    time_bnds[1] = it+1;
-    return time[0],numpy.array(time_bnds)
-
-def read_3d_input_files(it, varname, n0, n1, n2, ntimes):
-    
-  if varname=="CLOUD":
-      factor = 0.1;
-      offset = -50.;
-  elif varname=="U":
-      factor = 1.
-      offset = 100.
-  elif varname=="T":
-      factor = 0.5;
-      offset = -150.;
-
-  field = numpy.zeros((n2,n1,n0),dtype='d')
-  for k in range(n2):
-    for j in range(n1):
-      for i in range(n0):
-	field[k,j,i] = (k*64 + j*16 + i*4 + it)*factor - offset;
-  return field
-
-
-def read_2d_input_files(it, varname, n0, n1):
-
-    if varname=="LATENT":
-        factor = 1.;
-        offset = 120.;
-    elif varname == "TSURF":
-        factor = 2.0;
-        offset = -230.;
-    elif varname=="SOIL_WET":
-        factor = 10.;
-        offset = 0.;
-    elif varname == "PSURF":
-        factor = 1.;
-        offset = -9.7e2;
-
-    field = numpy.zeros((n0,n1),dtype='d')
-
-    for j in range(n0):
-        for i in range(n1):
-            tmp = (j*16. + i*4. + it)*factor - offset;
-            field[j,i] = tmp;
-    return field
-
-alats, alons, plevs, bnds_lat, bnds_lon = read_coords(lon,lat,lev);
-
-Time = numpy.zeros(ntimes,dtype='d')
-bnds_time = numpy.zeros(ntimes*2,dtype='d')
-Time[0],bnds_time[0:2] = read_time(0)
-Time[1],bnds_time[2:4] = read_time(1)
-
-zlevs = numpy.zeros(5,dtype='d')
-zlevs[0]=0.1999999999999999999;
-zlevs[1]= 0.3;
-zlevs[2]=0.55;
-zlevs[3]= 0.7;
-zlevs[4] =  0.99999999;
-
-zlev_bnds    = numpy.zeros(6,dtype='d')
-zlev_bnds[0] = 0.
-zlev_bnds[1] = 0.2
-zlev_bnds[2] = 0.42
-zlev_bnds[3] = 0.62
-zlev_bnds[4] = 0.8
-zlev_bnds[5] = 1.
-
-regions = numpy.array(["atlantic_arctic_ocean", "indian_pacific_ocean", "pacific_ocean", "global_ocean", "sf_bay"])
-
-a_coeff=numpy.array([ 0.1, 0.2, 0.3, 0.22, 0.1 ])
-b_coeff=numpy.array([ 0.0, 0.1, 0.2, 0.5, 0.8 ])
-p0= numpy.array([1.e5,])
-a_coeff_bnds=numpy.array([0.,.15, .25, .25, .16, 0.])
-b_coeff_bnds=numpy.array([0.,.05, .15, .35, .65, 1.])
-
diff --git a/Test/test_python_direct_calls.py b/Test/test_python_direct_calls.py
deleted file mode 100644
index c1b63a4..0000000
--- a/Test/test_python_direct_calls.py
+++ /dev/null
@@ -1,120 +0,0 @@
-from test_python_common import * # common subroutines
-import cmor._cmor
-import os
-
-pth = os.path.split(os.path.realpath(os.curdir))
-if pth[-1]=='Test':
-    ipth = opth = '.'
-else:
-    ipth = opth = 'Test'
-
-myaxes=numpy.zeros(9,dtype='i')
-myaxes2=numpy.zeros(9,dtype='i')
-myvars=numpy.zeros(9,dtype='i')
-
-cmor._cmor.setup(ipth,cmor.CMOR_REPLACE,cmor.CMOR_NORMAL,cmor.CMOR_EXIT_ON_MAJOR,"",1);
-cmor._cmor.dataset( \
-    ipth,\
-    "lgm",\
-    "GICC (Generic International Climate Center, Geneva, Switzerland)",\
-    "GICCM1 (2002): atmosphere:  GICAM3 (gicam_0_brnchT_itea_2, T63L32); ocean: MOM (mom3_ver_3.5.2, 2x3L15); sea ice: GISIM4; land: GILSM2.5",\
-    "standard",\
-    1,\
-    "Rusty Koder (koder at middle_earth.net)",\
-    "Output from archive/giccm_03_std_2xCO2_2256.",\
-    "Equilibrium reached after 30-year spin-up after which data were output starting with nominal date of January 2030",\
-    "Model described by Koder and Tolkien (J. Geophys. Res., 2001, 576-591).  Also see http://www.GICC.su/giccm/doc/index.html  2XCO2 simulation described in Dorkey et al. '(Clim. Dyn., 2003, 323-357.)",\
-    0,\
-    0,\
-    None,"GICCM1","Nat",0,0,"PCMDI","N/A",0)
-
-tables=[]
-a = cmor._cmor.load_table("Tables/CMIP5_Omon")
-tables.append(a)
-tables.append(cmor._cmor.load_table("Tables/CMIP5_Amon"))
-print 'Tables ids:',tables
-
-
-axes=[]
-id="time"
-units="months since 1980"
-myaxes[0] = cmor._cmor.axis(id,units,ntimes,Time,'d',bnds_time,2,"1 month")
-id='latitude'
-units="degrees_north"
-interval=""
-myaxes[1] = cmor._cmor.axis(id,units,lat,alats,'d',bnds_lat,2,interval)
-id="longitude"
-units="degrees_east"
-myaxes[2] = cmor._cmor.axis(id,units,lon,alons,'d',bnds_lon,2,interval)
-id="plevs"
-units="Pa"
-print plevs.astype("d")
-myaxes[3] = cmor._cmor.axis(id,units,lev2,plevs.astype("d"),'d',None,0,interval)
-
-
-myaxes[4] = cmor._cmor.axis("alternate_hybrid_sigma","1",5,zlevs,'d',zlev_bnds,1,interval)
-
-
-cmor.set_table(tables[0])
-myaxes[5] = cmor._cmor.axis( "basin","",4,regions,'c',None,21,interval)
-id='time'
-units='months since 1980'
-myaxes[7] = cmor._cmor.axis(id,units,ntimes,Time,'d',bnds_time,2,"1 month")
-id="latitude"
-units="degrees_north"
-interval=""
-myaxes[8] = cmor._cmor.axis(id,units,lat,alats,'d',bnds_lat,2,interval)
-
-cmor._cmor.set_table(tables[1])
-
-
-dtmp = -999;
-dtmp2=1.e-4;
-myaxes2[0] = myaxes[0];
-myaxes2[1] = myaxes[3];
-myaxes2[2] = myaxes[1];
-myaxes2[3] = myaxes[2];
-
-print 'ok doing the vars thing'
-myvars[0] = cmor._cmor.variable(entry2d[0],units2d[0],3,myaxes,'d',None,dtmp2,positive2d[0],varin2d[0],"no history","no future")
-print 'vars 2'
-myvars[1] = cmor._cmor.variable(entry3d[2],units3d[2],4,myaxes2,'d',None,dtmp2,"",varin3d[2],"no history","no future")
-print 'vars 2'
-
-myaxes2[1] = myaxes[4];
-myvars[2] = cmor._cmor.variable(entry3d[0],units3d[0],4,myaxes2,'d',None,dtmp2,"",varin3d[0],"no history","no future")
-
-print 'vars 2'
-
-print 'zfact',type(numpy.array(myaxes2[1])),type(myaxes2)
-
-myvars[3] = cmor._cmor.zfactor(int(myaxes2[1]),"p0","Pa",0,None,'d',p0,None)
-print 'zfact',myaxes2[1]
-myvars[3] = cmor._cmor.zfactor(int(myaxes2[1]),"b","",1,myaxes2[1],'d',b_coeff,b_coeff_bnds)
-print 'zfact',myaxes2[1]
-myvars[3] = cmor._cmor.zfactor(int(myaxes2[1]),"a","",1,myaxes2[1],'d',a_coeff,a_coeff_bnds)
-#/*   printf("defining ap\n"); */
-#/*   for(i=0;i<5;i++) {a_coeff[i]*=1.e3;printf("sending acoef: %i, %lf\n",i,a_coeff[i]);} */
-#/*   for(i=0;i<6;i++) {a_coeff_bnds[i]*=1.e5;printf("sending acoef: %i, %lf\n",i,a_coeff_bnds[i]);} */
-#/*   ierr = cmor_zfactor(&myvars[3],myaxes2[1],"ap","hPa",1,&myaxes2[1],'d',&a_coeff,&a_coeff_bnds); */
-print 'zfact before last'
-myvars[3] = cmor._cmor.zfactor(int(myaxes2[1]),"ps","hPa",3,myaxes,'d',None,None)
-print 'zfact last'
-
-#  /* ok here we decalre a variable for region axis testing */
-cmor.set_table(tables[0])
-myaxes2[0] = myaxes[7]
-myaxes2[1] = myaxes[5]
-myaxes2[2] = myaxes[8]
-
-myvars[4] = cmor._cmor.variable("htovgyre","W",3,myaxes2,'d',None,dtmp2,positive2d[0],varin2d[0],"no history","no future")
-
-cmor.set_table(tables[1])
-
-
-for i in range(ntimes):
-    data2d = read_2d_input_files(i, varin2d[0], lat,lon)
-    print 'writing time',i,data2d.shape,data2d,numpy.average(data2d)
-    cmor._cmor.write(myvars[0],numpy.ravel(data2d),data2d.dtype.char,"",1,None,None,None);
-
-cmor._cmor.close(None,0,0)
diff --git a/Test/test_python_fx.py b/Test/test_python_fx.py
deleted file mode 100644
index a83f78e..0000000
--- a/Test/test_python_fx.py
+++ /dev/null
@@ -1,46 +0,0 @@
-import cmor
-import numpy
-
-
-def test_mode(mode):
-    cmor.setup(inpath='Tables',
-               netcdf_file_action = mode)
-    cmor.dataset('pre-industrial control', 'ukmo', 'HadCM3', '360_day',
-                 institute_id = 'ukmo',
-                 model_id = 'HadCM3',
-                 forcing="TO",
-                 contact="Derek Jeter",
-                 history = 'some global history',
-                 parent_experiment_id="lgm",branch_time=0)
-    
-    table = 'CMIP5_fx'
-    cmor.load_table(table)
-    axes = [ 
-             {'table_entry': 'latitude',
-              'units': 'degrees_north',
-              'coord_vals': [0],
-              'cell_bounds': [-1, 1]},             
-             {'table_entry': 'longitude',
-              'units': 'degrees_east',
-              'coord_vals': [90],
-              'cell_bounds': [89, 91]},
-          
-             ]
-    values = numpy.array([5000],numpy.float32)
-    axis_ids = list()
-
-
-    for axis in axes:
-        axis_id = cmor.axis(**axis)
-        axis_ids.append(axis_id)
-    for var, units in (('deptho', 'm'),):
-        varid = cmor.variable(var,
-                              units,
-                              axis_ids,
-                              history = 'variable history'
-                              )
-        cmor.write(varid, values)
-    fnm = cmor.close(varid,file_name=True)
-    cmor.close()
-    return fnm
-print test_mode(cmor.CMOR_REPLACE)
diff --git a/Test/test_python_grid_and_ocn_sigma.py b/Test/test_python_grid_and_ocn_sigma.py
deleted file mode 100644
index 21cf125..0000000
--- a/Test/test_python_grid_and_ocn_sigma.py
+++ /dev/null
@@ -1,159 +0,0 @@
-
-import cmor,numpy
-import os
-ntimes=2
-lon=300
-lat=100
-lev=5
-
-def read_time(it):
-    time = [0]
-    time_bnds=[0,0]
-    time[0] = (it-0.5)*30.;
-    time_bnds[0] = (it-1)*30.;
-    time_bnds[1] = it*30.;
-
-    time[0]=it;
-    time_bnds[0] = it;
-    time_bnds[1] = it+1;
-    return time[0],numpy.array(time_bnds)
-
-def gen_irreg_grid(lon,lat):
-    lon0 = 5.
-    lat0=-17.5
-    delta_lon = .1
-    delta_lat = .1
-    y = numpy.arange(lat)
-    x = numpy.arange(lon)
-    lon_coords = numpy.zeros((lat,lon))
-    lat_coords = numpy.zeros((lat,lon))
-    lon_vertices = numpy.zeros((lat,lon,4))
-    lat_vertices = numpy.zeros((lat,lon,4))
-
-    for j in range(lat): # really porr coding i know
-        for i in range(lon): # getting worse i know
-            lon_coords[j,i] = lon0+delta_lon*(j+1+i);
-            lat_coords[j,i] = lat0+delta_lat*(j+1-i);
-            lon_vertices[j,i,0] = lon_coords[j,i]-delta_lon;
-            lon_vertices[j,i,1] = lon_coords[j,i];
-            lon_vertices[j,i,2] = lon_coords[j,i]+delta_lon;
-            lon_vertices[j,i,3] = lon_coords[j,i];
-## !!$      /* vertices lat */
-            lat_vertices[j,i,0] = lat_coords[j,i];
-            lat_vertices[j,i,1] = lat_coords[j,i]-delta_lat;
-            lat_vertices[j,i,2] = lat_coords[j,i];
-            lat_vertices[j,i,3] = lat_coords[j,i]+delta_lat;
-    print lat_vertices.min(),'---------------------'
-    return x,y,lon_coords,lat_coords,lon_vertices,lat_vertices
-
-
-
-pth = os.path.split(os.path.realpath(os.curdir))
-if pth[-1]=='Test':
-    ipth = opth = '.'
-else:
-    ipth = opth = 'Test'
-
-
-myaxes=numpy.zeros(9,dtype='i')
-myaxes2=numpy.zeros(9,dtype='i')
-myvars=numpy.zeros(9,dtype='i')
-
-
-cmor.setup(inpath=ipth,set_verbosity=cmor.CMOR_NORMAL, netcdf_file_action = cmor.CMOR_REPLACE, exit_control = cmor.CMOR_EXIT_ON_MAJOR);
-cmor.dataset(
-    outpath = opth,
-    experiment_id = "historical",
-    institution = "GICC (Generic International Climate Center, Geneva, Switzerland)",
-    source = "GICCM1 2002: atmosphere:  GICAM3 (gicam_0_brnchT_itea_2, T63L32); ocean: MOM (mom3_ver_3.5.2, 2x3L15); sea ice: GISIM4; land: GILSM2.5",
-    calendar = "standard",
-    realization = 1,
-    contact = "Tim Lincecum",
-    history = "Testing noncartesian grid and ocn sigma",
-    comment = "trying to see if it core dumps",
-    references = "ref",
-    leap_year=0,
-    leap_month=0,
-    month_lengths=None,
-    model_id="GICCM1",
-    forcing="Ant, Nat",
-    institute_id="pcmdi",
-    parent_experiment_id="piControl",branch_time=18336.33)
-
-tables=[]
-a = cmor.load_table("Tables/CMIP5_grids")
-tables.append(a)
-tables.append(cmor.load_table("Tables/CMIP5_Omon"))
-print 'Tables ids:',tables
-
-cmor.set_table(tables[0])
-
-x,y,lon_coords,lat_coords,lon_vertices,lat_vertices = gen_irreg_grid(lon,lat)
-print lon_vertices.shape,lat_vertices.shape,x.shape,y.shape
-
-myaxes[1] = cmor.axis(table_entry = 'y', 
-                      units = 'm', 
-                      coord_vals = y)
-myaxes[0] = cmor.axis(table_entry = 'x', 
-                      units = 'm', 
-                      coord_vals = x)
-
-print 'lons:',lon_vertices.shape,lon_coords.shape
-grid_id = cmor.grid(axis_ids = myaxes[:2], 
-                    latitude = lat_coords, 
-                    longitude = lon_coords, 
-                    latitude_vertices = lat_vertices, 
-                    longitude_vertices = lon_vertices)
-print 'got grid_id:',grid_id
-myaxes[2] = grid_id
-
-## mapnm = 'lambert_conformal_conic'
-## params = [ "standard_parallel1",
-##            "longitude_of_central_meridian","latitude_of_projection_origin",
-##            "false_easting","false_northing","standard_parallel2" ]
-## punits = ["","","","","","" ]
-## pvalues = [-20.,175.,13.,8.,0.,20. ]
-## cmor.set_grid_mapping(grid_id=myaxes[2],
-##                       mapping_name = mapnm,
-##                       parameter_names = params,
-##                       parameter_values = pvalues,
-##                       parameter_units = punits)
-
-cmor.set_table(tables[1])
-myaxes[3] = cmor.axis(table_entry = 'time',
-                      units = 'months since 1980')
-# Now sets up the ocn sigma stuff
-levs=-numpy.arange(lev)/float(lev+1.)
-blevs=-numpy.arange(lev+1)/float(lev+1.)
-print 'Defining zlevs'
-myaxes[4] = cmor.axis(table_entry='ocean_sigma',coord_vals=levs,cell_bounds=blevs,units='1')
-
-print 'definnig zfactor depth',myaxes[2]
-depth = numpy.random.random((lon,lat))*5000.
-print 'Depth:',depth.shape,depth.dtype
-idpth = cmor.zfactor(zaxis_id=myaxes[4],units='m',zfactor_name='depth',axis_ids=numpy.array([myaxes[2],]),zfactor_values=depth)
-
-print 'defining zfactor eta'
-ieta = cmor.zfactor(zaxis_id=myaxes[4],units='m',zfactor_name='eta',axis_ids=[myaxes[2],myaxes[3]])
-print 'ieta:',ieta
-pass_axes = [myaxes[4],myaxes[2],myaxes[3]]
-print 'defining variable'
-myvars[0] = cmor.variable( table_entry = 'thetao',
-                           units = 'K',
-                           axis_ids = pass_axes,
-                           positive = 'down'
-                           )
-Time = numpy.zeros(ntimes,dtype='d')
-bnds_time = numpy.zeros(ntimes*2,dtype='d')
-Time[0],bnds_time[0:2] = read_time(0)
-Time[1],bnds_time[2:4] = read_time(1)
-for i in range(ntimes):
-    data3d = numpy.random.random((lev,lon,lat,ntimes))
-    eta = numpy.random.random((lon,lat,ntimes))*10000.
-    #print 'writing time: ',i,data3d.shape,data3d
-    #print Time[i],bnds_time[2*i:2*i+2]
-    print 'Writing time',i,'for var',data3d.shape
-    cmor.write(myvars[0],data3d,1,time_vals=Time[i],time_bnds=bnds_time[2*i:2*i+2])
-    print 'Writing time',i,'for eta'
-    cmor.write(ieta,eta,1,time_vals=Time[i],time_bnds=bnds_time[2*i:2*i+2],store_with=myvars[0])
-cmor.close()
diff --git a/Test/test_python_index_coord.py b/Test/test_python_index_coord.py
deleted file mode 100644
index 7fabce0..0000000
--- a/Test/test_python_index_coord.py
+++ /dev/null
@@ -1,44 +0,0 @@
-import cmor,numpy
-
-ipth="Test"
-cmor.setup(inpath=ipth,
-           set_verbosity=cmor.CMOR_NORMAL,
-           netcdf_file_action = cmor.CMOR_REPLACE,
-           logfile = None)
-
-cmor.dataset(
-    outpath = ipth,
-    experiment_id = "lgm",
-    institution = "PCMDI",
-    source = "PCMDI",
-    calendar = "standard",
-    model_id="pcmdi-09a",forcing="forcing")
-
-cmor.load_table("Tables/CMIP5_Omon")
-
-nlat = 90
-dlat = 180/nlat
-nlon = 180
-dlon = 360./nlon
-nlev = 5
-
-lats = numpy.arange(-90+dlat/2.,90,dlat)
-blats = numpy.arange(-90,90+dlat,dlat)
-lons = numpy.arange(0+dlon/2.,360.,dlon)
-blons = numpy.arange(0,360.+dlon,dlon)
-
-ntime = 12
-
-data = numpy.random.random((ntime,nlat,nlev,nlon))*5+273.
-
-itim = cmor.axis(table_entry='time',coord_vals=numpy.arange(0,ntime,1),units='month since 2008',cell_bounds=numpy.arange(0,ntime+1,1))
-ilat = cmor.axis(table_entry='latitude',coord_vals=lats,units='degrees_north',cell_bounds=blats)
-ilon = cmor.axis(table_entry='longitude',coord_vals=lons,units='degrees_east',cell_bounds=blons)
-ilev = cmor.axis(table_entry='depth_coord',length=5,cell_bounds=numpy.arange(-12000,0,2000),coord_vals=numpy.arange(-10000,0,2000),units="m")
-
-iv = cmor.variable(table_entry='thetao',axis_ids=numpy.array((itim,ilat,ilev,ilon)),units='K')
-
-cmor.write(iv,data)
-
-f1 = cmor.close(iv,file_name=True)
-print f1
diff --git a/Test/test_python_jamie.py b/Test/test_python_jamie.py
deleted file mode 100644
index cf12ad5..0000000
--- a/Test/test_python_jamie.py
+++ /dev/null
@@ -1,39 +0,0 @@
-import cmor
-
-def path_test():
-    cmor.setup(inpath='../trunk/Tables',netcdf_file_action=cmor.CMOR_REPLACE)
-
-    cmor.dataset('historical', 'ukmo', 'HadCM3', '360_day',model_id='HadCM3',forcing='Nat',
-                 contact="J.T. Snow",
-                 institute_id="PCMDI",
-                 parent_experiment_id="N/A",branch_time=0)
-    
-    table='CMIP5_Amon'
-    cmor.load_table(table)
-    axes = [ {'table_entry': 'time',
-              'units': 'days since 2000-01-01 00:00:00',
-              'coord_vals': [15],
-              'cell_bounds': [0, 30]
-              },
-             {'table_entry': 'latitude',
-              'units': 'degrees_north',
-              'coord_vals': [0],
-              'cell_bounds': [-1, 1]},             
-             {'table_entry': 'longitude',
-              'units': 'degrees_east',
-              'coord_vals': [90],
-              'cell_bounds': [89, 91]},
-             ]
-              
-    axis_ids = list()
-    for axis in axes:
-        axis_id = cmor.axis(**axis)
-        axis_ids.append(axis_id)
-    varid = cmor.variable('ts', 'K', axis_ids)
-    cmor.write(varid, [273])
-    path=cmor.close(varid, file_name=True)
-
-    print path
-
-if __name__ == '__main__':
-    path_test()
diff --git a/Test/test_python_jamie_2.py b/Test/test_python_jamie_2.py
deleted file mode 100644
index 1634159..0000000
--- a/Test/test_python_jamie_2.py
+++ /dev/null
@@ -1,43 +0,0 @@
-import cmor
-
-def multi_call_test():
-    cmor.setup(inpath='Tables',netcdf_file_action=cmor.CMOR_REPLACE)
-
-    cmor.dataset('historical', 'ukmo', 'HadCM3', '360_day',
-                 institute_id="PCMDI",
-                 model_id='HadCM3',contact="Ron Nen",forcing='SO',parent_experiment_id="lgm",branch_time=0.)
-    
-    table='CMIP5_Amon'
-    cmor.load_table(table)
-    axes = [ {'table_entry': 'time',
-              'units': 'days since 2000-01-01 00:00:00',
-              },
-             {'table_entry': 'latitude',
-              'units': 'degrees_north',
-              'coord_vals': [0],
-              'cell_bounds': [-1, 1]},             
-             {'table_entry': 'longitude',
-              'units': 'degrees_east',
-              'coord_vals': [90],
-              'cell_bounds': [89, 91]},
-             ]
-              
-    axis_ids = list()
-    for axis in axes:
-        axis_id = cmor.axis(**axis)
-        axis_ids.append(axis_id)
-    varid = cmor.variable('ts', 'K', axis_ids)
-    cmor.write(varid, [273], time_vals = [15], time_bnds = [ [0,30] ])
-    print 'First write worked as expected'
-    try:
-        cmor.write(varid, [273], time_vals = [15], time_bnds = [ [0], [30] ])
-        raise Exception,"We shouldn't be getting in here"
-    except:
-        print 'Second write that should have failed did fail, good!'
-        pass
-    cmor.close(varid)
-    print 'Success'
-
-
-if __name__ == '__main__':
-    multi_call_test()
diff --git a/Test/test_python_jamie_3.py b/Test/test_python_jamie_3.py
deleted file mode 100644
index 209912a..0000000
--- a/Test/test_python_jamie_3.py
+++ /dev/null
@@ -1,46 +0,0 @@
-#!/usr/bin/env python
-import cmor
-import numpy
-
-def main():
-    
-    missing = -99.
-    cmor.setup(inpath='Tables',
-               netcdf_file_action = cmor.CMOR_REPLACE)
-    cmor.dataset('historical', 'ukmo', 'HadCM3', '360_day',
-                 institute_id = 'ukmo',
-                 forcing = 'Nat',
-                 model_id = 'HadCM3',
-                 contact="Bleachers 140",
-                 parent_experiment_id="lgm",branch_time=0.)
-
-    table = 'CMIP5_Amon'
-    cmor.load_table(table)
-    axes = [ {'table_entry': 'time',
-              'units': 'days since 2000-01-01 00:00:00',
-              },
-             {'table_entry': 'latitude',
-              'units': 'degrees_north',
-              'coord_vals': [0],
-              'cell_bounds': [-1, 1]},             
-             {'table_entry': 'longitude',
-              'units': 'degrees_east',
-              'coord_vals': [90],
-              'cell_bounds': [89, 91]},
-             ]
-
-    values = numpy.array([missing], numpy.float32)
-    myma = numpy.ma.masked_values(values, missing)
-    axis_ids = list()
-    for axis in axes:
-        axis_id = cmor.axis(**axis)
-        axis_ids.append(axis_id)
-    varid = cmor.variable('ts', 'K', axis_ids, missing_value = myma.fill_value)
-
-    cmor.write(varid, myma, time_vals = [15], time_bnds = [ [0,30] ])
-
-    cmor.close(varid)
-    
-if __name__ == '__main__':
-
-    main()
diff --git a/Test/test_python_jamie_3hr.py b/Test/test_python_jamie_3hr.py
deleted file mode 100644
index 762ab13..0000000
--- a/Test/test_python_jamie_3hr.py
+++ /dev/null
@@ -1,51 +0,0 @@
-#!/usr/bin/env python
-import cmor
-import numpy
-
-def main():
-    
-    cmor.setup(inpath='Tables',
-               netcdf_file_action = cmor.CMOR_REPLACE_3)
-    cmor.dataset('pre-industrial control', 'ukmo', 'HadCM3', '360_day',
-                 institute_id = 'ukmo',
-                 model_id = 'HadCM3',
-                 history = 'some global history',
-                 forcing = 'N/A',
-                 parent_experiment_id = 'N/A',
-                 branch_time = 0.,
-                 contact = 'bob')
- 
-    table = 'CMIP5_3hr'
-    cmor.load_table(table)
-    axes = [ {'table_entry': 'time1',
-              'units': 'hours since 2000-01-01 00:00:00',
-              },
-             {'table_entry': 'latitude',
-              'units': 'degrees_north',
-              'coord_vals': [0],
-              'cell_bounds': [-1, 1]},             
-             {'table_entry': 'longitude',
-              'units': 'degrees_east',
-              'coord_vals': [90],
-              'cell_bounds': [89, 91]},
-             ]
-
-    values = numpy.array([1.], numpy.float32)+200
-    axis_ids = list()
-    for axis in axes:
-        axis_id = cmor.axis(**axis)
-        axis_ids.append(axis_id)
-
-    varid = cmor.variable('tas',
-                          'K',
-                          axis_ids,
-                          history = 'variable history',
-                          missing_value = -99,
-                          )
-    cmor.write(varid, values, time_vals = [0.], time_bnds = [ [0,3.] ])
-
-    cmor.close()
-    
-if __name__ == '__main__':
-
-    main()
diff --git a/Test/test_python_jamie_4.py b/Test/test_python_jamie_4.py
deleted file mode 100644
index 237fdf0..0000000
--- a/Test/test_python_jamie_4.py
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/usr/bin/env python
-import cmor
-import numpy
-
-def main():
-    
-    cmor.setup(inpath='Tables',
-               netcdf_file_action = cmor.CMOR_REPLACE)
-    cmor.dataset('historical', 'ukmo', 'HadCM3', '360_day',
-                 institute_id = 'ukmo',
-                 forcing = 'SO',
-                 model_id = 'HadCM3',contact="Dusty Baker (even though he was a Dodgers",
-                 parent_experiment_id="lgm",branch_time=0)
-
-    table = 'CMIP5_Amon'
-    cmor.load_table(table)
-    axes = [ {'table_entry': 'time',
-              'units': 'days since 2000-01-01 00:00:00',
-              },
-             {'table_entry': 'latitude',
-              'units': 'degrees_north',
-              'coord_vals': [0],
-              'cell_bounds': [-1, 1]},             
-             {'table_entry': 'longitude',
-              'units': 'degrees_east',
-              'coord_vals': [90],
-              'cell_bounds': [89, 91]},
-             ]
-
-    values = numpy.array([0.], numpy.float32)
-    axis_ids = list()
-    for axis in axes:
-        axis_id = cmor.axis(**axis)
-        axis_ids.append(axis_id)
-
-    for var, units in (('ts', 'K'),  ('ps', 'hPa')):
-        varid = cmor.variable(var,
-                              units,
-                              axis_ids,
-                              )
-
-        cmor.write(varid, values, time_vals = [15], time_bnds = [ [0,30] ])
-
-    cmor.close()
-    
-if __name__ == '__main__':
-
-    main()
diff --git a/Test/test_python_jamie_6.py b/Test/test_python_jamie_6.py
deleted file mode 100644
index a332212..0000000
--- a/Test/test_python_jamie_6.py
+++ /dev/null
@@ -1,169 +0,0 @@
-import cmor,numpy
-
-error_flag = cmor.setup(inpath='Test', netcdf_file_action=cmor.CMOR_REPLACE)
-  
-error_flag = cmor.dataset(                                   
-       outpath='Test',                                         
-       experiment_id='noVolc2000',
-       institution= 'GICC (Generic International Climate Center, Geneva, Switzerland)',                                 
-       source='GICCM1 (2002): ',
-       calendar='360_day',                                      
-       realization=1,                                          
-       contact = 'Rusty Koder (koder at middle_earth.net) ',      
-       history='Output from archivcl_A1.nce/giccm_03_std_2xCO2_2256.', 
-       comment='Equilibrium reached after 30-year spin-up ',                                 
-       references='Model described by Koder and Tolkien ',
-       model_id="GICCM1", 
-        institute_id="PCMDI",
-       forcing="TO",
-       parent_experiment_id="lgm",branch_time=0)
-  
-
-# creates 1 degree grid
-nlat=180
-nlon=360
-alats = numpy.arange(180)-89.5
-bnds_lat = numpy.arange(181)-90
-alons=numpy.arange(360)+.5
-bnds_lon=numpy.arange(361)
-cmor.load_table("Tables/CMIP5_Amon")
-ilat = cmor.axis(  
-    table_entry='latitude',       
-    units='degrees_north',          
-    length=nlat,                   
-    coord_vals=alats,              
-    cell_bounds=bnds_lat)        
-
-ilon = cmor.axis(  
-    table_entry='longitude',      
-    length=nlon,                   
-    units='degrees_east',         
-    coord_vals=alons,             
-    cell_bounds=bnds_lon)      
-
-lev=5
-ntimes=12
-plevs = (numpy.arange(lev)+1)*1.E4
-
-
-itim = cmor.axis(  
-    table_entry='time',           
-    units='months since 2030-1-1',  
-    length=ntimes,                
-    interval='1 month')
-
-zlevs = numpy.array(( 0.1, 0.3, 0.55, 0.7, 0.9 ))
-zlev_bnds=numpy.array(( 0.,.2, .42, .62, .8, 1. ))
-table_entry='hybrid_height'
-if table_entry == 'hybrid_height':
-    ilev = cmor.axis(  
-        table_entry='hybrid_height',       
-        ##     table_entry='standard_sigma',       
-                                        ##     table_entry='standard_hybrid_sigma',       
-        units='m',
-        length=lev,                   
-        coord_vals=zlevs,             
-        cell_bounds=zlev_bnds)
-    
-    p0 = 0.5e4
-##   p0 = 1.e5
-##   a_coeff = (/ 0.1, 0.2, 0.3, 0.2, 0.1 /)
-    a_coeff = numpy.array(( 0.2, 0.4, 0.6, 0.8, 0.95 ))
-    b_coeff = numpy.array(( 0.0, 0.1, 0.2, 0.5, 0.8 ))
-    
-##  a_coeff_bnds=(/0.,.15, .25, .25, .15, 0./)
-    a_coeff_bnds=numpy.array((0.,.3, .5, .7, .9, 1.))
-    b_coeff_bnds=numpy.array((0.,.05, .15, .35, .65, 1.))
-    
-## error_flag = cmor.zfactor(  
-##     zaxis_id=ilev,                      
-##     zfactor_name='ptop',                  
-##     units='Pa',                         
-##     zfactor_values = p0)
-    
-    error_flag = cmor.zfactor(  
-        zaxis_id=ilev,                        
-        zfactor_name='b',
-        axis_ids= numpy.array( (ilev, )),                
-        zfactor_values = b_coeff,            
-        zfactor_bounds = b_coeff_bnds  )
-    
-##     error_flag = cmor.zfactor(  
-##         zaxis_id=ilev,                       
-##         zfactor_name='lev',                    
-##         axis_ids= numpy.array(( ilev, )),
-##         units='m',
-##         zfactor_values = a_coeff,            
-##         zfactor_bounds = a_coeff_bnds )
-    
-    data2d = numpy.random.random((180,360)).astype('f')*8000
-    
-    zfactor_id = cmor.zfactor(  
-        zaxis_id=ilev,                         
-        zfactor_name='orog',                     
-        axis_ids=numpy.array(( ilon, ilat )),
-        units='m' ,
-        zfactor_values = data2d)
-else:
-    print 'yep working case'
-    ilev = cmor.axis(  
-        table_entry='standard_sigma',       
-        units='1',
-        length=lev,                   
-        coord_vals=zlevs,             
-        cell_bounds=zlev_bnds)
-    
-    p0 = 0.5E4
-    a_coeff = numpy.array(( 0.2, 0.4, 0.6, 0.8, 0.95 ))
-    b_coeff = numpy.array(( 0.0, 0.1, 0.2, 0.5, 0.8 ))
-    
-    a_coeff_bnds=numpy.array((0.,.3, .5, .7, .9, 1.))
-    b_coeff_bnds=numpy.array((0.,.05, .15, .35, .65, 1.))
-    
-    error_flag = cmor.zfactor(  
-        zaxis_id=ilev,                      
-        zfactor_name='ptop',                  
-        units='Pa',                         
-        zfactor_values = p0)
-    
-    error_flag = cmor.zfactor(  
-        zaxis_id=ilev,                       
-        zfactor_name='sigma',                    
-        axis_ids= numpy.array(( ilev, )),
-        zfactor_values = a_coeff,            
-        zfactor_bounds = a_coeff_bnds )
-    
-    data2d = numpy.random.random((180,360)).astype('f')-97000.
-    
-    zfactor_id = cmor.zfactor(  
-        zaxis_id=ilev,                         
-        zfactor_name='ps',                     
-        axis_ids=numpy.array(( ilon, ilat, itim )),
-        units='Pa')
-
-
-var3d_ids = cmor.variable(    
-    table_entry='cl',     
-    units='%',           
-    axis_ids=numpy.array((ilev, ilon, ilat, itim)),
-    missing_value=1.0e28, 
-    original_name='cloud')
-
-
-  
-for it in range(ntimes):
-
-    time = numpy.array((it))
-    bnds_time = numpy.array((it,it+1))
-    data3d = numpy.random.random((5,360,180)).astype('f')*100.
-    
-    error_flag = cmor.write(                                  
-        var_id        = var3d_ids,                        
-        data          = data3d,                              
-        ntimes_passed = 1,                                   
-        time_vals     = time,                                
-        time_bnds     = bnds_time   )
-
-  
-error_flag = cmor.close()  
-
diff --git a/Test/test_python_jamie_7.py b/Test/test_python_jamie_7.py
deleted file mode 100644
index 19e2a89..0000000
--- a/Test/test_python_jamie_7.py
+++ /dev/null
@@ -1,87 +0,0 @@
-import cmor,numpy
-
-error_flag = cmor.setup(inpath='Test', netcdf_file_action=cmor.CMOR_REPLACE)
-  
-error_flag = cmor.dataset(                                   
-       outpath='Test',                                         
-       experiment_id='noVolc2000',
-       institution= 'GICC (Generic International Climate Center, Geneva, Switzerland)',                                 
-       source='GICCM1 (2002): ',
-       calendar='360_day',                                      
-       realization=1,                                          
-       contact = 'Rusty Koder (koder at middle_earth.net) ',      
-       history='Output from archivcl_A1.nce/giccm_03_std_2xCO2_2256.', 
-       comment='Equilibrium reached after 30-year spin-up ',                                 
-       references='Model described by Koder and Tolkien ',
-       model_id="GICCM1", 
-       institute_id="PCMDI",
-       forcing="Nat, SO",
-       parent_experiment_id="lgm",branch_time=3.14159)
-  
-
-# creates 1 degree grid
-nlat=18
-nlon=36
-alats = numpy.arange(180)-89.5
-bnds_lat = numpy.arange(181)-90
-alons=numpy.arange(360)+.5
-bnds_lon=numpy.arange(361)
-cmor.load_table("Tables/CMIP5_Amon")
-ilat = cmor.axis(  
-    table_entry='latitude',       
-    units='degrees_north',          
-    length=nlat,                   
-    coord_vals=alats,              
-    cell_bounds=bnds_lat)        
-
-ilon = cmor.axis(  
-    table_entry='longitude',      
-    length=nlon,                   
-    units='degrees_east',         
-    coord_vals=alons,             
-    cell_bounds=bnds_lon)      
-
-ntimes=12
-plevs = numpy.array([100000., 92500, 85000, 70000, 60000, 50000, 40000, 30000, 25000,
-   20000, 15000, 10000, 7000, 5000, 3000, 2000, 1000, 999, 998, 997, 996,
-   995, 994])
-
-
-itim = cmor.axis(  
-    table_entry='time',           
-    units='months since 2030-1-1',  
-    length=ntimes,                
-    interval='1 month')
-
-ilev = cmor.axis(  
-        table_entry='plevs',       
-        units='Pa',
-        coord_vals=plevs,             
-        cell_bounds=None)
-    
-
-var3d_ids = cmor.variable(    
-    table_entry='ta',     
-    units='K',           
-    axis_ids=numpy.array((ilev, ilon, ilat, itim)),
-    missing_value=numpy.array([1.0e28,],dtype=numpy.float32)[0], 
-    original_name='cloud')
-
-
-  
-for it in range(ntimes):
-
-    time = numpy.array((it))
-    bnds_time = numpy.array((it,it+1))
-    data3d = numpy.random.random((len(plevs),nlon,nlat))*30.+265.
-    data3d = data3d.astype('f')
-    error_flag = cmor.write(                                  
-        var_id        = var3d_ids,                        
-        data          = data3d,                              
-        ntimes_passed = 1,                                   
-        time_vals     = time,                                
-        time_bnds     = bnds_time   )
-
-  
-error_flag = cmor.close()  
-
diff --git a/Test/test_python_joerg_1.py b/Test/test_python_joerg_1.py
deleted file mode 100644
index 21b395e..0000000
--- a/Test/test_python_joerg_1.py
+++ /dev/null
@@ -1,106 +0,0 @@
-import cmor,numpy
-
-error_flag = cmor.setup(inpath='Test', netcdf_file_action=cmor.CMOR_REPLACE)
-  
-error_flag = cmor.dataset(                                   
-       outpath='Test',                                         
-       experiment_id='noVolc2000',
-       institution= 'GICC (Generic International Climate Center, Geneva, Switzerland)',                                 
-       source='GICCM1 (2002): ',
-       calendar='360_day',                                      
-       realization=1,                                          
-       contact = 'Rusty Koder (koder at middle_earth.net) ',      
-       history='Output from archivcl_A1.nce/giccm_03_std_2xCO2_2256.', 
-       comment='Equilibrium reached after 30-year spin-up ',                                 
-       references='Model described by Koder and Tolkien ',
-       model_id="pcmdi-10a", 
-       forcing="co2",
-       parent_experiment_id="lgm",branch_time=0)
-  
-
-# creates 1 degree grid
-nlat=180
-nlon=360
-alats = numpy.arange(180)-89.5
-bnds_lat = numpy.arange(181)-90
-alons=numpy.arange(360)+.5
-bnds_lon=numpy.arange(361)
-cmor.load_table("Tables/CMIP5_Amon")
-#cmor.load_table("Test/IPCC_table_A1")
-ilat = cmor.axis(  
-    table_entry='latitude',       
-    units='degrees_north',          
-    length=nlat,                   
-    coord_vals=alats,              
-    cell_bounds=bnds_lat)        
-
-ilon = cmor.axis(  
-    table_entry='longitude',      
-    length=nlon,                   
-    units='degrees_east',         
-    coord_vals=alons,             
-    cell_bounds=bnds_lon)      
-
-
-mlev_val= """
-   0.000000    0.000000    0.000000    0.000000    0.000000
-   0.000000    0.000000    0.000000    0.000000    0.000000
-   0.000000    0.000000    0.000000    0.000000    0.000000
-   0.000000    0.000000    0.000000    0.000000    0.000000
-   0.000200    0.001650    0.006050    0.014750    0.028650
-   0.048250    0.073700    0.104950    0.141700    0.183550
-   0.229950    0.280200    0.333650    0.389650    0.447450
-   0.506300    0.565500    0.624350    0.682100    0.738000
-   0.791300    0.841100    0.886350    0.925950    0.958600
-   0.982650    0.996150""".split()
-
-levs=[]
-for l in mlev_val:
-    levs.append(float(l))
-    
-BS_bnds= """
-   0.000000    0.000000    0.000000    0.000000    0.000000
-   0.000000    0.000000    0.000000    0.000000    0.000000
-   0.000000    0.000000    0.000000    0.000000    0.000000
-   0.000000    0.000000    0.000000    0.000000    0.000000
-   0.000000    0.000400    0.002900    0.009200    0.020300
-   0.037000    0.059500    0.087900    0.122000    0.161400
-   0.205700    0.254200    0.306200    0.361100    0.418200
-   0.476700    0.535900    0.595100    0.653600    0.710600
-   0.765400    0.817200    0.865000    0.907700    0.944200
-   0.973000    0.992300    1.000000
-""".split()
-levs_bnds = []
-for l in BS_bnds:
-    levs_bnds.append(float(l))
-
-
-levs=numpy.array(levs)
-levs_bnds=numpy.array(levs_bnds)
-nlevs = len(levs)
-
-ntimes=12
-
-
-itim = cmor.axis(  
-    table_entry='time',           
-    units='months since 2030-1-1',  
-    length=ntimes,                
-    interval='1 month')
-
-zlevs = numpy.array(( 0.1, 0.3, 0.55, 0.7, 0.9 ))
-zlev_bnds=numpy.array(( 0.,.2, .42, .62, .8, 1. ))
-table_entry='alternate_hybrid_sigma'
-
-## for i in range(nlevs):
-##     print i,levs_bnds[i],levs[i],levs_bnds[i+1]
-##     if not (levs_bnds[i]<=levs[i]<=levs_bnds[i+1]) :
-##         print 'Yikes'
-
-ilev = cmor.axis(  
-    table_entry=table_entry,
-    units='',
-    length=nlevs,                   
-    coord_vals=levs,             
-    cell_bounds=levs_bnds)
-
diff --git a/Test/test_python_joerg_2.py b/Test/test_python_joerg_2.py
deleted file mode 100644
index 7142930..0000000
--- a/Test/test_python_joerg_2.py
+++ /dev/null
@@ -1,83 +0,0 @@
-#!/usr/bin/env python
-import cmor
-import numpy
-
-
-def test_mode(mode,i,suffix=''):
-    cmor.setup(inpath='Tables',
-               netcdf_file_action = mode)
-    cmor.dataset('pre-industrial control', 'ukmo', 'HadCM3', '360_day',
-                 institute_id = 'ukmo',
-                 model_id = 'HadCM3',
-                 forcing="TO",
-                 contact="Derek Jeter",
-                 history = 'some global history',
-                 parent_experiment_id="lgm",branch_time=0)
-    
-    table = 'CMIP5_Amon'
-    cmor.load_table(table)
-    levels = [100000.,
-              92500.,
-              85000.,
-              70000.,
-              60000.,
-              50000.,
-              40000.,
-              30000.,
-              25000.,
-              20000.,
-              15000.,
-              10000.,
-              7000.,
-              5000.,
-              3000.,
-              2000.,
-              1000.,
-              999,
-              998,
-              997,
-              996,
-              995,
-              994]
-    
-    axes = [ {'table_entry': 'time',
-              'units': 'months since 2000-01-01 00:00:00',
-              },
-             {'table_entry': 'latitude',
-              'units': 'degrees_north',
-              'coord_vals': [0],
-              'cell_bounds': [-1, 1]},             
-             {'table_entry': 'longitude',
-              'units': 'degrees_east',
-              'coord_vals': [90],
-              'cell_bounds': [89, 91]},
-             {'table_entry': 'plevs',
-              'units': 'Pa',
-              'coord_vals': levels},
-             ]
-    
-    values = numpy.array(range(len(levels)), numpy.float32)+175
-    axis_ids = list()
-    for axis in axes:
-        axis_id = cmor.axis(**axis)
-        axis_ids.append(axis_id)
-
-    for var, units in (('ta', 'K'),):
-        varid = cmor.variable(var,
-                              units,
-                              axis_ids,
-                              history = 'variable history',
-                              missing_value = -99
-                              )
-        print 'suffix is:',suffix
-        cmor.write(varid, values, time_vals = [i], time_bnds = [ [i,i+1] ],file_suffix=suffix)
-
-    fnm = cmor.close(varid,file_name=True)
-    cmor.close()
-    return fnm
-    
-fnm=''
-for i in range(5):
-    print i,fnm
-    fnm = test_mode(cmor.CMOR_APPEND,i,fnm)
-
diff --git a/Test/test_python_joerg_3.py b/Test/test_python_joerg_3.py
deleted file mode 100644
index bfd3a9a..0000000
--- a/Test/test_python_joerg_3.py
+++ /dev/null
@@ -1,149 +0,0 @@
-import cmor,numpy
-
-ntimes=1
-nlat=45
-nlon=90
-nlev=5
-
-def prep(mode):
-    error_flag = cmor.setup(inpath='Test', netcdf_file_action=mode                       )
-
-    error_flag = cmor.dataset(                                   
-           outpath='Test',                                         
-           experiment_id='noVolc2000',
-           institution= 'GICC (Generic International Climate Center, Geneva, Switzerland)',                                 
-           source='GICCM1 (2002): ',
-           calendar='standard',                                      
-           realization=1,                                          
-           contact = 'Rusty Koder (koder at middle_earth.net) ',      
-           history='Output from archivcl_A1.nce/giccm_03_std_2xCO2_2256.', 
-           comment='Equilibrium reached after 30-year spin-up ',                                 
-           references='Model described by Koder and Tolkien ',
-           institute_id="PCMDI",
-           model_id="GICCM1", 
-           forcing="TO, SO, Nat",
-           ## month_lengths=[30,28,30,30,30,30,30,31,30,31,30,30],
-           ## leap_year=3,
-           ## leap_month=1,
-           parent_experiment_id="N/A",branch_time=1)
-
-def prep_var(var,units):
-    # creates 1 degree grid
-    dlat = 180/nlat
-    dlon = 360./nlon
-    alats = numpy.arange(-90+dlat/2.,90,dlat)
-    bnds_lat = numpy.arange(-90,90+dlat,dlat)
-    alons = numpy.arange(0+dlon/2.,360.,dlon)-180.
-    bnds_lon = numpy.arange(0,360.+dlon,dlon)-180.
-    cmor.load_table("Tables/CMIP5_6hrLev")
-    #cmor.load_table("Test/IPCC_table_A1")
-    ilat = cmor.axis(  
-        table_entry='latitude',       
-        units='degrees_north',          
-        length=nlat,                   
-        coord_vals=alats,              
-        cell_bounds=bnds_lat)        
-
-    ilon = cmor.axis(  
-        table_entry='longitude',      
-        length=nlon,                   
-        units='degrees_east',         
-        coord_vals=alons,             
-        cell_bounds=bnds_lon)      
-
-
-    zlevs = numpy.zeros(5,dtype='d')
-    zlevs[0]=0.1999999999999999999;
-    zlevs[1]= 0.3;
-    zlevs[2]=0.55;
-    zlevs[3]= 0.7;
-    zlevs[4] =  0.99999999;
-
-    zlev_bnds    = numpy.zeros(6,dtype='d')
-    zlev_bnds[0] = 0.
-    zlev_bnds[1] = 0.2
-    zlev_bnds[2] = 0.42
-    zlev_bnds[3] = 0.62
-    zlev_bnds[4] = 0.8
-    zlev_bnds[5] = 1.
-
-
-
-    itim = cmor.axis(  
-        table_entry='time1',           
-        units='days since 2010-1-1')
-
-    ilev = cmor.axis(  
-        table_entry="alternate_hybrid_sigma",
-        units='1',
-        coord_vals=zlevs,             
-        cell_bounds=zlev_bnds)
-
-
-    p0= numpy.array([1.e5,])
-    a_coeff=numpy.array([ 0.1, 0.2, 0.3, 0.22, 0.1 ])
-    b_coeff=numpy.array([ 0.0, 0.1, 0.2, 0.5, 0.8 ])
-    a_coeff_bnds=numpy.array([0.,.15, .25, .25, .16, 0.])
-    b_coeff_bnds=numpy.array([0.,.05, .15, .35, .65, 1.])
-
-
-    ierr = cmor.zfactor(zaxis_id=ilev,
-                     zfactor_name='ap',
-                     units='Pa',
-                     axis_ids=[ilev,],
-                     zfactor_values=a_coeff,
-                     zfactor_bounds=a_coeff_bnds)
-
-
-    ierr = cmor.zfactor(zaxis_id=ilev,
-                     zfactor_name='b',
-                     axis_ids=[ilev,],
-                     zfactor_values=b_coeff,
-                     zfactor_bounds=b_coeff_bnds)
-
-
-    ## ierr = cmor.zfactor(zaxis_id=ilev,
-    ##                  zfactor_name='p0',
-    ##                  units='Pa',
-    ##                  zfactor_values=p0)
-
-    ips = cmor.zfactor(zaxis_id=ilev,
-                     zfactor_name='ps',
-                     axis_ids=[itim,ilat,ilon],
-                     units='Pa')
-
-    ivar1 =cmor.variable(var,axis_ids=[itim,ilev,ilat,ilon],units=units,missing_value=0.)
-    return ivar1,ips
-
-file_suffix1=''
-file_suffix2=''
-for d in range(2):
-    mode = cmor.CMOR_APPEND
-    if d==0: mode = cmor.CMOR_REPLACE
-    prep(mode)
-    ivar1,ips1=prep_var("ta","K")
-    ivar2,ips2=prep_var("hus","%")
-    for i in range(4):
-        tval = [i/4.+d]
-        tbnd = [i/4.+d-.125,i/4.+d+.125]
-        print 'writing time:',i,i/4.,file_suffix1
-        data=numpy.random.random((ntimes,nlev,nlat,nlon))*30.+273
-        data=data.astype("f")
-        cmor.write(ivar1,data,time_vals=tval,time_bnds=tbnd,file_suffix=file_suffix1)
-        print 'wrote var 1 time:',i
-        data=numpy.random.random((ntimes,nlev,nlat,nlon))*100.
-        data=data.astype("f")
-        cmor.write(ivar2,data,time_vals=tval,time_bnds=tbnd,file_suffix=file_suffix2)
-        print 'wrote var 2 time:',i
-        data=numpy.random.random((ntimes,nlat,nlon))*50.+101300.
-        data=data.astype("f")
-        cmor.write(ips1,data,store_with=ivar1,ntimes_passed=1,time_vals=tval,time_bnds=tbnd)
-        print 'wrote ps in var 1 time:',i
-        cmor.write(ips2,data,store_with=ivar2,ntimes_passed=1,time_vals=tval,time_bnds=tbnd)
-        print 'wrote ps in var 2 time:',i
-    file_suffix1=cmor.close(ivar1,True)
-    file_suffix2=cmor.close(ivar2,True)
-    print 'File:',file_suffix1,file_suffix2
-    cmor.close()
-print cmor.close(ivar1,True)
-cmor.close()
diff --git a/Test/test_python_max_variables.py b/Test/test_python_max_variables.py
deleted file mode 100644
index 6ac1d97..0000000
--- a/Test/test_python_max_variables.py
+++ /dev/null
@@ -1,90 +0,0 @@
-import cmor,numpy
-
-error_flag = cmor.setup(inpath='Test', netcdf_file_action=cmor.CMOR_REPLACE)
-  
-error_flag = cmor.dataset(                                   
-       outpath='Test',                                         
-       experiment_id='noVolc2000',
-       institution= 'GICC (Generic International Climate Center, Geneva, Switzerland)',                                 
-       source='GICCM1 (2002): ',
-       calendar='360_day',                                      
-       realization=1,                                          
-       contact = 'Rusty Koder (koder at middle_earth.net) ',      
-       history='Output from archivcl_A1.nce/giccm_03_std_2xCO2_2256.', 
-       comment='Equilibrium reached after 30-year spin-up ',                                 
-       references='Model described by Koder and Tolkien ',
-       model_id="GICCM1", 
-       forcing="Nat, SO",
-       institute_id='pcmdi',
-       parent_experiment_id="lgm",branch_time=3.14159)
-  
-
-# creates 10 degree grid
-nlat=18
-nlon=36
-alats = numpy.arange(180)-89.5
-bnds_lat = numpy.arange(181)-90.
-alons=numpy.arange(360)+.5
-bnds_lon=numpy.arange(361)
-cmor.load_table("Tables/CMIP5_Amon")
-ilat = cmor.axis(  
-    table_entry='latitude',       
-    units='degrees_north',          
-    length=nlat,                   
-    coord_vals=alats,              
-    cell_bounds=bnds_lat)        
-
-ilon = cmor.axis(  
-    table_entry='longitude',      
-    length=nlon,                   
-    units='degrees_east',         
-    coord_vals=alons,             
-    cell_bounds=bnds_lon)      
-
-ntimes=600
-plevs = numpy.array([100000., 92500, 85000, 70000, 60000, 50000, 40000, 30000, 25000,
-   20000, 15000, 10000, 7000, 5000, 3000, 2000, 1000, 999, 998, 997, 996,
-   995, 994])
-
-
-itim = cmor.axis(  
-    table_entry='time',           
-    units='months since 2030-1-1',  
-    length=ntimes,                
-    interval='1 month')
-
-ilev = cmor.axis(  
-        table_entry='plevs',       
-        units='Pa',
-        coord_vals=plevs,             
-        cell_bounds=None)
-
-  
-for it in range(ntimes):
-
-
-    var3d_ids = cmor.variable(    
-        table_entry='ta',     
-        units='K',
-        comment='My wise comments here',
-        axis_ids=numpy.array((ilev, ilon, ilat, itim)),
-        missing_value=numpy.array([1.0e28,],dtype=numpy.float32)[0], 
-        original_name='cloud')
-
-    time = numpy.array((it))
-    bnds_time = numpy.array((it,it+1))
-    data3d = numpy.random.random((len(plevs),nlon,nlat))*30.+265.
-    data3d = data3d.astype('f')
-    error_flag = cmor.write(                                  
-        var_id        = var3d_ids,                        
-        data          = data3d,                              
-        ntimes_passed = 1,                                   
-        time_vals     = time,                                
-        time_bnds     = bnds_time   )
-
-    cmor.close(var3d_ids)
-    
-
-  
-error_flag = cmor.close()  
-
diff --git a/Test/test_python_max_variables_2.py b/Test/test_python_max_variables_2.py
deleted file mode 100644
index 6930b4e..0000000
--- a/Test/test_python_max_variables_2.py
+++ /dev/null
@@ -1,96 +0,0 @@
-import cmor,numpy
-
-error_flag = cmor.setup(inpath='Test', netcdf_file_action=cmor.CMOR_REPLACE)
-  
-error_flag = cmor.dataset(                                   
-       outpath='Test',                                         
-       experiment_id='noVolc2000',
-       institution= 'GICC (Generic International Climate Center, Geneva, Switzerland)',                                 
-       source='GICCM1 (2002): ',
-       calendar='360_day',                                      
-       realization=1,                                          
-       contact = 'Rusty Koder (koder at middle_earth.net) ',      
-       history='Output from archivcl_A1.nce/giccm_03_std_2xCO2_2256.', 
-       comment='Equilibrium reached after 30-year spin-up ',                                 
-       references='Model described by Koder and Tolkien ',
-       model_id="GICCM1", 
-       forcing="Nat, SO",
-       institute_id='pcmdi',
-       parent_experiment_id="lgm",branch_time=3.14159)
-  
-
-# creates 10 degree grid
-nlat=18
-nlon=36
-alats = numpy.arange(180)-89.5
-bnds_lat = numpy.arange(181)-90.
-alons=numpy.arange(360)+.5
-bnds_lon=numpy.arange(361)
-cmor.load_table("Tables/CMIP5_Amon")
-ilat = cmor.axis(  
-    table_entry='latitude',       
-    units='degrees_north',          
-    length=nlat,                   
-    coord_vals=alats,              
-    cell_bounds=bnds_lat)        
-
-ilon = cmor.axis(  
-    table_entry='longitude',      
-    length=nlon,                   
-    units='degrees_east',         
-    coord_vals=alons,             
-    cell_bounds=bnds_lon)      
-
-ntimes=600
-plevs = numpy.array([100000., 92500, 85000, 70000, 60000, 50000, 40000, 30000, 25000,
-   20000, 15000, 10000, 7000, 5000, 3000, 2000, 1000, 999, 998, 997, 996,
-   995, 994])
-
-
-itim = cmor.axis(  
-    table_entry='time',           
-    units='months since 2030-1-1',  
-    length=ntimes,                
-    interval='1 month')
-
-ilev = cmor.axis(  
-        table_entry='plevs',       
-        units='Pa',
-        coord_vals=plevs,             
-        cell_bounds=None)
-
-var3d_ids = cmor.variable(    
-    table_entry='ta',     
-    units='K',           
-    axis_ids=numpy.array((ilev, ilon, ilat, itim)),
-    missing_value=numpy.array([1.0e28,],dtype=numpy.float32)[0], 
-    original_name='cloud')
-
-  
-for it in range(ntimes):
-    
-    time = numpy.array((it))
-    bnds_time = numpy.array((it,it+1))
-    data3d = numpy.random.random((len(plevs),nlon,nlat))*30.+265.
-    data3d = data3d.astype('f')
-    error_flag = cmor.write(                                  
-        var_id        = var3d_ids,                        
-        data          = data3d,                              
-        ntimes_passed = 1,                                   
-        time_vals     = time,                                
-        time_bnds     = bnds_time   )
-
-    if (it == ntimes-1) :
-        fnm = cmor.close(var3d_ids, True)
-        print it,fnm
-    else:
-        if (it%50)== 0:
-            fnm = cmor.close(var3d_ids, True, True)
-            print it,fnm
-        else:
-            ierr = cmor.close(var3d_ids, False, True)
-
-
-  
-error_flag = cmor.close()  
-
diff --git a/Test/test_python_memory_check.py b/Test/test_python_memory_check.py
deleted file mode 100644
index 17dc6cb..0000000
--- a/Test/test_python_memory_check.py
+++ /dev/null
@@ -1,131 +0,0 @@
-#!/usr/bin/env python
-
-'''
-Note the memory size from repeated calls to cmor
-
-Memory stats are taken from http://code.activestate.com/recipes/286222/
-'''
-
-import os
-
-_proc_status = '/proc/%d/status' % os.getpid()
-
-_scale = {'kB': 1024.0, 'mB': 1024.0*1024.0,
-          'KB': 1024.0, 'MB': 1024.0*1024.0}
-
-def _VmB(VmKey):
-    '''Private.
-    '''
-    global _proc_status, _scale
-     # get pseudo file  /proc/<pid>/status
-    try:
-        t = open(_proc_status)
-        v = t.read()
-        t.close()
-    except:
-        return 0.0  # non-Linux?
-     # get VmKey line e.g. 'VmRSS:  9999  kB\n ...'
-    i = v.index(VmKey)
-    v = v[i:].split(None, 3)  # whitespace
-    if len(v) < 3:
-        return 0.0  # invalid format?
-     # convert Vm value to bytes
-    return float(v[1]) * _scale[v[2]]
-
-
-def memory(since=0.0):
-    '''Return memory usage in bytes.
-    '''
-    return _VmB('VmSize:') - since
-
-
-def resident(since=0.0):
-    '''Return resident memory usage in bytes.
-    '''
-    return _VmB('VmRSS:') - since
-
-
-def stacksize(since=0.0):
-    '''Return stack size in bytes.
-    '''
-    return _VmB('VmStk:') - since
-
-import cmor
-import sys
-
-def memory_usage(fhd,mem=0,res=0,stk=0):
-    nmem = memory()
-    nres = resident()
-    nstk = stacksize()
-    fhd.write( 'memory: %s\t%i\t\t%i\t\t%i\n' % (nmem,memory(mem), resident(res), stacksize(stk)))
-    return nmem,nres,nstk
-
-def memory_check():
-    cmor.setup(inpath='Tables',netcdf_file_action=cmor.CMOR_REPLACE)
-
-    cmor.dataset('historical', 'ukmo', 'HadCM3', '360_day',
-                 institute_id="PCMDI",
-                 model_id='HadCM3',forcing='TO',parent_experiment_id="lgm",branch_time=0.,contact="Willie Mays")
-    
-    table='CMIP5_Amon'
-    cmor.load_table(table)
-
-    tval = []
-    tbounds=[]
-
-    passtime = True
-    ntimes = 1200
-    for time in range(ntimes):
-        tval.append(15 + time*30)
-        tbounds.append([time*30, (time + 1)*30])
-
-    if passtime:
-        timdef = {'table_entry': 'time',
-              'units': 'days since 2000-01-01 00:00:00',
-              }
-    else:
-        timdef = {'table_entry': 'time',
-              'units': 'days since 2000-01-01 00:00:00',
-              'coord_vals' : tval,
-              'cell_bounds' : tbounds,
-              }
-        
-    axes = [ timdef,
-             {'table_entry': 'latitude',
-              'units': 'degrees_north',
-              'coord_vals': [0],
-              'cell_bounds': [[-1,1],],
-              },             
-             {'table_entry': 'longitude',
-              'units': 'degrees_east',
-              'coord_vals': [90],
-              'cell_bounds': [89, 91]},
-             ]
-              
-    axis_ids = list()
-    for axis in axes:
-        axis_id = cmor.axis(**axis)
-        axis_ids.append(axis_id)
-    varid = cmor.variable('ts', 'K', axis_ids)
-
-    mem = 0
-    res = 0
-    stk = 0
-    memi,resi,stki = memory_usage(sys.stdout)
-    
-    for time in range(ntimes):
-        a = [273]
-        if passtime:
-            tval = [15 + time*30]
-            tbounds = [time*30, (time + 1)*30]
-            cmor.write(varid, [273], time_vals = tval, time_bnds = tbounds)
-        else:
-            cmor.write(varid, [273])
-        mem,res,stk = memory_usage(sys.stdout,mem,res,stk)
-        #mem,res,stk = memory_usage(sys.stdout,memi,resi,stki)
-        print '---'
-    
-    cmor.close(varid)
-
-if __name__ == '__main__':
-    memory_check()
diff --git a/Test/test_python_new_tables.py b/Test/test_python_new_tables.py
deleted file mode 100644
index e924633..0000000
--- a/Test/test_python_new_tables.py
+++ /dev/null
@@ -1,41 +0,0 @@
-import cmor,numpy
-
-ipth="Test"
-cmor.setup(inpath=ipth,
-           set_verbosity=cmor.CMOR_NORMAL,
-           netcdf_file_action = cmor.CMOR_REPLACE,
-           logfile = None)
-
-cmor.dataset(
-    outpath = ipth,
-    experiment_id = "lgm",
-    institution = "PCMDI",
-    source = "GICCM1 2002",
-    institute_id="PCMDI",
-    calendar = "standard",
-    contact="Bengie Molina",
-    model_id="GICCM1",forcing="SO",parent_experiment_id="historical",branch_time=0.)
-
-cmor.load_table("Tables/CMIP5_Amon")
-
-nlat = 90
-dlat = 180/nlat
-nlon = 180
-dlon = 360./nlon
-
-lats = numpy.arange(-90+dlat/2.,90,dlat)
-blats = numpy.arange(-90,90+dlat,dlat)
-lons = numpy.arange(0+dlon/2.,360.,dlon)
-blons = numpy.arange(0,360.+dlon,dlon)
-
-ntime = 12
-
-data = numpy.random.random((ntime,nlat,nlon))+280.
-
-itim = cmor.axis(table_entry='time',coord_vals=numpy.arange(0,ntime,1),units='month since 2008',cell_bounds=numpy.arange(0,ntime+1,1))
-ilat = cmor.axis(table_entry='latitude',coord_vals=lats,units='degrees_north',cell_bounds=blats)
-ilon = cmor.axis(table_entry='longitude',coord_vals=lons,units='degrees_east',cell_bounds=blons)
-
-iv = cmor.variable(table_entry='tas',axis_ids=numpy.array((itim,ilat,ilon)),units='K')
-
-cmor.write(iv,data)
diff --git a/Test/test_python_open_close_cmor_multiple.py b/Test/test_python_open_close_cmor_multiple.py
deleted file mode 100644
index 4b67e45..0000000
--- a/Test/test_python_open_close_cmor_multiple.py
+++ /dev/null
@@ -1,59 +0,0 @@
-
-import cmor,numpy
-
-
-
-vars ={'hfls' : ['W.m-2',1.,0.],'tas':['K',25,273.15],'clt':['%',100.,0.],'ta':['K',25,273.15]}
-
-
-nlat = 90
-dlat = 180/nlat
-nlon = 180
-dlon = 360./nlon
-nlev = 17
-ntimes = 12
-
-lats = numpy.arange(-90+dlat/2.,90,dlat)
-blats = numpy.arange(-90,90+dlat,dlat)
-lons = numpy.arange(0+dlon/2.,360.,dlon)
-blons = numpy.arange(0,360.+dlon,dlon)
-
-
-tvars=['hfls','tas','clt','ta']
-
-
-cmor.setup(inpath='.',netcdf_file_action=cmor.CMOR_REPLACE)
-cmor.dataset('historical', 'ukmo', 'HadCM3', 'gregorian',
-             model_id='HadCM3',outpath='Test',forcing='TO, Nat',
-             institute_id="PCMDI",
-             contact="Matt Cain",parent_experiment_id="lgm",branch_time=0)
-table='Tables/CMIP5_Amon'
-cmor.load_table(table)
-
-for var in tvars:
-    ilat = cmor.axis(table_entry='latitude',coord_vals=lats,cell_bounds=blats,units='degrees_north')
-    ilon = cmor.axis(table_entry='longitude',coord_vals=lons,cell_bounds=blons,units='degrees_east')
-    itim = cmor.axis(table_entry='time',coord_vals=numpy.arange(ntimes,dtype=numpy.float),cell_bounds=numpy.arange(ntimes+1,dtype=float),units='months since 2000')
-    ilev = cmor.axis(table_entry='plevs',coord_vals=numpy.array([1000.,925,850,700,600,500,400,300,250,200,150,100,70,50,30,20,10]),units='hPa')
-    
-    if var!='ta':
-        axes = [itim,ilat,ilon]
-        data = numpy.random.random((ntimes,nlat,nlon))*vars[var][1]+vars[var][2]
-    else:
-        axes=[itim,ilev,ilat,ilon]
-        data = numpy.random.random((ntimes,nlev,nlat,nlon))*vars[var][1]+vars[var][2]
-
-    kw={}
-    if var in ['hfss','hfls']:
-        kw['positive']='up'
-    var = cmor.variable(table_entry=var,units=vars[var][0],axis_ids=axes,**kw)
-
-    cmor.write(var,data)
-    path=cmor.close(var, file_name=True)
-    print 'Saved in:',path
-
-cmor.close()
-
-
-
-print 'hello'
diff --git a/Test/test_python_region.py b/Test/test_python_region.py
deleted file mode 100644
index ea6209e..0000000
--- a/Test/test_python_region.py
+++ /dev/null
@@ -1,33 +0,0 @@
-import cmor
-
-import numpy
-
-cmor.setup("Test",netcdf_file_action=cmor.CMOR_REPLACE)
-
-cmor.dataset('historical', 'ukmo', 'HadCM3', '360_day',
-             institute_id="PCMDI",
-             contact="Mark Teixera",model_id='HadCM3',forcing="SO",parent_experiment_id="N/A",branch_time=0.)
-
-cmor.load_table("Tables/CMIP5_Omon")
-
-nlat = 90
-dlat = 180/nlat
-lats = numpy.arange(-90+dlat/2.,90,dlat)
-blats = numpy.arange(-90,90+dlat,dlat)
-
-ilat = cmor.axis(table_entry='latitude',coord_vals=lats,cell_bounds=blats,units='degrees_north')
-
-myregions=["atlantic_ocean", "indian_pacific_ocean", "pacific_ocean", "atlantic_arctic_ocean","global_ocean"]
-nreg=len(myregions)
-ireg = cmor.axis(table_entry='basin',units='1',coord_vals=myregions)
-ntime = 12
-
-itim = cmor.axis(table_entry='time',units='months since 2030',interval='1 month',coord_vals = numpy.arange(ntime), cell_bounds=numpy.arange(ntime+1))
-
-
-var = cmor.variable(table_entry='htovgyre',units='W',axis_ids=numpy.array([itim,ireg,ilat]))
-
-data = numpy.random.random((ntime,nreg,nlat))*50+200.
-
-cmor.write(var,data)
-cmor.close()
diff --git a/Test/test_python_reverted_lats.py b/Test/test_python_reverted_lats.py
deleted file mode 100644
index d550f09..0000000
--- a/Test/test_python_reverted_lats.py
+++ /dev/null
@@ -1,63 +0,0 @@
-import cmor,numpy
-
-nlat = 10
-dlat = 180./nlat
-nlon = 20
-dlon = 360./nlon
-nlev = 17
-ntimes = 1
-
-lats = numpy.arange(90-dlat/2.,-90,-dlat)
-blats = numpy.arange(90,-90-dlat,-dlat)
-lats2 = numpy.arange(-90+dlat/2.,90,dlat)
-blats2 = numpy.arange(-90,90+dlat,dlat)
-lons = numpy.arange(0+dlon/2.,360.,dlon)
-blons = numpy.arange(0,360.+dlon,dlon)
-
-cmor.setup(inpath='.',netcdf_file_action=cmor.CMOR_REPLACE)
-cmor.dataset('historical', 'ukmo', 'HadCM3', 'gregorian',model_id='HadCM3',outpath='Test',forcing='TO, Nat', contact="Jonathan sanchez",parent_experiment_id="lgm",branch_time=0,institute_id='pcmdi')
-table='Tables/CMIP5_Amon'
-cmor.load_table(table)
-
-data = lats[:,numpy.newaxis]*lons[numpy.newaxis,:]
-
-data = ( data + 29000 ) / 700. + 200.
-
-print data.shape,data.min(),data.max()
-
-ilat = cmor.axis(table_entry='latitude',coord_vals=lats,cell_bounds=blats,units='degrees_north')
-ilat2 = cmor.axis(table_entry='latitude',coord_vals=lats2,cell_bounds=blats2,units='degrees_north')
-ilon = cmor.axis(table_entry='longitude',coord_vals=lons,cell_bounds=blons,units='degrees_east')
-itim = cmor.axis(table_entry='time',units='months since 2010')
-
-
-ivar = cmor.variable(table_entry='tasmin',units='K',axis_ids=[itim,ilat,ilon])
-cmor.write(ivar,data,ntimes_passed=1,time_vals=[0.],time_bnds=[0.,1.])
-fnm = cmor.close(ivar,file_name=True)
-
-print '*******************************'
-
-ivar2 = cmor.variable(table_entry='tasmin',units='K',axis_ids=[itim,ilat2,ilon])
-cmor.write(ivar2,data,ntimes_passed=1,time_vals=[1.],time_bnds=[1.,2.])
-fnm2 = cmor.close(ivar2,file_name=True)
-
-import cdms2,vcs
-x=vcs.init()
-x.portrait()
-import EzTemplate
-M=EzTemplate.Multi(columns=1,rows=3)
-print 'Getting templates'
-t1=M.get()
-t2=M.get()
-print 'Plotting'
-x.plot(data,t1)
-f=cdms2.open(fnm)
-s=f("tasmin")
-print 'Ok data read, shape:',s.shape
-x.plot(s,t2)
-f=cdms2.open(fnm2)
-s=f("tasmin")
-print 'Ok data read, shape:',s.shape
-x.plot(s,M.get())
-
-raw_input()
diff --git a/Test/test_python_user_interface_00.py b/Test/test_python_user_interface_00.py
deleted file mode 100644
index 3306f6c..0000000
--- a/Test/test_python_user_interface_00.py
+++ /dev/null
@@ -1,131 +0,0 @@
-from test_python_common import * # common subroutines
-
-import cmor._cmor
-import os
-
-pth = os.path.split(os.path.realpath(os.curdir))
-if pth[-1]=='Test':
-    ipth = opth = '.'
-else:
-    ipth = opth = 'Test'
-
-myaxes=numpy.zeros(9,dtype='i')
-myaxes2=numpy.zeros(9,dtype='i')
-myvars=numpy.zeros(9,dtype='i')
-
-
-cmor.setup(inpath=ipth,set_verbosity=cmor.CMOR_NORMAL, netcdf_file_action = cmor.CMOR_REPLACE, exit_control = cmor.CMOR_EXIT_ON_MAJOR);
-cmor.dataset(
-    outpath = opth,
-    experiment_id = "lgm",
-    institution = "GICC (Generic International Climate Center, Geneva, Switzerland)",
-    source = "GICCM1 (2002): atmosphere:  GICAM3 (gicam_0_brnchT_itea_2, T63L32); ocean: MOM (mom3_ver_3.5.2, 2x3L15); sea ice: GISIM4; land: GILSM2.5",
-    calendar = "standard",
-    realization = 1,
-    contact = "Rusty Koder (koder at middle_earth.net)",
-    history = "Output from archive/giccm_03_std_2xCO2_2256.",
-    comment = "Equilibrium reached after 30-year spin-up after which data were output starting with nominal date of January 2030",
-    references = "Model described by Koder and Tolkien (J. Geophys. Res., 2001, 576-591).  Also see http://www.GICC.su/giccm/doc/index.html  2XCO2 simulation described in Dorkey et al. '(Clim. Dyn., 2003, 323-357.)",
-    leap_year=0,
-    leap_month=0,
-    month_lengths=None,
-    model_id="GICCM1",
-    forcing="TO",
-    institute_id="PCMDI",
-    parent_experiment_id="N/A",branch_time=0)
-
-tables=[]
-a = cmor.load_table(os.path.join(ipth,"../Tables/CMIP5_Omon"))
-tables.append(a)
-tables.append(cmor.load_table("Tables/CMIP5_Amon"))
-print 'Tables ids:',tables
-
-axes=[]
-id="time"
-units="months since 1980"
-print 'time bounds:',bnds_time
-# ok we need to make the bounds 2D because the cmor module "undoes this"
-bnds_time = numpy.reshape(bnds_time,(bnds_time.shape[0]/2,2))
-bnds_lat = numpy.reshape(bnds_lat,(bnds_lat.shape[0]/2,2))
-bnds_lon = numpy.reshape(bnds_lon,(bnds_lon.shape[0]/2,2))
-myaxes[0] = cmor.axis(id,coord_vals=Time,units=units,cell_bounds=bnds_time,interval="1 month")
-print 'time bounds:',bnds_time
-id='latitude'
-units="degrees_north"
-interval=""
-myaxes[1] = cmor.axis(id,coord_vals=alats,units=units,cell_bounds=bnds_lat)
-id="longitude"
-units="degrees_east"
-myaxes[2] = cmor.axis(id,coord_vals=alons,units=units,cell_bounds=bnds_lon)
-id="plevs"
-units="Pa"
-myaxes[3] = cmor.axis(id,coord_vals=plevs,units=units)
-
-myaxes[4] = cmor.axis("alternate_hybrid_sigma",coord_vals=zlevs,units="1",cell_bounds=zlev_bnds)
-
-
-cmor.set_table(tables[0])
-
-myaxes[5] = cmor.axis( "basin",coord_vals=regions,units="")
-id='time'
-units='months since 1980'
-myaxes[7] = cmor.axis(id,coord_vals=Time,units=units,cell_bounds=bnds_time,interval="1 month")
-id="latitude"
-units="degrees_north"
-interval=""
-myaxes[8] = cmor.axis(id,coord_vals=alats,units=units,cell_bounds=bnds_lat)
-
-cmor.set_table(tables[1])
-
-
-dtmp = -999;
-dtmp2=1.e-4;
-myaxes2[0] = myaxes[0];
-myaxes2[1] = myaxes[3];
-myaxes2[2] = myaxes[1];
-myaxes2[3] = myaxes[2];
-
-print 'ok doing the vars thing',positive2d[0]
-myvars[0] = cmor.variable(entry2d[0],units2d[0],myaxes[:3],'d',missing_value=None,tolerance=dtmp2,positive=positive2d[0],original_name=varin2d[0],history="no history",comment="no future")
-print 'vars 2'
-myvars[1] = cmor.variable(entry3d[2],units3d[2],myaxes2[:4],'d',original_name = varin3d[2])
-print 'vars 2'
-
-myaxes2[1] = myaxes[4];
-myvars[2] = cmor.variable(entry3d[0],units3d[0],myaxes2[:4],'d',original_name = varin3d[0])
-
-print 'vars 2'
-
-
-myvars[3] = cmor.zfactor(int(myaxes2[1]),"p0","Pa",None,'d',p0)
-print 'zfact',myaxes2[1]
-myvars[3] = cmor.zfactor(int(myaxes2[1]),"b","",myaxes2[1],'d',b_coeff,b_coeff_bnds)
-print 'zfact',myaxes2[1]
-myvars[3] = cmor.zfactor(int(myaxes2[1]),"a","",myaxes2[1],'d',a_coeff,a_coeff_bnds)
-#/*   printf("defining ap\n"); */
-#/*   for(i=0;i<5;i++) {a_coeff[i]*=1.e3;printf("sending acoef: %i, %lf\n",i,a_coeff[i]);} */
-#/*   for(i=0;i<6;i++) {a_coeff_bnds[i]*=1.e5;printf("sending acoef: %i, %lf\n",i,a_coeff_bnds[i]);} */
-#/*   ierr = cmor_zfactor(&myvars[3],myaxes2[1],"ap","hPa",1,&myaxes2[1],'d',&a_coeff,&a_coeff_bnds); */
-print 'zfact before last'
-myvars[3] = cmor.zfactor(zaxis_id = myaxes2[1],zfactor_name = "ps",units = "hPa",axis_ids = myaxes[:3],type = 'd')
-print 'zfact last'
-
-#  /* ok here we decalre a variable for region axis testing */
-cmor.set_table(tables[0])
-myaxes2[0] = myaxes[7]
-myaxes2[1] = myaxes[5]
-myaxes2[2] = myaxes[8]
-
-myvars[4] = cmor.variable("htovgyre","W",myaxes2[:3],'d',positive=positive2d[0],original_name=varin2d[0])
-
-cmor.set_table(tables[1])
-
-
-for i in range(ntimes):
-    data2d = read_2d_input_files(i, varin2d[0], lat,lon)
-    print 'writing time: ',i,data2d.shape,data2d
-    cmor.write(myvars[0],data2d,1)
-
-cmor.close()
-
-
diff --git a/Test/test_python_user_interface_01.py b/Test/test_python_user_interface_01.py
deleted file mode 100644
index 24fa34f..0000000
--- a/Test/test_python_user_interface_01.py
+++ /dev/null
@@ -1,95 +0,0 @@
-from test_python_common import * # common subroutines
-
-import cmor._cmor
-import os
-
-pth = os.path.split(os.path.realpath(os.curdir))
-if pth[-1]=='Test':
-    ipth = opth = '.'
-else:
-    ipth = opth = 'Test'
-
-
-myaxes=numpy.zeros(9,dtype='i')
-myaxes2=numpy.zeros(9,dtype='i')
-myvars=numpy.zeros(9,dtype='i')
-
-
-cmor.setup(inpath=ipth,set_verbosity=cmor.CMOR_NORMAL, netcdf_file_action = cmor.CMOR_REPLACE, exit_control = cmor.CMOR_EXIT_ON_MAJOR);
-cmor.dataset(
-    outpath = opth,
-    experiment_id = "historical",
-    institution = "GICC (Generic International Climate Center, Geneva, Switzerland)",
-    source = "GICCM1 2002: atmosphere:  GICAM3 (gicam_0_brnchT_itea_2, T63L32); ocean: MOM (mom3_ver_3.5.2, 2x3L15); sea ice: GISIM4; land: GILSM2.5",
-    calendar = "standard",
-    realization = 1,
-    contact = "Rusty Koder (koder at middle_earth.net)",
-    history = "Output from archive/giccm_03_std_2xCO2_2256.",
-    comment = "Equilibrium reached after 30-year spin-up after which data were output starting with nominal date of January 2030",
-    references = "Model described by Koder and Tolkien (J. Geophys. Res., 2001, 576-591).  Also see http://www.GICC.su/giccm/doc/index.html  2XCO2 simulation described in Dorkey et al. '(Clim. Dyn., 2003, 323-357.)",
-    leap_year=0,
-    leap_month=0,
-    month_lengths=None,
-    model_id="GICCM1",
-    forcing="Ant, Nat",
-    institute_id="pcmdi",
-    parent_experiment_id="piControl",branch_time=18336.33)
-
-tables=[]
-a = cmor.load_table("Tables/CMIP5_grids")
-tables.append(a)
-tables.append(cmor.load_table("Tables/CMIP5_Amon"))
-print 'Tables ids:',tables
-
-cmor.set_table(tables[0])
-
-x,y,lon_coords,lat_coords,lon_vertices,lat_vertices = gen_irreg_grid(lon,lat)
-
-
-
-myaxes[0] = cmor.axis(table_entry = 'y', 
-                      units = 'm', 
-                      coord_vals = y)
-myaxes[1] = cmor.axis(table_entry = 'x', 
-                      units = 'm', 
-                      coord_vals = x)
-
-grid_id = cmor.grid(axis_ids = myaxes[:2], 
-                    latitude = lat_coords, 
-                    longitude = lon_coords, 
-                    latitude_vertices = lat_vertices, 
-                    longitude_vertices = lon_vertices)
-print 'got grid_id:',grid_id
-myaxes[2] = grid_id
-
-mapnm = 'lambert_conformal_conic'
-params = [ "standard_parallel1",
-           "longitude_of_central_meridian","latitude_of_projection_origin",
-           "false_easting","false_northing","standard_parallel2" ]
-punits = ["","","","","","" ]
-pvalues = [-20.,175.,13.,8.,0.,20. ]
-cmor.set_grid_mapping(grid_id=myaxes[2],
-                      mapping_name = mapnm,
-                      parameter_names = params,
-                      parameter_values = pvalues,
-                      parameter_units = punits)
-
-cmor.set_table(tables[1])
-myaxes[3] = cmor.axis(table_entry = 'time',
-                      units = 'months since 1980')
-
-pass_axes = [myaxes[3],myaxes[2]]
-myvars[0] = cmor.variable( table_entry = 'hfls',
-                           units = 'W m-2',
-                           axis_ids = pass_axes,
-                           positive = 'down',
-                           original_name = 'HFLS',
-                           history = 'no history',
-                           comment = 'no future'
-                           )
-for i in range(ntimes):
-    data2d = read_2d_input_files(i, varin2d[0], lat,lon)
-    print 'writing time: ',i,data2d.shape,data2d
-    print Time[i],bnds_time[2*i:2*i+2]    
-    cmor.write(myvars[0],data2d,1,time_vals=Time[i],time_bnds=bnds_time[2*i:2*i+2])
-cmor.close()
diff --git a/Test/test_python_user_interface_03.py b/Test/test_python_user_interface_03.py
deleted file mode 100644
index 51b3250..0000000
--- a/Test/test_python_user_interface_03.py
+++ /dev/null
@@ -1,104 +0,0 @@
-import numpy
-import cmor
-
-print 'Done importing'
-try:
-    import cdms2
-except:
-    print "This test code needs cdms2 interface for i/0"
-    import sys
-    sys.exit()
-import os
-pth = os.path.split(os.path.realpath(os.curdir))
-if pth[-1]=='Test':
-    ipth = opth = '.'
-    dpth = '../data'
-else:
-    ipth = opth = 'Test'
-    dpth='data'
-
-myaxes=numpy.zeros(9,dtype='i')
-myaxes2=numpy.zeros(9,dtype='i')
-myvars=numpy.zeros(9,dtype='i')
-
-def read_input(var,order=None):
-    f=cdms2.open(os.path.join(dpth,"%s_sample.nc" % var))
-    ok = f(var)
-    if order is None:
-        s = f(var)
-    else:
-        s = f(var,order=order)
-    s.units=f[var].units
-    s.id=var
-    f.close()
-    return s,ok
-
-def prep_var(data):
-    rk = data.rank()
-    axes=[]
-    for i in range(rk):
-        ax = data.getAxis(i)
-        if ax.isLongitude():
-            id=cmor.axis(table_entry='longitude',units=ax.units,coord_vals=ax[:],cell_bounds=ax.getBounds())
-        elif ax.isLatitude():
-            id=cmor.axis(table_entry='latitude',units=ax.units,coord_vals=ax[:],cell_bounds=ax.getBounds())
-        else:
-            id=cmor.axis(table_entry=str(ax.id),units=ax.units,coord_vals=ax[:],cell_bounds=ax.getBounds())
-            print i,'units:',ax.units, ax[0]
-        axes.append(id)
-    var = cmor.variable(table_entry = data.id,
-                        units = data.units,
-                        axis_ids = numpy.array(axes),
-                        missing_value = data.missing_value,
-                        history = "rewrote by cmor via python script")
-    return var
-
-
-
-def prep_cmor():
-    cmor.setup(inpath=ipth,set_verbosity=cmor.CMOR_QUIET, netcdf_file_action = cmor.CMOR_REPLACE, exit_control = cmor.CMOR_EXIT_ON_MAJOR);
-    cmor.dataset(
-        outpath = opth,
-        experiment_id = "lgm",
-        institution = "GICC (Generic International Climate Center, Geneva, Switzerland)",
-        source = "GICCM1 (2002): atmosphere:  GICAM3 (gicam_0_brnchT_itea_2, T63L32); ocean: MOM (mom3_ver_3.5.2, 2x3L15); sea ice: GISIM4; land: GILSM2.5",
-        calendar = "standard",
-        realization = 1,
-        contact = "Rusty Koder (koder at middle_earth.net)",
-        history = "Output from archive/giccm_03_std_2xCO2_2256.",
-        comment = "Equilibrium reached after 30-year spin-up after which data were output starting with nominal date of January 2030",
-        references = "Model described by Koder and Tolkien (J. Geophys. Res., 2001, 576-591).  Also see http://www.GICC.su/giccm/doc/index.html  2XCO2 simulation described in Dorkey et al. '(Clim. Dyn., 2003, 323-357.)",
-        leap_year=0,
-        leap_month=0,
-        institute_id="PCMDI",
-        month_lengths=None,model_id="GICCM1",forcing="Nat",parent_experiment_id="N/A",branch_time=0.)
-    
-    tables=[]
-    a = cmor.load_table("Tables/CMIP5_Omon")
-    tables.append(a)
-    tables.append(cmor.load_table("Tables/CMIP5_Amon"))
-    return
-
-
-for var in ['tas',]:
-    print 'Testing var:',var
-    orders = ['tyx...','txy...','ytx...','yxt...','xyt...','xty...',]
-    for o in orders:
-        print '\tordering:',o
-        data,data_ordered = read_input(var,order=o)
-        prep_cmor()
-        print data.shape
-        var_id = prep_var(data)
-        df = data.filled(data.missing_value)
-        cmor.write(var_id,df)
-        cmor.close()
-        f=cdms2.open(opth+'/CMIP5/output/PCMDI/GICCM1/lgm/mon/atmos/%s/r1i1p1/%s_Amon_GICCM1_lgm_r1i1p1_186810-186812.nc'  % (var,var))
-        s=f(var)
-        if not numpy.allclose(s,data_ordered):
-            raise "Error reordering: %s"%o
-        else:
-            print 'order: %s, passed' % o
-        f.close()
-print 'Done'
-#cmor.close()
-print 'Finito'
diff --git a/Test/test_region.f90 b/Test/test_region.f90
deleted file mode 100644
index 0a8edbe..0000000
--- a/Test/test_region.f90
+++ /dev/null
@@ -1,311 +0,0 @@
-!!$pgf90 -I/work/NetCDF/5.1/include -L/work/NetCDF/5.1/lib -l netcdf -L. -l cmor Test/test_dimensionless.f90 -IModules -o cmor_test
-!!$pgf90 -g -I/pcmdi/charles_work/NetCDF/include -L/pcmdi/charles_work/NetCDF/lib -lnetcdf -module Modules -IModules -L. -lcmor -I/pcmdi/charles_work/Unidata/include -L/pcmdi/charles_work/Unidata/lib -ludunits Test/test_dimensionless.f90 -o cmor_test
-
-MODULE local_subs
-
-  USE cmor_users_functions
-  PRIVATE
-  PUBLIC read_coords, read_time, read_1d_input_files
-CONTAINS
-  
-  SUBROUTINE read_coords(alats, bnds_lat)
-
-    IMPLICIT NONE
-    
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alats
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lat
-    
-    INTEGER :: i
-    
-    DO i = 1, SIZE(alats)
-       alats(i) = i*10
-       bnds_lat(1,i) = i*10. - 5.
-       bnds_lat(2,i) = i*10. + 5.
-    END DO
-      
-    RETURN
-  END SUBROUTINE read_coords
-
-  SUBROUTINE read_time(it, time, time_bnds)
-    
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    DOUBLE PRECISION, INTENT(OUT) :: time
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(2,1) :: time_bnds
-    
-    time = (it-0.5)*30.
-    time_bnds(1,1) = (it-1)*30.
-    time_bnds(2,1) = it*30.
-    
-    RETURN
-  END SUBROUTINE read_time
-  
-include "reader_2D_3D.f90"
-
-END MODULE local_subs
-
-
-PROGRAM test_region
-!
-!   Purpose:   To serve as a generic example of an application that
-!       uses the "Climate Model Output Rewriter" (CMOR)
-
-!    CMOR writes CF-compliant netCDF files.
-!    Its use is strongly encouraged by the IPCC and is intended for use 
-!       by those participating in many community-coordinated standard 
-!       climate model experiments (e.g., AMIP, CMIP, CFMIP, PMIP, APE,
-!       etc.)
-!
-!   Background information for this sample code:
-!
-!      Atmospheric standard output requested by IPCC are listed in 
-!   tables available on the web.  Monthly mean output is found in
-!   tables A1a and A1c.  This sample code processes only two 3-d 
-!   variables listed in table A1c ("monthly mean atmosphere 3-D data" 
-!   and only four 2-d variables listed in table A1a ("monthly mean 
-!   atmosphere + land surface 2-D (latitude, longitude) data").  The 
-!   extension to many more fields is trivial.
-!
-!      For this example, the user must fill in the sections of code that 
-!   extract the 3-d and 2-d fields from his monthly mean "history" 
-!   files (which usually contain many variables but only a single time 
-!   slice).  The CMOR code will write each field in a separate file, but 
-!   many monthly mean time-samples will be stored together.  These 
-!   constraints partially determine the structure of the code.
-!
-!
-!   Record of revisions:
-
-!       Date        Programmer(s)           Description of change
-!       ====        ==========              =====================
-!      10/22/03     Rusty Koder              Original code
-!       1/28/04     Les R. Koder             Revised to be consistent
-!                                            with evolving code design
-
-! include module that contains the user-accessible cmor functions.
-  USE cmor_users_functions
-  USE local_subs
-
-  IMPLICIT NONE
-
-  !   dimension parameters:
-  ! ---------------------------------
-  INTEGER, PARAMETER :: ntimes = 2    ! number of time samples to process
-  INTEGER, PARAMETER :: reg = 4       ! number of regions 
-  INTEGER, PARAMETER :: lat = 3       ! number of latitude grid cells
-  INTEGER, PARAMETER :: n1d = 1       ! number of IPCC Table O1 fields to be
-                                      !     output.
-  !
-  !   Tables associating the user's variables with IPCC standard output 
-  !   variables.  The user may choose to make this association in a 
-  !   different way (e.g., by defining values of pointers that allow him 
-  !   to directly retrieve data from a data record containing many 
-  !   different variables), but in some way the user will need to map his 
-  !   model output onto the Tables specifying the MIP standard output.
-
-  ! ----------------------------------
-
-                                ! My variable names for IPCC Table O1a fields
-  CHARACTER (LEN=5), DIMENSION(n1d) :: &
-                                 varin1d=(/ 'OFLUX' /)
-
-                                ! Units appropriate to my data
-  CHARACTER (LEN=1), DIMENSION(n1d) :: &
-                                  units1d=(/ 'W' /)
-
-                     ! Corresponding IPCC Table O1a entry (variable name) 
-  CHARACTER (LEN=8), DIMENSION(n1d) :: entry1d = (/ 'htovgyre' /)
-
-
-!  uninitialized variables used in communicating with CMOR:
-!  ---------------------------------------------------------
-
-  INTEGER :: error_flag
-  INTEGER, DIMENSION(n1d) :: var1d_ids
-  REAL, DIMENSION(lat,reg) :: data1d
-  DOUBLE PRECISION, DIMENSION(lat) :: alats
-  DOUBLE PRECISION, DIMENSION(1) :: time
-  DOUBLE PRECISION, DIMENSION(2,1):: bnds_time
-  DOUBLE PRECISION, DIMENSION(2,lat) :: bnds_lat
-  INTEGER :: ilat, ireg, itim
-  double precision bt
-
-  !  Other variables:
-  !  ---------------------
-  
-  INTEGER :: it, m  
-  bt=0.
-  
-  ! ================================
-  !  Execution begins here:
-  ! ================================
-  
-  ! Read coordinate information from model into arrays that will be passed 
-  !   to CMOR.
-  ! Read latitude, longitude, and pressure coordinate values into 
-  !   alats, alons, and plevs, respectively.  Also generate latitude and 
-  !   longitude bounds, and store in bnds_lat and bnds_lon, respectively.
-  !   Note that all variable names in this code can be freely chosen by
-  !   the user.
-
-  !   The user must write the subroutine that fills the coordinate arrays 
-  !   and their bounds with actual data.  The following line is simply a
-  !   a place-holder for the user's code, which should replace it.
-  
-  !  *** possible user-written call ***
-  
-  call read_coords(alats, bnds_lat)
-  
-  ! Specify path where tables can be found and indicate that existing 
-  !    netCDF files should not be overwritten.
-  
-  error_flag = cmor_setup(inpath='Test', netcdf_file_action='replace')
-  
-  ! Define dataset as output from the GICC model (first member of an
-  !   ensemble of simulations) run under IPCC 2xCO2 equilibrium
-  !   experiment conditions, and provide information to be included as 
-  !   attributes in all CF-netCDF files written as part of this dataset.
-
-  error_flag = cmor_dataset(                                   &
-       outpath='Test',                                         &
-       experiment_id='abrupt 4XCO2',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       'Geneva, Switzerland)',                                 &
-       source='GICCM1 (2002): ' //                             &
-       'atmosphere:  GICAM3 (gicam_0_brnchT_itea_2, T63L32); '// &
-       'ocean: MOM (mom3_ver_3.5.2, 2x3L15); '             //  &
-       'sea ice: GISIM4; land: GILSM2.5',                      &
-       calendar='360_day',                                      &
-       realization=1,                                          &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also '        //   &
-       'see http://www.GICC.su/giccm/doc/index.html '     //   &
-       ' 2XCO2 simulation described in Dorkey et al. '    //   &
-       '(Clim. Dyn., 2003, 323-357.)' , model_id="GICCM1", &
-       forcing='TO',contact="Barry Bonds",institute_id="PCMDI",&
-       parent_experiment_id="N/A",branch_time=bt)
-    
-  !  Define all axes that will be needed
-  
-  ilat = cmor_axis(  &
-       table='Tables/CMIP5_Omon',    &
-       table_entry='latitude',       &
-       units='degrees_north',        &  
-       length=lat,                   &
-       coord_vals=alats,             & 
-       cell_bounds=bnds_lat)        
-      
-  ireg = cmor_axis(  &
-       table='Tables/CMIP5_Omon',        &
-       table_entry='basin',         &
-       length=reg,                   &
-       units='none',                 &
-       coord_vals= (/ "atlantic_arctic_ocean", "indian_pacific_ocean ", "pacific_ocean        ", &
-       "global_ocean         " /) )   
-        
-  !   note that the time axis is defined next, but the time coordinate 
-  !   values and bounds will be passed to cmor through function 
-  !   cmor_write (later, below).
-
-  itim = cmor_axis(  &
-       table='Tables/CMIP5_Omon',        &
-       table_entry='time',           &
-       units='days since 2030-1-1',  &
-       length=ntimes,                &
-       interval='1 month')
-  
-
-  !  Define variables appearing in IPCC table O1a (functions of lat and reg)
-  
-  DO m=1,n1d
-     var1d_ids(m) = cmor_variable(    &
-          table='Tables/CMIP5_Omon',      &
-          table_entry=entry1d(m),     &
-          units=units1d(m),           &
-          axis_ids=(/ ilat, ireg, itim /), &
-          missing_value=1.0e28,       &
-          original_name=varin1d(m))
-  ENDDO
-  
-
-  PRINT*, ' '
-  PRINT*, 'completed everything up to writing output fields '
-  PRINT*, ' '
-
-  !  Loop through history files (each containing several different fields, 
-  !       but only a single month of data, averaged over the month).  Then 
-  !       extract fields of interest and write these to netCDF files (with 
-  !       one field per file, but all months included in the loop).
-  
-  time_loop: DO it=1, ntimes
-     
-     ! In the following loops over the 3d and 2d fields, the user-written    
-     ! subroutines (read_3d_input_files and read_2d_input_files) retrieve 
-     ! the requested IPCC table A1c and table A1a fields and store them in 
-     ! data3d and data2d, respectively.  In addition a user-written code 
-     ! (read_time) retrieves the time and time-bounds associated with the 
-     ! time sample (in units of 'days since 1970-1-1', consistent with the 
-     ! axis definitions above).  The bounds are set to the beginning and 
-     ! the end of the month retrieved, indicating the averaging period.
-     
-     ! The user must write a code to obtain the times and time-bounds for
-     !   the time slice.  The following line is simply a place-holder for
-     !   the user's code, which should replace it.
-     
-    call read_time(it, time(1), bnds_time)
-
-    ! Cycle through the 1-d fields (functions of lat and region), 
-    ! and retrieve the requested variable and append each to the 
-    ! appropriate netCDF file.
-
-    DO m=1,n1d
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-
-        call read_1d_input_files(it, varin1d(m), data1d)
-       
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-        
-        error_flag = cmor_write(                                  &
-             var_id        = var1d_ids(m),                        &
-             data          = data1d,                              &
-             ntimes_passed = 1,                                   &
-             time_vals     = time,                                &
-             time_bnds     = bnds_time  )
-        
-        IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) ' Error encountered writing IPCC Table O ' &
-                // 'field ', entry1d(m), ', which I call ', varin1d(m)
-           write(*,*) ' Was processing time sample: ', time
-                      
-        END IF
-
-     END DO
-     
-     
-  END DO time_loop
-  
-  !   Close all files opened by CMOR.
- 
-  print*, 'Ok wrote everythin' 
-  error_flag = cmor_close()  
-
-  print*, ' '
-  print*, '******************************'
-  print*, ' '
-  print*, 'ipcc_test_code executed to completion '   
-  print*, ' '
-  print*, '******************************'
-  
-END PROGRAM test_region
-
diff --git a/Test/test_shrt_exp_nm_set_att_initi.f90 b/Test/test_shrt_exp_nm_set_att_initi.f90
deleted file mode 100644
index c5a2a3a..0000000
--- a/Test/test_shrt_exp_nm_set_att_initi.f90
+++ /dev/null
@@ -1,317 +0,0 @@
-!!$pgf90 -I/work/NetCDF/5.1/include -L/work/NetCDF/5.1/lib -l netcdf -L. -l cmor Test/test1.f90 -IModules -o cmor_test
-!!$pgf90 -g -I/pcmdi/charles_work/NetCDF//include -L/pcmdi/charles_work/NetCDF//lib -lnetcdf -module Modules -IModules -L. -lcmor Test/test1.f90 -o cmor_test
-
-MODULE local_subs
-
-  PRIVATE
-  PUBLIC read_coords, read_time, read_3d_input_files, read_2d_input_files
-CONTAINS
-  
-  SUBROUTINE read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-
-    IMPLICIT NONE
-    
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alats
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alons
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: plevs
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lat
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lon
-    
-    INTEGER :: i
-    
-    DO i = 1, SIZE(alons)
-       alons(i) = (i-1)*360./SIZE(alons)
-       bnds_lon(1,i) = (i - 1.5)*360./SIZE(alons)
-       bnds_lon(2,i) = (i - 0.5)*360./SIZE(alons)
-    END DO
-    
-    DO i = 1, SIZE(alats)
-       alats(i) = i*10
-       bnds_lat(1,i) = i*10. - 5.
-       bnds_lat(2,i) = i*10. + 5.
-    END DO
-    
-    DO i = 1, SIZE(plevs)
-       plevs(i) = i*1.0e4
-    END DO
-    
-    RETURN
-  END SUBROUTINE read_coords
-
-  SUBROUTINE read_time(it, time, time_bnds)
-    
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    DOUBLE PRECISION, INTENT(OUT) :: time
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(2) :: time_bnds
-    
-    time = (it-0.5)*30.
-    time_bnds(1) = (it-1)*30.
-    time_bnds(2) = it*30.
-    
-    RETURN
-  END SUBROUTINE read_time
-    
-include "reader_2D_3D.f90"
-
-END MODULE local_subs
-
-
-PROGRAM mip_contribution
-
-! include module that contains the user-accessible cmor functions.
-  USE cmor_users_functions
-  USE local_subs
-
-  IMPLICIT NONE
-
-  !   dimension parameters:
-  ! ---------------------------------
-  INTEGER, PARAMETER :: ntimes = 2    ! number of time samples to process
-  INTEGER, PARAMETER :: lon = 4       ! number of longitude grid cells  
-  INTEGER, PARAMETER :: lat = 3       ! number of latitude grid cells
-  INTEGER, PARAMETER :: n2d = 1       ! number of AMIP Table 2 fields to be
-                                      !     output.
-
-  !   Tables associating the user's variables with AMIP standard output 
-  !   variables.  The user may choose to make this association in a 
-  !   different way (e.g., by defining values of pointers that allow him 
-  !   to directly retrieve data from a data record containing many 
-  !   different variables), but in some way the user will need to map his 
-  !   model output onto the Tables specifying the MIP standard output.
-
-  ! ----------------------------------
-
-                                ! My variable names for Table 1a fields
-                                ! My variable names for Table 2 fields
-  CHARACTER (LEN=8), DIMENSION(n2d) :: &
-                          varin2d=(/ 'LATENT  ' /)
-                                ! Units appropriate to my data
-   CHARACTER (LEN=6), DIMENSION(n2d) :: &
-                          units2d=(/ 'W m-2 ' /)
-   CHARACTER (LEN=4), DIMENSION(n2d) :: &
-                      positive2d= (/  'down' /)
-                     ! Corresponding AMIP Table 2 entry (variable name) 
-  CHARACTER (LEN=5), DIMENSION(n2d) :: &
-                        entry2d = (/ 'hfls ' /)
-
-!  uninitialized variables used in communicating with CMOR:
-!  ---------------------------------------------------------
-
-  INTEGER :: error_flag
-  INTEGER, PARAMETER :: ntest=1
-  INTEGER, DIMENSION(3) :: axis2d_ids
-  INTEGER, DIMENSION(n2d+ntest) :: var2d_ids
-  REAL, DIMENSION(lat,lon) :: data2d
-  DOUBLE PRECISION, DIMENSION(lat) :: alats
-  DOUBLE PRECISION, DIMENSION(lon) :: alons
-   DOUBLE PRECISION, DIMENSION(5) :: plevs
- DOUBLE PRECISION :: time,bt
-  DOUBLE PRECISION, DIMENSION(2):: bnds_time
-  DOUBLE PRECISION, DIMENSION(2,lat) :: bnds_lat
-  DOUBLE PRECISION, DIMENSION(2,lon) :: bnds_lon
-
-!!$  REAL, DIMENSION(lat*lon*lev) :: tmp3d
-!!$  REAL, DIMENSION(lat*lon) :: tmp2d
-
-  !  Other variables:
-  !  ---------------------
-  
-  INTEGER :: it, m
-  
-    character (len=200) :: msg,msg2
-
-    bt=0.
-  ! ================================
-  !  Execution begins here:
-  ! ================================
-  
-  ! Read coordinate information from model into arrays that will be passed 
-  !   to CMOR.
-  ! Read latitude, longitude, and pressure coordinate values into 
-  !   alats, alons, and plevs, respectively.  Also generate latitude and 
-  !   longitude bounds, and store in bnds_lat and bnds_lon, respectively.
-  
-  !   The user must write the subroutine that fills the coordinate arrays 
-  !   and their bounds with actual data.  The following line is simply a
-  !   a place-holder for the user's code, which should replace it.
-  
-  !  *** possible user-written call ***	
-  
-  print*, 'calling read_coords '
-
-  call read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-
-  print*, 'returned from read_coords'
-  
-  ! Specify path where tables can be found, indicate that existing netCDF 
-  !    files should not be overwritten, and instruct CMOR to error exit on 
-  !    encountering errors of any severity.
-  
-  error_flag = cmor_setup(inpath='Test',   &
-       netcdf_file_action='replace',                                       &
-       set_verbosity=1,                                                    &
-       exit_control=1)
-  
-  ! Define dataset as output from the GICC model (first member of an
-  !   ensemble of simulations) runcmor_write under IPCC 2xCO2 equilibrium experiment 
-  !   conditions, and provide information to be included as attributes in 
-  !   all CF-netCDF files written as part of this dataset.
-
-  print*, 'calling cmor_dataset'
-  error_flag = cmor_dataset(                                   &
-       outpath='Test',         &
-       experiment_id='lgm',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       ' Geneva, Switzerland)',                                &
-       source='GICCM1  2002(giccm_0_brnchT_itea_2, T63L32)',    &
-       calendar='360_day',                                      &
-       realization=1,                                          &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also ' //          &
-       'see http://www.GICC.su/giccm/doc/index.html '  //      &
-       ' 2XCO2 simulation described in Dorkey et al. '//       &
-       '(Clim. Dyn., 2003, 323-357.)',model_id="GICCM1", &
-       forcing='TO',contact="Barry Bonds",institute_id="PCMDI",&
-       parent_experiment_id="N/A",branch_time=bt)
-  
-  
-  print*, 'returned from cmor_dataset'
-
-  error_flag = cmor_set_cur_dataset_attribute("initialization_method","1")
-  print*, 'returned from cmor_dataset'
-
-  !  Define axes for 3-d fields
-
-  print*, 'defining axes'
-  
-  axis2d_ids(1) = cmor_axis(  &
-       table='Tables/CMIP5_Amon',    &
-       table_entry='latitude',       &
-       units='degrees_north',        &  
-       length=lat,                   &
-       coord_vals=alats,             & 
-       cell_bounds=bnds_lat)              
-  axis2d_ids(2) = cmor_axis(  &
-       table='Tables/CMIP5_Amon',    &
-       table_entry='longitude',      &
-       length=lon,                   &
-       units='degrees_east',         &
-       coord_vals=alons,             &
-       cell_bounds=bnds_lon)              
-  !   note that the time axis is defined next, but the time coordinate 
-  !   values and bounds will be passed to cmor through function 
-  !   cmor_write (below).
-print*, 'before time '
-  axis2d_ids(3) = cmor_axis(  &
-       table='Tables/CMIP5_Amon',    &
-       table_entry='time',           &
-       units='days since 1979-1-1',  &
-       length=ntimes,                &
-       interval='1 month')
-  
-  print*, 'finished defining axes'
-
-  
-
-  !  Define variables found in AMIP table 2a (2-d variables)
-  
-  DO m=1,ntest
-     write(msg,*)  m-1
-     msg2 = trim(entry2d(1)(1:4))
-     print*,'Test Code: defining variable: :',msg2
-     var2d_ids(m) = cmor_variable(    &
-          table='Tables/CMIP5_Amon',  & 
-          table_entry=msg2,     & 
-!!$          file_suffix='1979-2001',    &
-          units=units2d(1),           & 
-          axis_ids=axis2d_ids,        &
-          missing_value=1.0e20,       &
-          positive=positive2d(1),     &
-          original_name=varin2d(1))   
-  ENDDO
-
-  print*, 'completed everything up to writing output fields '
-  
-  !  Loop through history files (each containing several different fields, 
-  !       but only a single month of data, averaged over the month).  Then 
-  !       extract fields of interest and write these to netCDF files (with 
-  !       one field per file, but all months included in the loop).
-  
-  DO m=1,ntest
-     time_loop: DO it=1, ntimes
-        
-        ! In the following loops over the 3d and 2d fields, the user-written    
-        ! subroutines (read_3d_input_files and read_2d_input_files) retrieve 
-        ! the requested AMIP table 1a and table 2 fields and store them in 
-        ! data3d and data2d, respectively.  In addition a user-written code 
-        ! (read_time) retrieves the time and time-bounds associated with the 
-        ! time sample (in units of 'days since 1970-1-1', consistent with the 
-        ! axis definitions above).  The bounds are set to the beginning and 
-        ! the end of the month retrieved, indicating the averaging period.
-        
-        ! The user must write a code to obtain the times and time-bounds for
-        !   the time slice.  The following line is simply a place-holder for
-        !   the user's code, which should replace it.
-        
-        call read_time(it, time, bnds_time)
-        
-        ! Cycle through the 3-d fields, retrieve the requested variable and 
-        ! append each to the appropriate netCDF file.
-        
-        
-        
-        
-        ! Cycle through the 2-d fields, retrieve the requested variable and 
-        ! append each to the appropriate netCDF file.
-        
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-        
-        call read_2d_input_files(it, varin2d(1), data2d)                  
-        
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-        
-        print*, RESHAPE(bnds_time, (/ 2,1 /))
-        error_flag = cmor_write(var_id =        var2d_ids(m),   &
-             data =          RESHAPE(data2d, (/ lat*lon /)),        &
-             ntimes_passed = 1,              &
-             time_vals =     (/ time /),           &
-             time_bnds =     RESHAPE(bnds_time, (/ 2,1 /)))
-        
-        print*, 'after writing variable, ', var2d_ids(m)
-        IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) ' Error encountered writing AMIP Table 2 ' &
-                // 'field ', entry2d(m), ', which I call ', varin2d(m)
-           write(*,*) ' Was processing time sample: ', time 
-           
-!!$            error_flag = cmor_error_trace(device=0)
-           
-        END IF
-        
-     END DO time_loop
-     error_flag = cmor_close(var2d_ids(m))
-  END DO
-  
-  !   Close all files opened by CMOR.
-  
-  error_flag = cmor_close()  
-
-print*, '******************************'
-print*, ' '
-print*, 'CMOR COMPLETED SUCCESSFULLY '   
-print*, ' '
-print*, '******************************'
-
-END PROGRAM mip_contribution
-
diff --git a/Test/test_sigma.f90 b/Test/test_sigma.f90
deleted file mode 100644
index 933c159..0000000
--- a/Test/test_sigma.f90
+++ /dev/null
@@ -1,514 +0,0 @@
-!!$pgf90 -I/work/NetCDF/5.1/include -L/work/NetCDF/5.1/lib -l netcdf -L. -l cmor Test/test_dimensionless.f90 -IModules -o cmor_test
-!!$pgf90 -g -I/pcmdi/charles_work/NetCDF/include -L/pcmdi/charles_work/NetCDF/lib -lnetcdf -module Modules -IModules -L. -lcmor -I/pcmdi/charles_work/Unidata/include -L/pcmdi/charles_work/Unidata/lib -ludunits Test/test_dimensionless.f90 -o cmor_test
-
-MODULE local_subs
-
-  USE cmor_users_functions
-  PRIVATE
-  PUBLIC read_coords, read_time, read_3d_input_files, read_2d_input_files
-CONTAINS
-  
-  SUBROUTINE read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-
-    IMPLICIT NONE
-    
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alats
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alons
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: plevs
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lat
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lon
-    
-    INTEGER :: i
-    
-    DO i = 1, SIZE(alons)
-       alons(i) = (i-1)*360./SIZE(alons)
-       bnds_lon(1,i) = (i - 1.5)*360./SIZE(alons)
-        bnds_lon(2,i) = (i - 0.5)*360./SIZE(alons)
-    END DO
-    
-    DO i = 1, SIZE(alats)
-       alats(i) = i*10
-       bnds_lat(1,i) = i*10. - 5.
-       bnds_lat(2,i) = i*10. + 5.
-    END DO
-  
-    DO i = 1, SIZE(plevs)
-       plevs(i) = i*1.0e4
-    END DO
-        plevs = (/100000., 92500., 85000., 70000.,&
-       60000., 50000., 40000., 30000., 25000., 20000.,&
-       15000., 10000., 7000., 5000., 3000., 2000., 1000. /)
-  
-    RETURN
-  END SUBROUTINE read_coords
-
-  SUBROUTINE read_time(it, time, time_bnds)
-    
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    DOUBLE PRECISION, INTENT(OUT) :: time
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(2,1) :: time_bnds
-    
-    time = (it-0.5)*30.
-    time_bnds(1,1) = (it-1)*30.
-    time_bnds(2,1) = it*30.
-    
-    RETURN
-  END SUBROUTINE read_time
-  
-include "reader_2D_3D.f90"
-
-END MODULE local_subs
-
-
-PROGRAM ipcc_test_code
-!
-!   Purpose:   To serve as a generic example of an application that
-!       uses the "Climate Model Output Rewriter" (CMOR)
-
-!    CMOR writes CF-compliant netCDF files.
-!    Its use is strongly encouraged by the IPCC and is intended for use 
-!       by those participating in many community-coordinated standard 
-!       climate model experiments (e.g., AMIP, CMIP, CFMIP, PMIP, APE,
-!       etc.)
-!
-!   Background information for this sample code:
-!
-!      Atmospheric standard output requested by IPCC are listed in 
-!   tables available on the web.  Monthly mean output is found in
-!   tables A1a and A1c.  This sample code processes only two 3-d 
-!   variables listed in table A1c ("monthly mean atmosphere 3-D data" 
-!   and only four 2-d variables listed in table A1a ("monthly mean 
-!   atmosphere + land surface 2-D (latitude, longitude) data").  The 
-!   extension to many more fields is trivial.
-!
-!      For this example, the user must fill in the sections of code that 
-!   extract the 3-d and 2-d fields from his monthly mean "history" 
-!   files (which usually contain many variables but only a single time 
-!   slice).  The CMOR code will write each field in a separate file, but 
-!   many monthly mean time-samples will be stored together.  These 
-!   constraints partially determine the structure of the code.
-!
-!
-!   Record of revisions:
-
-!       Date        Programmer(s)           Description of change
-!       ====        ==========              =====================
-!      10/22/03     Rusty Koder              Original code
-!       1/28/04     Les R. Koder             Revised to be consistent
-!                                            with evolving code design
-
-! include module that contains the user-accessible cmor functions.
-  USE cmor_users_functions
-  USE local_subs
-
-  IMPLICIT NONE
-
-  !   dimension parameters:
-  ! ---------------------------------
-  INTEGER, PARAMETER :: ntimes = 2    ! number of time samples to process
-  INTEGER, PARAMETER :: lon = 4       ! number of longitude grid cells  
-  INTEGER, PARAMETER :: lat = 3       ! number of latitude grid cells
-  INTEGER, PARAMETER :: lev = 5       ! number of standard pressure levels
-  INTEGER, PARAMETER :: lev2 = 17       ! number of standard pressure levels
-  INTEGER, PARAMETER :: n2d = 4       ! number of IPCC Table A1a fields to be
-                                      !     output.
-  INTEGER, PARAMETER :: n3d = 4       ! number of IPCC Table A1c fields to 
-                                      !     be output.  
-
-  !   Tables associating the user's variables with IPCC standard output 
-  !   variables.  The user may choose to make this association in a 
-  !   different way (e.g., by defining values of pointers that allow him 
-  !   to directly retrieve data from a data record containing many 
-  !   different variables), but in some way the user will need to map his 
-  !   model output onto the Tables specifying the MIP standard output.
-
-  ! ----------------------------------
-
-                                ! My variable names for IPCC Table A1c fields
-  CHARACTER (LEN=5), DIMENSION(n3d) :: &
-                                 varin3d=(/'CLOUD', 'tro3 ', 'U    ', 'T    '/)
-
-                                ! Units appropriate to my data
-  CHARACTER (LEN=5), DIMENSION(n3d) :: &
-                                  units3d=(/ '%    ', '1e-9 ',  'm s-1',   'K    '  /)
-
-                     ! Corresponding IPCC Table A1c entry (variable name) 
-  CHARACTER (LEN=4), DIMENSION(n3d) :: entry3d = (/ 'cl  ', 'tro3', 'ua  ', 'ta  ' /)
-
-                                ! My variable names for IPCC Table A1a fields
-  CHARACTER (LEN=8), DIMENSION(n2d) :: &
-                  varin2d=(/ 'LATENT  ', 'TSURF   ', 'SOIL_WET', 'PSURF   ' /)
-
-                                ! Units appropriate to my data
-   CHARACTER (LEN=6), DIMENSION(n2d) :: &
-                          units2d=(/ 'W m-2 ', 'K     ', 'kg m-2', 'Pa    ' /)
-
-   CHARACTER (LEN=4), DIMENSION(n2d) :: &
-                      positive2d= (/  'down',  '    ', '    ', '    '  /)
-
-                     ! Corresponding IPCC Table A1a entry (variable name) 
-  CHARACTER (LEN=5), DIMENSION(n2d) :: &
-                        entry2d = (/ 'hfls ', 'tas  ', 'mrsos', 'ps   ' /)
-
-!  uninitialized variables used in communicating with CMOR:
-!  ---------------------------------------------------------
-
-  INTEGER :: error_flag
-  INTEGER :: znondim_id, zfactor_id
-  INTEGER, DIMENSION(n2d) :: var2d_ids
-  INTEGER, DIMENSION(n3d) :: var3d_ids
-  REAL, DIMENSION(lon,lat) :: data2d
-  REAL, DIMENSION(lev2,lon,lat) :: data3d
-  DOUBLE PRECISION, DIMENSION(lat) :: alats
-  DOUBLE PRECISION, DIMENSION(lon) :: alons
-  DOUBLE PRECISION, DIMENSION(lev2) :: plevs
-  DOUBLE PRECISION, DIMENSION(1) :: time
-  DOUBLE PRECISION, DIMENSION(2,1):: bnds_time
-  DOUBLE PRECISION, DIMENSION(2,lat) :: bnds_lat
-  DOUBLE PRECISION, DIMENSION(2,lon) :: bnds_lon
-  DOUBLE PRECISION, DIMENSION(lev) :: zlevs
-  DOUBLE PRECISION, DIMENSION(lev+1) :: zlev_bnds
-  REAL, DIMENSION(lev) :: a_coeff
-  REAL, DIMENSION(lev) :: b_coeff
-  REAL :: p0
-  REAL, DIMENSION(lev+1) :: a_coeff_bnds
-  REAL, DIMENSION(lev+1) :: b_coeff_bnds
-  INTEGER :: ilon, ilat, ipres, ilev, itim, ilon2,ilat2,itim2
-  double precision bt
-
-  !  Other variables:
-  !  ---------------------
-  
-  INTEGER :: it, m
-  bt=0.
-  
-  ! ================================
-  !  Execution begins here:
-  ! ================================
-  
-  ! Read coordinate information from model into arrays that will be passed 
-  !   to CMOR.
-  ! Read latitude, longitude, and pressure coordinate values into 
-  !   alats, alons, and plevs, respectively.  Also generate latitude and 
-  !   longitude bounds, and store in bnds_lat and bnds_lon, respectively.
-  !   Note that all variable names in this code can be freely chosen by
-  !   the user.
-
-  !   The user must write the subroutine that fills the coordinate arrays 
-  !   and their bounds with actual data.  The following line is simply a
-  !   a place-holder for the user's code, which should replace it.
-  
-  !  *** possible user-written call ***
-  
-  call read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-  
-  ! Specify path where tables can be found and indicate that existing 
-  !    netCDF files should not be overwritten.
-  
-  error_flag = cmor_setup(inpath='Test', netcdf_file_action='replace')
-  
-  ! Define dataset as output from the GICC model (first member of an
-  !   ensemble of simulations) run under IPCC 2xCO2 equilibrium
-  !   experiment conditions, and provide information to be included as 
-  !   attributes in all CF-netCDF files written as part of this dataset.
-
-  error_flag = cmor_dataset(                                   &
-       outpath='Test',                                         &
-       experiment_id='abrupt 4XCO2',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       'Geneva, Switzerland)',                                 &
-       source='GICCM1 (2002): ' //                             &
-       'atmosphere:  GICAM3 (gicam_0_brnchT_itea_2, T63L32); '// &
-       'ocean: MOM (mom3_ver_3.5.2, 2x3L15); '             //  &
-       'sea ice: GISIM4; land: GILSM2.5',                      &
-       calendar='360_day',                                      &
-       realization=1,                                          &
-       history='Output from archivcl_A1.nce/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also '        //   &
-       'see http://www.GICC.su/giccm/doc/index.html '     //   &
-       ' 2XCO2 simulation described in Dorkey et al. '    //   &
-       '(Clim. Dyn., 2003, 323-357.)',model_id="GICCM1", &
-       forcing='TO',contact="Barry Bonds",institute_id="PCMDI",&
-       parent_experiment_id="N/A",branch_time=bt)
-
-  !  Define all axes that will be needed
-  
-  ilat = cmor_axis(  &
-       table='Tables/CMIP5_Amon',        &
-       table_entry='latitude',       &
-       units='degrees_north',        &  
-       length=lat,                   &
-       coord_vals=alats,             & 
-       cell_bounds=bnds_lat)        
-      
-  ilon2 = cmor_axis(  &
-       table='Tables/CMIP5_Lmon',        &
-       table_entry='longitude',      &
-       length=lon,                   &
-       units='degrees_east',         &
-       coord_vals=alons,             &
-       cell_bounds=bnds_lon)      
-        
-  ilat2 = cmor_axis(  &
-       table='Tables/CMIP5_Lmon',        &
-       table_entry='latitude',       &
-       units='degrees_north',        &  
-       length=lat,                   &
-       coord_vals=alats,             & 
-       cell_bounds=bnds_lat)        
-      
-  ilon = cmor_axis(  &
-       table='Tables/CMIP5_Amon',        &
-       table_entry='longitude',      &
-       length=lon,                   &
-       units='degrees_east',         &
-       coord_vals=alons,             &
-       cell_bounds=bnds_lon)      
-        
-  ipres = cmor_axis(  &
-       table='Tables/CMIP5_Amon',        &
-       table_entry='plevs',       &
-       units='Pa',                   &
-       length=lev2,                   &
-       coord_vals=plevs)
-
-  !   note that the time axis is defined next, but the time coordinate 
-  !   values and bounds will be passed to cmor through function 
-  !   cmor_write (later, below).
-
-  itim = cmor_axis(  &
-       table='Tables/CMIP5_Amon',        &
-       table_entry='time',           &
-       units='days since 2030-1-1',  &
-       length=ntimes,                &
-       interval='1 month')
-  itim2 = cmor_axis(  &
-       table='Tables/CMIP5_Lmon',        &
-       table_entry='time',           &
-       units='days since 2030-1-1',  &
-       length=ntimes,                &
-       interval='1 month')
-  
-  !  define model eta levels
-  zlevs = (/ 0.1, 0.3, 0.55, 0.7, 0.9 /)
-  zlev_bnds=(/ 0.,.2, .42, .62, .8, 1. /)
-
-  ilev = cmor_axis(  &
-       table='Tables/CMIP5_Amon',        &
-       table_entry='standard_sigma',       &
-!!$       table_entry='standard_hybrid_sigma',       &
-       units='1',&
-       length=lev,                   &
-       coord_vals=zlevs,             &
-       cell_bounds=zlev_bnds)
-
-  !   define z-factors needed to transform from model level to pressure
-  p0 = 0.5e4
-!!$  p0 = 1.e5
-!!$  a_coeff = (/ 0.1, 0.2, 0.3, 0.2, 0.1 /)
-  a_coeff = (/ 0.2, 0.4, 0.6, 0.8, 0.95 /)
-  b_coeff = (/ 0.0, 0.1, 0.2, 0.5, 0.8 /)
-
-!!$  a_coeff_bnds=(/0.,.15, .25, .25, .15, 0./)
-  a_coeff_bnds=(/0.,.3, .5, .7, .9, 1./)
-  b_coeff_bnds=(/0.,.05, .15, .35, .65, 1./)
-
-  error_flag = cmor_zfactor(  &
-       zaxis_id=ilev,                      &
-       zfactor_name='ptop',                  &
-       units='Pa',                         &
-       zfactor_values = p0)
-
-!!$  error_flag = cmor_zfactor(  &
-!!$       zaxis_id=ilev,                       & 
-!!$       zfactor_name='b',                    &
-!!$       axis_ids= (/ ilev /),                &
-!!$       zfactor_values = b_coeff,            &
-!!$       zfactor_bounds = b_coeff_bnds  )
-!!$
-
-  zfactor_id = cmor_zfactor(  &
-       zaxis_id=ilev,                         &
-       zfactor_name='ps',                     &
-       axis_ids=(/ ilon, ilat, itim /),       &
-       units='Pa' )
-
-  !  Define the only field to be written that is a function of model level
-  !    (appearing in IPCC table A1c)
-
-  var3d_ids(1) = cmor_variable(    &
-       table='Tables/CMIP5_Amon',      &
-       table_entry=entry3d(1),     &
-       units=units3d(1),           &
-       axis_ids=(/ ilev, ilon, ilat, itim /),  &
-       missing_value=1.0e28, &
-       original_name=varin3d(1))
-  
-  !  Define variables appearing in IPCC table A1c that are a function of pressure
-  !         (3-d variables)
-  
-  DO m=2,n3d
-     var3d_ids(m) = cmor_variable(    &
-          table='Tables/CMIP5_Amon',      &
-          table_entry=entry3d(m),     &
-          units=units3d(m),           &
-          axis_ids=(/ ipres, ilon, ilat, itim /), &
-          missing_value=1.0e28,       &
-          original_name=varin3d(m))
-  ENDDO
-  
-
-  !  Define variables appearing in IPCC table A1a (2-d variables)
-  
-  DO m=1,n2d
-     if (m.ne.3) then
-     var2d_ids(m) = cmor_variable(    &
-          table='Tables/CMIP5_Amon',      &
-          table_entry=entry2d(m),     & 
-          units=units2d(m),           & 
-          axis_ids=(/ ilon, ilat, itim /), &
-          missing_value=1.0e28,       &
-          positive=positive2d(m),     &
-          original_name=varin2d(m))   
-  else
-     var2d_ids(m) = cmor_variable(    &
-          table='Tables/CMIP5_Lmon',      &
-          table_entry=entry2d(m),     & 
-          units=units2d(m),           & 
-          axis_ids=(/ ilon2, ilat2, itim2 /), &
-          missing_value=1.0e28,       &
-          positive=positive2d(m),     &
-          original_name=varin2d(m))   
-  endif
-  ENDDO
-
-  PRINT*, ' '
-  PRINT*, 'completed everything up to writing output fields '
-  PRINT*, ' '
-
-  !  Loop through history files (each containing several different fields, 
-  !       but only a single month of data, averaged over the month).  Then 
-  !       extract fields of interest and write these to netCDF files (with 
-  !       one field per file, but all months included in the loop).
-  
-  time_loop: DO it=1, ntimes
-     
-     ! In the following loops over the 3d and 2d fields, the user-written    
-     ! subroutines (read_3d_input_files and read_2d_input_files) retrieve 
-     ! the requested IPCC table A1c and table A1a fields and store them in 
-     ! data3d and data2d, respectively.  In addition a user-written code 
-     ! (read_time) retrieves the time and time-bounds associated with the 
-     ! time sample (in units of 'days since 1970-1-1', consistent with the 
-     ! axis definitions above).  The bounds are set to the beginning and 
-     ! the end of the month retrieved, indicating the averaging period.
-     
-     ! The user must write a code to obtain the times and time-bounds for
-     !   the time slice.  The following line is simply a place-holder for
-     !   the user's code, which should replace it.
-     
-    call read_time(it, time(1), bnds_time)
-
-    call read_3d_input_files(it, varin3d(1), data3d)
-
-    error_flag = cmor_write(                                  &
-         var_id        = var3d_ids(1),                        &
-         data          = data3d,                              &
-         ntimes_passed = 1,                                   &
-         time_vals     = time,                                &
-         time_bnds     = bnds_time   )
-
-    call read_2d_input_files(it, varin2d(4), data2d)                  
-
-    error_flag = cmor_write(                                  &
-         var_id        = zfactor_id,                          &
-         data          = data2d,                              &
-         ntimes_passed = 1,                                   &
-         time_vals     = time,                                &
-         time_bnds     = bnds_time,                           &
-         store_with    = var3d_ids(1) )
-
-    ! Cycle through the 3-d fields (stored on pressure levels), 
-    ! and retrieve the requested variable and append each to the 
-    ! appropriate netCDF file.
-
-    DO m=2,n3d
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-
-        call read_3d_input_files(it, varin3d(m), data3d)
-       
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-        
-        error_flag = cmor_write(                                  &
-             var_id        = var3d_ids(m),                        &
-             data          = data3d,                              &
-             ntimes_passed = 1,                                   &
-             time_vals     = time,                                &
-             time_bnds     = bnds_time  )
-
-        IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) ' Error encountered writing IPCC Table A1c ' &
-                // 'field ', entry3d(m), ', which I call ', varin3d(m)
-           write(*,*) ' Was processing time sample: ', time
-                      
-        END IF
-
-     END DO
-     
-     ! Cycle through the 2-d fields, retrieve the requested variable and 
-     ! append each to the appropriate netCDF file.
-     
-     DO m=1,n2d
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-        
-        call read_2d_input_files(it, varin2d(m), data2d)                  
-
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-
-        error_flag = cmor_write(                                  &
-             var_id        = var2d_ids(m),                        &
-             data          = data2d,                              &
-             ntimes_passed = 1,                                   &
-             time_vals     = time,                                &
-             time_bnds     = bnds_time  )
-        
-       IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) ' Error encountered writing IPCC Table A1a ' &
-                // 'field ', entry2d(m), ', which I call ', varin2d(m)
-           write(*,*) ' Was processing time sample: ', time 
-                      
-        END IF
-        
-     END DO
-     
-  END DO time_loop
-  
-  !   Close all files opened by CMOR.
-  
-  error_flag = cmor_close()  
-
-  print*, ' '
-  print*, '******************************'
-  print*, ' '
-  print*, 'ipcc_test_code executed to completion '   
-  print*, ' '
-  print*, '******************************'
-  
-END PROGRAM ipcc_test_code
-
diff --git a/Test/test_singleton.f90 b/Test/test_singleton.f90
deleted file mode 100755
index d677ce6..0000000
--- a/Test/test_singleton.f90
+++ /dev/null
@@ -1,560 +0,0 @@
-!!$pgf90 -I/work/NetCDF/5.1/include -L/work/NetCDF/5.1/lib -l netcdf -L. -l cmor Test/test_dimensionless.f90 -IModules -o cmor_test
-!!$pgf90 -g -I/pcmdi/charles_work/NetCDF/include -L/pcmdi/charles_work/NetCDF/lib -lnetcdf -module Modules -IModules -L. -lcmor -I/pcmdi/charles_work/Unidata/include -L/pcmdi/charles_work/Unidata/lib -ludunits Test/test_dimensionless.f90 -o cmor_test
-
-MODULE local_subs
-
-  USE cmor_users_functions
-  PRIVATE
-  PUBLIC read_coords, read_time, read_3d_input_files, read_2d_input_files
-CONTAINS
-  
-  SUBROUTINE read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-
-    IMPLICIT NONE
-    
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alats
-    REAL, INTENT(OUT), DIMENSION(:) :: alons
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: plevs
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lat
-    REAL, INTENT(OUT), DIMENSION(:,:) :: bnds_lon
-    
-    INTEGER :: i
-    
-    DO i = 1, SIZE(alons)
-       alons(i) = (i-1)*360./SIZE(alons)
-       bnds_lon(1,i) = (i - 1.5)*360./SIZE(alons)
-       bnds_lon(2,i) = (i - 0.5)*360./SIZE(alons)
-    END DO
-    
-    DO i = 1, SIZE(alats)
-       alats(i) = (size(alats)+1-i)*10
-       bnds_lat(1,i) = (size(alats)+1-i)*10 + 5.
-       bnds_lat(2,i) = (size(alats)+1-i)*10 - 5.
-    END DO
-  
-    DO i = 1, SIZE(plevs)
-       plevs(i) = i*1.0e4
-    END DO
-      plevs = (/100000., 92500., 85000., 70000.,&
-       60000., 50000., 40000., 30000., 25000., 20000.,&
-       15000., 10000., 7000., 5000., 3000., 2000., 1000. /)
-    
-    RETURN
-  END SUBROUTINE read_coords
-
-  SUBROUTINE read_time(it, time, time_bnds)
-    
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    DOUBLE PRECISION, INTENT(OUT) :: time
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(2,1) :: time_bnds
-    
-    time = (it-0.5)*30.
-    time_bnds(1,1) = (it-1)*30.
-    time_bnds(2,1) = it*30.
-    
-    RETURN
-  END SUBROUTINE read_time
-  
-include "reader_2D_3D.f90"
-END MODULE local_subs
-
-
-PROGRAM ipcc_test_code
-!
-!   Purpose:   To serve as a generic example of an application that
-!       uses the "Climate Model Output Rewriter" (CMOR)
-
-!    CMOR writes CF-compliant netCDF files.
-!    Its use is strongly encouraged by the IPCC and is intended for use 
-!       by those participating in many community-coordinated standard 
-!       climate model experiments (e.g., AMIP, CMIP, CFMIP, PMIP, APE,
-!       etc.)
-!
-!   Background information for this sample code:
-!
-!      Atmospheric standard output requested by IPCC are listed in 
-!   tables available on the web.  Monthly mean output is found in
-!   tables A1a and A1c.  This sample code processes only two 3-d 
-!   variables listed in table A1c ("monthly mean atmosphere 3-D data" 
-!   and only four 2-d variables listed in table A1a ("monthly mean 
-!   atmosphere + land surface 2-D (latitude, longitude) data").  The 
-!   extension to many more fields is trivial.
-!
-!      For this example, the user must fill in the sections of code that 
-!   extract the 3-d and 2-d fields from his monthly mean "history" 
-!   files (which usually contain many variables but only a single time 
-!   slice).  The CMOR code will write each field in a separate file, but 
-!   many monthly mean time-samples will be stored together.  These 
-!   constraints partially determine the structure of the code.
-!
-!
-!   Record of revisions:
-
-!       Date        Programmer(s)           Description of change
-!       ====        ==========              =====================
-!      10/22/03     Rusty Koder              Original code
-!       1/28/04     Les R. Koder             Revised to be consistent
-!                                            with evolving code design
-
-! include module that contains the user-accessible cmor functions.
-  USE cmor_users_functions
-  USE local_subs
-
-  IMPLICIT NONE
-
-  !   dimension parameters:
-  ! ---------------------------------
-  INTEGER, PARAMETER :: ntimes = 2    ! number of time samples to process
-  INTEGER, PARAMETER :: lon = 4       ! number of longitude grid cells  
-  INTEGER, PARAMETER :: lat = 3       ! number of latitude grid cells
-  INTEGER, PARAMETER :: lev = 5       ! number of standard pressure levels
-  INTEGER, PARAMETER :: lev2 =17       ! number of standard pressure levels
-  INTEGER, PARAMETER :: n2d = 4       ! number of IPCC Table A1a fields to be
-                                      !     output.
-  INTEGER, PARAMETER :: n3d = 3       ! number of IPCC Table A1c fields to 
-                                      !     be output.  
-
-  !   Tables associating the user's variables with IPCC standard output 
-  !   variables.  The user may choose to make this association in a 
-  !   different way (e.g., by defining values of pointers that allow him 
-  !   to directly retrieve data from a data record containing many 
-  !   different variables), but in some way the user will need to map his 
-  !   model output onto the Tables specifying the MIP standard output.
-
-  ! ----------------------------------
-
-                                ! My variable names for IPCC Table A1c fields
-  CHARACTER (LEN=5), DIMENSION(n3d) :: &
-                                 varin3d=(/'CLOUD', 'U    ', 'T    '/)
-
-                                ! Units appropriate to my data
-  CHARACTER (LEN=5), DIMENSION(n3d) :: &
-                                  units3d=(/ '%    ', 'm s-1',   'K    '  /)
-
-                     ! Corresponding IPCC Table A1c entry (variable name) 
-  CHARACTER (LEN=2), DIMENSION(n3d) :: entry3d = (/ 'cl', 'ua', 'ta' /)
-
-                                ! My variable names for IPCC Table A1a fields
-  CHARACTER (LEN=8), DIMENSION(n2d) :: &
-                  varin2d=(/ 'LATENT  ', 'TSURF   ', 'SOIL_WET', 'PSURF   ' /)
-
-                                ! Units appropriate to my data
-   CHARACTER (LEN=6), DIMENSION(n2d) :: &
-                          units2d=(/ 'W m-2 ', 'K     ', 'kg m-2', 'Pa    ' /)
-
-   CHARACTER (LEN=4), DIMENSION(n2d) :: &
-                      positive2d= (/  'down',  '    ', '    ', '    '  /)
-
-                     ! Corresponding IPCC Table A1a entry (variable name) 
-  CHARACTER (LEN=5), DIMENSION(n2d) :: &
-                        entry2d = (/ 'hfls ', 'tas  ', 'mrsos', 'ps   ' /)
-
-!  uninitialized variables used in communicating with CMOR:
-!  ---------------------------------------------------------
-
-  INTEGER :: error_flag
-  INTEGER :: znondim_id, zfactor_id
-  INTEGER, DIMENSION(n2d) :: var2d_ids
-  INTEGER, DIMENSION(n3d) :: var3d_ids
-  REAL, DIMENSION(lon,lat) :: data2d
-  REAL, DIMENSION(lon,lat,lev2) :: data3d
-  DOUBLE PRECISION, DIMENSION(lat,1,lon) :: scramble
-  DOUBLE PRECISION, DIMENSION(lat) :: alats
-  REAL, DIMENSION(lon) :: alons
-  DOUBLE PRECISION, DIMENSION(lev2) :: plevs
-  DOUBLE PRECISION, DIMENSION(1) :: time
-  DOUBLE PRECISION, DIMENSION(2,1):: bnds_time
-  DOUBLE PRECISION, DIMENSION(2,lat) :: bnds_lat
-  REAL, DIMENSION(2,lon) :: bnds_lon
-  DOUBLE PRECISION, DIMENSION(lev) :: zlevs
-  DOUBLE PRECISION, DIMENSION(lev+1) :: zlev_bnds
-  REAL, DIMENSION(lev) :: a_coeff
-  REAL, DIMENSION(lev) :: b_coeff
-  REAL :: p0
-  REAL, DIMENSION(lev+1) :: a_coeff_bnds
-  REAL, DIMENSION(lev+1) :: b_coeff_bnds
-  INTEGER :: ilon, ilat, ipres, ilev, itim, ilon2,ilat2,itim2
-  INTEGER :: iht
-
-  !  Other variables:
-  !  ---------------------
-  
-  INTEGER :: it, m, i, j
-  double precision bt
-
-  bt=0.
-  ! ================================
-  !  Execution begins here:
-  ! ================================
-  
-  ! Read coordinate information from model into arrays that will be passed 
-  !   to CMOR.
-  ! Read latitude, longitude, and pressure coordinate values into 
-  !   alats, alons, and plevs, respectively.  Also generate latitude and 
-  !   longitude bounds, and store in bnds_lat and bnds_lon, respectively.
-  !   Note that all variable names in this code can be freely chosen by
-  !   the user.
-
-  !   The user must write the subroutine that fills the coordinate arrays 
-  !   and their bounds with actual data.  The following line is simply a
-  !   a place-holder for the user's code, which should replace it.
-  
-  !  *** possible user-written call ***
-  
-  call read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-  
-  ! Specify path where tables can be found and indicate that existing 
-  !    netCDF files should not be overwritten.
-  
-  error_flag = cmor_setup(inpath='Test', netcdf_file_action='replace')
-  
-  ! Define dataset as output from the GICC model (first member of an
-  !   ensemble of simulations) run under IPCC 2xCO2 equilibrium
-  !   experiment conditions, and provide information to be included as 
-  !   attributes in all CF-netCDF files written as part of this dataset.
-
-  error_flag = cmor_dataset(                                   &
-       outpath='Test',                                         &
-       experiment_id='abrupt 4XCO2',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       'Geneva, Switzerland)',                                 &
-       source='GICCM1 (2002): ' //                             &
-       'atmosphere:  GICAM3 (gicam_0_brnchT_itea_2, T63L32); '// &
-       'ocean: MOM (mom3_ver_3.5.2, 2x3L15); '             //  &
-       'sea ice: GISIM4; land: GILSM2.5',                      &
-       calendar='360_day',                                      &
-       realization=1,                                          &
-       contact = 'Rusty Koder (koder at middle_earth.net) ',      &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also '        //   &
-       'see http://www.GICC.su/giccm/doc/index.html '     //   &
-       ' 2XCO2 simulation described in Dorkey et al. '    //   &
-       '(Clim. Dyn., 2003, 323-357.)', model_id="GICCM1", &
-       forcing='TO',institute_id="PCMDI",&
-       parent_experiment_id="N/A",branch_time=bt)
-  !  Define all axes that will be needed
-
-  ilat = cmor_axis(  &
-       table='Tables/CMIP5_Amon',    &
-       table_entry='latitude',       &
-       units='degrees_north',        &  
-       length=lat,                   &
-       coord_vals=alats,             & 
-       cell_bounds=bnds_lat)        
-      
-  ilon = cmor_axis(  &
-       table='Tables/CMIP5_Amon',    &
-       table_entry='longitude',      &
-       length=lon,                   &
-       units='degrees_east',         &
-       coord_vals=alons,             &
-       cell_bounds=bnds_lon)      
-        
-  ipres = cmor_axis(  &
-       table='Tables/CMIP5_Amon',    &
-       table_entry='plevs',       &
-       units='Pa',                   &
-       length=lev2,                   &
-       coord_vals=plevs)
-  ilat2 = cmor_axis(  &
-       table='Tables/CMIP5_Lmon',        &
-       table_entry='latitude',       &
-       units='degrees_north',        &  
-       length=lat,                   &
-       coord_vals=alats,             & 
-       cell_bounds=bnds_lat)        
-      
-  ilon2 = cmor_axis(  &
-       table='Tables/CMIP5_Lmon',        &
-       table_entry='longitude',      &
-       length=lon,                   &
-       units='degrees_east',         &
-       coord_vals=alons,             &
-       cell_bounds=bnds_lon)      
-        
-  itim2 = cmor_axis(  &
-       table='Tables/CMIP5_Lmon',        &
-       table_entry='time',           &
-       units='days since 2030-1-1',  &
-       length=ntimes,                &
-       interval='1 month')
-
-
-  iht = cmor_axis(  &
-       table='Tables/CMIP5_Amon',    &
-       table_entry='height2m',       &
-       units='m',                   &
-       length=1,                   &
-       coord_vals=(/3.0/))
-
-  !   note that the time axis is defined next, but the time coordinate 
-  !   values and bounds will be passed to cmor through function 
-  !   cmor_write (later, below).
-
-  itim = cmor_axis(  &
-       table='Tables/CMIP5_Amon',    &
-       table_entry='time',           &
-       units='days since 2030-1-1',  &
-       length=ntimes,                &
-       interval='1 month')
-  
-  !  define model eta levels (although these must be provided, they will
-  !    actually be replaced by a+b before writing the netCDF file)
-  zlevs = (/ 0.1, 0.3, 0.55, 0.7, 0.9 /)
-  zlev_bnds=(/ 0.,.2, .42, .62, .8, 1. /)
-
-  ilev = cmor_axis(  &
-       table='Tables/CMIP5_Amon',    &
-       table_entry='standard_hybrid_sigma',       &
-       length=lev,                   &
-       units='1',&
-       coord_vals=zlevs,             &
-       cell_bounds=zlev_bnds)
-
-  !   define z-factors needed to transform from model level to pressure
-  p0 = 1.e5
-  a_coeff = (/ 0.1, 0.2, 0.3, 0.22, 0.1 /)
-  b_coeff = (/ 0.0, 0.1, 0.2, 0.5, 0.8 /)
-
-  a_coeff_bnds=(/0.,.15, .25, .25, .16, 0./)
-  b_coeff_bnds=(/0.,.05, .15, .35, .65, 1./)
-
-  error_flag = cmor_zfactor(  &
-       zaxis_id=ilev,                      &
-       zfactor_name='p0',                  &
-       units='Pa',                         &
-       zfactor_values = p0)
-
-  error_flag = cmor_zfactor(  &
-       zaxis_id=ilev,                       & 
-       zfactor_name='b',                    &
-       axis_ids= (/ ilev /),                &
-       zfactor_values = b_coeff,            &
-       zfactor_bounds = b_coeff_bnds  )
-
-  error_flag = cmor_zfactor(  &
-       zaxis_id=ilev,                       &
-       zfactor_name='a',                    &
-       axis_ids= (/ ilev /),                &
-       zfactor_values = a_coeff,            &
-       zfactor_bounds = a_coeff_bnds )
-
-  zfactor_id = cmor_zfactor(  &
-       zaxis_id=ilev,                         &
-       zfactor_name='ps',                     &
-       axis_ids=(/ ilon, ilat, itim /),       &
-       units='Pa' )
-
-  !  Define the only field to be written that is a function of model level
-  !    (appearing in IPCC table A1c)
-
-  var3d_ids(1) = cmor_variable(    &
-       table='Tables/CMIP5_Amon',  &
-       table_entry=entry3d(1),     &
-       units=units3d(1),           &
-       axis_ids=(/ ilon, ilat, ilev, itim /),  &
-       missing_value=1.0e28, &
-       original_name=varin3d(1))
-  
-  !  Define variables appearing in IPCC table A1c that are a function of pressure
-  !         (3-d variables)
-  bt = 1.e28
-  DO m=2,n3d
-     var3d_ids(m) = cmor_variable(    &
-          table='Tables/CMIP5_Amon',  &
-          table_entry=entry3d(m),     &
-          units=units3d(m),           &
-          axis_ids=(/ ilon, ilat, ipres, itim /), &
-          missing_value=1.0e28,       &
-          original_name=varin3d(m))
-  ENDDO
-  
-
-  !  Define variables appearing in IPCC table A1a (2-d variables)
-  
-  DO m=1,n2d
-     IF (m==2) THEN
-        var2d_ids(m) = cmor_variable(    &
-             table='Tables/CMIP5_Amon',  &
-             table_entry=entry2d(m),     & 
-             units=units2d(m),           & 
-             axis_ids=(/ ilat, iht, ilon, itim /), &
-             missing_value=bt,       &
-             positive=positive2d(m),     &
-             original_name=varin2d(m))   
-     ELSE IF (m==3) THEN
-
-        var2d_ids(m) = cmor_variable(    &
-             table='Tables/CMIP5_Lmon',  &
-             table_entry=entry2d(m),     & 
-             units=units2d(m),           & 
-             axis_ids=(/ ilon2, ilat2, itim2 /), &
-             missing_value=1.0e28,       &
-             positive=positive2d(m),     &
-             original_name=varin2d(m))   
-
-     ELSE
-
-        var2d_ids(m) = cmor_variable(    &
-             table='Tables/CMIP5_Amon',  &
-             table_entry=entry2d(m),     & 
-             units=units2d(m),           & 
-             axis_ids=(/ ilon, ilat, itim /), &
-             missing_value=1.0e28,       &
-             positive=positive2d(m),     &
-             original_name=varin2d(m))   
-        
-     ENDIF
-  ENDDO
-
-  PRINT*, ' '
-  PRINT*, 'completed everything up to writing output fields '
-  PRINT*, ' '
-
-  !  Loop through history files (each containing several different fields, 
-  !       but only a single month of data, averaged over the month).  Then 
-  !       extract fields of interest and write these to netCDF files (with 
-  !       one field per file, but all months included in the loop).
-  
-  time_loop: DO it=1, ntimes
-     
-     ! In the following loops over the 3d and 2d fields, the user-written    
-     ! subroutines (read_3d_input_files and read_2d_input_files) retrieve 
-     ! the requested IPCC table A1c and table A1a fields and store them in 
-     ! data3d and data2d, respectively.  In addition a user-written code 
-     ! (read_time) retrieves the time and time-bounds associated with the 
-     ! time sample (in units of 'days since 1970-1-1', consistent with the 
-     ! axis definitions above).  The bounds are set to the beginning and 
-     ! the end of the month retrieved, indicating the averaging period.
-     
-     ! The user must write a code to obtain the times and time-bounds for
-     !   the time slice.  The following line is simply a place-holder for
-     !   the user's code, which should replace it.
-     
-    call read_time(it, time(1), bnds_time)
-
-    call read_3d_input_files(it, varin3d(1), data3d)
-    print*, 'shape(data3d)',shape(data3d),varin3d(1)
-    error_flag = cmor_write(                                  &
-         var_id        = var3d_ids(1),                        &
-         data          = data3d,                              &
-         ntimes_passed = 1,                                   &
-         time_vals     = time,                                &
-         time_bnds     = bnds_time   )
-
-    call read_2d_input_files(it, varin2d(4), data2d)                  
-
-    print*, 'shape(data2d)',shape(data2d),varin2d(4)
-    error_flag = cmor_write(                                  &
-         var_id        = zfactor_id,                          &
-         data          = data2d,                              &
-         ntimes_passed = 1,                                   &
-         time_vals     = time,                                &
-         time_bnds     = bnds_time,                           &
-         store_with    = var3d_ids(1) )
-
-    ! Cycle through the 3-d fields (stored on pressure levels), 
-    ! and retrieve the requested variable and append each to the 
-    ! appropriate netCDF file.
-
-    DO m=2,n3d
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-
-        call read_3d_input_files(it, varin3d(m), data3d)
-       
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-        
-        print*, 'shape(data3d)',shape(data3d),varin3d(m)
-        error_flag = cmor_write(                                  &
-             var_id        = var3d_ids(m),                        &
-             data          = data3d,                              &
-             ntimes_passed = 1,                                   &
-             time_vals     = time,                                &
-             time_bnds     = bnds_time  )
-        
-        IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) ' Error encountered writing IPCC Table A1c ' &
-                // 'field ', entry3d(m), ', which I call ', varin3d(m)
-           write(*,*) ' Was processing time sample: ', time
-                      
-        END IF
-
-     END DO
-
-
-     ! Cycle through the 2-d fields, retrieve the requested variable and 
-     ! append each to the appropriate netCDF file.
-     
-     DO m=1,n2d
-           print*, 'writing:',entry2d(m),m
-           ! The user must write the code that fills the arrays of data
-           ! that will be passed to CMOR.  The following line is simply a
-           ! a place-holder for the user's code, which should replace it.
-           
-           call read_2d_input_files(it, varin2d(m), data2d)                  
-           
-           ! append a single time sample of data for a single field to 
-           ! the appropriate netCDF file.
-           
-        IF (m == 2) THEN
-
-           DO j=1,lat
-              DO i=1,lon
-                 scramble(j,1,i) = data2d(i,j)
-              END DO
-           END DO
-           error_flag = cmor_write(                                  &
-                var_id        = var2d_ids(2),                        &
-                data          = scramble(:,1,:),                            &
-                ntimes_passed = 1,                                   &
-                time_vals     = time,                                &
-                time_bnds     = bnds_time  )
-
-        ELSE
-
-           error_flag = cmor_write(                                  &
-                var_id        = var2d_ids(m),                        &
-                data          = data2d,                              &
-                ntimes_passed = 1,                                   &
-                time_vals     = time,                                &
-                time_bnds     = bnds_time  )
-           
-           IF (error_flag < 0) THEN
-              ! write diagnostic messages to standard output device
-              write(*,*) ' Error encountered writing IPCC Table A1a ' &
-                   // 'field ', entry2d(m), ', which I call ', varin2d(m)
-              write(*,*) ' Was processing time sample: ', time 
-              
-           END IF
-
-        END IF
-
-     END DO
-     
-  END DO time_loop
-  
-  !   Close all files opened by CMOR.
-  
-  error_flag = cmor_close()  
-
-  print*, ' '
-  print*, '******************************'
-  print*, ' '
-  print*, 'ipcc_test_code executed to completion '   
-  print*, ' '
-  print*, '******************************'
-  
-END PROGRAM ipcc_test_code
-
diff --git a/Test/test_sophie.f90 b/Test/test_sophie.f90
deleted file mode 100644
index 2356aa2..0000000
--- a/Test/test_sophie.f90
+++ /dev/null
@@ -1,441 +0,0 @@
-MODULE local_subs
-
- USE cmor_users_functions
-!!$  PRIVATE
-!!$  PUBLIC read_coords, read_time, read_3d_input_files, read_2d_input_files
-CONTAINS
-
- SUBROUTINE read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-
-   IMPLICIT NONE
-
-   DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alats
-   DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alons
-   DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: plevs
-   DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lat
-   DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lon
-
-   INTEGER :: i
-
-   DO i = 1, SIZE(alons)
-      alons(i) = (i-1)*360./SIZE(alons)
-      bnds_lon(1,i) = (i - 1.5)*360./SIZE(alons)
-      bnds_lon(2,i) = (i - 0.5)*360./SIZE(alons)
-   END DO
-
-   DO i = 1, SIZE(alats)
-      alats(i) = (size(alats)+1-i)*10
-      bnds_lat(1,i) = (size(alats)+1-i)*10 + 5.
-      bnds_lat(2,i) = (size(alats)+1-i)*10 - 5.
-   END DO
-
-   DO i = 1, SIZE(plevs)
-      plevs(i) = i*1.0e4
-   END DO
-      plevs = (/100000., 92500., 85000., 70000.,&
-       60000., 50000., 40000., 30000., 25000., 20000.,&
-       15000., 10000., 7000., 5000., 3000., 2000., 1000. /)
-
-   RETURN
- END SUBROUTINE read_coords
-
- SUBROUTINE read_time(it, time, time_bnds)
-
-   IMPLICIT NONE
-
-   INTEGER, INTENT(IN) :: it
-   DOUBLE PRECISION, INTENT(OUT) :: time
-   DOUBLE PRECISION, INTENT(OUT), DIMENSION(2,1) :: time_bnds
-
-   time = (it-0.5)*30.
-   time_bnds(1,1) = (it-1)*30.
-   time_bnds(2,1) = it*30.
-
-   RETURN
- END SUBROUTINE read_time
-
-include "reader_2D_3D.f90"
-
-END MODULE local_subs
-
-program testing
- use cmor_users_functions
- use local_subs
-   implicit none
-   integer error_flag
- INTEGER, PARAMETER :: ntimes = 2    ! number of time samples to process
- INTEGER, PARAMETER :: lon = 4       ! number of longitude grid cells  
- INTEGER, PARAMETER :: lat = 3       ! number of latitude grid cells
- INTEGER, PARAMETER :: lev = 5       ! number of standard pressure levels
- INTEGER, PARAMETER :: lev2 = 17       ! number of standard pressure levels
-!  INTEGER, PARAMETER :: n2d = 4       ! number of IPCC Table A1a fields to be
- INTEGER, PARAMETER :: n2d = 1       ! number of IPCC Table A1a fields to be
-                                     !     output.
- INTEGER, PARAMETER :: n3d = 3       ! number of IPCC Table A1c fields to 
-                                     !     be output.  
-                               ! My variable names for IPCC Table A1c fields
- CHARACTER (LEN=5), DIMENSION(n3d) :: &
-                                varin3d=(/'CLOUD', 'U    ', 'T    '/)
-
-                               ! Units appropriate to my data
- CHARACTER (LEN=6), DIMENSION(n3d) :: &
-                                 units3d=(/ '%     ', 'm s-1 ',   'K     ' /)
-
-                    ! Corresponding IPCC Table A1c entry (variable name) 
- CHARACTER (LEN=2), DIMENSION(n3d) :: entry3d = (/ 'cl', 'ua', 'ta' /)
-
-                               ! My variable names for IPCC Table A1a fields
- CHARACTER (LEN=8), DIMENSION(n2d) :: &
-!                  varin2d=(/ 'LATENT  ', 'TSURF   ', 'SOIL_WET', 'PSURF   ' /)
-                 varin2d=(/ 'SFTLF  ' /)
-
-                               ! Units appropriate to my data
-  CHARACTER (LEN=6), DIMENSION(n2d) :: &
-!                          units2d=(/ 'W m-2 ', 'K     ', 'kg m-2', 'Pa    ' /)
-                         units2d=(/ '% ' /)
-
-  CHARACTER (LEN=4), DIMENSION(n2d) :: &
-!                      positive2d= (/  'down',  '    ', '    ', '    '  /)
-                     positive2d= (/  '    '  /)
-
-                    ! Corresponding IPCC Table A1a entry (variable name) 
- CHARACTER (LEN=5), DIMENSION(n2d) :: &
-!                        entry2d = (/ 'hfls ', 'tas  ', 'mrsos', 'ps   ' /)
-                       entry2d = (/ 'sftlf ' /)
-
-!  uninitialized variables used in communicating with CMOR:
-!  ---------------------------------------------------------
-
- INTEGER :: znondim_id, zfactor_id
- INTEGER, DIMENSION(n2d) :: var2d_ids
- INTEGER, DIMENSION(n3d) :: var3d_ids
- REAL, DIMENSION(lon,lat) :: data2d
- real, DIMENSION(lon*lat) ::  data1dtest
- REAL, DIMENSION(lon,lat,lev2) :: data3d
- DOUBLE PRECISION, DIMENSION(lat) :: alats
- DOUBLE PRECISION, DIMENSION(lon) :: alons
- DOUBLE PRECISION, DIMENSION(lev2) :: plevs
- DOUBLE PRECISION, DIMENSION(1) :: time
- DOUBLE PRECISION, DIMENSION(2,1):: bnds_time
- DOUBLE PRECISION, DIMENSION(2,lat) :: bnds_lat
- DOUBLE PRECISION, DIMENSION(2,lon) :: bnds_lon
- DOUBLE PRECISION, DIMENSION(lev) :: zlevs
- DOUBLE PRECISION, DIMENSION(lev+1) :: zlev_bnds
- real, DIMENSION(lev) :: a_coeff
- DOUBLE PRECISION, DIMENSION(lev) :: b_coeff
- DOUBLE PRECISION :: p0
- DOUBLE PRECISION :: p0array(1)
- real, DIMENSION(lev+1) :: a_coeff_bnds
- DOUBLE PRECISION, DIMENSION(lev+1) :: b_coeff_bnds
- INTEGER :: ilon, ilat, ipres, ilev, itim,i,ilon2,ilat2
- real :: missing
- double precision bt
-
- !  Other variables:
- !  ---------------------
-
- INTEGER :: it, m, j,k
-
-
- bt=0.
-! format classic(NETCDF-3)
-!  j = CMOR_REPLACE_3
-! format NETCDF-4
- j = CMOR_REPLACE
- k = CMOR_EXIT_ON_MAJOR
- error_flag = cmor_setup(inpath='Test', netcdf_file_action=j,&
-      exit_control=k)
- print*,'Test code: done'
- error_flag = cmor_dataset(                                   &
-      outpath='Test',                                         &
-      experiment_id='lgm',           &
-      institution=                                            &
-      'GICC (Generic International Climate Center, ' //       &
-      'Geneva, Switzerland)',                                 &
-      source='GICCM1 (2002): ' //                             &
-      'atmosphere:  GICAM3 (gicam_0_brnchT_itea_2, T63L32); '// &
-      'ocean: MOM (mom3_ver_3.5.2, 2x3L15); '             //  &
-      'sea ice: GISIM4; land: GILSM2.5',                      &
-      calendar='360_day',                                      &
-      realization=1,                                          &
-      history='Output from archive/giccm_03_std_2xCO2_2256.', &
-      comment='Equilibrium reached after 30-year spin-up ' // &
-      'after which data were output starting with nominal '// &
-      'date of January 2030',                                 &
-      references='Model described by Koder and Tolkien ' //   &
-      '(J. Geophys. Res., 2001, 576-591).  Also '        //   &
-      'see http://www.GICC.su/giccm/doc/index.html '     //   &
-      ' 2XCO2 simulation described in Dorkey et al. '    //   &
-      '(Clim. Dyn., 2003, 323-357.)', model_id="GICCM1", &
-      forcing='TO',contact="Barry Bonds",institute_id="PCMDI",&
-       parent_experiment_id="N/A",branch_time=bt)
-  
- print*, 'Test code: done 2 lalala'
-
- call read_coords(alats, alons, plevs, bnds_lat, bnds_lon)
-
-
- print*, 'Test code: ok calling axis stuff lat',alats
- ilat = cmor_axis(  &
-      table='Tables/CMIP5_Amon',    &
-      table_entry='latitude',       &
-      units='degrees_north',        &  
-      length=lat,                   &
-      coord_vals=alats,             & 
-      cell_bounds=bnds_lat)        
-
- print*, 'Test code: ok calling axis stuff lon',ilat
- ilon = cmor_axis(  &
-      table='Tables/CMIP5_Amon',    &
-      table_entry='longitude',      &
-      length=lon,                   &
-      units='degrees_east',         &
-      coord_vals=alons,             &
-      cell_bounds=bnds_lon)      
-
- ilat2 = cmor_axis(  &
-      table='Tables/CMIP5_fx',    &
-      table_entry='latitude',       &
-      units='degrees_north',        &  
-      length=lat,                   &
-      coord_vals=alats,             & 
-      cell_bounds=bnds_lat)        
-
- print*, 'Test code: ok calling axis stuff lon',ilat
- ilon2 = cmor_axis(  &
-      table='Tables/CMIP5_fx',    &
-      table_entry='longitude',      &
-      length=lon,                   &
-      units='degrees_east',         &
-      coord_vals=alons,             &
-      cell_bounds=bnds_lon)      
-
- print*, 'Test code: ok calling axis stuff pressure',ilon
- ipres = cmor_axis(  &
-      table='Tables/CMIP5_Amon',    &
-      table_entry='plevs',       &
-      units='Pa',                   &
-      length=lev2,                   &
-      coord_vals=plevs)
-
- !   note that the time axis is defined next, but the time coordinate 
- !   values and bounds will be passed to cmor through function 
- !   cmor_write (later, below).
-
- print*, 'Test code: ok calling axis stuff time',ipres,ntimes
- itim = cmor_axis(  &
-      table='Tables/CMIP5_Amon',    &
-      table_entry='time',           &
-      units='days since 2030-1-1',  &
-      length=ntimes,                &
-      interval='30 days')
-
- !  define model eta levels (although these must be provided, they will
- !    actually be replaced by a+b before writing the netCDF file)
- zlevs = (/ 0.1, 0.3, 0.55, 0.7, 0.9 /)
- zlev_bnds=(/ 0.,.2, .42, .62, .8, 1. /)
-
- print*, 'Test code: ok calling axis stuff lev2',itim
- ilev = cmor_axis(  &
-      table='Tables/CMIP5_Amon',    &
-      table_entry='standard_hybrid_sigma',       &
-      units="1",   &
-      length=lev,                   &
-      coord_vals=zlevs,             &
-      cell_bounds=zlev_bnds)
-
- print*, 'Test code: ok called stuff lev2',ilev
- !   define z-factors needed to transform from model level to pressure
- p0 = 1.e5
- p0array(1)=p0
- a_coeff = (/ 0.1, 0.2, 0.3, 0.22, 0.1 /)
- b_coeff = (/ 0.0, 0.1, 0.2, 0.5, 0.8 /)
-
- a_coeff_bnds=(/0.,.15, .25, .25, .16, 0./)
- b_coeff_bnds=(/0.,.05, .15, .35, .65, 1./)
-
- print*, 'Test code: zfactor p0'
- error_flag = cmor_zfactor(  &
-      zaxis_id=ilev,                      &
-      zfactor_name='p0',                  &
-      units='Pa',                         &
-      zfactor_values = p0)
-
- print*, 'Test code: result',error_flag
- print*, 'Test code: zfactor b'
- error_flag = cmor_zfactor(  &
-      zaxis_id=ilev,                       & 
-      zfactor_name='b',                    &
-      axis_ids= (/ ilev /),                &
-      zfactor_values = b_coeff,            &
-      zfactor_bounds = b_coeff_bnds  )
-
- print*, 'Test code: result',error_flag
- print*, 'Test code: zfactor a'
- error_flag = cmor_zfactor(  &
-      zaxis_id=ilev,                       &
-      zfactor_name='a',                    &
-      axis_ids= (/ ilev /),                &
-      zfactor_values = a_coeff,            &
-      zfactor_bounds = a_coeff_bnds )
-
- print*, 'Test code: result',error_flag
- print*, 'Test code: zfactor ps'
- zfactor_id = cmor_zfactor(  &
-      zaxis_id=ilev,                         &
-      zfactor_name='ps',                     &
-      axis_ids=(/ ilon, ilat, itim /),       &
-      units='Pa' )
-
- print*, 'Test code: result',zfactor_id
- print*, 'Test code: var3d'
- missing = 1.e28
- var3d_ids(1) = cmor_variable(    &
-      table='Tables/CMIP5_Amon',  &
-      table_entry=entry3d(1),     &
-      units=units3d(1),           &
-      axis_ids=(/ ilon, ilat, ilev, itim /),  &
-      missing_value=missing, &
-      original_name=varin3d(1))
-
- !  Define variables appearing in IPCC table A1c that are a function of pressure
- !         (3-d variables)
-
- print*, 'Test code: result',var3d_ids(1)
- DO m=2,n3d
-    print*, 'Test code: var: ',entry3d(m)
-    var3d_ids(m) = cmor_variable(    &
-         table='Tables/CMIP5_Amon',  &
-         table_entry=entry3d(m),     &
-         units=units3d(m),           &
-         axis_ids=(/ ilon, ilat, ipres, itim /), &
-         missing_value=missing,       &
-         original_name=varin3d(m))
-    print*, 'Test code: result',var3d_ids(m)
- ENDDO
-
-
- !  Define variables appearing in IPCC table A1a (2-d variables)
-
- DO m=1,n2d
-    print*, 'Test code: var: ',entry2d(m)
-    var2d_ids(m) = cmor_variable(    &
-         table='Tables/CMIP5_fx',  &
-         table_entry=entry2d(m),     & 
-         units=units2d(m),           & 
-    !     axis_ids=(/ ilon, ilat, itim /), &
-         axis_ids=(/ ilon2, ilat2 /), &
-         missing_value=missing,       &
-         positive=positive2d(m),     &
-         original_name=varin2d(m))   
-    print*, 'Test code: result',var2d_ids(m)
- ENDDO
-
- PRINT*, 'Test code:  '
- PRINT*, 'Test code: completed everything up to writing output fields '
- PRINT*, 'Test code:  '
- time_loop: DO it=1, ntimes
-
-    ! In the following loops over the 3d and 2d fields, the user-written    
-    ! subroutines (read_3d_input_files and read_2d_input_files) retrieve 
-    ! the requested IPCC table A1c and table A1a fields and store them in 
-    ! data3d and data2d, respectively.  In addition a user-written code 
-    ! (read_time) retrieves the time and time-bounds associated with the 
-    ! time sample (in units of 'days since 1970-1-1', consistent with the 
-    ! axis definitions above).  The bounds are set to the beginning and 
-    ! the end of the month retrieved, indicating the averaging period.
-
-    ! The user must write a code to obtain the times and time-bounds for
-    !   the time slice.  The following line is simply a place-holder for
-    !   the user's code, which should replace it.
-   call read_time(it, time(1), bnds_time)
-   call read_3d_input_files(it, varin3d(1), data3d)
-
-   error_flag = cmor_write(                                  &
-        var_id        = var3d_ids(1),                        &
-        data          = data3d,                              &
-        ntimes_passed = 1,                                   &
-        time_vals     = time,                                &
-        time_bnds     = bnds_time   )
-
-   call read_2d_input_files(it, 'PSURF', data2d)                  
-
-   error_flag = cmor_write(                                  &
-        var_id        = zfactor_id,                          &
-        data          = data2d,                              &
-        ntimes_passed = 1,                                   &
-        time_vals     = time,                                &
-        time_bnds     = bnds_time,                           &
-        store_with    = var3d_ids(1) )
-   
-   print*, 'Test code: result',error_flag
-  ! Cycle through the 3-d fields (stored on pressure levels), 
-   ! and retrieve the requested variable and append each to the 
-   ! appropriate netCDF file.
-
-   DO m=2,n3d
-
-       ! The user must write the code that fills the arrays of data
-       ! that will be passed to CMOR.  The following line is simply a
-       ! a place-holder for the user's code, which should replace it.
-
-       call read_3d_input_files(it, varin3d(m), data3d)
-
-       ! append a single time sample of data for a single field to 
-       ! the appropriate netCDF file.
-       print*, ' Writing 3D variable:',var3d_ids(m)
-       error_flag = cmor_write(                                  &
-            var_id        = var3d_ids(m),                        &
-            data          = data3d,                              &
-            ntimes_passed = 1,                                   &
-            time_vals     = time,                                &
-            time_bnds     = bnds_time  )
-
-       IF (error_flag < 0) THEN
-          ! write diagnostic messages to standard output device
-          write(*,*) 'Test code:  Error encountered writing IPCC Table A1c ' &
-               // 'field ', entry3d(m), ', which I call ', varin3d(m)
-          write(*,*) 'Test code:  Was processing time sample: ', time
-
-       END IF
-
-    END DO
-!!$     
-!!$     ! Cycle through the 2-d fields, retrieve the requested variable and 
-!!$     ! append each to the appropriate netCDF file.
-!!$     
-    DO m=1,n2d
-
-       ! The user must write the code that fills the arrays of data
-       ! that will be passed to CMOR.  The following line is simply a
-       ! a place-holder for the user's code, which should replace it.
-
-       print*, 'varinf',varin2d(m)
-       call read_2d_input_files(it, varin2d(m), data2d)                  
-
-       ! append a single time sample of data for a single field to 
-       ! the appropriate netCDF file.
-       print*, 'Writing var 2d:',var2d_ids(m),entry2d(m)
-       error_flag = cmor_write(                                  &
-            var_id        = var2d_ids(m),                        &
-            data          = data2d,                              &
-            ntimes_passed = 0 )
-            !ntimes_passed = 1,                                   &
-            !time_vals     = time,                                &
-            !time_bnds     = bnds_time  )
-
-      IF (error_flag < 0) THEN
-          ! write diagnostic messages to standard output device
-          write(*,*) 'Test code:  Error encountered writing IPCC Table A1a ' &
-               // 'field ', entry2d(m), ', which I call ', varin2d(m)
-          write(*,*) 'Test code:  Was processing time sample: ', time 
-
-       END IF
-
-    END DO
-
- END DO time_loop
-
- error_flag = cmor_close()
-
-end program testing
diff --git a/Test/test_station_data.f90 b/Test/test_station_data.f90
deleted file mode 100644
index b967d59..0000000
--- a/Test/test_station_data.f90
+++ /dev/null
@@ -1,330 +0,0 @@
-MODULE local_subs
-
-  USE cmor_users_functions
-!!$  PRIVATE
-!!$  PUBLIC read_coords, read_time, read_3d_input_files, read_2d_input_files
-CONTAINS
-  
-  SUBROUTINE read_coords(alats, alons, plevs, bnds_lat, bnds_lon, station, st_lons, st_lats)
-
-    IMPLICIT NONE
-    
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alats
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: alons
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: plevs
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lat
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:,:) :: bnds_lon
-    INTEGER, INTENT(OUT), DIMENSION(:) ::  station
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: st_lats
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(:) :: st_lons
-    
-    INTEGER :: i, j, k
-    
-    DO i = 1, SIZE(alons)
-       alons(i) = (i-1)*360./SIZE(alons)
-       bnds_lon(1,i) = (i - 1.5)*360./SIZE(alons)
-       bnds_lon(2,i) = (i - 0.5)*360./SIZE(alons)
-    END DO
-    
-    DO i = 1, SIZE(alats)
-       alats(i) = (size(alats)+1-i)*10
-       bnds_lat(1,i) = (size(alats)+1-i)*10 + 5.
-       bnds_lat(2,i) = (size(alats)+1-i)*10 - 5.
-    END DO
-  
-    DO i = 1, SIZE(plevs)
-       plevs(i) = i*1.0e4
-    END DO
-       plevs = (/100000., 92500., 85000., 70000.,&
-       60000., 50000., 40000., 30000., 25000., 20000.,&
-       15000., 10000., 7000., 5000., 3000., 2000., 1000. /)
-   
-    k = 1
-    DO i = 1, SIZE(alons)
-      DO j = 1, SIZE(alats)
-        station(k) = k
-        st_lons(k) = alons(i)
-        st_lats(k) = alats(j)
-        k = k+1
-      END DO   
-    END DO 
-    
-    
-    RETURN
-  END SUBROUTINE read_coords
-
-  SUBROUTINE read_time(it, time, time_bnds)
-    
-    IMPLICIT NONE
-    
-    INTEGER, INTENT(IN) :: it
-    DOUBLE PRECISION, INTENT(OUT) :: time
-    DOUBLE PRECISION, INTENT(OUT), DIMENSION(2,1) :: time_bnds
-    
-    time = (it-0.5)*30.
-    time_bnds(1,1) = (it-1)*30.
-    time_bnds(2,1) = it*30.
-    
-    RETURN
-  END SUBROUTINE read_time
-  
-include "reader_2D_3D.f90"
-
-END MODULE local_subs
-
-
-!=======================================================
-program testing
-  use cmor_users_functions
-  use local_subs
-    implicit none
-    integer error_flag
-  INTEGER, PARAMETER :: ntimes = 2    ! number of time samples to process
-  INTEGER, PARAMETER :: lon = 4       ! number of longitude grid cells  
-  INTEGER, PARAMETER :: lat = 3       ! number of latitude grid cells
-  INTEGER, PARAMETER :: lev = 17       ! number of standard pressure levels
-  INTEGER, PARAMETER :: nst = 12      ! number of stations
-  INTEGER, PARAMETER :: n2d = 4       ! number of IPCC Table A1a fields to be
-                                      !     output.
-  INTEGER, PARAMETER :: n3d = 3       ! number of IPCC Table A1c fields to 
-                                      !     be output.  
-                                ! My variable names for IPCC Table A1c fields
-  CHARACTER (LEN=5), DIMENSION(n3d) :: &
-                                 varin3d=(/'CLOUD', 'U    ', 'T    '/)
-
-                                ! Units appropriate to my data
-  CHARACTER (LEN=6), DIMENSION(n3d) :: &
-                                  units3d=(/ '%     ', 'm s-1 ',   'K     ' /)
-
-                     ! Corresponding IPCC Table A1c entry (variable name) 
-  CHARACTER (LEN=2), DIMENSION(n3d) :: entry3d = (/ 'cl', 'ua', 'ta' /)
-
-                                ! My variable names for IPCC Table A1a fields
-  CHARACTER (LEN=8), DIMENSION(n2d) :: &
-                  varin2d=(/ 'LATENT  ', 'TSURF   ', 'SOIL_WET', 'PSURF   ' /)
-
-                                ! Units appropriate to my data
-   CHARACTER (LEN=6), DIMENSION(n2d) :: &
-                          units2d=(/ 'W m-2 ', 'K     ', 'kg m-2', 'Pa    ' /)
-
-   CHARACTER (LEN=4), DIMENSION(n2d) :: &
-                      positive2d= (/  'down',  '    ', '    ', '    '  /)
-
-                     ! Corresponding IPCC Table A1a entry (variable name) 
-  CHARACTER (LEN=5), DIMENSION(n2d) :: &
-                        entry2d = (/ 'hfls ', 'tas  ', 'mrsos', 'ps   ' /)
-
-  INTEGER igrid;
-                          
-!  uninitialized variables used in communicating with CMOR:
-!  ---------------------------------------------------------
-
-  INTEGER :: znondim_id, zfactor_id
-  INTEGER, DIMENSION(n2d) :: var2d_ids
-  INTEGER, DIMENSION(n3d) :: var3d_ids
-  REAL, DIMENSION(lon,lat) :: data2d
-  real, DIMENSION(lon*lat) ::  data1dtest
-  REAL, DIMENSION(lon,lat,lev) :: data3d
-  REAL, DIMENSION(lon*lat,lev) :: data2d_st
-  DOUBLE PRECISION, DIMENSION(lat) :: alats
-  DOUBLE PRECISION, DIMENSION(lon) :: alons
-  DOUBLE PRECISION, DIMENSION(lev) :: plevs
-  INTEGER, DIMENSION(lon*lat) :: station
-  DOUBLE PRECISION, DIMENSION(lon*lat) :: st_lons
-  DOUBLE PRECISION, DIMENSION(lon*lat) :: st_lats
-  DOUBLE PRECISION, DIMENSION(1) :: time
-  DOUBLE PRECISION, DIMENSION(2,1):: bnds_time
-  DOUBLE PRECISION, DIMENSION(2,lat) :: bnds_lat
-  DOUBLE PRECISION, DIMENSION(2,lon) :: bnds_lon
-  DOUBLE PRECISION, DIMENSION(lev) :: zlevs
-  DOUBLE PRECISION, DIMENSION(lev+1) :: zlev_bnds
-  real, DIMENSION(lev) :: a_coeff
-  DOUBLE PRECISION, DIMENSION(lev) :: b_coeff
-  DOUBLE PRECISION :: p0,bt
-  DOUBLE PRECISION :: p0array(1)
-  real, DIMENSION(lev+1) :: a_coeff_bnds
-  DOUBLE PRECISION, DIMENSION(lev+1) :: b_coeff_bnds
-  INTEGER :: ilon, ilat, ipres, ilev, itim, i, ist,itim2
-  real :: missing
-
-  !  Other variables:
-  !  ---------------------
-  
-  INTEGER :: it, m, j,k
-  bt=0.
-  j = CMOR_REPLACE
-  k = CMOR_EXIT_ON_MAJOR
-  error_flag = cmor_setup(inpath='Test', netcdf_file_action=j,&
-       exit_control=k)
-  print*,'Test code: done'
-  error_flag = cmor_dataset(                                   &
-       outpath='Test',                                         &
-       experiment_id='abrupt 4XCO2',           &
-       institution=                                            &
-       'GICC (Generic International Climate Center, ' //       &
-       'Geneva, Switzerland)',                                 &
-       source='GICCM1 (2002): ' //                             &
-       'atmosphere:  GICAM3 (gicam_0_brnchT_itea_2, T63L32); '// &
-       'ocean: MOM (mom3_ver_3.5.2, 2x3L15); '             //  &
-       'sea ice: GISIM4; land: GILSM2.5',                      &
-       calendar='360_day',                                      &
-       realization=1,                                          &
-       history='Output from archive/giccm_03_std_2xCO2_2256.', &
-       comment='Equilibrium reached after 30-year spin-up ' // &
-       'after which data were output starting with nominal '// &
-       'date of January 2030',                                 &
-       references='Model described by Koder and Tolkien ' //   &
-       '(J. Geophys. Res., 2001, 576-591).  Also '        //   &
-       'see http://www.GICC.su/giccm/doc/index.html '     //   &
-       ' 2XCO2 simulation described in Dorkey et al. '    //   &
-       '(Clim. Dyn., 2003, 323-357.)', model_id="GICCM1", &
-       forcing='TO',contact="Barry Bonds",institute_id="PCMDI",&
-       parent_experiment_id="N/A",branch_time=bt)
-  print*, 'Test code: done 2 lalala'
-  
-  call read_coords(alats, alons, plevs, bnds_lat, bnds_lon, station, st_lons, st_lats)
-  
-
-  print*, 'Test code: ok calling axis stuff station'
-  ist = cmor_axis(  &
-       table='Tables/CMIP5_grids',    &
-       table_entry='i_index',       &
-       units=' ',        &  
-       length=nst,                   &
-       coord_vals=station )      
-       
-   
-  print*, 'Test code: ok calling axis stuff pressure',ist
-  ipres = cmor_axis(  &
-       table='Tables/CMIP5_Amon',    &
-       table_entry='plevs',       &
-       units='Pa',                   &
-       length=lev,                   &
-       coord_vals=plevs)
-
-  !   note that the time axis is defined next, but the time coordinate 
-  !   values and bounds will be passed to cmor through function 
-  !   cmor_write (later, below).
-
-  print*, 'Test code: ok calling axis stuff time',ipres
-  itim = cmor_axis(  &
-       table='Tables/CMIP5_Amon',    &
-       table_entry='time',           &
-       units='days since 2030-1-1',  &
-       length=ntimes,                &
-       interval='1 month')
-        
-  itim2 = cmor_axis(  &
-       table='Tables/CMIP5_Lmon',        &
-       table_entry='time',           &
-       units='days since 2030-1-1',  &
-       length=ntimes,                &
-       interval='1 month')
-
-  
-  ! to make it a station data, we need to define the grid with lon/lat 
-  ! information. CMOR will then add the 'longitude' and 'latitude'
-  ! variables as assosiated to the station data.
-  ! You do not set up lon/lat as axis variables for the station data     
-  ! note - the first parameter has ot be an array (of dim=1 in this example)
-  igrid = cmor_load_table("Tables/CMIP5_grids")
-  igrid = cmor_grid((/ist/), st_lats, st_lons)       
-       
-  write(*,'(a, 12f6.1)') 'lons: ',st_lons
-  write(*,'(a, 12f6.1)') 'lats: ',st_lats
-  
-  !===============================================================
-  print*, ' '
-   
-
-  !  Define variables appearing in IPCC table A1a (2-d variables)
-  DO m=1,4
-     print*, 'Test code: var:  ',m,entry2d(m)
-     if (m.eq.3) then 
-     var2d_ids(m) = cmor_variable(    &
-          table='Tables/CMIP5_Lmon',  &
-          table_entry=entry2d(m),     & 
-          units=units2d(m),           & 
-          axis_ids=(/ igrid, itim2 /), &
-          missing_value=missing,       &
-          positive=positive2d(m),     &
-          original_name=varin2d(m)) 
-  else  
-     var2d_ids(m) = cmor_variable(    &
-          table='Tables/CMIP5_Amon',  &
-          table_entry=entry2d(m),     & 
-          units=units2d(m),           & 
-          axis_ids=(/ igrid, itim /), &
-          missing_value=missing,       &
-          positive=positive2d(m),     &
-          original_name=varin2d(m))   
-  endif
-     print*, 'Test code: result',var2d_ids(m)
-  ENDDO   
-  
-
-  PRINT*, 'Test code:  '
-  PRINT*, 'Test code: completed everything up to writing output fields '
-  PRINT*, 'Test code:  '
-  time_loop: DO it=1, ntimes
-     
-     ! In the following loops over the 3d and 2d fields, the user-written    
-     ! subroutines (read_3d_input_files and read_2d_input_files) retrieve 
-     ! the requested IPCC table A1c and table A1a fields and store them in 
-     ! data3d and data2d, respectively.  In addition a user-written code 
-     ! (read_time) retrieves the time and time-bounds associated with the 
-     ! time sample (in units of 'days since 1970-1-1', consistent with the 
-     ! axis definitions above).  The bounds are set to the beginning and 
-     ! the end of the month retrieved, indicating the averaging period.
-     
-     ! The user must write a code to obtain the times and time-bounds for
-     !   the time slice.  The following line is simply a place-holder for
-     !   the user's code, which should replace it.
-     
-    call read_time(it, time(1), bnds_time)
-
-    
-!!$     
-!!$     ! Cycle through the 2-d fields, retrieve the requested variable and 
-!!$     ! append each to the appropriate netCDF file.
-!!$     
-     DO m=1,n2d
-        
-        ! The user must write the code that fills the arrays of data
-        ! that will be passed to CMOR.  The following line is simply a
-        ! a place-holder for the user's code, which should replace it.
-        
-        call read_2d_input_files(it, varin2d(m), data2d)    
-        k = 1  
-        DO j = 1, lat
-          data1dtest(k:k+lat) = data2d(:,j) 
-          k = k+lat+1 
-        END DO   
-        !write(*,'(a, 12(f8.1,1x))'), entry2d(m), data1dtest            
-
-        ! append a single time sample of data for a single field to 
-        ! the appropriate netCDF file.
-
-        error_flag = cmor_write(                                  &
-             var_id        = var2d_ids(m),                        &
-             data          = data1dtest,                          &
-             ntimes_passed = 1,                                   &
-             time_vals     = time,                                &
-             time_bnds     = bnds_time  )
-        
-       IF (error_flag < 0) THEN
-           ! write diagnostic messages to standard output device
-           write(*,*) 'Test code:  Error encountered writing IPCC Table A1a ' &
-                // 'field ', entry2d(m), ', which I call ', varin2d(m)
-           write(*,*) 'Test code:  Was processing time sample: ', time 
-                      
-        END IF
-        
-     END DO 
-     
-     
-  END DO time_loop
-
-  error_flag = cmor_close()
-
-end program testing
diff --git a/Test/wegner_test.f90 b/Test/wegner_test.f90
deleted file mode 100644
index 70cfd83..0000000
--- a/Test/wegner_test.f90
+++ /dev/null
@@ -1,447 +0,0 @@
-module my_subs
-
-contains
-
-subroutine levrein(mlev, alev, blev, zlev, alevb, blevb, zlevb, p0)
-
-integer                             :: mlev
-double precision, intent(INOUT),dimension(mlev)   :: zlev
-double precision, intent(INOUT),dimension(mlev+1) :: zlevb
-real,             dimension(mlev)   :: slev
-real,             intent(INOUT),dimension(mlev)   :: alev, blev
-real,             intent(INOUT),dimension(mlev+1) :: alevb, blevb
-real , intent(inout) :: p0
-p0=101325.0
-
-slev=(/ &
-    0.00000000000000000,&
- 2000.00000000000000000,&
- 4000.00000000000000000,&
- 6000.00000000000000000,&
- 8000.00000000000000000,&
- 9976.13671875000000000,&
-11820.53906250000000000,&
-13431.39453125000000000,&
-14736.35546875000000000,&
-15689.20703125000000000,&
-16266.60937500000000000,&
-16465.00390625000000000,&
-16297.62109375000000000,&
-15791.59765625000000000,&
-14985.26953125000000000,&
-13925.51953125000000000,&
-12665.29296875000000000,&
-11261.23046875000000000,&
- 9771.40625000000000000,&
- 8253.21093750000000000,&
- 6761.33984375000000000,&
- 5345.91406250000000000,&
- 4050.71777343750000000,&
- 2911.56933593750000000,&
- 1954.80517578125000000,&
- 1195.88989257812500000,&
-  638.14892578125000000,&
-  271.62646484375000000,&
-   72.06358337402343750,&
-    0.00000000000000000,&
-    0.00000000000000000,&
-    0.00000000000000000 /)
-
-do i=1,mlev
-  alev(i)=slev(i)/p0
-end do
-blev=(/ &
-0.00000000000000000,&
-0.00000000000000000,&
-0.00000000000000000,&
-0.00000000000000000,&
-0.00000000000000000,&
-0.00039085815660655,&
-0.00291970069520175,&
-0.00919413194060326,&
-0.02031915634870529,&
-0.03697485849261284,&
-0.05948764085769653,&
-0.08789497613906860,&
-0.12200361490249634,&
-0.16144150495529175,&
-0.20570325851440430,&
-0.25418859720230103,&
-0.30623537302017212,&
-0.36114501953125000,&
-0.41820228099822998,&
-0.47668814659118652,&
-0.53588658571243286,&
-0.59508424997329712,&
-0.65356457233428955,&
-0.71059441566467285,&
-0.76540523767471313,&
-0.81716698408126831,&
-0.86495584249496460,&
-0.90771585702896118,&
-0.94421321153640747,&
-0.97298520803451538,&
-0.99228149652481079,&
-1.00000000000000000 /)
-
-do i=1,mlev
-   zlev(i)=alev(i)+blev(i)
-end do
-do i=2,mlev
-   alevb(i)=abs((alev(i)+alev(i-1))/2)
-end do
-alevb(1)=0.
-alevb(mlev+1)=0.
-
-do i=2,mlev
-   blevb(i)=abs((blev(i)+blev(i-1))/2)
-end do
-blevb(1)=0.
-blevb(mlev+1)=1.0
-
-do i=2,mlev
-   zlevb(i)=abs((zlev(i)+zlev(i-1))/2)
-end do
-zlevb(1)=0.
-zlevb(mlev+1)=1.0
-print*, 'done levrein going out' 
-end subroutine levrein
-
-subroutine latrein(lat, lon, latd, lond, bndslat, bndslon)
-
-double precision, dimension(lon)   :: lond
-double precision, dimension(lat)   :: latd
-double precision, dimension(2,lon) :: bndslon
-double precision, dimension(2,lat) :: bndslat
-double precision, dimension(17)    :: plevs
-
-integer   :: i
-
-lond(1)=0.0
-bndslon(1,1)=-0.9375
-bndslon(2,1)=0.9375
-do i=1,191
-   lond(i+1)     =lond(i)+1.875000
-   bndslon(1,i+1)=lond(i+1)-0.9375
-   bndslon(2,i+1)=lond(i+1)+0.9375
-end do
-
-latd=(/ &
- -88.572,-86.723,-84.862,-82.999,-81.135,-79.271,-77.406,-75.541,-73.676,-71.811, &
- -69.946,-68.081,-66.216,-64.351,-62.486,-60.620,-58.755,-56.890,-55.025,-53.160, &
- -51.294,-49.429,-47.564,-45.699,-43.833,-41.968,-40.103,-38.238,-36.372,-34.507, &
- -32.642,-30.777,-28.911,-27.046,-25.181,-23.316,-21.450,-19.585,-17.720,-15.855, &
- -13.989,-12.124,-10.259,-8.394,-6.528,-4.663,-2.798,-0.933, 0.933, 2.798, &
- 4.663, 6.528, 8.394, 10.259, 12.124, 13.989, 15.855, 17.720, 19.585, 21.450, &
- 23.316,25.181,27.046,28.911,30.777,32.642,34.507,36.372,38.238,40.103, &
- 41.968,43.833,45.699,47.564,49.429,51.294,53.160,55.025,56.890,58.755, &
- 60.620,62.486,64.351,66.216,68.081,69.946,71.811,73.676,75.541,77.406, &
- 79.271,81.135,82.999,84.862,86.723,88.572 /)
-
-do i=1,95
-   bndslat(2,i)=latd(i)-((latd(i)-(latd(i+1)))/2.)
-   bndslat(1,i+1)=bndslat(2,i)
-end do
-bndslat(1,1)=-90.0
-bndslat(2,96)=90.0
-
-end subroutine latrein
-
-
-subroutine timdatrein(nrec, lev, lat, lon, time, bndstime, data2, data3)
-
-double precision, dimension(nrec) :: time
-double precision, dimension(2,nrec) :: bndstime
-
-real, dimension(lon*lat)         :: dummy2, dummy3
-real, dimension(lon,lat,nrec)    :: data2
-real, dimension(lon,lat,lev,nrec):: data3
-integer                          :: jtime, icode, ilevel, nsize
-integer                          :: i, nyear, ihalf, nrec
-integer                          :: iyear, imon, iday, im, id, itime
-integer                          :: jd1860, jdactu
-character (len=50)               :: filearg
-
-! filenamen als argument fuer program einlesen:
-! filearg 1 ist 2d feld
-! filearg 2 ist 3d feld
-!
-call getarg(1, filearg)
-open(1,file=filearg, form='unformatted')
-call getarg(2, filearg)
-open(2,file=filearg, form='unformatted')
-
-! Zeit seit 1860 01 01 12
-! Julian date 1859 12 31 12
-!
-jd1860 = 31-32075+1461*(1859+4800+(12-14)/12)/4+367*(12-2-(12-14)/12*12) &
-         /12-3*((1859+4900+(12-14)/12)/100)/4
-
-do i=1,nrec
-   read(1) jtime, icode, ilevel,nsize
-   read(1) dummy2
-
-   iyear = int(jtime/10000)
-   im = iyear*100
-   imon = int(jtime/100)-im
-   id = imon*100
-
-   monlen: select case (imon)
-   case(4,6,9,11)
-      iday = 30
-   case(2)
-      if(mod(iyear,4).eq.0) then
-       if (mod(iyear,100).eq.0) then
-          iday = 28
-       else
-          iday = 29
-       endif
-       if(mod(iyear,400).eq.0) iday=29
-      else
-          iday = 28
-      endif
-   case default
-     iday = 31
-   end select monlen
-   ihalf=15
-   print*, itime, iyear, imon, iday
-      jdactu = ihalf-32075+1461*(iyear+4800+(imon-14)/12)/4+367*(imon-2-(imon-14)/12*12) &
-               /12-3*((iyear+4900+(imon-14)/12)/100)/4
-      time(i) = jdactu - jd1860
-      bndstime(1,i) = time(i) - ihalf
-      bndstime(2,i) = time(i) + (iday-ihalf)
-   print*, bndstime(1,i), time(i), bndstime(2,i)
-
-   do j=1,lat
-     do k=1,lon
-       data2(k,j,i)= dummy2(lon*(j-1) + k)
-     end do
-   end do
-  
-   do l=1,lev
-      read(2) jtime, icode, ilevel, nsize
-      read(2) dummy3
-      do j=1,lat
-        do k=1,lon
-          data3(k,j,l,i)= dummy3(lon*(j-1) + k)
-        end do
-      end do
-   end do
-
-end do
-   print*, time
-
-end subroutine timdatrein
-
-end module my_subs
-
-program wegner
-  !
-  use cmor_users_functions
-
-  use my_subs
-
-  implicit none
-
-  !   dimension parameters:
-  ! ---------------------------------
-
-  INTEGER, PARAMETER                 :: nti = 24  
-  INTEGER, PARAMETER                 :: lon = 192       
-  INTEGER, PARAMETER                 :: lat = 96     
-  INTEGER, PARAMETER                 :: lev = 32    
-
-  ! My variable names for IPCC Table A1a fields
-  CHARACTER (LEN=50)                 :: TABLE = 'Test/IPCC_table_A1'
-  CHARACTER (LEN=50)                 :: OUTDIR = 'Test'
-  CHARACTER (LEN=50)                 :: TABELLE = 'Test/IPCC_table_A1'
-  CHARACTER (LEN=5)                  :: varin2d = 'MSLP '
-  CHARACTER (LEN=5)                  :: units2d = 'Pa   '
-  CHARACTER (LEN=5)                  :: posit2d = '     '
-  CHARACTER (LEN=5)                  :: entry2d = 'ps   '
-  CHARACTER (LEN=5)                  :: varin3d = 'CLOUD'
-  CHARACTER (LEN=5)                  :: units3d = '%    '
-  CHARACTER (LEN=5)                  :: entry3d = 'cl   '
-
-  
-  !  uninitialized variables used in communicating with CMOR:
-  !  ---------------------------------------------------------
-
-  INTEGER                            :: error_flag, j,k
-  INTEGER                            :: znondim_id, zfactor_id=1
-  INTEGER                            :: var2d_ids
-  INTEGER                            :: var3d_ids
-  REAL, DIMENSION(lon,lat,nti)       :: data2d
-  REAL, DIMENSION(lon,lat,lev,nti)   :: data3d
-  REAL, DIMENSION(lon,lat)           :: data2d2
-  DOUBLE PRECISION, DIMENSION(lat)   :: alats
-  DOUBLE PRECISION, DIMENSION(lon)   :: alons
-  DOUBLE PRECISION, DIMENSION(nti)   :: time
-  DOUBLE PRECISION, DIMENSION(2,nti) :: bnds_time
-  DOUBLE PRECISION, DIMENSION(2,lat) :: bnds_lat
-  DOUBLE PRECISION, DIMENSION(2,lon) :: bnds_lon
-  DOUBLE PRECISION, DIMENSION(lev)   :: zlevs
-  DOUBLE PRECISION, DIMENSION(lev+1) :: zlev_bnds
-  REAL, DIMENSION(lev)               :: a_coeff, b_coeff
-  REAL, DIMENSION(lev+1)             :: a_coeff_bnds, b_coeff_bnds
-  REAL                               :: p0
-  INTEGER                            :: ilon, ilat, ipres, ilev, itim
-
-  !  Other variables:
-  !  ---------------------
-  
-  INTEGER                            :: it
-  
-  ! read the grid
-  ! --------------------
-  
-  call latrein(lat, lon, alats, alons, bnds_lat, bnds_lon)
-  
-  ! Specify path where tables can be found and indicate that existing 
-  !    netCDF files should not be overwritten.
-  
-  error_flag = cmor_setup(inpath='TABLE',                      &
-               netcdf_file_action='replace',                   &
-               exit_control=1)
-  
-  ! Define dataset as output from  ECHAM5-OM1
-  ! -----------------------------------------
-  error_flag         = cmor_dataset(                           &
-       outpath       = OUTDIR,                                 &
-       experiment_id ='pre-industrial control experiment',     &
-       institution   ='MPI (Max Planck Institute for Meteorology,'  // &
-       'Hamburg, Germany)',                                    &
-       source        ='ECHAM5/MPI-OM(2004):'//                 &
-       'atmosphere:  ECHAM5 (T63L32);'//                       &
-       'ocean:       OM (1x1L41); '//                          &
-       'sea ice:     ECHAM5',                                  &
-       calendar      ='gregorian',                             &
-       realization   =1,                                       &
-       contact = 'Joerg Wegner (wegner at dkrz.de) ',             &
-       history='Output from CERA Database/EH5_OM_20C_1_TEMP2', &
-       comment='anthropogenic forcing only',                   &
-       references='ECHAM5: E. Roeckner et. all, 2003,' //      &
-       'The atmospheric general circulation model ECHAM5' //   & 
-       'Report No. 349' //                                     &
-       'OM: Marsland et. all, 2003,' //                        &
-       'The Max-Planck-Institute global ocean/sea ice model'// &
-       'with orthogonal curvelinear coordinates' //            &
-       'Ocean Modell., 5, 91-127.' )
-  
-  !  Define all axes that will be needed
-
-  ilat = cmor_axis(  &
-       table=TABELLE,                &
-       table_entry='latitude',       &
-       units='degrees_north',        &  
-       length=lat,                   &
-       coord_vals=alats,             & 
-       cell_bounds=bnds_lat)        
-      
-  ilon = cmor_axis(  &
-       table=TABELLE,                &
-       table_entry='longitude',      &
-       length=lon,                   &
-       units='degrees_east',         &
-       coord_vals=alons,             &
-       cell_bounds=bnds_lon)      
-        
-  !   note that the time axis is defined next, but the time coordinate 
-  !   values and bounds will be passed to cmor through function 
-  !   cmor_write (later, below).
-
-  itim = cmor_axis(  &
-       table=TABELLE,                &
-       table_entry='time',           &
-       units='days since 1860-1-1',  &
-       length=nti,                   &
-       interval='12 minutes')
- 
-  call levrein(lev, a_coeff, b_coeff, zlevs, a_coeff_bnds, b_coeff_bnds, zlev_bnds, p0)
-  print*, 'done levrein'
-  print*, 'sure ?'
-  ilev = cmor_axis(  &
-       table=TABELLE,                &
-       table_entry='standard_hybrid_sigma',&
-       length=lev,                   &
-       units = '1',&
-       coord_vals=zlevs,             &
-       cell_bounds=zlev_bnds)
-
-  error_flag = cmor_zfactor(               &
-       zaxis_id=ilev,                      &
-       zfactor_name='p0',                  &
-       units='Pa',                         &
-       zfactor_values = p0)
-
-  error_flag = cmor_zfactor(               &
-       zaxis_id=ilev,                      & 
-       zfactor_name='b',                   &
-       axis_ids= (/ ilev /),               &
-       zfactor_values = b_coeff,           &
-       zfactor_bounds = b_coeff_bnds  )
-
-  error_flag = cmor_zfactor(               &
-       zaxis_id=ilev,                      &
-       zfactor_name='a',                   &
-       axis_ids= (/ ilev /),               &
-       zfactor_values = a_coeff,           &
-       zfactor_bounds = a_coeff_bnds )
-
-  zfactor_id = cmor_zfactor(               &
-       zaxis_id=ilev,                      &
-       zfactor_name='ps',                  &
-       axis_ids=(/ ilon, ilat, itim /),    &
-       units='Pa' )
-
-  
-     var2d_ids = cmor_variable(            &
-          table=TABELLE,                   &
-          table_entry=entry2d,             & 
-          units=units2d,                   & 
-          axis_ids=(/ ilon, ilat, itim /), &
-          missing_value=1.0e20,            &
-          positive=posit2d,                &
-          original_name=varin2d)   
-
-     var3d_ids = cmor_variable(            &
-          table=TABELLE,                   &
-          table_entry=entry3d,             &
-          units=units3d,                   &
-          axis_ids=(/ ilon, ilat, ilev, itim /),  &
-          missing_value=1.0e20,            &
-          original_name=varin3d)
-
-  print*, ' '
-  print*, 'completed everything up to writing output fields '
-  print*, ' '
-  
-  call timdatrein(nti, lev, lat, lon, time, bnds_time, data2d, data3d)
-
-        
-     error_flag = cmor_write(                               &
-           var_id        = var3d_ids,                       &
-           data          = data3d,                          &
-           ntimes_passed = nti,                             &
-           time_vals     = time,                            &
-           time_bnds     = bnds_time )
-
-     error_flag = cmor_write(                               &
-           var_id        = var2d_ids,                       &
-           data          = data2d,                          &
-           ntimes_passed = nti,                             &
-           time_vals     = time,                            &
-           time_bnds     = bnds_time,                       &
-           store_with    = var3d_ids )
-
-  if (error_flag < 0) then
- ! write diagnostic messages to standard output device
-           write(*,*) ' Error encountered writing IPCC Table A1a ' &
-               // 'field ', entry2d, ', which I call ', varin2d
-           write(*,*) ' Was processing time sample: ', time 
-  end if
-  !   Close all files opened by CMOR.
-  !   -------------------------------
-  error_flag = cmor_close()  
- 
-end program wegner
diff --git a/compile_line.txt.in b/compile_line.txt.in
deleted file mode 100644
index 253280d..0000000
--- a/compile_line.txt.in
+++ /dev/null
@@ -1,5 +0,0 @@
-# The following line will compile "C" code mycode.c with cmor, additional libraries mycode.c may requires should be added to this line
- @CC@ @DEBUG@ @MACROS@ @CFLAGS@ @CPPFLAGS@  mycode.c -L at prefix@/lib -I at prefix@/include  -L. -lcmor @NCCFLAGS@ @NCLDFLAGS@ @HDF5CFLAGS@ @HDF5LDFLAGS@ @UDUNITS2LDFLAGS@ @UDUNITS2FLAGS@ @UUIDLDFLAGS@ @UUIDFLAGS@ @ZLDFLAGS@ -o mycode
-
-# The following line will compile "FORTRAN" code mycode.f90 with cmor, additional libraries mycode.f90 may requires should be added to this line
- at FC@ @DEBUG@ @FCFLAGS@ mycode.f90 -L at prefix@/lib -L. -lcmor @NCCFLAGS@ @NCLDFLAGS@ @HDF5CFLAGS@ @HDF5LDFLAGS@ @UDUNITS2LDFLAGS@ @UDUNITS2FLAGS@ @UUIDLDFLAGS@ @UUIDFLAGS@ @ZFLAGS@ @ZLDFLAGS@ -o mycode
diff --git a/config.guess b/config.guess
deleted file mode 100755
index 917bbc5..0000000
--- a/config.guess
+++ /dev/null
@@ -1,1463 +0,0 @@
-#! /bin/sh
-# Attempt to guess a canonical system name.
-#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
-
-timestamp='2005-07-08'
-
-# This file is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
-# 02110-1301, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-
-# Originally written by Per Bothner <per at bothner.com>.
-# Please send patches to <config-patches at gnu.org>.  Submit a context
-# diff and a properly formatted ChangeLog entry.
-#
-# This script attempts to guess a canonical system name similar to
-# config.sub.  If it succeeds, it prints the system name on stdout, and
-# exits with 0.  Otherwise, it exits with 1.
-#
-# The plan is that this can be called by configure scripts if you
-# don't specify an explicit build system type.
-
-me=`echo "$0" | sed -e 's,.*/,,'`
-
-usage="\
-Usage: $0 [OPTION]
-
-Output the configuration name of the system \`$me' is run on.
-
-Operation modes:
-  -h, --help         print this help, then exit
-  -t, --time-stamp   print date of last modification, then exit
-  -v, --version      print version number, then exit
-
-Report bugs and patches to <config-patches at gnu.org>."
-
-version="\
-GNU config.guess ($timestamp)
-
-Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-Free Software Foundation, Inc.
-
-This is free software; see the source for copying conditions.  There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-
-help="
-Try \`$me --help' for more information."
-
-# Parse command line
-while test $# -gt 0 ; do
-  case $1 in
-    --time-stamp | --time* | -t )
-       echo "$timestamp" ; exit ;;
-    --version | -v )
-       echo "$version" ; exit ;;
-    --help | --h* | -h )
-       echo "$usage"; exit ;;
-    -- )     # Stop option processing
-       shift; break ;;
-    - )	# Use stdin as input.
-       break ;;
-    -* )
-       echo "$me: invalid option $1$help" >&2
-       exit 1 ;;
-    * )
-       break ;;
-  esac
-done
-
-if test $# != 0; then
-  echo "$me: too many arguments$help" >&2
-  exit 1
-fi
-
-trap 'exit 1' 1 2 15
-
-# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
-# compiler to aid in system detection is discouraged as it requires
-# temporary files to be created and, as you can see below, it is a
-# headache to deal with in a portable fashion.
-
-# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
-# use `HOST_CC' if defined, but it is deprecated.
-
-# Portable tmp directory creation inspired by the Autoconf team.
-
-set_cc_for_build='
-trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
-trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
-: ${TMPDIR=/tmp} ;
- { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
- { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
- { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
- { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
-dummy=$tmp/dummy ;
-tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
-case $CC_FOR_BUILD,$HOST_CC,$CC in
- ,,)    echo "int x;" > $dummy.c ;
-	for c in cc gcc c89 c99 ; do
-	  if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
-	     CC_FOR_BUILD="$c"; break ;
-	  fi ;
-	done ;
-	if test x"$CC_FOR_BUILD" = x ; then
-	  CC_FOR_BUILD=no_compiler_found ;
-	fi
-	;;
- ,,*)   CC_FOR_BUILD=$CC ;;
- ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
-esac ; set_cc_for_build= ;'
-
-# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
-# (ghazi at noc.rutgers.edu 1994-08-24)
-if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
-	PATH=$PATH:/.attbin ; export PATH
-fi
-
-UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
-UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
-UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
-UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
-
-# Note: order is significant - the case branches are not exclusive.
-
-case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
-    *:NetBSD:*:*)
-	# NetBSD (nbsd) targets should (where applicable) match one or
-	# more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
-	# *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
-	# switched to ELF, *-*-netbsd* would select the old
-	# object file format.  This provides both forward
-	# compatibility and a consistent mechanism for selecting the
-	# object file format.
-	#
-	# Note: NetBSD doesn't particularly care about the vendor
-	# portion of the name.  We always set it to "unknown".
-	sysctl="sysctl -n hw.machine_arch"
-	UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
-	    /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
-	case "${UNAME_MACHINE_ARCH}" in
-	    armeb) machine=armeb-unknown ;;
-	    arm*) machine=arm-unknown ;;
-	    sh3el) machine=shl-unknown ;;
-	    sh3eb) machine=sh-unknown ;;
-	    *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
-	esac
-	# The Operating System including object format, if it has switched
-	# to ELF recently, or will in the future.
-	case "${UNAME_MACHINE_ARCH}" in
-	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)
-		eval $set_cc_for_build
-		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
-			| grep __ELF__ >/dev/null
-		then
-		    # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
-		    # Return netbsd for either.  FIX?
-		    os=netbsd
-		else
-		    os=netbsdelf
-		fi
-		;;
-	    *)
-	        os=netbsd
-		;;
-	esac
-	# The OS release
-	# Debian GNU/NetBSD machines have a different userland, and
-	# thus, need a distinct triplet. However, they do not need
-	# kernel version information, so it can be replaced with a
-	# suitable tag, in the style of linux-gnu.
-	case "${UNAME_VERSION}" in
-	    Debian*)
-		release='-gnu'
-		;;
-	    *)
-		release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
-		;;
-	esac
-	# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
-	# contains redundant information, the shorter form:
-	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
-	echo "${machine}-${os}${release}"
-	exit ;;
-    *:OpenBSD:*:*)
-	UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
-	echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
-	exit ;;
-    *:ekkoBSD:*:*)
-	echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
-	exit ;;
-    macppc:MirBSD:*:*)
-	echo powerppc-unknown-mirbsd${UNAME_RELEASE}
-	exit ;;
-    *:MirBSD:*:*)
-	echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
-	exit ;;
-    alpha:OSF1:*:*)
-	case $UNAME_RELEASE in
-	*4.0)
-		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
-		;;
-	*5.*)
-	        UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
-		;;
-	esac
-	# According to Compaq, /usr/sbin/psrinfo has been available on
-	# OSF/1 and Tru64 systems produced since 1995.  I hope that
-	# covers most systems running today.  This code pipes the CPU
-	# types through head -n 1, so we only detect the type of CPU 0.
-	ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1`
-	case "$ALPHA_CPU_TYPE" in
-	    "EV4 (21064)")
-		UNAME_MACHINE="alpha" ;;
-	    "EV4.5 (21064)")
-		UNAME_MACHINE="alpha" ;;
-	    "LCA4 (21066/21068)")
-		UNAME_MACHINE="alpha" ;;
-	    "EV5 (21164)")
-		UNAME_MACHINE="alphaev5" ;;
-	    "EV5.6 (21164A)")
-		UNAME_MACHINE="alphaev56" ;;
-	    "EV5.6 (21164PC)")
-		UNAME_MACHINE="alphapca56" ;;
-	    "EV5.7 (21164PC)")
-		UNAME_MACHINE="alphapca57" ;;
-	    "EV6 (21264)")
-		UNAME_MACHINE="alphaev6" ;;
-	    "EV6.7 (21264A)")
-		UNAME_MACHINE="alphaev67" ;;
-	    "EV6.8CB (21264C)")
-		UNAME_MACHINE="alphaev68" ;;
-	    "EV6.8AL (21264B)")
-		UNAME_MACHINE="alphaev68" ;;
-	    "EV6.8CX (21264D)")
-		UNAME_MACHINE="alphaev68" ;;
-	    "EV6.9A (21264/EV69A)")
-		UNAME_MACHINE="alphaev69" ;;
-	    "EV7 (21364)")
-		UNAME_MACHINE="alphaev7" ;;
-	    "EV7.9 (21364A)")
-		UNAME_MACHINE="alphaev79" ;;
-	esac
-	# A Pn.n version is a patched version.
-	# A Vn.n version is a released version.
-	# A Tn.n version is a released field test version.
-	# A Xn.n version is an unreleased experimental baselevel.
-	# 1.2 uses "1.2" for uname -r.
-	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-	exit ;;
-    Alpha\ *:Windows_NT*:*)
-	# How do we know it's Interix rather than the generic POSIX subsystem?
-	# Should we change UNAME_MACHINE based on the output of uname instead
-	# of the specific Alpha model?
-	echo alpha-pc-interix
-	exit ;;
-    21064:Windows_NT:50:3)
-	echo alpha-dec-winnt3.5
-	exit ;;
-    Amiga*:UNIX_System_V:4.0:*)
-	echo m68k-unknown-sysv4
-	exit ;;
-    *:[Aa]miga[Oo][Ss]:*:*)
-	echo ${UNAME_MACHINE}-unknown-amigaos
-	exit ;;
-    *:[Mm]orph[Oo][Ss]:*:*)
-	echo ${UNAME_MACHINE}-unknown-morphos
-	exit ;;
-    *:OS/390:*:*)
-	echo i370-ibm-openedition
-	exit ;;
-    *:z/VM:*:*)
-	echo s390-ibm-zvmoe
-	exit ;;
-    *:OS400:*:*)
-        echo powerpc-ibm-os400
-	exit ;;
-    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
-	echo arm-acorn-riscix${UNAME_RELEASE}
-	exit ;;
-    arm:riscos:*:*|arm:RISCOS:*:*)
-	echo arm-unknown-riscos
-	exit ;;
-    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
-	echo hppa1.1-hitachi-hiuxmpp
-	exit ;;
-    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
-	# akee at wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
-	if test "`(/bin/universe) 2>/dev/null`" = att ; then
-		echo pyramid-pyramid-sysv3
-	else
-		echo pyramid-pyramid-bsd
-	fi
-	exit ;;
-    NILE*:*:*:dcosx)
-	echo pyramid-pyramid-svr4
-	exit ;;
-    DRS?6000:unix:4.0:6*)
-	echo sparc-icl-nx6
-	exit ;;
-    DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
-	case `/usr/bin/uname -p` in
-	    sparc) echo sparc-icl-nx7; exit ;;
-	esac ;;
-    sun4H:SunOS:5.*:*)
-	echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit ;;
-    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
-	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit ;;
-    i86pc:SunOS:5.*:*)
-	echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit ;;
-    sun4*:SunOS:6*:*)
-	# According to config.sub, this is the proper way to canonicalize
-	# SunOS6.  Hard to guess exactly what SunOS6 will be like, but
-	# it's likely to be more like Solaris than SunOS4.
-	echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit ;;
-    sun4*:SunOS:*:*)
-	case "`/usr/bin/arch -k`" in
-	    Series*|S4*)
-		UNAME_RELEASE=`uname -v`
-		;;
-	esac
-	# Japanese Language versions have a version number like `4.1.3-JL'.
-	echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
-	exit ;;
-    sun3*:SunOS:*:*)
-	echo m68k-sun-sunos${UNAME_RELEASE}
-	exit ;;
-    sun*:*:4.2BSD:*)
-	UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
-	test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
-	case "`/bin/arch`" in
-	    sun3)
-		echo m68k-sun-sunos${UNAME_RELEASE}
-		;;
-	    sun4)
-		echo sparc-sun-sunos${UNAME_RELEASE}
-		;;
-	esac
-	exit ;;
-    aushp:SunOS:*:*)
-	echo sparc-auspex-sunos${UNAME_RELEASE}
-	exit ;;
-    # The situation for MiNT is a little confusing.  The machine name
-    # can be virtually everything (everything which is not
-    # "atarist" or "atariste" at least should have a processor
-    # > m68000).  The system name ranges from "MiNT" over "FreeMiNT"
-    # to the lowercase version "mint" (or "freemint").  Finally
-    # the system name "TOS" denotes a system which is actually not
-    # MiNT.  But MiNT is downward compatible to TOS, so this should
-    # be no problem.
-    atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
-        echo m68k-atari-mint${UNAME_RELEASE}
-	exit ;;
-    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
-	echo m68k-atari-mint${UNAME_RELEASE}
-        exit ;;
-    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
-        echo m68k-atari-mint${UNAME_RELEASE}
-	exit ;;
-    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
-        echo m68k-milan-mint${UNAME_RELEASE}
-        exit ;;
-    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
-        echo m68k-hades-mint${UNAME_RELEASE}
-        exit ;;
-    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
-        echo m68k-unknown-mint${UNAME_RELEASE}
-        exit ;;
-    m68k:machten:*:*)
-	echo m68k-apple-machten${UNAME_RELEASE}
-	exit ;;
-    powerpc:machten:*:*)
-	echo powerpc-apple-machten${UNAME_RELEASE}
-	exit ;;
-    RISC*:Mach:*:*)
-	echo mips-dec-mach_bsd4.3
-	exit ;;
-    RISC*:ULTRIX:*:*)
-	echo mips-dec-ultrix${UNAME_RELEASE}
-	exit ;;
-    VAX*:ULTRIX*:*:*)
-	echo vax-dec-ultrix${UNAME_RELEASE}
-	exit ;;
-    2020:CLIX:*:* | 2430:CLIX:*:*)
-	echo clipper-intergraph-clix${UNAME_RELEASE}
-	exit ;;
-    mips:*:*:UMIPS | mips:*:*:RISCos)
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-#ifdef __cplusplus
-#include <stdio.h>  /* for printf() prototype */
-	int main (int argc, char *argv[]) {
-#else
-	int main (argc, argv) int argc; char *argv[]; {
-#endif
-	#if defined (host_mips) && defined (MIPSEB)
-	#if defined (SYSTYPE_SYSV)
-	  printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
-	#endif
-	#if defined (SYSTYPE_SVR4)
-	  printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
-	#endif
-	#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
-	  printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
-	#endif
-	#endif
-	  exit (-1);
-	}
-EOF
-	$CC_FOR_BUILD -o $dummy $dummy.c &&
-	  dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
-	  SYSTEM_NAME=`$dummy $dummyarg` &&
-	    { echo "$SYSTEM_NAME"; exit; }
-	echo mips-mips-riscos${UNAME_RELEASE}
-	exit ;;
-    Motorola:PowerMAX_OS:*:*)
-	echo powerpc-motorola-powermax
-	exit ;;
-    Motorola:*:4.3:PL8-*)
-	echo powerpc-harris-powermax
-	exit ;;
-    Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
-	echo powerpc-harris-powermax
-	exit ;;
-    Night_Hawk:Power_UNIX:*:*)
-	echo powerpc-harris-powerunix
-	exit ;;
-    m88k:CX/UX:7*:*)
-	echo m88k-harris-cxux7
-	exit ;;
-    m88k:*:4*:R4*)
-	echo m88k-motorola-sysv4
-	exit ;;
-    m88k:*:3*:R3*)
-	echo m88k-motorola-sysv3
-	exit ;;
-    AViiON:dgux:*:*)
-        # DG/UX returns AViiON for all architectures
-        UNAME_PROCESSOR=`/usr/bin/uname -p`
-	if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
-	then
-	    if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
-	       [ ${TARGET_BINARY_INTERFACE}x = x ]
-	    then
-		echo m88k-dg-dgux${UNAME_RELEASE}
-	    else
-		echo m88k-dg-dguxbcs${UNAME_RELEASE}
-	    fi
-	else
-	    echo i586-dg-dgux${UNAME_RELEASE}
-	fi
- 	exit ;;
-    M88*:DolphinOS:*:*)	# DolphinOS (SVR3)
-	echo m88k-dolphin-sysv3
-	exit ;;
-    M88*:*:R3*:*)
-	# Delta 88k system running SVR3
-	echo m88k-motorola-sysv3
-	exit ;;
-    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
-	echo m88k-tektronix-sysv3
-	exit ;;
-    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
-	echo m68k-tektronix-bsd
-	exit ;;
-    *:IRIX*:*:*)
-	echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
-	exit ;;
-    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
-	echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id
-	exit ;;               # Note that: echo "'`uname -s`'" gives 'AIX '
-    i*86:AIX:*:*)
-	echo i386-ibm-aix
-	exit ;;
-    ia64:AIX:*:*)
-	if [ -x /usr/bin/oslevel ] ; then
-		IBM_REV=`/usr/bin/oslevel`
-	else
-		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
-	fi
-	echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
-	exit ;;
-    *:AIX:2:3)
-	if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
-		eval $set_cc_for_build
-		sed 's/^		//' << EOF >$dummy.c
-		#include <sys/systemcfg.h>
-
-		main()
-			{
-			if (!__power_pc())
-				exit(1);
-			puts("powerpc-ibm-aix3.2.5");
-			exit(0);
-			}
-EOF
-		if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
-		then
-			echo "$SYSTEM_NAME"
-		else
-			echo rs6000-ibm-aix3.2.5
-		fi
-	elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
-		echo rs6000-ibm-aix3.2.4
-	else
-		echo rs6000-ibm-aix3.2
-	fi
-	exit ;;
-    *:AIX:*:[45])
-	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
-	if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
-		IBM_ARCH=rs6000
-	else
-		IBM_ARCH=powerpc
-	fi
-	if [ -x /usr/bin/oslevel ] ; then
-		IBM_REV=`/usr/bin/oslevel`
-	else
-		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
-	fi
-	echo ${IBM_ARCH}-ibm-aix${IBM_REV}
-	exit ;;
-    *:AIX:*:*)
-	echo rs6000-ibm-aix
-	exit ;;
-    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
-	echo romp-ibm-bsd4.4
-	exit ;;
-    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
-	echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
-	exit ;;                             # report: romp-ibm BSD 4.3
-    *:BOSX:*:*)
-	echo rs6000-bull-bosx
-	exit ;;
-    DPX/2?00:B.O.S.:*:*)
-	echo m68k-bull-sysv3
-	exit ;;
-    9000/[34]??:4.3bsd:1.*:*)
-	echo m68k-hp-bsd
-	exit ;;
-    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
-	echo m68k-hp-bsd4.4
-	exit ;;
-    9000/[34678]??:HP-UX:*:*)
-	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
-	case "${UNAME_MACHINE}" in
-	    9000/31? )            HP_ARCH=m68000 ;;
-	    9000/[34]?? )         HP_ARCH=m68k ;;
-	    9000/[678][0-9][0-9])
-		if [ -x /usr/bin/getconf ]; then
-		    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
-                    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
-                    case "${sc_cpu_version}" in
-                      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
-                      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
-                      532)                      # CPU_PA_RISC2_0
-                        case "${sc_kernel_bits}" in
-                          32) HP_ARCH="hppa2.0n" ;;
-                          64) HP_ARCH="hppa2.0w" ;;
-			  '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20
-                        esac ;;
-                    esac
-		fi
-		if [ "${HP_ARCH}" = "" ]; then
-		    eval $set_cc_for_build
-		    sed 's/^              //' << EOF >$dummy.c
-
-              #define _HPUX_SOURCE
-              #include <stdlib.h>
-              #include <unistd.h>
-
-              int main ()
-              {
-              #if defined(_SC_KERNEL_BITS)
-                  long bits = sysconf(_SC_KERNEL_BITS);
-              #endif
-                  long cpu  = sysconf (_SC_CPU_VERSION);
-
-                  switch (cpu)
-              	{
-              	case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
-              	case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
-              	case CPU_PA_RISC2_0:
-              #if defined(_SC_KERNEL_BITS)
-              	    switch (bits)
-              		{
-              		case 64: puts ("hppa2.0w"); break;
-              		case 32: puts ("hppa2.0n"); break;
-              		default: puts ("hppa2.0"); break;
-              		} break;
-              #else  /* !defined(_SC_KERNEL_BITS) */
-              	    puts ("hppa2.0"); break;
-              #endif
-              	default: puts ("hppa1.0"); break;
-              	}
-                  exit (0);
-              }
-EOF
-		    (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
-		    test -z "$HP_ARCH" && HP_ARCH=hppa
-		fi ;;
-	esac
-	if [ ${HP_ARCH} = "hppa2.0w" ]
-	then
-	    eval $set_cc_for_build
-
-	    # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
-	    # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler
-	    # generating 64-bit code.  GNU and HP use different nomenclature:
-	    #
-	    # $ CC_FOR_BUILD=cc ./config.guess
-	    # => hppa2.0w-hp-hpux11.23
-	    # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
-	    # => hppa64-hp-hpux11.23
-
-	    if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
-		grep __LP64__ >/dev/null
-	    then
-		HP_ARCH="hppa2.0w"
-	    else
-		HP_ARCH="hppa64"
-	    fi
-	fi
-	echo ${HP_ARCH}-hp-hpux${HPUX_REV}
-	exit ;;
-    ia64:HP-UX:*:*)
-	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
-	echo ia64-hp-hpux${HPUX_REV}
-	exit ;;
-    3050*:HI-UX:*:*)
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-	#include <unistd.h>
-	int
-	main ()
-	{
-	  long cpu = sysconf (_SC_CPU_VERSION);
-	  /* The order matters, because CPU_IS_HP_MC68K erroneously returns
-	     true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
-	     results, however.  */
-	  if (CPU_IS_PA_RISC (cpu))
-	    {
-	      switch (cpu)
-		{
-		  case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
-		  case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
-		  case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
-		  default: puts ("hppa-hitachi-hiuxwe2"); break;
-		}
-	    }
-	  else if (CPU_IS_HP_MC68K (cpu))
-	    puts ("m68k-hitachi-hiuxwe2");
-	  else puts ("unknown-hitachi-hiuxwe2");
-	  exit (0);
-	}
-EOF
-	$CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
-		{ echo "$SYSTEM_NAME"; exit; }
-	echo unknown-hitachi-hiuxwe2
-	exit ;;
-    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
-	echo hppa1.1-hp-bsd
-	exit ;;
-    9000/8??:4.3bsd:*:*)
-	echo hppa1.0-hp-bsd
-	exit ;;
-    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
-	echo hppa1.0-hp-mpeix
-	exit ;;
-    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
-	echo hppa1.1-hp-osf
-	exit ;;
-    hp8??:OSF1:*:*)
-	echo hppa1.0-hp-osf
-	exit ;;
-    i*86:OSF1:*:*)
-	if [ -x /usr/sbin/sysversion ] ; then
-	    echo ${UNAME_MACHINE}-unknown-osf1mk
-	else
-	    echo ${UNAME_MACHINE}-unknown-osf1
-	fi
-	exit ;;
-    parisc*:Lites*:*:*)
-	echo hppa1.1-hp-lites
-	exit ;;
-    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
-	echo c1-convex-bsd
-        exit ;;
-    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
-	if getsysinfo -f scalar_acc
-	then echo c32-convex-bsd
-	else echo c2-convex-bsd
-	fi
-        exit ;;
-    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
-	echo c34-convex-bsd
-        exit ;;
-    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
-	echo c38-convex-bsd
-        exit ;;
-    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
-	echo c4-convex-bsd
-        exit ;;
-    CRAY*Y-MP:*:*:*)
-	echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-	exit ;;
-    CRAY*[A-Z]90:*:*:*)
-	echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
-	| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
-	      -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
-	      -e 's/\.[^.]*$/.X/'
-	exit ;;
-    CRAY*TS:*:*:*)
-	echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-	exit ;;
-    CRAY*T3E:*:*:*)
-	echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-	exit ;;
-    CRAY*SV1:*:*:*)
-	echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-	exit ;;
-    *:UNICOS/mp:*:*)
-	echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-	exit ;;
-    F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
-	FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
-        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
-        echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
-        exit ;;
-    5000:UNIX_System_V:4.*:*)
-        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
-        FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
-        echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
-	exit ;;
-    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
-	echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
-	exit ;;
-    sparc*:BSD/OS:*:*)
-	echo sparc-unknown-bsdi${UNAME_RELEASE}
-	exit ;;
-    *:BSD/OS:*:*)
-	echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
-	exit ;;
-    *:FreeBSD:*:*)
-	echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
-	exit ;;
-    i*:CYGWIN*:*)
-	echo ${UNAME_MACHINE}-pc-cygwin
-	exit ;;
-    i*:MINGW*:*)
-	echo ${UNAME_MACHINE}-pc-mingw32
-	exit ;;
-    i*:windows32*:*)
-    	# uname -m includes "-pc" on this system.
-    	echo ${UNAME_MACHINE}-mingw32
-	exit ;;
-    i*:PW*:*)
-	echo ${UNAME_MACHINE}-pc-pw32
-	exit ;;
-    x86:Interix*:[34]*)
-	echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//'
-	exit ;;
-    [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
-	echo i${UNAME_MACHINE}-pc-mks
-	exit ;;
-    i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
-	# How do we know it's Interix rather than the generic POSIX subsystem?
-	# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
-	# UNAME_MACHINE based on the output of uname instead of i386?
-	echo i586-pc-interix
-	exit ;;
-    i*:UWIN*:*)
-	echo ${UNAME_MACHINE}-pc-uwin
-	exit ;;
-    amd64:CYGWIN*:*:*)
-	echo x86_64-unknown-cygwin
-	exit ;;
-    p*:CYGWIN*:*)
-	echo powerpcle-unknown-cygwin
-	exit ;;
-    prep*:SunOS:5.*:*)
-	echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit ;;
-    *:GNU:*:*)
-	# the GNU system
-	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
-	exit ;;
-    *:GNU/*:*:*)
-	# other systems with GNU libc and userland
-	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
-	exit ;;
-    i*86:Minix:*:*)
-	echo ${UNAME_MACHINE}-pc-minix
-	exit ;;
-    arm*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit ;;
-    cris:Linux:*:*)
-	echo cris-axis-linux-gnu
-	exit ;;
-    crisv32:Linux:*:*)
-	echo crisv32-axis-linux-gnu
-	exit ;;
-    frv:Linux:*:*)
-    	echo frv-unknown-linux-gnu
-	exit ;;
-    ia64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit ;;
-    m32r*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit ;;
-    m68*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit ;;
-    mips:Linux:*:*)
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-	#undef CPU
-	#undef mips
-	#undef mipsel
-	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
-	CPU=mipsel
-	#else
-	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
-	CPU=mips
-	#else
-	CPU=
-	#endif
-	#endif
-EOF
-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
-	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
-	;;
-    mips64:Linux:*:*)
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-	#undef CPU
-	#undef mips64
-	#undef mips64el
-	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
-	CPU=mips64el
-	#else
-	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
-	CPU=mips64
-	#else
-	CPU=
-	#endif
-	#endif
-EOF
-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
-	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
-	;;
-    ppc:Linux:*:*)
-	echo powerpc-unknown-linux-gnu
-	exit ;;
-    ppc64:Linux:*:*)
-	echo powerpc64-unknown-linux-gnu
-	exit ;;
-    alpha:Linux:*:*)
-	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
-	  EV5)   UNAME_MACHINE=alphaev5 ;;
-	  EV56)  UNAME_MACHINE=alphaev56 ;;
-	  PCA56) UNAME_MACHINE=alphapca56 ;;
-	  PCA57) UNAME_MACHINE=alphapca56 ;;
-	  EV6)   UNAME_MACHINE=alphaev6 ;;
-	  EV67)  UNAME_MACHINE=alphaev67 ;;
-	  EV68*) UNAME_MACHINE=alphaev68 ;;
-        esac
-	objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
-	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
-	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
-	exit ;;
-    parisc:Linux:*:* | hppa:Linux:*:*)
-	# Look for CPU level
-	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
-	  PA7*) echo hppa1.1-unknown-linux-gnu ;;
-	  PA8*) echo hppa2.0-unknown-linux-gnu ;;
-	  *)    echo hppa-unknown-linux-gnu ;;
-	esac
-	exit ;;
-    parisc64:Linux:*:* | hppa64:Linux:*:*)
-	echo hppa64-unknown-linux-gnu
-	exit ;;
-    s390:Linux:*:* | s390x:Linux:*:*)
-	echo ${UNAME_MACHINE}-ibm-linux
-	exit ;;
-    sh64*:Linux:*:*)
-    	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit ;;
-    sh*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit ;;
-    sparc:Linux:*:* | sparc64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit ;;
-    x86_64:Linux:*:*)
-	echo x86_64-unknown-linux-gnu
-	exit ;;
-    i*86:Linux:*:*)
-	# The BFD linker knows what the default object file format is, so
-	# first see if it will tell us. cd to the root directory to prevent
-	# problems with other programs or directories called `ld' in the path.
-	# Set LC_ALL=C to ensure ld outputs messages in English.
-	ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
-			 | sed -ne '/supported targets:/!d
-				    s/[ 	][ 	]*/ /g
-				    s/.*supported targets: *//
-				    s/ .*//
-				    p'`
-        case "$ld_supported_targets" in
-	  elf32-i386)
-		TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
-		;;
-	  a.out-i386-linux)
-		echo "${UNAME_MACHINE}-pc-linux-gnuaout"
-		exit ;;
-	  coff-i386)
-		echo "${UNAME_MACHINE}-pc-linux-gnucoff"
-		exit ;;
-	  "")
-		# Either a pre-BFD a.out linker (linux-gnuoldld) or
-		# one that does not give us useful --help.
-		echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
-		exit ;;
-	esac
-	# Determine whether the default compiler is a.out or elf
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-	#include <features.h>
-	#ifdef __ELF__
-	# ifdef __GLIBC__
-	#  if __GLIBC__ >= 2
-	LIBC=gnu
-	#  else
-	LIBC=gnulibc1
-	#  endif
-	# else
-	LIBC=gnulibc1
-	# endif
-	#else
-	#ifdef __INTEL_COMPILER
-	LIBC=gnu
-	#else
-	LIBC=gnuaout
-	#endif
-	#endif
-	#ifdef __dietlibc__
-	LIBC=dietlibc
-	#endif
-EOF
-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
-	test x"${LIBC}" != x && {
-		echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
-		exit
-	}
-	test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
-	;;
-    i*86:DYNIX/ptx:4*:*)
-	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
-	# earlier versions are messed up and put the nodename in both
-	# sysname and nodename.
-	echo i386-sequent-sysv4
-	exit ;;
-    i*86:UNIX_SV:4.2MP:2.*)
-        # Unixware is an offshoot of SVR4, but it has its own version
-        # number series starting with 2...
-        # I am not positive that other SVR4 systems won't match this,
-	# I just have to hope.  -- rms.
-        # Use sysv4.2uw... so that sysv4* matches it.
-	echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
-	exit ;;
-    i*86:OS/2:*:*)
-	# If we were able to find `uname', then EMX Unix compatibility
-	# is probably installed.
-	echo ${UNAME_MACHINE}-pc-os2-emx
-	exit ;;
-    i*86:XTS-300:*:STOP)
-	echo ${UNAME_MACHINE}-unknown-stop
-	exit ;;
-    i*86:atheos:*:*)
-	echo ${UNAME_MACHINE}-unknown-atheos
-	exit ;;
-    i*86:syllable:*:*)
-	echo ${UNAME_MACHINE}-pc-syllable
-	exit ;;
-    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
-	echo i386-unknown-lynxos${UNAME_RELEASE}
-	exit ;;
-    i*86:*DOS:*:*)
-	echo ${UNAME_MACHINE}-pc-msdosdjgpp
-	exit ;;
-    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
-	UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
-	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
-		echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
-	else
-		echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
-	fi
-	exit ;;
-    i*86:*:5:[678]*)
-    	# UnixWare 7.x, OpenUNIX and OpenServer 6.
-	case `/bin/uname -X | grep "^Machine"` in
-	    *486*)	     UNAME_MACHINE=i486 ;;
-	    *Pentium)	     UNAME_MACHINE=i586 ;;
-	    *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
-	esac
-	echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
-	exit ;;
-    i*86:*:3.2:*)
-	if test -f /usr/options/cb.name; then
-		UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
-		echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
-	elif /bin/uname -X 2>/dev/null >/dev/null ; then
-		UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
-		(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
-		(/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
-			&& UNAME_MACHINE=i586
-		(/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
-			&& UNAME_MACHINE=i686
-		(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
-			&& UNAME_MACHINE=i686
-		echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
-	else
-		echo ${UNAME_MACHINE}-pc-sysv32
-	fi
-	exit ;;
-    pc:*:*:*)
-	# Left here for compatibility:
-        # uname -m prints for DJGPP always 'pc', but it prints nothing about
-        # the processor, so we play safe by assuming i386.
-	echo i386-pc-msdosdjgpp
-        exit ;;
-    Intel:Mach:3*:*)
-	echo i386-pc-mach3
-	exit ;;
-    paragon:*:*:*)
-	echo i860-intel-osf1
-	exit ;;
-    i860:*:4.*:*) # i860-SVR4
-	if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
-	  echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
-	else # Add other i860-SVR4 vendors below as they are discovered.
-	  echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
-	fi
-	exit ;;
-    mini*:CTIX:SYS*5:*)
-	# "miniframe"
-	echo m68010-convergent-sysv
-	exit ;;
-    mc68k:UNIX:SYSTEM5:3.51m)
-	echo m68k-convergent-sysv
-	exit ;;
-    M680?0:D-NIX:5.3:*)
-	echo m68k-diab-dnix
-	exit ;;
-    M68*:*:R3V[5678]*:*)
-	test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
-    3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
-	OS_REL=''
-	test -r /etc/.relid \
-	&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
-	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-	  && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
-	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
-	  && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
-    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
-        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-          && { echo i486-ncr-sysv4; exit; } ;;
-    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
-	echo m68k-unknown-lynxos${UNAME_RELEASE}
-	exit ;;
-    mc68030:UNIX_System_V:4.*:*)
-	echo m68k-atari-sysv4
-	exit ;;
-    TSUNAMI:LynxOS:2.*:*)
-	echo sparc-unknown-lynxos${UNAME_RELEASE}
-	exit ;;
-    rs6000:LynxOS:2.*:*)
-	echo rs6000-unknown-lynxos${UNAME_RELEASE}
-	exit ;;
-    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
-	echo powerpc-unknown-lynxos${UNAME_RELEASE}
-	exit ;;
-    SM[BE]S:UNIX_SV:*:*)
-	echo mips-dde-sysv${UNAME_RELEASE}
-	exit ;;
-    RM*:ReliantUNIX-*:*:*)
-	echo mips-sni-sysv4
-	exit ;;
-    RM*:SINIX-*:*:*)
-	echo mips-sni-sysv4
-	exit ;;
-    *:SINIX-*:*:*)
-	if uname -p 2>/dev/null >/dev/null ; then
-		UNAME_MACHINE=`(uname -p) 2>/dev/null`
-		echo ${UNAME_MACHINE}-sni-sysv4
-	else
-		echo ns32k-sni-sysv
-	fi
-	exit ;;
-    PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
-                      # says <Richard.M.Bartel at ccMail.Census.GOV>
-        echo i586-unisys-sysv4
-        exit ;;
-    *:UNIX_System_V:4*:FTX*)
-	# From Gerald Hewes <hewes at openmarket.com>.
-	# How about differentiating between stratus architectures? -djm
-	echo hppa1.1-stratus-sysv4
-	exit ;;
-    *:*:*:FTX*)
-	# From seanf at swdc.stratus.com.
-	echo i860-stratus-sysv4
-	exit ;;
-    i*86:VOS:*:*)
-	# From Paul.Green at stratus.com.
-	echo ${UNAME_MACHINE}-stratus-vos
-	exit ;;
-    *:VOS:*:*)
-	# From Paul.Green at stratus.com.
-	echo hppa1.1-stratus-vos
-	exit ;;
-    mc68*:A/UX:*:*)
-	echo m68k-apple-aux${UNAME_RELEASE}
-	exit ;;
-    news*:NEWS-OS:6*:*)
-	echo mips-sony-newsos6
-	exit ;;
-    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
-	if [ -d /usr/nec ]; then
-	        echo mips-nec-sysv${UNAME_RELEASE}
-	else
-	        echo mips-unknown-sysv${UNAME_RELEASE}
-	fi
-        exit ;;
-    BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.
-	echo powerpc-be-beos
-	exit ;;
-    BeMac:BeOS:*:*)	# BeOS running on Mac or Mac clone, PPC only.
-	echo powerpc-apple-beos
-	exit ;;
-    BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
-	echo i586-pc-beos
-	exit ;;
-    SX-4:SUPER-UX:*:*)
-	echo sx4-nec-superux${UNAME_RELEASE}
-	exit ;;
-    SX-5:SUPER-UX:*:*)
-	echo sx5-nec-superux${UNAME_RELEASE}
-	exit ;;
-    SX-6:SUPER-UX:*:*)
-	echo sx6-nec-superux${UNAME_RELEASE}
-	exit ;;
-    Power*:Rhapsody:*:*)
-	echo powerpc-apple-rhapsody${UNAME_RELEASE}
-	exit ;;
-    *:Rhapsody:*:*)
-	echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
-	exit ;;
-    *:Darwin:*:*)
-	UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
-	case $UNAME_PROCESSOR in
-	    *86) UNAME_PROCESSOR=i686 ;;
-	    unknown) UNAME_PROCESSOR=powerpc ;;
-	esac
-	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
-	exit ;;
-    *:procnto*:*:* | *:QNX:[0123456789]*:*)
-	UNAME_PROCESSOR=`uname -p`
-	if test "$UNAME_PROCESSOR" = "x86"; then
-		UNAME_PROCESSOR=i386
-		UNAME_MACHINE=pc
-	fi
-	echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
-	exit ;;
-    *:QNX:*:4*)
-	echo i386-pc-qnx
-	exit ;;
-    NSE-?:NONSTOP_KERNEL:*:*)
-	echo nse-tandem-nsk${UNAME_RELEASE}
-	exit ;;
-    NSR-?:NONSTOP_KERNEL:*:*)
-	echo nsr-tandem-nsk${UNAME_RELEASE}
-	exit ;;
-    *:NonStop-UX:*:*)
-	echo mips-compaq-nonstopux
-	exit ;;
-    BS2000:POSIX*:*:*)
-	echo bs2000-siemens-sysv
-	exit ;;
-    DS/*:UNIX_System_V:*:*)
-	echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
-	exit ;;
-    *:Plan9:*:*)
-	# "uname -m" is not consistent, so use $cputype instead. 386
-	# is converted to i386 for consistency with other x86
-	# operating systems.
-	if test "$cputype" = "386"; then
-	    UNAME_MACHINE=i386
-	else
-	    UNAME_MACHINE="$cputype"
-	fi
-	echo ${UNAME_MACHINE}-unknown-plan9
-	exit ;;
-    *:TOPS-10:*:*)
-	echo pdp10-unknown-tops10
-	exit ;;
-    *:TENEX:*:*)
-	echo pdp10-unknown-tenex
-	exit ;;
-    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
-	echo pdp10-dec-tops20
-	exit ;;
-    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
-	echo pdp10-xkl-tops20
-	exit ;;
-    *:TOPS-20:*:*)
-	echo pdp10-unknown-tops20
-	exit ;;
-    *:ITS:*:*)
-	echo pdp10-unknown-its
-	exit ;;
-    SEI:*:*:SEIUX)
-        echo mips-sei-seiux${UNAME_RELEASE}
-	exit ;;
-    *:DragonFly:*:*)
-	echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
-	exit ;;
-    *:*VMS:*:*)
-    	UNAME_MACHINE=`(uname -p) 2>/dev/null`
-	case "${UNAME_MACHINE}" in
-	    A*) echo alpha-dec-vms ; exit ;;
-	    I*) echo ia64-dec-vms ; exit ;;
-	    V*) echo vax-dec-vms ; exit ;;
-	esac ;;
-    *:XENIX:*:SysV)
-	echo i386-pc-xenix
-	exit ;;
-    i*86:skyos:*:*)
-	echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
-	exit ;;
-esac
-
-#echo '(No uname command or uname output not recognized.)' 1>&2
-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
-
-eval $set_cc_for_build
-cat >$dummy.c <<EOF
-#ifdef _SEQUENT_
-# include <sys/types.h>
-# include <sys/utsname.h>
-#endif
-main ()
-{
-#if defined (sony)
-#if defined (MIPSEB)
-  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
-     I don't know....  */
-  printf ("mips-sony-bsd\n"); exit (0);
-#else
-#include <sys/param.h>
-  printf ("m68k-sony-newsos%s\n",
-#ifdef NEWSOS4
-          "4"
-#else
-	  ""
-#endif
-         ); exit (0);
-#endif
-#endif
-
-#if defined (__arm) && defined (__acorn) && defined (__unix)
-  printf ("arm-acorn-riscix\n"); exit (0);
-#endif
-
-#if defined (hp300) && !defined (hpux)
-  printf ("m68k-hp-bsd\n"); exit (0);
-#endif
-
-#if defined (NeXT)
-#if !defined (__ARCHITECTURE__)
-#define __ARCHITECTURE__ "m68k"
-#endif
-  int version;
-  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
-  if (version < 4)
-    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
-  else
-    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
-  exit (0);
-#endif
-
-#if defined (MULTIMAX) || defined (n16)
-#if defined (UMAXV)
-  printf ("ns32k-encore-sysv\n"); exit (0);
-#else
-#if defined (CMU)
-  printf ("ns32k-encore-mach\n"); exit (0);
-#else
-  printf ("ns32k-encore-bsd\n"); exit (0);
-#endif
-#endif
-#endif
-
-#if defined (__386BSD__)
-  printf ("i386-pc-bsd\n"); exit (0);
-#endif
-
-#if defined (sequent)
-#if defined (i386)
-  printf ("i386-sequent-dynix\n"); exit (0);
-#endif
-#if defined (ns32000)
-  printf ("ns32k-sequent-dynix\n"); exit (0);
-#endif
-#endif
-
-#if defined (_SEQUENT_)
-    struct utsname un;
-
-    uname(&un);
-
-    if (strncmp(un.version, "V2", 2) == 0) {
-	printf ("i386-sequent-ptx2\n"); exit (0);
-    }
-    if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
-	printf ("i386-sequent-ptx1\n"); exit (0);
-    }
-    printf ("i386-sequent-ptx\n"); exit (0);
-
-#endif
-
-#if defined (vax)
-# if !defined (ultrix)
-#  include <sys/param.h>
-#  if defined (BSD)
-#   if BSD == 43
-      printf ("vax-dec-bsd4.3\n"); exit (0);
-#   else
-#    if BSD == 199006
-      printf ("vax-dec-bsd4.3reno\n"); exit (0);
-#    else
-      printf ("vax-dec-bsd\n"); exit (0);
-#    endif
-#   endif
-#  else
-    printf ("vax-dec-bsd\n"); exit (0);
-#  endif
-# else
-    printf ("vax-dec-ultrix\n"); exit (0);
-# endif
-#endif
-
-#if defined (alliant) && defined (i860)
-  printf ("i860-alliant-bsd\n"); exit (0);
-#endif
-
-  exit (1);
-}
-EOF
-
-$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
-	{ echo "$SYSTEM_NAME"; exit; }
-
-# Apollos put the system type in the environment.
-
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
-
-# Convex versions that predate uname can use getsysinfo(1)
-
-if [ -x /usr/convex/getsysinfo ]
-then
-    case `getsysinfo -f cpu_type` in
-    c1*)
-	echo c1-convex-bsd
-	exit ;;
-    c2*)
-	if getsysinfo -f scalar_acc
-	then echo c32-convex-bsd
-	else echo c2-convex-bsd
-	fi
-	exit ;;
-    c34*)
-	echo c34-convex-bsd
-	exit ;;
-    c38*)
-	echo c38-convex-bsd
-	exit ;;
-    c4*)
-	echo c4-convex-bsd
-	exit ;;
-    esac
-fi
-
-cat >&2 <<EOF
-$0: unable to guess system type
-
-This script, last modified $timestamp, has failed to recognize
-the operating system you are using. It is advised that you
-download the most up to date version of the config scripts from
-
-  http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess
-and
-  http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub
-
-If the version you run ($0) is already up to date, please
-send the following data and any information you think might be
-pertinent to <config-patches at gnu.org> in order to provide the needed
-information to handle your system.
-
-config.guess timestamp = $timestamp
-
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
-/bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
-
-hostinfo               = `(hostinfo) 2>/dev/null`
-/bin/universe          = `(/bin/universe) 2>/dev/null`
-/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
-/bin/arch              = `(/bin/arch) 2>/dev/null`
-/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
-
-UNAME_MACHINE = ${UNAME_MACHINE}
-UNAME_RELEASE = ${UNAME_RELEASE}
-UNAME_SYSTEM  = ${UNAME_SYSTEM}
-UNAME_VERSION = ${UNAME_VERSION}
-EOF
-
-exit 1
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "timestamp='"
-# time-stamp-format: "%:y-%02m-%02d"
-# time-stamp-end: "'"
-# End:
diff --git a/config.sub b/config.sub
deleted file mode 100755
index 1c366df..0000000
--- a/config.sub
+++ /dev/null
@@ -1,1579 +0,0 @@
-#! /bin/sh
-# Configuration validation subroutine script.
-#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
-
-timestamp='2005-07-08'
-
-# This file is (in principle) common to ALL GNU software.
-# The presence of a machine in this file suggests that SOME GNU software
-# can handle that machine.  It does not imply ALL GNU software can.
-#
-# This file is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
-# 02110-1301, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-
-# Please send patches to <config-patches at gnu.org>.  Submit a context
-# diff and a properly formatted ChangeLog entry.
-#
-# Configuration subroutine to validate and canonicalize a configuration type.
-# Supply the specified configuration type as an argument.
-# If it is invalid, we print an error message on stderr and exit with code 1.
-# Otherwise, we print the canonical config type on stdout and succeed.
-
-# This file is supposed to be the same for all GNU packages
-# and recognize all the CPU types, system types and aliases
-# that are meaningful with *any* GNU software.
-# Each package is responsible for reporting which valid configurations
-# it does not support.  The user should be able to distinguish
-# a failure to support a valid configuration from a meaningless
-# configuration.
-
-# The goal of this file is to map all the various variations of a given
-# machine specification into a single specification in the form:
-#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
-# or in some cases, the newer four-part form:
-#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
-# It is wrong to echo any other type of specification.
-
-me=`echo "$0" | sed -e 's,.*/,,'`
-
-usage="\
-Usage: $0 [OPTION] CPU-MFR-OPSYS
-       $0 [OPTION] ALIAS
-
-Canonicalize a configuration name.
-
-Operation modes:
-  -h, --help         print this help, then exit
-  -t, --time-stamp   print date of last modification, then exit
-  -v, --version      print version number, then exit
-
-Report bugs and patches to <config-patches at gnu.org>."
-
-version="\
-GNU config.sub ($timestamp)
-
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-Free Software Foundation, Inc.
-
-This is free software; see the source for copying conditions.  There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-
-help="
-Try \`$me --help' for more information."
-
-# Parse command line
-while test $# -gt 0 ; do
-  case $1 in
-    --time-stamp | --time* | -t )
-       echo "$timestamp" ; exit ;;
-    --version | -v )
-       echo "$version" ; exit ;;
-    --help | --h* | -h )
-       echo "$usage"; exit ;;
-    -- )     # Stop option processing
-       shift; break ;;
-    - )	# Use stdin as input.
-       break ;;
-    -* )
-       echo "$me: invalid option $1$help"
-       exit 1 ;;
-
-    *local*)
-       # First pass through any local machine types.
-       echo $1
-       exit ;;
-
-    * )
-       break ;;
-  esac
-done
-
-case $# in
- 0) echo "$me: missing argument$help" >&2
-    exit 1;;
- 1) ;;
- *) echo "$me: too many arguments$help" >&2
-    exit 1;;
-esac
-
-# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
-# Here we must recognize all the valid KERNEL-OS combinations.
-maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
-case $maybe_os in
-  nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \
-  kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
-    os=-$maybe_os
-    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
-    ;;
-  *)
-    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
-    if [ $basic_machine != $1 ]
-    then os=`echo $1 | sed 's/.*-/-/'`
-    else os=; fi
-    ;;
-esac
-
-### Let's recognize common machines as not being operating systems so
-### that things like config.sub decstation-3100 work.  We also
-### recognize some manufacturers as not being operating systems, so we
-### can provide default operating systems below.
-case $os in
-	-sun*os*)
-		# Prevent following clause from handling this invalid input.
-		;;
-	-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
-	-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
-	-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
-	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
-	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
-	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
-	-apple | -axis | -knuth | -cray)
-		os=
-		basic_machine=$1
-		;;
-	-sim | -cisco | -oki | -wec | -winbond)
-		os=
-		basic_machine=$1
-		;;
-	-scout)
-		;;
-	-wrs)
-		os=-vxworks
-		basic_machine=$1
-		;;
-	-chorusos*)
-		os=-chorusos
-		basic_machine=$1
-		;;
- 	-chorusrdb)
- 		os=-chorusrdb
-		basic_machine=$1
- 		;;
-	-hiux*)
-		os=-hiuxwe2
-		;;
-	-sco5)
-		os=-sco3.2v5
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-sco4)
-		os=-sco3.2v4
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-sco3.2.[4-9]*)
-		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-sco3.2v[4-9]*)
-		# Don't forget version if it is 3.2v4 or newer.
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-sco*)
-		os=-sco3.2v2
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-udk*)
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-isc)
-		os=-isc2.2
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-clix*)
-		basic_machine=clipper-intergraph
-		;;
-	-isc*)
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-lynx*)
-		os=-lynxos
-		;;
-	-ptx*)
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
-		;;
-	-windowsnt*)
-		os=`echo $os | sed -e 's/windowsnt/winnt/'`
-		;;
-	-psos*)
-		os=-psos
-		;;
-	-mint | -mint[0-9]*)
-		basic_machine=m68k-atari
-		os=-mint
-		;;
-esac
-
-# Decode aliases for certain CPU-COMPANY combinations.
-case $basic_machine in
-	# Recognize the basic CPU types without company name.
-	# Some are omitted here because they have special meanings below.
-	1750a | 580 \
-	| a29k \
-	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
-	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
-	| am33_2.0 \
-	| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
-	| bfin \
-	| c4x | clipper \
-	| d10v | d30v | dlx | dsp16xx \
-	| fr30 | frv \
-	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
-	| i370 | i860 | i960 | ia64 \
-	| ip2k | iq2000 \
-	| m32r | m32rle | m68000 | m68k | m88k | maxq | mcore \
-	| mips | mipsbe | mipseb | mipsel | mipsle \
-	| mips16 \
-	| mips64 | mips64el \
-	| mips64vr | mips64vrel \
-	| mips64orion | mips64orionel \
-	| mips64vr4100 | mips64vr4100el \
-	| mips64vr4300 | mips64vr4300el \
-	| mips64vr5000 | mips64vr5000el \
-	| mips64vr5900 | mips64vr5900el \
-	| mipsisa32 | mipsisa32el \
-	| mipsisa32r2 | mipsisa32r2el \
-	| mipsisa64 | mipsisa64el \
-	| mipsisa64r2 | mipsisa64r2el \
-	| mipsisa64sb1 | mipsisa64sb1el \
-	| mipsisa64sr71k | mipsisa64sr71kel \
-	| mipstx39 | mipstx39el \
-	| mn10200 | mn10300 \
-	| ms1 \
-	| msp430 \
-	| ns16k | ns32k \
-	| or32 \
-	| pdp10 | pdp11 | pj | pjl \
-	| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
-	| pyramid \
-	| sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
-	| sh64 | sh64le \
-	| sparc | sparc64 | sparc64b | sparc86x | sparclet | sparclite \
-	| sparcv8 | sparcv9 | sparcv9b \
-	| strongarm \
-	| tahoe | thumb | tic4x | tic80 | tron \
-	| v850 | v850e \
-	| we32k \
-	| x86 | xscale | xscalee[bl] | xstormy16 | xtensa \
-	| z8k)
-		basic_machine=$basic_machine-unknown
-		;;
-	m32c)
-		basic_machine=$basic_machine-unknown
-		;;
-	m6811 | m68hc11 | m6812 | m68hc12)
-		# Motorola 68HC11/12.
-		basic_machine=$basic_machine-unknown
-		os=-none
-		;;
-	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
-		;;
-
-	# We use `pc' rather than `unknown'
-	# because (1) that's what they normally are, and
-	# (2) the word "unknown" tends to confuse beginning users.
-	i*86 | x86_64)
-	  basic_machine=$basic_machine-pc
-	  ;;
-	# Object if more than one company name word.
-	*-*-*)
-		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
-		exit 1
-		;;
-	# Recognize the basic CPU types with company name.
-	580-* \
-	| a29k-* \
-	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
-	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
-	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
-	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
-	| avr-* \
-	| bfin-* | bs2000-* \
-	| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
-	| clipper-* | craynv-* | cydra-* \
-	| d10v-* | d30v-* | dlx-* \
-	| elxsi-* \
-	| f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
-	| h8300-* | h8500-* \
-	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
-	| i*86-* | i860-* | i960-* | ia64-* \
-	| ip2k-* | iq2000-* \
-	| m32r-* | m32rle-* \
-	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
-	| m88110-* | m88k-* | maxq-* | mcore-* \
-	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
-	| mips16-* \
-	| mips64-* | mips64el-* \
-	| mips64vr-* | mips64vrel-* \
-	| mips64orion-* | mips64orionel-* \
-	| mips64vr4100-* | mips64vr4100el-* \
-	| mips64vr4300-* | mips64vr4300el-* \
-	| mips64vr5000-* | mips64vr5000el-* \
-	| mips64vr5900-* | mips64vr5900el-* \
-	| mipsisa32-* | mipsisa32el-* \
-	| mipsisa32r2-* | mipsisa32r2el-* \
-	| mipsisa64-* | mipsisa64el-* \
-	| mipsisa64r2-* | mipsisa64r2el-* \
-	| mipsisa64sb1-* | mipsisa64sb1el-* \
-	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
-	| mipstx39-* | mipstx39el-* \
-	| mmix-* \
-	| ms1-* \
-	| msp430-* \
-	| none-* | np1-* | ns16k-* | ns32k-* \
-	| orion-* \
-	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
-	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
-	| pyramid-* \
-	| romp-* | rs6000-* \
-	| sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | shbe-* \
-	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
-	| sparc-* | sparc64-* | sparc64b-* | sparc86x-* | sparclet-* \
-	| sparclite-* \
-	| sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
-	| tahoe-* | thumb-* \
-	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
-	| tron-* \
-	| v850-* | v850e-* | vax-* \
-	| we32k-* \
-	| x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \
-	| xstormy16-* | xtensa-* \
-	| ymp-* \
-	| z8k-*)
-		;;
-	m32c-*)
-		;;
-	# Recognize the various machine names and aliases which stand
-	# for a CPU type and a company and sometimes even an OS.
-	386bsd)
-		basic_machine=i386-unknown
-		os=-bsd
-		;;
-	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
-		basic_machine=m68000-att
-		;;
-	3b*)
-		basic_machine=we32k-att
-		;;
-	a29khif)
-		basic_machine=a29k-amd
-		os=-udi
-		;;
-    	abacus)
-		basic_machine=abacus-unknown
-		;;
-	adobe68k)
-		basic_machine=m68010-adobe
-		os=-scout
-		;;
-	alliant | fx80)
-		basic_machine=fx80-alliant
-		;;
-	altos | altos3068)
-		basic_machine=m68k-altos
-		;;
-	am29k)
-		basic_machine=a29k-none
-		os=-bsd
-		;;
-	amd64)
-		basic_machine=x86_64-pc
-		;;
-	amd64-*)
-		basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	amdahl)
-		basic_machine=580-amdahl
-		os=-sysv
-		;;
-	amiga | amiga-*)
-		basic_machine=m68k-unknown
-		;;
-	amigaos | amigados)
-		basic_machine=m68k-unknown
-		os=-amigaos
-		;;
-	amigaunix | amix)
-		basic_machine=m68k-unknown
-		os=-sysv4
-		;;
-	apollo68)
-		basic_machine=m68k-apollo
-		os=-sysv
-		;;
-	apollo68bsd)
-		basic_machine=m68k-apollo
-		os=-bsd
-		;;
-	aux)
-		basic_machine=m68k-apple
-		os=-aux
-		;;
-	balance)
-		basic_machine=ns32k-sequent
-		os=-dynix
-		;;
-	c90)
-		basic_machine=c90-cray
-		os=-unicos
-		;;
-	convex-c1)
-		basic_machine=c1-convex
-		os=-bsd
-		;;
-	convex-c2)
-		basic_machine=c2-convex
-		os=-bsd
-		;;
-	convex-c32)
-		basic_machine=c32-convex
-		os=-bsd
-		;;
-	convex-c34)
-		basic_machine=c34-convex
-		os=-bsd
-		;;
-	convex-c38)
-		basic_machine=c38-convex
-		os=-bsd
-		;;
-	cray | j90)
-		basic_machine=j90-cray
-		os=-unicos
-		;;
-	craynv)
-		basic_machine=craynv-cray
-		os=-unicosmp
-		;;
-	cr16c)
-		basic_machine=cr16c-unknown
-		os=-elf
-		;;
-	crds | unos)
-		basic_machine=m68k-crds
-		;;
-	crisv32 | crisv32-* | etraxfs*)
-		basic_machine=crisv32-axis
-		;;
-	cris | cris-* | etrax*)
-		basic_machine=cris-axis
-		;;
-	crx)
-		basic_machine=crx-unknown
-		os=-elf
-		;;
-	da30 | da30-*)
-		basic_machine=m68k-da30
-		;;
-	decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
-		basic_machine=mips-dec
-		;;
-	decsystem10* | dec10*)
-		basic_machine=pdp10-dec
-		os=-tops10
-		;;
-	decsystem20* | dec20*)
-		basic_machine=pdp10-dec
-		os=-tops20
-		;;
-	delta | 3300 | motorola-3300 | motorola-delta \
-	      | 3300-motorola | delta-motorola)
-		basic_machine=m68k-motorola
-		;;
-	delta88)
-		basic_machine=m88k-motorola
-		os=-sysv3
-		;;
-	djgpp)
-		basic_machine=i586-pc
-		os=-msdosdjgpp
-		;;
-	dpx20 | dpx20-*)
-		basic_machine=rs6000-bull
-		os=-bosx
-		;;
-	dpx2* | dpx2*-bull)
-		basic_machine=m68k-bull
-		os=-sysv3
-		;;
-	ebmon29k)
-		basic_machine=a29k-amd
-		os=-ebmon
-		;;
-	elxsi)
-		basic_machine=elxsi-elxsi
-		os=-bsd
-		;;
-	encore | umax | mmax)
-		basic_machine=ns32k-encore
-		;;
-	es1800 | OSE68k | ose68k | ose | OSE)
-		basic_machine=m68k-ericsson
-		os=-ose
-		;;
-	fx2800)
-		basic_machine=i860-alliant
-		;;
-	genix)
-		basic_machine=ns32k-ns
-		;;
-	gmicro)
-		basic_machine=tron-gmicro
-		os=-sysv
-		;;
-	go32)
-		basic_machine=i386-pc
-		os=-go32
-		;;
-	h3050r* | hiux*)
-		basic_machine=hppa1.1-hitachi
-		os=-hiuxwe2
-		;;
-	h8300hms)
-		basic_machine=h8300-hitachi
-		os=-hms
-		;;
-	h8300xray)
-		basic_machine=h8300-hitachi
-		os=-xray
-		;;
-	h8500hms)
-		basic_machine=h8500-hitachi
-		os=-hms
-		;;
-	harris)
-		basic_machine=m88k-harris
-		os=-sysv3
-		;;
-	hp300-*)
-		basic_machine=m68k-hp
-		;;
-	hp300bsd)
-		basic_machine=m68k-hp
-		os=-bsd
-		;;
-	hp300hpux)
-		basic_machine=m68k-hp
-		os=-hpux
-		;;
-	hp3k9[0-9][0-9] | hp9[0-9][0-9])
-		basic_machine=hppa1.0-hp
-		;;
-	hp9k2[0-9][0-9] | hp9k31[0-9])
-		basic_machine=m68000-hp
-		;;
-	hp9k3[2-9][0-9])
-		basic_machine=m68k-hp
-		;;
-	hp9k6[0-9][0-9] | hp6[0-9][0-9])
-		basic_machine=hppa1.0-hp
-		;;
-	hp9k7[0-79][0-9] | hp7[0-79][0-9])
-		basic_machine=hppa1.1-hp
-		;;
-	hp9k78[0-9] | hp78[0-9])
-		# FIXME: really hppa2.0-hp
-		basic_machine=hppa1.1-hp
-		;;
-	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
-		# FIXME: really hppa2.0-hp
-		basic_machine=hppa1.1-hp
-		;;
-	hp9k8[0-9][13679] | hp8[0-9][13679])
-		basic_machine=hppa1.1-hp
-		;;
-	hp9k8[0-9][0-9] | hp8[0-9][0-9])
-		basic_machine=hppa1.0-hp
-		;;
-	hppa-next)
-		os=-nextstep3
-		;;
-	hppaosf)
-		basic_machine=hppa1.1-hp
-		os=-osf
-		;;
-	hppro)
-		basic_machine=hppa1.1-hp
-		os=-proelf
-		;;
-	i370-ibm* | ibm*)
-		basic_machine=i370-ibm
-		;;
-# I'm not sure what "Sysv32" means.  Should this be sysv3.2?
-	i*86v32)
-		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-		os=-sysv32
-		;;
-	i*86v4*)
-		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-		os=-sysv4
-		;;
-	i*86v)
-		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-		os=-sysv
-		;;
-	i*86sol2)
-		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-		os=-solaris2
-		;;
-	i386mach)
-		basic_machine=i386-mach
-		os=-mach
-		;;
-	i386-vsta | vsta)
-		basic_machine=i386-unknown
-		os=-vsta
-		;;
-	iris | iris4d)
-		basic_machine=mips-sgi
-		case $os in
-		    -irix*)
-			;;
-		    *)
-			os=-irix4
-			;;
-		esac
-		;;
-	isi68 | isi)
-		basic_machine=m68k-isi
-		os=-sysv
-		;;
-	m88k-omron*)
-		basic_machine=m88k-omron
-		;;
-	magnum | m3230)
-		basic_machine=mips-mips
-		os=-sysv
-		;;
-	merlin)
-		basic_machine=ns32k-utek
-		os=-sysv
-		;;
-	mingw32)
-		basic_machine=i386-pc
-		os=-mingw32
-		;;
-	miniframe)
-		basic_machine=m68000-convergent
-		;;
-	*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
-		basic_machine=m68k-atari
-		os=-mint
-		;;
-	mips3*-*)
-		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
-		;;
-	mips3*)
-		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
-		;;
-	monitor)
-		basic_machine=m68k-rom68k
-		os=-coff
-		;;
-	morphos)
-		basic_machine=powerpc-unknown
-		os=-morphos
-		;;
-	msdos)
-		basic_machine=i386-pc
-		os=-msdos
-		;;
-	mvs)
-		basic_machine=i370-ibm
-		os=-mvs
-		;;
-	ncr3000)
-		basic_machine=i486-ncr
-		os=-sysv4
-		;;
-	netbsd386)
-		basic_machine=i386-unknown
-		os=-netbsd
-		;;
-	netwinder)
-		basic_machine=armv4l-rebel
-		os=-linux
-		;;
-	news | news700 | news800 | news900)
-		basic_machine=m68k-sony
-		os=-newsos
-		;;
-	news1000)
-		basic_machine=m68030-sony
-		os=-newsos
-		;;
-	news-3600 | risc-news)
-		basic_machine=mips-sony
-		os=-newsos
-		;;
-	necv70)
-		basic_machine=v70-nec
-		os=-sysv
-		;;
-	next | m*-next )
-		basic_machine=m68k-next
-		case $os in
-		    -nextstep* )
-			;;
-		    -ns2*)
-		      os=-nextstep2
-			;;
-		    *)
-		      os=-nextstep3
-			;;
-		esac
-		;;
-	nh3000)
-		basic_machine=m68k-harris
-		os=-cxux
-		;;
-	nh[45]000)
-		basic_machine=m88k-harris
-		os=-cxux
-		;;
-	nindy960)
-		basic_machine=i960-intel
-		os=-nindy
-		;;
-	mon960)
-		basic_machine=i960-intel
-		os=-mon960
-		;;
-	nonstopux)
-		basic_machine=mips-compaq
-		os=-nonstopux
-		;;
-	np1)
-		basic_machine=np1-gould
-		;;
-	nsr-tandem)
-		basic_machine=nsr-tandem
-		;;
-	op50n-* | op60c-*)
-		basic_machine=hppa1.1-oki
-		os=-proelf
-		;;
-	openrisc | openrisc-*)
-		basic_machine=or32-unknown
-		;;
-	os400)
-		basic_machine=powerpc-ibm
-		os=-os400
-		;;
-	OSE68000 | ose68000)
-		basic_machine=m68000-ericsson
-		os=-ose
-		;;
-	os68k)
-		basic_machine=m68k-none
-		os=-os68k
-		;;
-	pa-hitachi)
-		basic_machine=hppa1.1-hitachi
-		os=-hiuxwe2
-		;;
-	paragon)
-		basic_machine=i860-intel
-		os=-osf
-		;;
-	pbd)
-		basic_machine=sparc-tti
-		;;
-	pbb)
-		basic_machine=m68k-tti
-		;;
-	pc532 | pc532-*)
-		basic_machine=ns32k-pc532
-		;;
-	pentium | p5 | k5 | k6 | nexgen | viac3)
-		basic_machine=i586-pc
-		;;
-	pentiumpro | p6 | 6x86 | athlon | athlon_*)
-		basic_machine=i686-pc
-		;;
-	pentiumii | pentium2 | pentiumiii | pentium3)
-		basic_machine=i686-pc
-		;;
-	pentium4)
-		basic_machine=i786-pc
-		;;
-	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
-		basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	pentiumpro-* | p6-* | 6x86-* | athlon-*)
-		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
-		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	pentium4-*)
-		basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	pn)
-		basic_machine=pn-gould
-		;;
-	power)	basic_machine=power-ibm
-		;;
-	ppc)	basic_machine=powerpc-unknown
-		;;
-	ppc-*)	basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	ppcle | powerpclittle | ppc-le | powerpc-little)
-		basic_machine=powerpcle-unknown
-		;;
-	ppcle-* | powerpclittle-*)
-		basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	ppc64)	basic_machine=powerpc64-unknown
-		;;
-	ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	ppc64le | powerpc64little | ppc64-le | powerpc64-little)
-		basic_machine=powerpc64le-unknown
-		;;
-	ppc64le-* | powerpc64little-*)
-		basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	ps2)
-		basic_machine=i386-ibm
-		;;
-	pw32)
-		basic_machine=i586-unknown
-		os=-pw32
-		;;
-	rom68k)
-		basic_machine=m68k-rom68k
-		os=-coff
-		;;
-	rm[46]00)
-		basic_machine=mips-siemens
-		;;
-	rtpc | rtpc-*)
-		basic_machine=romp-ibm
-		;;
-	s390 | s390-*)
-		basic_machine=s390-ibm
-		;;
-	s390x | s390x-*)
-		basic_machine=s390x-ibm
-		;;
-	sa29200)
-		basic_machine=a29k-amd
-		os=-udi
-		;;
-	sb1)
-		basic_machine=mipsisa64sb1-unknown
-		;;
-	sb1el)
-		basic_machine=mipsisa64sb1el-unknown
-		;;
-	sei)
-		basic_machine=mips-sei
-		os=-seiux
-		;;
-	sequent)
-		basic_machine=i386-sequent
-		;;
-	sh)
-		basic_machine=sh-hitachi
-		os=-hms
-		;;
-	sh64)
-		basic_machine=sh64-unknown
-		;;
-	sparclite-wrs | simso-wrs)
-		basic_machine=sparclite-wrs
-		os=-vxworks
-		;;
-	sps7)
-		basic_machine=m68k-bull
-		os=-sysv2
-		;;
-	spur)
-		basic_machine=spur-unknown
-		;;
-	st2000)
-		basic_machine=m68k-tandem
-		;;
-	stratus)
-		basic_machine=i860-stratus
-		os=-sysv4
-		;;
-	sun2)
-		basic_machine=m68000-sun
-		;;
-	sun2os3)
-		basic_machine=m68000-sun
-		os=-sunos3
-		;;
-	sun2os4)
-		basic_machine=m68000-sun
-		os=-sunos4
-		;;
-	sun3os3)
-		basic_machine=m68k-sun
-		os=-sunos3
-		;;
-	sun3os4)
-		basic_machine=m68k-sun
-		os=-sunos4
-		;;
-	sun4os3)
-		basic_machine=sparc-sun
-		os=-sunos3
-		;;
-	sun4os4)
-		basic_machine=sparc-sun
-		os=-sunos4
-		;;
-	sun4sol2)
-		basic_machine=sparc-sun
-		os=-solaris2
-		;;
-	sun3 | sun3-*)
-		basic_machine=m68k-sun
-		;;
-	sun4)
-		basic_machine=sparc-sun
-		;;
-	sun386 | sun386i | roadrunner)
-		basic_machine=i386-sun
-		;;
-	sv1)
-		basic_machine=sv1-cray
-		os=-unicos
-		;;
-	symmetry)
-		basic_machine=i386-sequent
-		os=-dynix
-		;;
-	t3e)
-		basic_machine=alphaev5-cray
-		os=-unicos
-		;;
-	t90)
-		basic_machine=t90-cray
-		os=-unicos
-		;;
-	tic54x | c54x*)
-		basic_machine=tic54x-unknown
-		os=-coff
-		;;
-	tic55x | c55x*)
-		basic_machine=tic55x-unknown
-		os=-coff
-		;;
-	tic6x | c6x*)
-		basic_machine=tic6x-unknown
-		os=-coff
-		;;
-	tx39)
-		basic_machine=mipstx39-unknown
-		;;
-	tx39el)
-		basic_machine=mipstx39el-unknown
-		;;
-	toad1)
-		basic_machine=pdp10-xkl
-		os=-tops20
-		;;
-	tower | tower-32)
-		basic_machine=m68k-ncr
-		;;
-	tpf)
-		basic_machine=s390x-ibm
-		os=-tpf
-		;;
-	udi29k)
-		basic_machine=a29k-amd
-		os=-udi
-		;;
-	ultra3)
-		basic_machine=a29k-nyu
-		os=-sym1
-		;;
-	v810 | necv810)
-		basic_machine=v810-nec
-		os=-none
-		;;
-	vaxv)
-		basic_machine=vax-dec
-		os=-sysv
-		;;
-	vms)
-		basic_machine=vax-dec
-		os=-vms
-		;;
-	vpp*|vx|vx-*)
-		basic_machine=f301-fujitsu
-		;;
-	vxworks960)
-		basic_machine=i960-wrs
-		os=-vxworks
-		;;
-	vxworks68)
-		basic_machine=m68k-wrs
-		os=-vxworks
-		;;
-	vxworks29k)
-		basic_machine=a29k-wrs
-		os=-vxworks
-		;;
-	w65*)
-		basic_machine=w65-wdc
-		os=-none
-		;;
-	w89k-*)
-		basic_machine=hppa1.1-winbond
-		os=-proelf
-		;;
-	xbox)
-		basic_machine=i686-pc
-		os=-mingw32
-		;;
-	xps | xps100)
-		basic_machine=xps100-honeywell
-		;;
-	ymp)
-		basic_machine=ymp-cray
-		os=-unicos
-		;;
-	z8k-*-coff)
-		basic_machine=z8k-unknown
-		os=-sim
-		;;
-	none)
-		basic_machine=none-none
-		os=-none
-		;;
-
-# Here we handle the default manufacturer of certain CPU types.  It is in
-# some cases the only manufacturer, in others, it is the most popular.
-	w89k)
-		basic_machine=hppa1.1-winbond
-		;;
-	op50n)
-		basic_machine=hppa1.1-oki
-		;;
-	op60c)
-		basic_machine=hppa1.1-oki
-		;;
-	romp)
-		basic_machine=romp-ibm
-		;;
-	mmix)
-		basic_machine=mmix-knuth
-		;;
-	rs6000)
-		basic_machine=rs6000-ibm
-		;;
-	vax)
-		basic_machine=vax-dec
-		;;
-	pdp10)
-		# there are many clones, so DEC is not a safe bet
-		basic_machine=pdp10-unknown
-		;;
-	pdp11)
-		basic_machine=pdp11-dec
-		;;
-	we32k)
-		basic_machine=we32k-att
-		;;
-	sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele)
-		basic_machine=sh-unknown
-		;;
-	sparc | sparcv8 | sparcv9 | sparcv9b)
-		basic_machine=sparc-sun
-		;;
-	cydra)
-		basic_machine=cydra-cydrome
-		;;
-	orion)
-		basic_machine=orion-highlevel
-		;;
-	orion105)
-		basic_machine=clipper-highlevel
-		;;
-	mac | mpw | mac-mpw)
-		basic_machine=m68k-apple
-		;;
-	pmac | pmac-mpw)
-		basic_machine=powerpc-apple
-		;;
-	*-unknown)
-		# Make sure to match an already-canonicalized machine name.
-		;;
-	*)
-		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
-		exit 1
-		;;
-esac
-
-# Here we canonicalize certain aliases for manufacturers.
-case $basic_machine in
-	*-digital*)
-		basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
-		;;
-	*-commodore*)
-		basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
-		;;
-	*)
-		;;
-esac
-
-# Decode manufacturer-specific aliases for certain operating systems.
-
-if [ x"$os" != x"" ]
-then
-case $os in
-        # First match some system type aliases
-        # that might get confused with valid system types.
-	# -solaris* is a basic system type, with this one exception.
-	-solaris1 | -solaris1.*)
-		os=`echo $os | sed -e 's|solaris1|sunos4|'`
-		;;
-	-solaris)
-		os=-solaris2
-		;;
-	-svr4*)
-		os=-sysv4
-		;;
-	-unixware*)
-		os=-sysv4.2uw
-		;;
-	-gnu/linux*)
-		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
-		;;
-	# First accept the basic system types.
-	# The portable systems comes first.
-	# Each alternative MUST END IN A *, to match a version number.
-	# -sysv* is not here because it comes later, after sysvr4.
-	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
-	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
-	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
-	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
-	      | -aos* \
-	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
-	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
-	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \
-	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
-	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
-	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
-	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
-	      | -chorusos* | -chorusrdb* \
-	      | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-	      | -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \
-	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
-	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
-	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
-	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
-	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
-	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
-	      | -skyos* | -haiku*)
-	# Remember, each alternative MUST END IN *, to match a version number.
-		;;
-	-qnx*)
-		case $basic_machine in
-		    x86-* | i*86-*)
-			;;
-		    *)
-			os=-nto$os
-			;;
-		esac
-		;;
-	-nto-qnx*)
-		;;
-	-nto*)
-		os=`echo $os | sed -e 's|nto|nto-qnx|'`
-		;;
-	-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
-	      | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
-	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
-		;;
-	-mac*)
-		os=`echo $os | sed -e 's|mac|macos|'`
-		;;
-	-linux-dietlibc)
-		os=-linux-dietlibc
-		;;
-	-linux*)
-		os=`echo $os | sed -e 's|linux|linux-gnu|'`
-		;;
-	-sunos5*)
-		os=`echo $os | sed -e 's|sunos5|solaris2|'`
-		;;
-	-sunos6*)
-		os=`echo $os | sed -e 's|sunos6|solaris3|'`
-		;;
-	-opened*)
-		os=-openedition
-		;;
-        -os400*)
-		os=-os400
-		;;
-	-wince*)
-		os=-wince
-		;;
-	-osfrose*)
-		os=-osfrose
-		;;
-	-osf*)
-		os=-osf
-		;;
-	-utek*)
-		os=-bsd
-		;;
-	-dynix*)
-		os=-bsd
-		;;
-	-acis*)
-		os=-aos
-		;;
-	-atheos*)
-		os=-atheos
-		;;
-	-syllable*)
-		os=-syllable
-		;;
-	-386bsd)
-		os=-bsd
-		;;
-	-ctix* | -uts*)
-		os=-sysv
-		;;
-	-nova*)
-		os=-rtmk-nova
-		;;
-	-ns2 )
-		os=-nextstep2
-		;;
-	-nsk*)
-		os=-nsk
-		;;
-	# Preserve the version number of sinix5.
-	-sinix5.*)
-		os=`echo $os | sed -e 's|sinix|sysv|'`
-		;;
-	-sinix*)
-		os=-sysv4
-		;;
-        -tpf*)
-		os=-tpf
-		;;
-	-triton*)
-		os=-sysv3
-		;;
-	-oss*)
-		os=-sysv3
-		;;
-	-svr4)
-		os=-sysv4
-		;;
-	-svr3)
-		os=-sysv3
-		;;
-	-sysvr4)
-		os=-sysv4
-		;;
-	# This must come after -sysvr4.
-	-sysv*)
-		;;
-	-ose*)
-		os=-ose
-		;;
-	-es1800*)
-		os=-ose
-		;;
-	-xenix)
-		os=-xenix
-		;;
-	-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
-		os=-mint
-		;;
-	-aros*)
-		os=-aros
-		;;
-	-kaos*)
-		os=-kaos
-		;;
-	-zvmoe)
-		os=-zvmoe
-		;;
-	-none)
-		;;
-	*)
-		# Get rid of the `-' at the beginning of $os.
-		os=`echo $os | sed 's/[^-]*-//'`
-		echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
-		exit 1
-		;;
-esac
-else
-
-# Here we handle the default operating systems that come with various machines.
-# The value should be what the vendor currently ships out the door with their
-# machine or put another way, the most popular os provided with the machine.
-
-# Note that if you're going to try to match "-MANUFACTURER" here (say,
-# "-sun"), then you have to tell the case statement up towards the top
-# that MANUFACTURER isn't an operating system.  Otherwise, code above
-# will signal an error saying that MANUFACTURER isn't an operating
-# system, and we'll never get to this point.
-
-case $basic_machine in
-	*-acorn)
-		os=-riscix1.2
-		;;
-	arm*-rebel)
-		os=-linux
-		;;
-	arm*-semi)
-		os=-aout
-		;;
-    c4x-* | tic4x-*)
-        os=-coff
-        ;;
-	# This must come before the *-dec entry.
-	pdp10-*)
-		os=-tops20
-		;;
-	pdp11-*)
-		os=-none
-		;;
-	*-dec | vax-*)
-		os=-ultrix4.2
-		;;
-	m68*-apollo)
-		os=-domain
-		;;
-	i386-sun)
-		os=-sunos4.0.2
-		;;
-	m68000-sun)
-		os=-sunos3
-		# This also exists in the configure program, but was not the
-		# default.
-		# os=-sunos4
-		;;
-	m68*-cisco)
-		os=-aout
-		;;
-	mips*-cisco)
-		os=-elf
-		;;
-	mips*-*)
-		os=-elf
-		;;
-	or32-*)
-		os=-coff
-		;;
-	*-tti)	# must be before sparc entry or we get the wrong os.
-		os=-sysv3
-		;;
-	sparc-* | *-sun)
-		os=-sunos4.1.1
-		;;
-	*-be)
-		os=-beos
-		;;
-	*-haiku)
-		os=-haiku
-		;;
-	*-ibm)
-		os=-aix
-		;;
-    	*-knuth)
-		os=-mmixware
-		;;
-	*-wec)
-		os=-proelf
-		;;
-	*-winbond)
-		os=-proelf
-		;;
-	*-oki)
-		os=-proelf
-		;;
-	*-hp)
-		os=-hpux
-		;;
-	*-hitachi)
-		os=-hiux
-		;;
-	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
-		os=-sysv
-		;;
-	*-cbm)
-		os=-amigaos
-		;;
-	*-dg)
-		os=-dgux
-		;;
-	*-dolphin)
-		os=-sysv3
-		;;
-	m68k-ccur)
-		os=-rtu
-		;;
-	m88k-omron*)
-		os=-luna
-		;;
-	*-next )
-		os=-nextstep
-		;;
-	*-sequent)
-		os=-ptx
-		;;
-	*-crds)
-		os=-unos
-		;;
-	*-ns)
-		os=-genix
-		;;
-	i370-*)
-		os=-mvs
-		;;
-	*-next)
-		os=-nextstep3
-		;;
-	*-gould)
-		os=-sysv
-		;;
-	*-highlevel)
-		os=-bsd
-		;;
-	*-encore)
-		os=-bsd
-		;;
-	*-sgi)
-		os=-irix
-		;;
-	*-siemens)
-		os=-sysv4
-		;;
-	*-masscomp)
-		os=-rtu
-		;;
-	f30[01]-fujitsu | f700-fujitsu)
-		os=-uxpv
-		;;
-	*-rom68k)
-		os=-coff
-		;;
-	*-*bug)
-		os=-coff
-		;;
-	*-apple)
-		os=-macos
-		;;
-	*-atari*)
-		os=-mint
-		;;
-	*)
-		os=-none
-		;;
-esac
-fi
-
-# Here we handle the case where we know the os, and the CPU type, but not the
-# manufacturer.  We pick the logical manufacturer.
-vendor=unknown
-case $basic_machine in
-	*-unknown)
-		case $os in
-			-riscix*)
-				vendor=acorn
-				;;
-			-sunos*)
-				vendor=sun
-				;;
-			-aix*)
-				vendor=ibm
-				;;
-			-beos*)
-				vendor=be
-				;;
-			-hpux*)
-				vendor=hp
-				;;
-			-mpeix*)
-				vendor=hp
-				;;
-			-hiux*)
-				vendor=hitachi
-				;;
-			-unos*)
-				vendor=crds
-				;;
-			-dgux*)
-				vendor=dg
-				;;
-			-luna*)
-				vendor=omron
-				;;
-			-genix*)
-				vendor=ns
-				;;
-			-mvs* | -opened*)
-				vendor=ibm
-				;;
-			-os400*)
-				vendor=ibm
-				;;
-			-ptx*)
-				vendor=sequent
-				;;
-			-tpf*)
-				vendor=ibm
-				;;
-			-vxsim* | -vxworks* | -windiss*)
-				vendor=wrs
-				;;
-			-aux*)
-				vendor=apple
-				;;
-			-hms*)
-				vendor=hitachi
-				;;
-			-mpw* | -macos*)
-				vendor=apple
-				;;
-			-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
-				vendor=atari
-				;;
-			-vos*)
-				vendor=stratus
-				;;
-		esac
-		basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
-		;;
-esac
-
-echo $basic_machine$os
-exit
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "timestamp='"
-# time-stamp-format: "%:y-%02m-%02d"
-# time-stamp-end: "'"
-# End:
diff --git a/configure b/configure
deleted file mode 100755
index c9adebd..0000000
--- a/configure
+++ /dev/null
@@ -1,5760 +0,0 @@
-#! /bin/sh
-# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.61 for cmor 2.0.
-#
-# Report bugs to <doutriaux1 at llnl.gov>.
-#
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-## --------------------- ##
-## M4sh Initialization.  ##
-## --------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-  setopt NO_GLOB_SUBST
-else
-  case `(set -o) 2>/dev/null` in
-  *posix*) set -o posix ;;
-esac
-
-fi
-
-
-
-
-# PATH needs CR
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conf$$.sh
-fi
-
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  as_unset=unset
-else
-  as_unset=false
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.  Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-as_nl='
-'
-IFS=" ""	$as_nl"
-
-# Find who we are.  Look in the path if we contain no directory separator.
-case $0 in
-  *[\\/]* ) as_myself=$0 ;;
-  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-IFS=$as_save_IFS
-
-     ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
-  as_myself=$0
-fi
-if test ! -f "$as_myself"; then
-  echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
-  { (exit 1); exit 1; }
-fi
-
-# Work around bugs in pre-3.0 UWIN ksh.
-for as_var in ENV MAIL MAILPATH
-do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-for as_var in \
-  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
-  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
-  LC_TELEPHONE LC_TIME
-do
-  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
-    eval $as_var=C; export $as_var
-  else
-    ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
-  fi
-done
-
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
-  as_basename=basename
-else
-  as_basename=false
-fi
-
-
-# Name of the executable.
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-
-# CDPATH.
-$as_unset CDPATH
-
-
-if test "x$CONFIG_SHELL" = x; then
-  if (eval ":") 2>/dev/null; then
-  as_have_required=yes
-else
-  as_have_required=no
-fi
-
-  if test $as_have_required = yes && 	 (eval ":
-(as_func_return () {
-  (exit \$1)
-}
-as_func_success () {
-  as_func_return 0
-}
-as_func_failure () {
-  as_func_return 1
-}
-as_func_ret_success () {
-  return 0
-}
-as_func_ret_failure () {
-  return 1
-}
-
-exitcode=0
-if as_func_success; then
-  :
-else
-  exitcode=1
-  echo as_func_success failed.
-fi
-
-if as_func_failure; then
-  exitcode=1
-  echo as_func_failure succeeded.
-fi
-
-if as_func_ret_success; then
-  :
-else
-  exitcode=1
-  echo as_func_ret_success failed.
-fi
-
-if as_func_ret_failure; then
-  exitcode=1
-  echo as_func_ret_failure succeeded.
-fi
-
-if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
-  :
-else
-  exitcode=1
-  echo positional parameters were not saved.
-fi
-
-test \$exitcode = 0) || { (exit 1); exit 1; }
-
-(
-  as_lineno_1=\$LINENO
-  as_lineno_2=\$LINENO
-  test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" &&
-  test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; }
-") 2> /dev/null; then
-  :
-else
-  as_candidate_shells=
-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  case $as_dir in
-	 /*)
-	   for as_base in sh bash ksh sh5; do
-	     as_candidate_shells="$as_candidate_shells $as_dir/$as_base"
-	   done;;
-       esac
-done
-IFS=$as_save_IFS
-
-
-      for as_shell in $as_candidate_shells $SHELL; do
-	 # Try only shells that exist, to save several forks.
-	 if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
-		{ ("$as_shell") 2> /dev/null <<\_ASEOF
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-  setopt NO_GLOB_SUBST
-else
-  case `(set -o) 2>/dev/null` in
-  *posix*) set -o posix ;;
-esac
-
-fi
-
-
-:
-_ASEOF
-}; then
-  CONFIG_SHELL=$as_shell
-	       as_have_required=yes
-	       if { "$as_shell" 2> /dev/null <<\_ASEOF
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-  setopt NO_GLOB_SUBST
-else
-  case `(set -o) 2>/dev/null` in
-  *posix*) set -o posix ;;
-esac
-
-fi
-
-
-:
-(as_func_return () {
-  (exit $1)
-}
-as_func_success () {
-  as_func_return 0
-}
-as_func_failure () {
-  as_func_return 1
-}
-as_func_ret_success () {
-  return 0
-}
-as_func_ret_failure () {
-  return 1
-}
-
-exitcode=0
-if as_func_success; then
-  :
-else
-  exitcode=1
-  echo as_func_success failed.
-fi
-
-if as_func_failure; then
-  exitcode=1
-  echo as_func_failure succeeded.
-fi
-
-if as_func_ret_success; then
-  :
-else
-  exitcode=1
-  echo as_func_ret_success failed.
-fi
-
-if as_func_ret_failure; then
-  exitcode=1
-  echo as_func_ret_failure succeeded.
-fi
-
-if ( set x; as_func_ret_success y && test x = "$1" ); then
-  :
-else
-  exitcode=1
-  echo positional parameters were not saved.
-fi
-
-test $exitcode = 0) || { (exit 1); exit 1; }
-
-(
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; }
-
-_ASEOF
-}; then
-  break
-fi
-
-fi
-
-      done
-
-      if test "x$CONFIG_SHELL" != x; then
-  for as_var in BASH_ENV ENV
-        do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
-        done
-        export CONFIG_SHELL
-        exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
-fi
-
-
-    if test $as_have_required = no; then
-  echo This script requires a shell more modern than all the
-      echo shells that I found on your system.  Please install a
-      echo modern shell, or manually run the script under such a
-      echo shell if you do have one.
-      { (exit 1); exit 1; }
-fi
-
-
-fi
-
-fi
-
-
-
-(eval "as_func_return () {
-  (exit \$1)
-}
-as_func_success () {
-  as_func_return 0
-}
-as_func_failure () {
-  as_func_return 1
-}
-as_func_ret_success () {
-  return 0
-}
-as_func_ret_failure () {
-  return 1
-}
-
-exitcode=0
-if as_func_success; then
-  :
-else
-  exitcode=1
-  echo as_func_success failed.
-fi
-
-if as_func_failure; then
-  exitcode=1
-  echo as_func_failure succeeded.
-fi
-
-if as_func_ret_success; then
-  :
-else
-  exitcode=1
-  echo as_func_ret_success failed.
-fi
-
-if as_func_ret_failure; then
-  exitcode=1
-  echo as_func_ret_failure succeeded.
-fi
-
-if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
-  :
-else
-  exitcode=1
-  echo positional parameters were not saved.
-fi
-
-test \$exitcode = 0") || {
-  echo No shell found that supports shell functions.
-  echo Please tell autoconf at gnu.org about your system,
-  echo including any error possibly output before this
-  echo message
-}
-
-
-
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
-
-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
-  # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line after each line using $LINENO; the second 'sed'
-  # does the real work.  The second script uses 'N' to pair each
-  # line-number line with the line containing $LINENO, and appends
-  # trailing '-' during substitution so that $LINENO is not a special
-  # case at line end.
-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # scripts with optimization help from Paolo Bonzini.  Blame Lee
-  # E. McMahon (1931-1989) for sed's syntax.  :-)
-  sed -n '
-    p
-    /[$]LINENO/=
-  ' <$as_myself |
-    sed '
-      s/[$]LINENO.*/&-/
-      t lineno
-      b
-      :lineno
-      N
-      :loop
-      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
-      t loop
-      s/-\n.*//
-    ' >$as_me.lineno &&
-  chmod +x "$as_me.lineno" ||
-    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
-   { (exit 1); exit 1; }; }
-
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensitive to this).
-  . "./$as_me.lineno"
-  # Exit status is that of the last command.
-  exit
-}
-
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
-  as_dirname=dirname
-else
-  as_dirname=false
-fi
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in
--n*)
-  case `echo 'x\c'` in
-  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
-  *)   ECHO_C='\c';;
-  esac;;
-*)
-  ECHO_N='-n';;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
-  rm -f conf$$.dir/conf$$.file
-else
-  rm -f conf$$.dir
-  mkdir conf$$.dir
-fi
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
-  as_ln_s='ln -s'
-  # ... but there are two gotchas:
-  # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
-  # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-  # In both cases, we have to default to `cp -p'.
-  ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-    as_ln_s='cp -p'
-elif ln conf$$.file conf$$ 2>/dev/null; then
-  as_ln_s=ln
-else
-  as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-if mkdir -p . 2>/dev/null; then
-  as_mkdir_p=:
-else
-  test -d ./-p && rmdir ./-p
-  as_mkdir_p=false
-fi
-
-if test -x / >/dev/null 2>&1; then
-  as_test_x='test -x'
-else
-  if ls -dL / >/dev/null 2>&1; then
-    as_ls_L_option=L
-  else
-    as_ls_L_option=
-  fi
-  as_test_x='
-    eval sh -c '\''
-      if test -d "$1"; then
-        test -d "$1/.";
-      else
-	case $1 in
-        -*)set "./$1";;
-	esac;
-	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
-	???[sx]*):;;*)false;;esac;fi
-    '\'' sh
-  '
-fi
-as_executable_p=$as_test_x
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-
-exec 7<&0 </dev/null 6>&1
-
-# Name of the host.
-# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
-# so uname gets run too.
-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
-
-#
-# Initializations.
-#
-ac_default_prefix=/usr/local
-ac_clean_files=
-ac_config_libobj_dir=.
-LIBOBJS=
-cross_compiling=no
-subdirs=
-MFLAGS=
-MAKEFLAGS=
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-# Identity of this package.
-PACKAGE_NAME='cmor'
-PACKAGE_TARNAME='cmor'
-PACKAGE_VERSION='2.0'
-PACKAGE_STRING='cmor 2.0'
-PACKAGE_BUGREPORT='doutriaux1 at llnl.gov'
-
-ac_default_prefix=/usr/local/cmor
-ac_subst_vars='SHELL
-PATH_SEPARATOR
-PACKAGE_NAME
-PACKAGE_TARNAME
-PACKAGE_VERSION
-PACKAGE_STRING
-PACKAGE_BUGREPORT
-exec_prefix
-prefix
-program_transform_name
-bindir
-sbindir
-libexecdir
-datarootdir
-datadir
-sysconfdir
-sharedstatedir
-localstatedir
-includedir
-oldincludedir
-docdir
-infodir
-htmldir
-dvidir
-pdfdir
-psdir
-libdir
-localedir
-mandir
-DEFS
-ECHO_C
-ECHO_N
-ECHO_T
-LIBS
-build_alias
-host_alias
-target_alias
-build
-build_cpu
-build_vendor
-build_os
-host
-host_cpu
-host_vendor
-host_os
-target
-target_cpu
-target_vendor
-target_os
-PATH
-NCCFLAGS
-NCLDFLAGS
-ZFLAGS
-ZLDFLAGS
-UDUNITS2FLAGS
-UDUNITS2LDFLAGS
-UUIDFLAGS
-UUIDLDFLAGS
-LIBSOURCES
-LIBFSOURCES
-FC
-FFLAGS
-FCFLAGS
-LDFLAGS
-CFLAGS
-INCFILES
-TEST_FORTRAN
-LIBFILES
-VERB
-MODFILES
-MACROS
-DEBUG
-OK_COLOR
-NO_COLOR
-CDATPREFIX
-PYTHONEXEC
-MAKEDEPPYTHON
-MAKETESTPYTHON
-CC
-CPPFLAGS
-ac_ct_CC
-EXEEXT
-OBJEXT
-CPP
-LN_S
-SED
-RANLIB
-ac_ct_FC
-FCLIBS
-NCCONFIG
-LIBOBJS
-LTLIBOBJS'
-ac_subst_files=''
-      ac_precious_vars='build_alias
-host_alias
-target_alias
-CC
-CFLAGS
-LDFLAGS
-LIBS
-CPPFLAGS
-CPP
-FC
-FCFLAGS'
-
-
-# Initialize some variables set by options.
-ac_init_help=
-ac_init_version=false
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-cache_file=/dev/null
-exec_prefix=NONE
-no_create=
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-verbose=
-x_includes=NONE
-x_libraries=NONE
-
-# Installation directory options.
-# These are left unexpanded so users can "make install exec_prefix=/foo"
-# and all the variables that are supposed to be based on exec_prefix
-# by default will actually change.
-# Use braces instead of parens because sh, perl, etc. also accept them.
-# (The list follows the same order as the GNU Coding Standards.)
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datarootdir='${prefix}/share'
-datadir='${datarootdir}'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
-infodir='${datarootdir}/info'
-htmldir='${docdir}'
-dvidir='${docdir}'
-pdfdir='${docdir}'
-psdir='${docdir}'
-libdir='${exec_prefix}/lib'
-localedir='${datarootdir}/locale'
-mandir='${datarootdir}/man'
-
-ac_prev=
-ac_dashdash=
-for ac_option
-do
-  # If the previous option needs an argument, assign it.
-  if test -n "$ac_prev"; then
-    eval $ac_prev=\$ac_option
-    ac_prev=
-    continue
-  fi
-
-  case $ac_option in
-  *=*)	ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
-  *)	ac_optarg=yes ;;
-  esac
-
-  # Accept the important Cygnus configure options, so we can diagnose typos.
-
-  case $ac_dashdash$ac_option in
-  --)
-    ac_dashdash=yes ;;
-
-  -bindir | --bindir | --bindi | --bind | --bin | --bi)
-    ac_prev=bindir ;;
-  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
-    bindir=$ac_optarg ;;
-
-  -build | --build | --buil | --bui | --bu)
-    ac_prev=build_alias ;;
-  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
-    build_alias=$ac_optarg ;;
-
-  -cache-file | --cache-file | --cache-fil | --cache-fi \
-  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
-    ac_prev=cache_file ;;
-  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
-  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
-    cache_file=$ac_optarg ;;
-
-  --config-cache | -C)
-    cache_file=config.cache ;;
-
-  -datadir | --datadir | --datadi | --datad)
-    ac_prev=datadir ;;
-  -datadir=* | --datadir=* | --datadi=* | --datad=*)
-    datadir=$ac_optarg ;;
-
-  -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
-  | --dataroo | --dataro | --datar)
-    ac_prev=datarootdir ;;
-  -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
-  | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
-    datarootdir=$ac_optarg ;;
-
-  -disable-* | --disable-*)
-    ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
-   { (exit 1); exit 1; }; }
-    ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'`
-    eval enable_$ac_feature=no ;;
-
-  -docdir | --docdir | --docdi | --doc | --do)
-    ac_prev=docdir ;;
-  -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
-    docdir=$ac_optarg ;;
-
-  -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
-    ac_prev=dvidir ;;
-  -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
-    dvidir=$ac_optarg ;;
-
-  -enable-* | --enable-*)
-    ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
-   { (exit 1); exit 1; }; }
-    ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'`
-    eval enable_$ac_feature=\$ac_optarg ;;
-
-  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
-  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
-  | --exec | --exe | --ex)
-    ac_prev=exec_prefix ;;
-  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
-  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
-  | --exec=* | --exe=* | --ex=*)
-    exec_prefix=$ac_optarg ;;
-
-  -gas | --gas | --ga | --g)
-    # Obsolete; use --with-gas.
-    with_gas=yes ;;
-
-  -help | --help | --hel | --he | -h)
-    ac_init_help=long ;;
-  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
-    ac_init_help=recursive ;;
-  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
-    ac_init_help=short ;;
-
-  -host | --host | --hos | --ho)
-    ac_prev=host_alias ;;
-  -host=* | --host=* | --hos=* | --ho=*)
-    host_alias=$ac_optarg ;;
-
-  -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
-    ac_prev=htmldir ;;
-  -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
-  | --ht=*)
-    htmldir=$ac_optarg ;;
-
-  -includedir | --includedir | --includedi | --included | --include \
-  | --includ | --inclu | --incl | --inc)
-    ac_prev=includedir ;;
-  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
-  | --includ=* | --inclu=* | --incl=* | --inc=*)
-    includedir=$ac_optarg ;;
-
-  -infodir | --infodir | --infodi | --infod | --info | --inf)
-    ac_prev=infodir ;;
-  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
-    infodir=$ac_optarg ;;
-
-  -libdir | --libdir | --libdi | --libd)
-    ac_prev=libdir ;;
-  -libdir=* | --libdir=* | --libdi=* | --libd=*)
-    libdir=$ac_optarg ;;
-
-  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
-  | --libexe | --libex | --libe)
-    ac_prev=libexecdir ;;
-  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
-  | --libexe=* | --libex=* | --libe=*)
-    libexecdir=$ac_optarg ;;
-
-  -localedir | --localedir | --localedi | --localed | --locale)
-    ac_prev=localedir ;;
-  -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
-    localedir=$ac_optarg ;;
-
-  -localstatedir | --localstatedir | --localstatedi | --localstated \
-  | --localstate | --localstat | --localsta | --localst | --locals)
-    ac_prev=localstatedir ;;
-  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
-  | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
-    localstatedir=$ac_optarg ;;
-
-  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
-    ac_prev=mandir ;;
-  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
-    mandir=$ac_optarg ;;
-
-  -nfp | --nfp | --nf)
-    # Obsolete; use --without-fp.
-    with_fp=no ;;
-
-  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
-  | --no-cr | --no-c | -n)
-    no_create=yes ;;
-
-  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
-  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
-    no_recursion=yes ;;
-
-  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
-  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
-  | --oldin | --oldi | --old | --ol | --o)
-    ac_prev=oldincludedir ;;
-  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
-  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
-  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
-    oldincludedir=$ac_optarg ;;
-
-  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
-    ac_prev=prefix ;;
-  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
-    prefix=$ac_optarg ;;
-
-  -program-prefix | --program-prefix | --program-prefi | --program-pref \
-  | --program-pre | --program-pr | --program-p)
-    ac_prev=program_prefix ;;
-  -program-prefix=* | --program-prefix=* | --program-prefi=* \
-  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
-    program_prefix=$ac_optarg ;;
-
-  -program-suffix | --program-suffix | --program-suffi | --program-suff \
-  | --program-suf | --program-su | --program-s)
-    ac_prev=program_suffix ;;
-  -program-suffix=* | --program-suffix=* | --program-suffi=* \
-  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
-    program_suffix=$ac_optarg ;;
-
-  -program-transform-name | --program-transform-name \
-  | --program-transform-nam | --program-transform-na \
-  | --program-transform-n | --program-transform- \
-  | --program-transform | --program-transfor \
-  | --program-transfo | --program-transf \
-  | --program-trans | --program-tran \
-  | --progr-tra | --program-tr | --program-t)
-    ac_prev=program_transform_name ;;
-  -program-transform-name=* | --program-transform-name=* \
-  | --program-transform-nam=* | --program-transform-na=* \
-  | --program-transform-n=* | --program-transform-=* \
-  | --program-transform=* | --program-transfor=* \
-  | --program-transfo=* | --program-transf=* \
-  | --program-trans=* | --program-tran=* \
-  | --progr-tra=* | --program-tr=* | --program-t=*)
-    program_transform_name=$ac_optarg ;;
-
-  -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
-    ac_prev=pdfdir ;;
-  -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
-    pdfdir=$ac_optarg ;;
-
-  -psdir | --psdir | --psdi | --psd | --ps)
-    ac_prev=psdir ;;
-  -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
-    psdir=$ac_optarg ;;
-
-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-  | -silent | --silent | --silen | --sile | --sil)
-    silent=yes ;;
-
-  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
-    ac_prev=sbindir ;;
-  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
-  | --sbi=* | --sb=*)
-    sbindir=$ac_optarg ;;
-
-  -sharedstatedir | --sharedstatedir | --sharedstatedi \
-  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
-  | --sharedst | --shareds | --shared | --share | --shar \
-  | --sha | --sh)
-    ac_prev=sharedstatedir ;;
-  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
-  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
-  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
-  | --sha=* | --sh=*)
-    sharedstatedir=$ac_optarg ;;
-
-  -site | --site | --sit)
-    ac_prev=site ;;
-  -site=* | --site=* | --sit=*)
-    site=$ac_optarg ;;
-
-  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
-    ac_prev=srcdir ;;
-  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
-    srcdir=$ac_optarg ;;
-
-  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
-  | --syscon | --sysco | --sysc | --sys | --sy)
-    ac_prev=sysconfdir ;;
-  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
-  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
-    sysconfdir=$ac_optarg ;;
-
-  -target | --target | --targe | --targ | --tar | --ta | --t)
-    ac_prev=target_alias ;;
-  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
-    target_alias=$ac_optarg ;;
-
-  -v | -verbose | --verbose | --verbos | --verbo | --verb)
-    verbose=yes ;;
-
-  -version | --version | --versio | --versi | --vers | -V)
-    ac_init_version=: ;;
-
-  -with-* | --with-*)
-    ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid package name: $ac_package" >&2
-   { (exit 1); exit 1; }; }
-    ac_package=`echo $ac_package | sed 's/[-.]/_/g'`
-    eval with_$ac_package=\$ac_optarg ;;
-
-  -without-* | --without-*)
-    ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid package name: $ac_package" >&2
-   { (exit 1); exit 1; }; }
-    ac_package=`echo $ac_package | sed 's/[-.]/_/g'`
-    eval with_$ac_package=no ;;
-
-  --x)
-    # Obsolete; use --with-x.
-    with_x=yes ;;
-
-  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
-  | --x-incl | --x-inc | --x-in | --x-i)
-    ac_prev=x_includes ;;
-  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
-  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
-    x_includes=$ac_optarg ;;
-
-  -x-libraries | --x-libraries | --x-librarie | --x-librari \
-  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
-    ac_prev=x_libraries ;;
-  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
-  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
-    x_libraries=$ac_optarg ;;
-
-  -*) { echo "$as_me: error: unrecognized option: $ac_option
-Try \`$0 --help' for more information." >&2
-   { (exit 1); exit 1; }; }
-    ;;
-
-  *=*)
-    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
-   { (exit 1); exit 1; }; }
-    eval $ac_envvar=\$ac_optarg
-    export $ac_envvar ;;
-
-  *)
-    # FIXME: should be removed in autoconf 3.0.
-    echo "$as_me: WARNING: you should use --build, --host, --target" >&2
-    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      echo "$as_me: WARNING: invalid host type: $ac_option" >&2
-    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
-    ;;
-
-  esac
-done
-
-if test -n "$ac_prev"; then
-  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
-  { echo "$as_me: error: missing argument to $ac_option" >&2
-   { (exit 1); exit 1; }; }
-fi
-
-# Be sure to have absolute directory names.
-for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
-		datadir sysconfdir sharedstatedir localstatedir includedir \
-		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
-		libdir localedir mandir
-do
-  eval ac_val=\$$ac_var
-  case $ac_val in
-    [\\/$]* | ?:[\\/]* )  continue;;
-    NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
-  esac
-  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
-   { (exit 1); exit 1; }; }
-done
-
-# There might be people who depend on the old broken behavior: `$host'
-# used to hold the argument of --host etc.
-# FIXME: To remove some day.
-build=$build_alias
-host=$host_alias
-target=$target_alias
-
-# FIXME: To remove some day.
-if test "x$host_alias" != x; then
-  if test "x$build_alias" = x; then
-    cross_compiling=maybe
-    echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
-    If a cross compiler is detected then cross compile mode will be used." >&2
-  elif test "x$build_alias" != "x$host_alias"; then
-    cross_compiling=yes
-  fi
-fi
-
-ac_tool_prefix=
-test -n "$host_alias" && ac_tool_prefix=$host_alias-
-
-test "$silent" = yes && exec 6>/dev/null
-
-
-ac_pwd=`pwd` && test -n "$ac_pwd" &&
-ac_ls_di=`ls -di .` &&
-ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
-  { echo "$as_me: error: Working directory cannot be determined" >&2
-   { (exit 1); exit 1; }; }
-test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
-  { echo "$as_me: error: pwd does not report name of working directory" >&2
-   { (exit 1); exit 1; }; }
-
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
-  ac_srcdir_defaulted=yes
-  # Try the directory containing this script, then the parent directory.
-  ac_confdir=`$as_dirname -- "$0" ||
-$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$0" : 'X\(//\)[^/]' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-echo X"$0" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-  srcdir=$ac_confdir
-  if test ! -r "$srcdir/$ac_unique_file"; then
-    srcdir=..
-  fi
-else
-  ac_srcdir_defaulted=no
-fi
-if test ! -r "$srcdir/$ac_unique_file"; then
-  test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
-  { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
-   { (exit 1); exit 1; }; }
-fi
-ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
-ac_abs_confdir=`(
-	cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2
-   { (exit 1); exit 1; }; }
-	pwd)`
-# When building in place, set srcdir=.
-if test "$ac_abs_confdir" = "$ac_pwd"; then
-  srcdir=.
-fi
-# Remove unnecessary trailing slashes from srcdir.
-# Double slashes in file names in object file debugging info
-# mess up M-x gdb in Emacs.
-case $srcdir in
-*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
-esac
-for ac_var in $ac_precious_vars; do
-  eval ac_env_${ac_var}_set=\${${ac_var}+set}
-  eval ac_env_${ac_var}_value=\$${ac_var}
-  eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
-  eval ac_cv_env_${ac_var}_value=\$${ac_var}
-done
-
-#
-# Report the --help message.
-#
-if test "$ac_init_help" = "long"; then
-  # Omit some internal or obsolete options to make the list less imposing.
-  # This message is too long to be a string in the A/UX 3.1 sh.
-  cat <<_ACEOF
-\`configure' configures cmor 2.0 to adapt to many kinds of systems.
-
-Usage: $0 [OPTION]... [VAR=VALUE]...
-
-To assign environment variables (e.g., CC, CFLAGS...), specify them as
-VAR=VALUE.  See below for descriptions of some of the useful variables.
-
-Defaults for the options are specified in brackets.
-
-Configuration:
-  -h, --help              display this help and exit
-      --help=short        display options specific to this package
-      --help=recursive    display the short help of all the included packages
-  -V, --version           display version information and exit
-  -q, --quiet, --silent   do not print \`checking...' messages
-      --cache-file=FILE   cache test results in FILE [disabled]
-  -C, --config-cache      alias for \`--cache-file=config.cache'
-  -n, --no-create         do not create output files
-      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
-
-Installation directories:
-  --prefix=PREFIX         install architecture-independent files in PREFIX
-			  [$ac_default_prefix]
-  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
-			  [PREFIX]
-
-By default, \`make install' will install all the files in
-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
-for instance \`--prefix=\$HOME'.
-
-For better control, use the options below.
-
-Fine tuning of the installation directories:
-  --bindir=DIR           user executables [EPREFIX/bin]
-  --sbindir=DIR          system admin executables [EPREFIX/sbin]
-  --libexecdir=DIR       program executables [EPREFIX/libexec]
-  --sysconfdir=DIR       read-only single-machine data [PREFIX/etc]
-  --sharedstatedir=DIR   modifiable architecture-independent data [PREFIX/com]
-  --localstatedir=DIR    modifiable single-machine data [PREFIX/var]
-  --libdir=DIR           object code libraries [EPREFIX/lib]
-  --includedir=DIR       C header files [PREFIX/include]
-  --oldincludedir=DIR    C header files for non-gcc [/usr/include]
-  --datarootdir=DIR      read-only arch.-independent data root [PREFIX/share]
-  --datadir=DIR          read-only architecture-independent data [DATAROOTDIR]
-  --infodir=DIR          info documentation [DATAROOTDIR/info]
-  --localedir=DIR        locale-dependent data [DATAROOTDIR/locale]
-  --mandir=DIR           man documentation [DATAROOTDIR/man]
-  --docdir=DIR           documentation root [DATAROOTDIR/doc/cmor]
-  --htmldir=DIR          html documentation [DOCDIR]
-  --dvidir=DIR           dvi documentation [DOCDIR]
-  --pdfdir=DIR           pdf documentation [DOCDIR]
-  --psdir=DIR            ps documentation [DOCDIR]
-_ACEOF
-
-  cat <<\_ACEOF
-
-System types:
-  --build=BUILD     configure for building on BUILD [guessed]
-  --host=HOST       cross-compile to build programs to run on HOST [BUILD]
-  --target=TARGET   configure for building compilers for TARGET [HOST]
-_ACEOF
-fi
-
-if test -n "$ac_init_help"; then
-  case $ac_init_help in
-     short | recursive ) echo "Configuration of cmor 2.0:";;
-   esac
-  cat <<\_ACEOF
-
-Optional Features:
-  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
-  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
-  --enable-verbose-test   enable verbose testing (default off)
-  --enable-color          enable colored output (default on)
-  --enable-debug          enable debug flag while commpiling (default on)
-  --enable-fortran        enable fortran api (default will try)
-
-Optional Packages:
-  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
-  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
-  --with-cdat             enable support for cdat put path root (w/o bin/cdat)
-  --with-python           enable support for python put path root (w/o
-                          bin/python)
-  --with-uuid             enable support for uuid in none standard location
-  --with-udunits2         enable support for udunits2 in none standard
-                          location
-  --with-netcdf           enable support for NetCDF in none standard location
-
-Some influential environment variables:
-  CC          C compiler command
-  CFLAGS      C compiler flags
-  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
-              nonstandard directory <lib dir>
-  LIBS        libraries to pass to the linker, e.g. -l<library>
-  CPPFLAGS    C/C++/Objective C preprocessor flags, e.g. -I<include dir> if
-              you have headers in a nonstandard directory <include dir>
-  CPP         C preprocessor
-  FC          Fortran compiler command
-  FCFLAGS     Fortran compiler flags
-
-Use these variables to override the choices made by `configure' or to help
-it to find libraries and programs with nonstandard names/locations.
-
-Report bugs to <doutriaux1 at llnl.gov>.
-_ACEOF
-ac_status=$?
-fi
-
-if test "$ac_init_help" = "recursive"; then
-  # If there are subdirs, report their specific --help.
-  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
-    test -d "$ac_dir" || continue
-    ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-  # A ".." for each directory in $ac_dir_suffix.
-  ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'`
-  case $ac_top_builddir_sub in
-  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
-  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
-  esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
-  .)  # We are building in place.
-    ac_srcdir=.
-    ac_top_srcdir=$ac_top_builddir_sub
-    ac_abs_top_srcdir=$ac_pwd ;;
-  [\\/]* | ?:[\\/]* )  # Absolute name.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir
-    ac_abs_top_srcdir=$srcdir ;;
-  *) # Relative name.
-    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_build_prefix$srcdir
-    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
-    cd "$ac_dir" || { ac_status=$?; continue; }
-    # Check for guested configure.
-    if test -f "$ac_srcdir/configure.gnu"; then
-      echo &&
-      $SHELL "$ac_srcdir/configure.gnu" --help=recursive
-    elif test -f "$ac_srcdir/configure"; then
-      echo &&
-      $SHELL "$ac_srcdir/configure" --help=recursive
-    else
-      echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
-    fi || ac_status=$?
-    cd "$ac_pwd" || { ac_status=$?; break; }
-  done
-fi
-
-test -n "$ac_init_help" && exit $ac_status
-if $ac_init_version; then
-  cat <<\_ACEOF
-cmor configure 2.0
-generated by GNU Autoconf 2.61
-
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-This configure script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it.
-_ACEOF
-  exit
-fi
-cat >config.log <<_ACEOF
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by cmor $as_me 2.0, which was
-generated by GNU Autoconf 2.61.  Invocation command line was
-
-  $ $0 $@
-
-_ACEOF
-exec 5>>config.log
-{
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
-
-/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
-/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
-/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
-/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
-/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
-
-_ASUNAME
-
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  echo "PATH: $as_dir"
-done
-IFS=$as_save_IFS
-
-} >&5
-
-cat >&5 <<_ACEOF
-
-
-## ----------- ##
-## Core tests. ##
-## ----------- ##
-
-_ACEOF
-
-
-# Keep a trace of the command line.
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Strip out --silent because we don't want to record it for future runs.
-# Also quote any args containing shell meta-characters.
-# Make two passes to allow for proper duplicate-argument suppression.
-ac_configure_args=
-ac_configure_args0=
-ac_configure_args1=
-ac_must_keep_next=false
-for ac_pass in 1 2
-do
-  for ac_arg
-  do
-    case $ac_arg in
-    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
-    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-    | -silent | --silent | --silen | --sile | --sil)
-      continue ;;
-    *\'*)
-      ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
-    esac
-    case $ac_pass in
-    1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
-    2)
-      ac_configure_args1="$ac_configure_args1 '$ac_arg'"
-      if test $ac_must_keep_next = true; then
-	ac_must_keep_next=false # Got value, back to normal.
-      else
-	case $ac_arg in
-	  *=* | --config-cache | -C | -disable-* | --disable-* \
-	  | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
-	  | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
-	  | -with-* | --with-* | -without-* | --without-* | --x)
-	    case "$ac_configure_args0 " in
-	      "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
-	    esac
-	    ;;
-	  -* ) ac_must_keep_next=true ;;
-	esac
-      fi
-      ac_configure_args="$ac_configure_args '$ac_arg'"
-      ;;
-    esac
-  done
-done
-$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
-$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
-
-# When interrupted or exit'd, cleanup temporary files, and complete
-# config.log.  We remove comments because anyway the quotes in there
-# would cause problems or look ugly.
-# WARNING: Use '\'' to represent an apostrophe within the trap.
-# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
-trap 'exit_status=$?
-  # Save into config.log some information that might help in debugging.
-  {
-    echo
-
-    cat <<\_ASBOX
-## ---------------- ##
-## Cache variables. ##
-## ---------------- ##
-_ASBOX
-    echo
-    # The following way of writing the cache mishandles newlines in values,
-(
-  for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
-    eval ac_val=\$$ac_var
-    case $ac_val in #(
-    *${as_nl}*)
-      case $ac_var in #(
-      *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5
-echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;;
-      esac
-      case $ac_var in #(
-      _ | IFS | as_nl) ;; #(
-      *) $as_unset $ac_var ;;
-      esac ;;
-    esac
-  done
-  (set) 2>&1 |
-    case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
-    *${as_nl}ac_space=\ *)
-      sed -n \
-	"s/'\''/'\''\\\\'\'''\''/g;
-	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
-      ;; #(
-    *)
-      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
-      ;;
-    esac |
-    sort
-)
-    echo
-
-    cat <<\_ASBOX
-## ----------------- ##
-## Output variables. ##
-## ----------------- ##
-_ASBOX
-    echo
-    for ac_var in $ac_subst_vars
-    do
-      eval ac_val=\$$ac_var
-      case $ac_val in
-      *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
-      esac
-      echo "$ac_var='\''$ac_val'\''"
-    done | sort
-    echo
-
-    if test -n "$ac_subst_files"; then
-      cat <<\_ASBOX
-## ------------------- ##
-## File substitutions. ##
-## ------------------- ##
-_ASBOX
-      echo
-      for ac_var in $ac_subst_files
-      do
-	eval ac_val=\$$ac_var
-	case $ac_val in
-	*\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
-	esac
-	echo "$ac_var='\''$ac_val'\''"
-      done | sort
-      echo
-    fi
-
-    if test -s confdefs.h; then
-      cat <<\_ASBOX
-## ----------- ##
-## confdefs.h. ##
-## ----------- ##
-_ASBOX
-      echo
-      cat confdefs.h
-      echo
-    fi
-    test "$ac_signal" != 0 &&
-      echo "$as_me: caught signal $ac_signal"
-    echo "$as_me: exit $exit_status"
-  } >&5
-  rm -f core *.core core.conftest.* &&
-    rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
-    exit $exit_status
-' 0
-for ac_signal in 1 2 13 15; do
-  trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
-done
-ac_signal=0
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -f -r conftest* confdefs.h
-
-# Predefined preprocessor variables.
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
-
-
-# Let the site file select an alternate cache file if it wants to.
-# Prefer explicitly selected file to automatically selected ones.
-if test -n "$CONFIG_SITE"; then
-  set x "$CONFIG_SITE"
-elif test "x$prefix" != xNONE; then
-  set x "$prefix/share/config.site" "$prefix/etc/config.site"
-else
-  set x "$ac_default_prefix/share/config.site" \
-	"$ac_default_prefix/etc/config.site"
-fi
-shift
-for ac_site_file
-do
-  if test -r "$ac_site_file"; then
-    { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
-echo "$as_me: loading site script $ac_site_file" >&6;}
-    sed 's/^/| /' "$ac_site_file" >&5
-    . "$ac_site_file"
-  fi
-done
-
-if test -r "$cache_file"; then
-  # Some versions of bash will fail to source /dev/null (special
-  # files actually), so we avoid doing that.
-  if test -f "$cache_file"; then
-    { echo "$as_me:$LINENO: loading cache $cache_file" >&5
-echo "$as_me: loading cache $cache_file" >&6;}
-    case $cache_file in
-      [\\/]* | ?:[\\/]* ) . "$cache_file";;
-      *)                      . "./$cache_file";;
-    esac
-  fi
-else
-  { echo "$as_me:$LINENO: creating cache $cache_file" >&5
-echo "$as_me: creating cache $cache_file" >&6;}
-  >$cache_file
-fi
-
-# Check that the precious variables saved in the cache have kept the same
-# value.
-ac_cache_corrupted=false
-for ac_var in $ac_precious_vars; do
-  eval ac_old_set=\$ac_cv_env_${ac_var}_set
-  eval ac_new_set=\$ac_env_${ac_var}_set
-  eval ac_old_val=\$ac_cv_env_${ac_var}_value
-  eval ac_new_val=\$ac_env_${ac_var}_value
-  case $ac_old_set,$ac_new_set in
-    set,)
-      { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,set)
-      { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,);;
-    *)
-      if test "x$ac_old_val" != "x$ac_new_val"; then
-	{ echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
-echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
-	{ echo "$as_me:$LINENO:   former value:  $ac_old_val" >&5
-echo "$as_me:   former value:  $ac_old_val" >&2;}
-	{ echo "$as_me:$LINENO:   current value: $ac_new_val" >&5
-echo "$as_me:   current value: $ac_new_val" >&2;}
-	ac_cache_corrupted=:
-      fi;;
-  esac
-  # Pass precious variables to config.status.
-  if test "$ac_new_set" = set; then
-    case $ac_new_val in
-    *\'*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
-    *) ac_arg=$ac_var=$ac_new_val ;;
-    esac
-    case " $ac_configure_args " in
-      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
-      *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
-    esac
-  fi
-done
-if $ac_cache_corrupted; then
-  { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
-echo "$as_me: error: changes in the environment can compromise the build" >&2;}
-  { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
-echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-GIT_TAG=`./get_git_version.sh`
-
-ac_aux_dir=
-for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
-  if test -f "$ac_dir/install-sh"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install-sh -c"
-    break
-  elif test -f "$ac_dir/install.sh"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install.sh -c"
-    break
-  elif test -f "$ac_dir/shtool"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/shtool install -c"
-    break
-  fi
-done
-if test -z "$ac_aux_dir"; then
-  { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5
-echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-# These three variables are undocumented and unsupported,
-# and are intended to be withdrawn in a future Autoconf release.
-# They can cause serious problems if a builder's source tree is in a directory
-# whose full name contains unusual characters.
-ac_config_guess="$SHELL $ac_aux_dir/config.guess"  # Please don't use this var.
-ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.
-ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
-
-
-# Make sure we can run config.sub.
-$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
-  { { echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5
-echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;}
-   { (exit 1); exit 1; }; }
-
-{ echo "$as_me:$LINENO: checking build system type" >&5
-echo $ECHO_N "checking build system type... $ECHO_C" >&6; }
-if test "${ac_cv_build+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_build_alias=$build_alias
-test "x$ac_build_alias" = x &&
-  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
-test "x$ac_build_alias" = x &&
-  { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
-echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
-   { (exit 1); exit 1; }; }
-ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
-  { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5
-echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;}
-   { (exit 1); exit 1; }; }
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_build" >&5
-echo "${ECHO_T}$ac_cv_build" >&6; }
-case $ac_cv_build in
-*-*-*) ;;
-*) { { echo "$as_me:$LINENO: error: invalid value of canonical build" >&5
-echo "$as_me: error: invalid value of canonical build" >&2;}
-   { (exit 1); exit 1; }; };;
-esac
-build=$ac_cv_build
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_build
-shift
-build_cpu=$1
-build_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-build_os=$*
-IFS=$ac_save_IFS
-case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
-
-
-{ echo "$as_me:$LINENO: checking host system type" >&5
-echo $ECHO_N "checking host system type... $ECHO_C" >&6; }
-if test "${ac_cv_host+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test "x$host_alias" = x; then
-  ac_cv_host=$ac_cv_build
-else
-  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
-    { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5
-echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_host" >&5
-echo "${ECHO_T}$ac_cv_host" >&6; }
-case $ac_cv_host in
-*-*-*) ;;
-*) { { echo "$as_me:$LINENO: error: invalid value of canonical host" >&5
-echo "$as_me: error: invalid value of canonical host" >&2;}
-   { (exit 1); exit 1; }; };;
-esac
-host=$ac_cv_host
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_host
-shift
-host_cpu=$1
-host_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-host_os=$*
-IFS=$ac_save_IFS
-case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
-
-
-{ echo "$as_me:$LINENO: checking target system type" >&5
-echo $ECHO_N "checking target system type... $ECHO_C" >&6; }
-if test "${ac_cv_target+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test "x$target_alias" = x; then
-  ac_cv_target=$ac_cv_host
-else
-  ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` ||
-    { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&5
-echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_target" >&5
-echo "${ECHO_T}$ac_cv_target" >&6; }
-case $ac_cv_target in
-*-*-*) ;;
-*) { { echo "$as_me:$LINENO: error: invalid value of canonical target" >&5
-echo "$as_me: error: invalid value of canonical target" >&2;}
-   { (exit 1); exit 1; }; };;
-esac
-target=$ac_cv_target
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_target
-shift
-target_cpu=$1
-target_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-target_os=$*
-IFS=$ac_save_IFS
-case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac
-
-
-# The aliases save the names the user supplied, while $host etc.
-# will get canonicalized.
-test -n "$target_alias" &&
-  test "$program_prefix$program_suffix$program_transform_name" = \
-    NONENONEs,x,x, &&
-  program_prefix=${target_alias}-
-echo "TARGET: "${target_os}
-RTAG="none"
-case ${target_os} in
- linux-*)
-   RTAG="-Wl,-rpath="
- ;;
- darwin*)
-   RTAG="-R"
- ;;
-esac
-
-CMOR_VERSION=${PACKAGE_VERSION}" (commit: ${GIT_TAG})"
-
-
-ac_config_files="$ac_config_files Makefile setup.py compile_line.txt"
-
-
-
-INCFILES="include/cmor.h  include/cmor_func_def.h include/cmor_md5.h "`ls -x --width=10000 include/cdTime/*.h include/cdTime/cdunifpp/*.h`
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-MACROS=""
-DEBUG=""
-
-OK_COLOR=""
-NO_COLOR=""
-
-# Check whether --enable-verbose-test was given.
-if test "${enable_verbose_test+set}" = set; then
-  enableval=$enable_verbose_test;
-fi
-
-if test "-"${enable_verbose_test} == "-yes" ; then
-  VERB=""
-else
-  VERB=">/dev/null 2>/dev/null"
-fi
-if test "-"${enable_verbose_test} == "-yes" ; then
-  VERB=""
-else
-  VERB=">/dev/null 2>/dev/null"
-fi
-
-# Check whether --enable-color was given.
-if test "${enable_color+set}" = set; then
-  enableval=$enable_color;
-if test "x${enableval}" == "xyes" ; then
-  MACROS=${MACROS}" -DCOLOREDOUTPUT"
-  NO_COLOR="NO_COLOR2"
-  OK_COLOR="OK_COLOR2"
-fi
-
-else
-
-MACROS=${MACROS}" -DCOLOREDOUTPUT"
-NO_COLOR="NO_COLOR2"
-OK_COLOR="OK_COLOR2"
-
-fi
-
-# Check whether --enable-debug was given.
-if test "${enable_debug+set}" = set; then
-  enableval=$enable_debug; enable_debug=yes
-else
-  enable_debug=yes
-fi
-
-if test ${enable_debug} == "yes" ; then
-  DEBUG="-g"
-fi
-
-LIBFILES="cmor.o cmor_axes.o cmor_variables.o cmor_tables.o cdTimeConv.o cdUtil.o timeConv.o timeArith.o cmor_grids.o cmor_md5.o "
-LIBFFILES="cmor_cfortran_interface.o cmor_fortran_interface.o"
-
-# Check whether --enable-fortran was given.
-if test "${enable_fortran+set}" = set; then
-  enableval=$enable_fortran;
-fi
-
-enable_fortran="-"${enable_fortran}
-TEST_FORTRAN="test_fortran"
-if test ${enable_fortran} == "-no" ; then
-  FC=""
-  F77=""
-  FFLAGS=""
-  FCFLAGS=""
-  TEST_FORTRAN=" "
-  MODFILES=" "
-else
-  LIBFILES=${LIBFILES}" "${LIBFFILES}
-  MODFILES="cmor_users_functions.*"
-fi
-
-CDATPREFIX=" "
-MAKETESTPYTHON=" "
-
-# Check whether --with-cdat was given.
-if test "${with_cdat+set}" = set; then
-  withval=$with_cdat;
-else
-  with_cdat="no"
-fi
-
-with_cdatb="-"${with_cdat}
-if  test ${with_cdatb} != "-yes"   ; then
-  if  test ${with_cdatb} != "-no"  ; then
-    PYTHONEXEC=${with_cdat}/bin/cdat
-    MAKEDEPPYTHON="python"
-    MAKETESTPYTHON="test_python"
-    CDATPREFIX="--prefix="${with_cdat}
-  else
-    PYTHONEXEC=" "
-    MAKEDEPPYTHON=" "
-  fi
-else
-  PYTHONEXEC="cdat"
-  MAKEDEPPYTHON="python"
-  MAKETESTPYTHON="test_python"
-fi
-
-# Check whether --with-python was given.
-if test "${with_python+set}" = set; then
-  withval=$with_python;
-else
-  with_python="no"
-fi
-
-with_pythonb="-"${with_python}
-if  test ${with_pythonb} != "-yes"   ; then
-  if  test ${with_pythonb} != "-no"  ; then
-    PYTHONEXEC=${with_python}/bin/python
-    MAKEDEPPYTHON="python"
-  fi
-else
-  PYTHONEXEC="python"
-  MAKEDEPPYTHON="python"
-fi
-
-
-
-
-
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_CC="${ac_tool_prefix}gcc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_CC"; then
-  ac_ct_CC=$CC
-  # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_CC="gcc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-  if test "x$ac_ct_CC" = x; then
-    CC=""
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf at gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf at gnu.org." >&2;}
-ac_tool_warned=yes ;;
-esac
-    CC=$ac_ct_CC
-  fi
-else
-  CC="$ac_cv_prog_CC"
-fi
-
-if test -z "$CC"; then
-          if test -n "$ac_tool_prefix"; then
-    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_CC="${ac_tool_prefix}cc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-  fi
-fi
-if test -z "$CC"; then
-  # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-  ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
-       ac_prog_rejected=yes
-       continue
-     fi
-    ac_cv_prog_CC="cc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-if test $ac_prog_rejected = yes; then
-  # We found a bogon in the path, so make sure we never use it.
-  set dummy $ac_cv_prog_CC
-  shift
-  if test $# != 0; then
-    # We chose a different compiler from the bogus one.
-    # However, it has the same basename, so the bogon will be chosen
-    # first if we set CC to just the basename; use the full file name.
-    shift
-    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
-  fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-fi
-if test -z "$CC"; then
-  if test -n "$ac_tool_prefix"; then
-  for ac_prog in cl.exe
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-    test -n "$CC" && break
-  done
-fi
-if test -z "$CC"; then
-  ac_ct_CC=$CC
-  for ac_prog in cl.exe
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_CC="$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-  test -n "$ac_ct_CC" && break
-done
-
-  if test "x$ac_ct_CC" = x; then
-    CC=""
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf at gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf at gnu.org." >&2;}
-ac_tool_warned=yes ;;
-esac
-    CC=$ac_ct_CC
-  fi
-fi
-
-fi
-
-
-test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&5
-echo "$as_me: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-
-# Provide some information about the compiler.
-echo "$as_me:$LINENO: checking for C compiler version" >&5
-ac_compiler=`set X $ac_compile; echo $2`
-{ (ac_try="$ac_compiler --version >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compiler --version >&5") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (ac_try="$ac_compiler -v >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compiler -v >&5") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (ac_try="$ac_compiler -V >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compiler -V >&5") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files a.out a.exe b.out"
-# Try to create an executable without -o first, disregard a.out.
-# It will help us diagnose broken compilers, and finding out an intuition
-# of exeext.
-{ echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
-echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6; }
-ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
-#
-# List of possible output files, starting from the most likely.
-# The algorithm is not robust to junk in `.', hence go to wildcards (a.*)
-# only as a last resort.  b.out is created by i960 compilers.
-ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out'
-#
-# The IRIX 6 linker writes into existing files which may not be
-# executable, retaining their permissions.  Remove them first so a
-# subsequent execution test works.
-ac_rmfiles=
-for ac_file in $ac_files
-do
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;;
-    * ) ac_rmfiles="$ac_rmfiles $ac_file";;
-  esac
-done
-rm -f $ac_rmfiles
-
-if { (ac_try="$ac_link_default"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link_default") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-  # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
-# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
-# in a Makefile.  We should not override ac_cv_exeext if it was cached,
-# so that the user can short-circuit this test for compilers unknown to
-# Autoconf.
-for ac_file in $ac_files ''
-do
-  test -f "$ac_file" || continue
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj )
-	;;
-    [ab].out )
-	# We found the default executable, but exeext='' is most
-	# certainly right.
-	break;;
-    *.* )
-        if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
-	then :; else
-	   ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-	fi
-	# We set ac_cv_exeext here because the later test for it is not
-	# safe: cross compilers may not add the suffix if given an `-o'
-	# argument, so we may need to know it at that point already.
-	# Even if this section looks crufty: it has the advantage of
-	# actually working.
-	break;;
-    * )
-	break;;
-  esac
-done
-test "$ac_cv_exeext" = no && ac_cv_exeext=
-
-else
-  ac_file=''
-fi
-
-{ echo "$as_me:$LINENO: result: $ac_file" >&5
-echo "${ECHO_T}$ac_file" >&6; }
-if test -z "$ac_file"; then
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { echo "$as_me:$LINENO: error: C compiler cannot create executables
-See \`config.log' for more details." >&5
-echo "$as_me: error: C compiler cannot create executables
-See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }
-fi
-
-ac_exeext=$ac_cv_exeext
-
-# Check that the compiler produces executables we can run.  If not, either
-# the compiler is broken, or we cross compile.
-{ echo "$as_me:$LINENO: checking whether the C compiler works" >&5
-echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6; }
-# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
-# If not cross compiling, check that we can run a simple program.
-if test "$cross_compiling" != yes; then
-  if { ac_try='./$ac_file'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-    cross_compiling=no
-  else
-    if test "$cross_compiling" = maybe; then
-	cross_compiling=yes
-    else
-	{ { echo "$as_me:$LINENO: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-    fi
-  fi
-fi
-{ echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-
-rm -f a.out a.exe conftest$ac_cv_exeext b.out
-ac_clean_files=$ac_clean_files_save
-# Check that the compiler produces executables we can run.  If not, either
-# the compiler is broken, or we cross compile.
-{ echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
-echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6; }
-{ echo "$as_me:$LINENO: result: $cross_compiling" >&5
-echo "${ECHO_T}$cross_compiling" >&6; }
-
-{ echo "$as_me:$LINENO: checking for suffix of executables" >&5
-echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; }
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-  # If both `conftest.exe' and `conftest' are `present' (well, observable)
-# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
-# work properly (i.e., refer to `conftest.exe'), while it won't with
-# `rm'.
-for ac_file in conftest.exe conftest conftest.*; do
-  test -f "$ac_file" || continue
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;;
-    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-	  break;;
-    * ) break;;
-  esac
-done
-else
-  { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-rm -f conftest$ac_cv_exeext
-{ echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
-echo "${ECHO_T}$ac_cv_exeext" >&6; }
-
-rm -f conftest.$ac_ext
-EXEEXT=$ac_cv_exeext
-ac_exeext=$EXEEXT
-{ echo "$as_me:$LINENO: checking for suffix of object files" >&5
-echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6; }
-if test "${ac_cv_objext+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.o conftest.obj
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-  for ac_file in conftest.o conftest.obj conftest.*; do
-  test -f "$ac_file" || continue;
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;;
-    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
-       break;;
-  esac
-done
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-rm -f conftest.$ac_cv_objext conftest.$ac_ext
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
-echo "${ECHO_T}$ac_cv_objext" >&6; }
-OBJEXT=$ac_cv_objext
-ac_objext=$OBJEXT
-{ echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
-echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; }
-if test "${ac_cv_c_compiler_gnu+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-#ifndef __GNUC__
-       choke me
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_compiler_gnu=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_compiler_gnu=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
-echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; }
-GCC=`test $ac_compiler_gnu = yes && echo yes`
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-{ echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
-echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; }
-if test "${ac_cv_prog_cc_g+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_save_c_werror_flag=$ac_c_werror_flag
-   ac_c_werror_flag=yes
-   ac_cv_prog_cc_g=no
-   CFLAGS="-g"
-   cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_prog_cc_g=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	CFLAGS=""
-      cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_c_werror_flag=$ac_save_c_werror_flag
-	 CFLAGS="-g"
-	 cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_prog_cc_g=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-   ac_c_werror_flag=$ac_save_c_werror_flag
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
-  CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
-  if test "$GCC" = yes; then
-    CFLAGS="-g -O2"
-  else
-    CFLAGS="-g"
-  fi
-else
-  if test "$GCC" = yes; then
-    CFLAGS="-O2"
-  else
-    CFLAGS=
-  fi
-fi
-{ echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5
-echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; }
-if test "${ac_cv_prog_cc_c89+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_cv_prog_cc_c89=no
-ac_save_CC=$CC
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stdarg.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
-     char **p;
-     int i;
-{
-  return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
-  char *s;
-  va_list v;
-  va_start (v,p);
-  s = g (p, va_arg (v,int));
-  va_end (v);
-  return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
-   function prototypes and stuff, but not '\xHH' hex character constants.
-   These don't provoke an error unfortunately, instead are silently treated
-   as 'x'.  The following induces an error, until -std is added to get
-   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
-   array size at least.  It's necessary to write '\x00'==0 to get something
-   that's true only with -std.  */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
-   inside strings and character constants.  */
-#define FOO(x) 'x'
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
-  ;
-  return 0;
-}
-_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
-	-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
-  CC="$ac_save_CC $ac_arg"
-  rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_prog_cc_c89=$ac_arg
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext
-  test "x$ac_cv_prog_cc_c89" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-
-fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c89" in
-  x)
-    { echo "$as_me:$LINENO: result: none needed" >&5
-echo "${ECHO_T}none needed" >&6; } ;;
-  xno)
-    { echo "$as_me:$LINENO: result: unsupported" >&5
-echo "${ECHO_T}unsupported" >&6; } ;;
-  *)
-    CC="$CC $ac_cv_prog_cc_c89"
-    { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
-echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6; }
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
-  CPP=
-fi
-if test -z "$CPP"; then
-  if test "${ac_cv_prog_CPP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-      # Double quotes because CPP needs to be expanded
-    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
-    do
-      ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-		     Syntax error
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Broken: fails on valid input.
-continue
-fi
-
-rm -f conftest.err conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  # Broken: success on invalid input.
-continue
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
-  break
-fi
-
-    done
-    ac_cv_prog_CPP=$CPP
-
-fi
-  CPP=$ac_cv_prog_CPP
-else
-  ac_cv_prog_CPP=$CPP
-fi
-{ echo "$as_me:$LINENO: result: $CPP" >&5
-echo "${ECHO_T}$CPP" >&6; }
-ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-		     Syntax error
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Broken: fails on valid input.
-continue
-fi
-
-rm -f conftest.err conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  # Broken: success on invalid input.
-continue
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
-  :
-else
-  { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&5
-echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-{ echo "$as_me:$LINENO: checking whether ln -s works" >&5
-echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6; }
-LN_S=$as_ln_s
-if test "$LN_S" = "ln -s"; then
-  { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no, using $LN_S" >&5
-echo "${ECHO_T}no, using $LN_S" >&6; }
-fi
-
-{ echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5
-echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6; }
-if test "${ac_cv_path_SED+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-            ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
-     for ac_i in 1 2 3 4 5 6 7; do
-       ac_script="$ac_script$as_nl$ac_script"
-     done
-     echo "$ac_script" | sed 99q >conftest.sed
-     $as_unset ac_script || ac_script=
-     # Extract the first word of "sed gsed" to use in msg output
-if test -z "$SED"; then
-set dummy sed gsed; ac_prog_name=$2
-if test "${ac_cv_path_SED+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_path_SED_found=false
-# Loop through the user's path and test for each of PROGNAME-LIST
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_prog in sed gsed; do
-  for ac_exec_ext in '' $ac_executable_extensions; do
-    ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
-    { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue
-    # Check for GNU ac_path_SED and select it if it is found.
-  # Check for GNU $ac_path_SED
-case `"$ac_path_SED" --version 2>&1` in
-*GNU*)
-  ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
-*)
-  ac_count=0
-  echo $ECHO_N "0123456789$ECHO_C" >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    echo '' >> "conftest.nl"
-    "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    ac_count=`expr $ac_count + 1`
-    if test $ac_count -gt ${ac_path_SED_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_SED="$ac_path_SED"
-      ac_path_SED_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
-
-    $ac_path_SED_found && break 3
-  done
-done
-
-done
-IFS=$as_save_IFS
-
-
-fi
-
-SED="$ac_cv_path_SED"
-if test -z "$SED"; then
-  { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in \$PATH" >&5
-echo "$as_me: error: no acceptable $ac_prog_name could be found in \$PATH" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-else
-  ac_cv_path_SED=$SED
-fi
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_path_SED" >&5
-echo "${ECHO_T}$ac_cv_path_SED" >&6; }
- SED="$ac_cv_path_SED"
-  rm -f conftest.sed
-
-{ echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5
-echo $ECHO_N "checking for a thread-safe mkdir -p... $ECHO_C" >&6; }
-if test -z "$MKDIR_P"; then
-  if test "${ac_cv_path_mkdir+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_prog in mkdir gmkdir; do
-	 for ac_exec_ext in '' $ac_executable_extensions; do
-	   { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
-	   case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
-	     'mkdir (GNU coreutils) '* | \
-	     'mkdir (coreutils) '* | \
-	     'mkdir (fileutils) '4.1*)
-	       ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
-	       break 3;;
-	   esac
-	 done
-       done
-done
-IFS=$as_save_IFS
-
-fi
-
-  if test "${ac_cv_path_mkdir+set}" = set; then
-    MKDIR_P="$ac_cv_path_mkdir -p"
-  else
-    # As a last resort, use the slow shell script.  Don't cache a
-    # value for MKDIR_P within a source directory, because that will
-    # break other packages using the cache if that directory is
-    # removed, or if the value is a relative name.
-    test -d ./--version && rmdir ./--version
-    MKDIR_P="$ac_install_sh -d"
-  fi
-fi
-{ echo "$as_me:$LINENO: result: $MKDIR_P" >&5
-echo "${ECHO_T}$MKDIR_P" >&6; }
-
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_RANLIB+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$RANLIB"; then
-  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-RANLIB=$ac_cv_prog_RANLIB
-if test -n "$RANLIB"; then
-  { echo "$as_me:$LINENO: result: $RANLIB" >&5
-echo "${ECHO_T}$RANLIB" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_RANLIB"; then
-  ac_ct_RANLIB=$RANLIB
-  # Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_RANLIB"; then
-  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_RANLIB="ranlib"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
-if test -n "$ac_ct_RANLIB"; then
-  { echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
-echo "${ECHO_T}$ac_ct_RANLIB" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-  if test "x$ac_ct_RANLIB" = x; then
-    RANLIB=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf at gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf at gnu.org." >&2;}
-ac_tool_warned=yes ;;
-esac
-    RANLIB=$ac_ct_RANLIB
-  fi
-else
-  RANLIB="$ac_cv_prog_RANLIB"
-fi
-
-if test ${enable_fortran} != "-no" ; then
-  ac_ext=${ac_fc_srcext-f}
-ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5'
-ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_fc_compiler_gnu
-if test -n "$ac_tool_prefix"; then
-  for ac_prog in gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn xlf90 f90 pgf90 pghpf epcf90 g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_FC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$FC"; then
-  ac_cv_prog_FC="$FC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_FC="$ac_tool_prefix$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-FC=$ac_cv_prog_FC
-if test -n "$FC"; then
-  { echo "$as_me:$LINENO: result: $FC" >&5
-echo "${ECHO_T}$FC" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-    test -n "$FC" && break
-  done
-fi
-if test -z "$FC"; then
-  ac_ct_FC=$FC
-  for ac_prog in gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn xlf90 f90 pgf90 pghpf epcf90 g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_prog_ac_ct_FC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_FC"; then
-  ac_cv_prog_ac_ct_FC="$ac_ct_FC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_FC="$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_FC=$ac_cv_prog_ac_ct_FC
-if test -n "$ac_ct_FC"; then
-  { echo "$as_me:$LINENO: result: $ac_ct_FC" >&5
-echo "${ECHO_T}$ac_ct_FC" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-  test -n "$ac_ct_FC" && break
-done
-
-  if test "x$ac_ct_FC" = x; then
-    FC=""
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf at gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf at gnu.org." >&2;}
-ac_tool_warned=yes ;;
-esac
-    FC=$ac_ct_FC
-  fi
-fi
-
-
-# Provide some information about the compiler.
-echo "$as_me:$LINENO: checking for Fortran compiler version" >&5
-ac_compiler=`set X $ac_compile; echo $2`
-{ (ac_try="$ac_compiler --version >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compiler --version >&5") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (ac_try="$ac_compiler -v >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compiler -v >&5") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (ac_try="$ac_compiler -V >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compiler -V >&5") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-rm -f a.out
-
-# If we don't use `.F' as extension, the preprocessor is not run on the
-# input file.  (Note that this only needs to work for GNU compilers.)
-ac_save_ext=$ac_ext
-ac_ext=F
-{ echo "$as_me:$LINENO: checking whether we are using the GNU Fortran compiler" >&5
-echo $ECHO_N "checking whether we are using the GNU Fortran compiler... $ECHO_C" >&6; }
-if test "${ac_cv_fc_compiler_gnu+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-      program main
-#ifndef __GNUC__
-       choke me
-#endif
-
-      end
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_fc_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_compiler_gnu=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_compiler_gnu=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_fc_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_fc_compiler_gnu" >&5
-echo "${ECHO_T}$ac_cv_fc_compiler_gnu" >&6; }
-ac_ext=$ac_save_ext
-ac_test_FFLAGS=${FCFLAGS+set}
-ac_save_FFLAGS=$FCFLAGS
-FCFLAGS=
-{ echo "$as_me:$LINENO: checking whether $FC accepts -g" >&5
-echo $ECHO_N "checking whether $FC accepts -g... $ECHO_C" >&6; }
-if test "${ac_cv_prog_fc_g+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  FCFLAGS=-g
-cat >conftest.$ac_ext <<_ACEOF
-      program main
-
-      end
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_fc_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_prog_fc_g=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_prog_fc_g=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_prog_fc_g" >&5
-echo "${ECHO_T}$ac_cv_prog_fc_g" >&6; }
-if test "$ac_test_FFLAGS" = set; then
-  FCFLAGS=$ac_save_FFLAGS
-elif test $ac_cv_prog_fc_g = yes; then
-  if test "x$ac_cv_fc_compiler_gnu" = xyes; then
-    FCFLAGS="-g -O2"
-  else
-    FCFLAGS="-g"
-  fi
-else
-  if test "x$ac_cv_fc_compiler_gnu" = xyes; then
-    FCFLAGS="-O2"
-  else
-    FCFLAGS=
-  fi
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-ac_ext=${ac_fc_srcext-f}
-ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5'
-ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_fc_compiler_gnu
-{ echo "$as_me:$LINENO: checking how to get verbose linking output from $FC" >&5
-echo $ECHO_N "checking how to get verbose linking output from $FC... $ECHO_C" >&6; }
-if test "${ac_cv_prog_fc_v+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-      program main
-
-      end
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_fc_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_prog_fc_v=
-# Try some options frequently used verbose output
-for ac_verb in -v -verbose --verbose -V -\#\#\#; do
-  cat >conftest.$ac_ext <<_ACEOF
-      program main
-
-      end
-_ACEOF
-
-# Compile and link our simple test program by passing a flag (argument
-# 1 to this macro) to the Fortran compiler in order to get
-# "verbose" output that we can then parse for the Fortran linker
-# flags.
-ac_save_FFLAGS=$FCFLAGS
-FCFLAGS="$FCFLAGS $ac_verb"
-eval "set x $ac_link"
-shift
-echo "$as_me:$LINENO: $*" >&5
-ac_fc_v_output=`eval $ac_link 5>&1 2>&1 | grep -v 'Driving:'`
-echo "$ac_fc_v_output" >&5
-FCFLAGS=$ac_save_FFLAGS
-
-rm -f -r conftest*
-
-# On HP/UX there is a line like: "LPATH is: /foo:/bar:/baz" where
-# /foo, /bar, and /baz are search directories for the Fortran linker.
-# Here, we change these into -L/foo -L/bar -L/baz (and put it first):
-ac_fc_v_output="`echo $ac_fc_v_output |
-	grep 'LPATH is:' |
-	sed 's,.*LPATH is\(: *[^ ]*\).*,\1,;s,: */, -L/,g'` $ac_fc_v_output"
-
-# FIXME: we keep getting bitten by quoted arguments; a more general fix
-#        that detects unbalanced quotes in FLIBS should be implemented
-#        and (ugh) tested at some point.
-case $ac_fc_v_output in
-  # If we are using xlf then replace all the commas with spaces.
-  *xlfentry*)
-    ac_fc_v_output=`echo $ac_fc_v_output | sed 's/,/ /g'` ;;
-
-  # With Intel ifc, ignore the quoted -mGLOB_options_string stuff (quoted
-  # $LIBS confuse us, and the libraries appear later in the output anyway).
-  *mGLOB_options_string*)
-    ac_fc_v_output=`echo $ac_fc_v_output | sed 's/"-mGLOB[^"]*"/ /g'` ;;
-
-  # Portland Group compiler has singly- or doubly-quoted -cmdline argument
-  # Singly-quoted arguments were reported for versions 5.2-4 and 6.0-4.
-  # Doubly-quoted arguments were reported for "PGF90/x86 Linux/x86 5.0-2".
-  *-cmdline\ * | *-ignore\ * | *-def\ *)
-    ac_fc_v_output=`echo $ac_fc_v_output | sed "\
-        s/-cmdline  *'[^']*'/ /g; s/-cmdline  *\"[^\"]*\"/ /g
-        s/-ignore  *'[^']*'/ /g; s/-ignore  *\"[^\"]*\"/ /g
-        s/-def  *'[^']*'/ /g; s/-def  *\"[^\"]*\"/ /g"` ;;
-
-  # If we are using Cray Fortran then delete quotes.
-  *cft90*)
-    ac_fc_v_output=`echo $ac_fc_v_output | sed 's/"//g'` ;;
-esac
-
-
-  # look for -l* and *.a constructs in the output
-  for ac_arg in $ac_fc_v_output; do
-     case $ac_arg in
-        [\\/]*.a | ?:[\\/]*.a | -[lLRu]*)
-          ac_cv_prog_fc_v=$ac_verb
-          break 2 ;;
-     esac
-  done
-done
-if test -z "$ac_cv_prog_fc_v"; then
-   { echo "$as_me:$LINENO: WARNING: cannot determine how to obtain linking information from $FC" >&5
-echo "$as_me: WARNING: cannot determine how to obtain linking information from $FC" >&2;}
-fi
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	{ echo "$as_me:$LINENO: WARNING: compilation failed" >&5
-echo "$as_me: WARNING: compilation failed" >&2;}
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_prog_fc_v" >&5
-echo "${ECHO_T}$ac_cv_prog_fc_v" >&6; }
-{ echo "$as_me:$LINENO: checking for Fortran libraries of $FC" >&5
-echo $ECHO_N "checking for Fortran libraries of $FC... $ECHO_C" >&6; }
-if test "${ac_cv_fc_libs+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test "x$FCLIBS" != "x"; then
-  ac_cv_fc_libs="$FCLIBS" # Let the user override the test.
-else
-
-cat >conftest.$ac_ext <<_ACEOF
-      program main
-
-      end
-_ACEOF
-
-# Compile and link our simple test program by passing a flag (argument
-# 1 to this macro) to the Fortran compiler in order to get
-# "verbose" output that we can then parse for the Fortran linker
-# flags.
-ac_save_FFLAGS=$FCFLAGS
-FCFLAGS="$FCFLAGS $ac_cv_prog_fc_v"
-eval "set x $ac_link"
-shift
-echo "$as_me:$LINENO: $*" >&5
-ac_fc_v_output=`eval $ac_link 5>&1 2>&1 | grep -v 'Driving:'`
-echo "$ac_fc_v_output" >&5
-FCFLAGS=$ac_save_FFLAGS
-
-rm -f -r conftest*
-
-# On HP/UX there is a line like: "LPATH is: /foo:/bar:/baz" where
-# /foo, /bar, and /baz are search directories for the Fortran linker.
-# Here, we change these into -L/foo -L/bar -L/baz (and put it first):
-ac_fc_v_output="`echo $ac_fc_v_output |
-	grep 'LPATH is:' |
-	sed 's,.*LPATH is\(: *[^ ]*\).*,\1,;s,: */, -L/,g'` $ac_fc_v_output"
-
-# FIXME: we keep getting bitten by quoted arguments; a more general fix
-#        that detects unbalanced quotes in FLIBS should be implemented
-#        and (ugh) tested at some point.
-case $ac_fc_v_output in
-  # If we are using xlf then replace all the commas with spaces.
-  *xlfentry*)
-    ac_fc_v_output=`echo $ac_fc_v_output | sed 's/,/ /g'` ;;
-
-  # With Intel ifc, ignore the quoted -mGLOB_options_string stuff (quoted
-  # $LIBS confuse us, and the libraries appear later in the output anyway).
-  *mGLOB_options_string*)
-    ac_fc_v_output=`echo $ac_fc_v_output | sed 's/"-mGLOB[^"]*"/ /g'` ;;
-
-  # Portland Group compiler has singly- or doubly-quoted -cmdline argument
-  # Singly-quoted arguments were reported for versions 5.2-4 and 6.0-4.
-  # Doubly-quoted arguments were reported for "PGF90/x86 Linux/x86 5.0-2".
-  *-cmdline\ * | *-ignore\ * | *-def\ *)
-    ac_fc_v_output=`echo $ac_fc_v_output | sed "\
-        s/-cmdline  *'[^']*'/ /g; s/-cmdline  *\"[^\"]*\"/ /g
-        s/-ignore  *'[^']*'/ /g; s/-ignore  *\"[^\"]*\"/ /g
-        s/-def  *'[^']*'/ /g; s/-def  *\"[^\"]*\"/ /g"` ;;
-
-  # If we are using Cray Fortran then delete quotes.
-  *cft90*)
-    ac_fc_v_output=`echo $ac_fc_v_output | sed 's/"//g'` ;;
-esac
-
-
-
-ac_cv_fc_libs=
-
-# Save positional arguments (if any)
-ac_save_positional="$@"
-
-set X $ac_fc_v_output
-while test $# != 1; do
-  shift
-  ac_arg=$1
-  case $ac_arg in
-        [\\/]*.a | ?:[\\/]*.a)
-            ac_exists=false
-  for ac_i in $ac_cv_fc_libs; do
-    if test x"$ac_arg" = x"$ac_i"; then
-      ac_exists=true
-      break
-    fi
-  done
-
-  if test x"$ac_exists" = xtrue; then
-  :
-else
-  ac_cv_fc_libs="$ac_cv_fc_libs $ac_arg"
-fi
-
-          ;;
-        -bI:*)
-            ac_exists=false
-  for ac_i in $ac_cv_fc_libs; do
-    if test x"$ac_arg" = x"$ac_i"; then
-      ac_exists=true
-      break
-    fi
-  done
-
-  if test x"$ac_exists" = xtrue; then
-  :
-else
-  if test "$ac_compiler_gnu" = yes; then
-  for ac_link_opt in $ac_arg; do
-    ac_cv_fc_libs="$ac_cv_fc_libs -Xlinker $ac_link_opt"
-  done
-else
-  ac_cv_fc_libs="$ac_cv_fc_libs $ac_arg"
-fi
-fi
-
-          ;;
-          # Ignore these flags.
-        -lang* | -lcrt*.o | -lc | -lgcc* | -lSystem | -libmil | -LANG:=* | -LIST:* | -LNO:*)
-          ;;
-        -lkernel32)
-          test x"$CYGWIN" != xyes && ac_cv_fc_libs="$ac_cv_fc_libs $ac_arg"
-          ;;
-        -[LRuYz])
-          # These flags, when seen by themselves, take an argument.
-          # We remove the space between option and argument and re-iterate
-          # unless we find an empty arg or a new option (starting with -)
-	  case $2 in
-	     "" | -*);;
-	     *)
-		ac_arg="$ac_arg$2"
-		shift; shift
-		set X $ac_arg "$@"
-		;;
-	  esac
-          ;;
-        -YP,*)
-          for ac_j in `echo $ac_arg | sed -e 's/-YP,/-L/;s/:/ -L/g'`; do
-              ac_exists=false
-  for ac_i in $ac_cv_fc_libs; do
-    if test x"$ac_j" = x"$ac_i"; then
-      ac_exists=true
-      break
-    fi
-  done
-
-  if test x"$ac_exists" = xtrue; then
-  :
-else
-  ac_arg="$ac_arg $ac_j"
-                               ac_cv_fc_libs="$ac_cv_fc_libs $ac_j"
-fi
-
-          done
-          ;;
-        -[lLR]*)
-            ac_exists=false
-  for ac_i in $ac_cv_fc_libs; do
-    if test x"$ac_arg" = x"$ac_i"; then
-      ac_exists=true
-      break
-    fi
-  done
-
-  if test x"$ac_exists" = xtrue; then
-  :
-else
-  ac_cv_fc_libs="$ac_cv_fc_libs $ac_arg"
-fi
-
-          ;;
-	-zallextract*| -zdefaultextract)
-	  ac_cv_fc_libs="$ac_cv_fc_libs $ac_arg"
-	  ;;
-          # Ignore everything else.
-  esac
-done
-# restore positional arguments
-set X $ac_save_positional; shift
-
-# We only consider "LD_RUN_PATH" on Solaris systems.  If this is seen,
-# then we insist that the "run path" must be an absolute path (i.e. it
-# must begin with a "/").
-case `(uname -sr) 2>/dev/null` in
-   "SunOS 5"*)
-      ac_ld_run_path=`echo $ac_fc_v_output |
-                        sed -n 's,^.*LD_RUN_PATH *= *\(/[^ ]*\).*$,-R\1,p'`
-      test "x$ac_ld_run_path" != x &&
-        if test "$ac_compiler_gnu" = yes; then
-  for ac_link_opt in $ac_ld_run_path; do
-    ac_cv_fc_libs="$ac_cv_fc_libs -Xlinker $ac_link_opt"
-  done
-else
-  ac_cv_fc_libs="$ac_cv_fc_libs $ac_ld_run_path"
-fi
-      ;;
-esac
-fi # test "x$[]_AC_LANG_PREFIX[]LIBS" = "x"
-
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_fc_libs" >&5
-echo "${ECHO_T}$ac_cv_fc_libs" >&6; }
-FCLIBS="$ac_cv_fc_libs"
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-fi
-
-LDFLAGS=${LDFLAGS}" -lm "
-
-
-
-# Check whether --with-uuid was given.
-if test "${with_uuid+set}" = set; then
-  withval=$with_uuid;
-else
-  with_uuid="no"
-fi
-
-with_uuidb="-"${with_uuid}
-if  test ${with_uuidb} != "-yes"  ; then
-  if  test ${with_uuidb} != "-no"  ; then
-   UUIDFLAGS=" -I${with_uuid}/include"
-   if  test ${RTAG} != "none"  ; then
-     UUIDLDFLAGS=" -L${with_uuid}/lib  ${RTAG}${with_uuid}/lib -luuid"
-   else
-     UUIDLDFLAGS=" -L${with_uuid}/lib -luuid"
-   fi
-  else
-    UUIDLDFLAGS="-luuid"
-    UUIDFLAGS=""
-  fi
-else
-  UUIDLDFLAGS="-luuid"
-  UUIDFLAGS=""
-fi
-
-
-{ echo "$as_me:$LINENO: checking for uuid_create in -luuid" >&5
-echo $ECHO_N "checking for uuid_create in -luuid... $ECHO_C" >&6; }
-if test "${ac_cv_lib_uuid_uuid_create+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-luuid  ${UUIDFLAGS} ${UUIDLDFLAGS}   $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char uuid_create ();
-int
-main ()
-{
-return uuid_create ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_uuid_uuid_create=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_lib_uuid_uuid_create=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_uuid_uuid_create" >&5
-echo "${ECHO_T}$ac_cv_lib_uuid_uuid_create" >&6; }
-if test $ac_cv_lib_uuid_uuid_create = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBUUID 1
-_ACEOF
-
-  LIBS="-luuid $LIBS"
-
-else
-  { { echo "$as_me:$LINENO: error: Could not get a working uuid" >&5
-echo "$as_me: error: Could not get a working uuid" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-
-LIBS=""
-
-# Check whether --with-udunits2 was given.
-if test "${with_udunits2+set}" = set; then
-  withval=$with_udunits2;
-else
-  with_udunits2="no"
-fi
-
-with_udunits2b="-"${with_udunits2}
-if  test ${with_udunits2b} != "-yes"  ; then
-  if  test ${with_udunits2b} != "-no"  ; then
-   UDUNITS2FLAGS=" -I${with_udunits2}/include"
-   if  test ${RTAG} != "none"  ; then
-     UDUNITS2LDFLAGS=" -L${with_udunits2}/lib  ${RTAG}${with_udunits2}/lib -ludunits2 -lexpat"
-   else
-     UDUNITS2LDFLAGS=" -L${with_udunits2}/lib -ludunits2 -lexpat"
-   fi
-  else
-    UDUNITS2FLAGS="-ludunits2"
-    UDUNITS2LDFLAGS=""
-  fi
-else
-  UDUNITS2FLAGS="-ludunits2"
-  UDUNITS2LDFLAGS=""
-fi
-
-{ echo "$as_me:$LINENO: checking for ut_parse in -ludunits2" >&5
-echo $ECHO_N "checking for ut_parse in -ludunits2... $ECHO_C" >&6; }
-if test "${ac_cv_lib_udunits2_ut_parse+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ludunits2  ${UDUNITS2FLAGS} ${UDUNITS2LDFLAGS} -lm   $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char ut_parse ();
-int
-main ()
-{
-return ut_parse ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_udunits2_ut_parse=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_lib_udunits2_ut_parse=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_udunits2_ut_parse" >&5
-echo "${ECHO_T}$ac_cv_lib_udunits2_ut_parse" >&6; }
-if test $ac_cv_lib_udunits2_ut_parse = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBUDUNITS2 1
-_ACEOF
-
-  LIBS="-ludunits2 $LIBS"
-
-else
-  { { echo "$as_me:$LINENO: error: Could not get a working udunits2" >&5
-echo "$as_me: error: Could not get a working udunits2" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-LIBS=""
-
-
-
-# Check whether --with-netcdf was given.
-if test "${with_netcdf+set}" = set; then
-  withval=$with_netcdf;
-else
-  with_netcdf="no"
-fi
-
-with_netcdfb="-"${with_netcdf}
-if  test ${with_netcdfb} != "-yes" ; then
-  if  test ${with_netcdfb} != "-no"  ; then
-    as_ac_File=`echo "ac_cv_file_${with_netcdf}/bin/nc-config" | $as_tr_sh`
-{ echo "$as_me:$LINENO: checking for ${with_netcdf}/bin/nc-config" >&5
-echo $ECHO_N "checking for ${with_netcdf}/bin/nc-config... $ECHO_C" >&6; }
-if { as_var=$as_ac_File; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  test "$cross_compiling" = yes &&
-  { { echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5
-echo "$as_me: error: cannot check for file existence when cross compiling" >&2;}
-   { (exit 1); exit 1; }; }
-if test -r "${with_netcdf}/bin/nc-config"; then
-  eval "$as_ac_File=yes"
-else
-  eval "$as_ac_File=no"
-fi
-fi
-ac_res=`eval echo '${'$as_ac_File'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-if test `eval echo '${'$as_ac_File'}'` = yes; then
-  HAS_NCCONFIG=yes
-else
-  HAS_NCCONFIG=no
-fi
-
-    if  test ${HAS_NCCONFIG} == "yes"  ; then
-      NCCFLAGS=`${with_netcdf}/bin/nc-config --cflags`
-      NCLDFLAGS=`${with_netcdf}/bin/nc-config --libs`
-    else
-#echo "CRAP!"
-     NCCFLAGS=" -I${with_netcdf}/include"
-     if  test ${RTAG} != "none"  ; then
-      NCLDFLAGS=" -L${with_netcdf}/lib  ${RTAG}${with_netcdf}/lib -lnetcdf"
-     else
-      NCLDFLAGS=" -L${with_netcdf}/lib -lnetcdf"
-     fi
-    fi
-  else
-    NCCFLAGS="-lnetcdf"
-    NCLDFLAGS=""
-  fi
-else
-  # Extract the first word of "nc-config", so it can be a program name with args.
-set dummy nc-config; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-if test "${ac_cv_path_NCCONFIG+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $NCCONFIG in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_NCCONFIG="$NCCONFIG" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_NCCONFIG="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_path_NCCONFIG" && ac_cv_path_NCCONFIG=""no""
-  ;;
-esac
-fi
-NCCONFIG=$ac_cv_path_NCCONFIG
-if test -n "$NCCONFIG"; then
-  { echo "$as_me:$LINENO: result: $NCCONFIG" >&5
-echo "${ECHO_T}$NCCONFIG" >&6; }
-else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-fi
-
-
-  if  test NCCONFIG != "no"  ; then
-   NCCFLAGS=`${NCCONFIG} --cflags`
-   NCLDFLAGS=`${NCCONFIG} --libs`
-  else
-   NCCFLAGS="-lnetcdf"
-   NCLDFLAGS=""
-  fi
-fi
-
-CFLAGS=${NCCFLAGS}
-LDFLAGS=${NCLDFLAGS}
-
-{ echo "$as_me:$LINENO: checking for nc_inq_var_deflate in -lnetcdf" >&5
-echo $ECHO_N "checking for nc_inq_var_deflate in -lnetcdf... $ECHO_C" >&6; }
-if test "${ac_cv_lib_netcdf_nc_inq_var_deflate+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lnetcdf ${NCFLAGS} ${NCLDFLAGS}  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char nc_inq_var_deflate ();
-int
-main ()
-{
-return nc_inq_var_deflate ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_netcdf_nc_inq_var_deflate=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_lib_netcdf_nc_inq_var_deflate=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_netcdf_nc_inq_var_deflate" >&5
-echo "${ECHO_T}$ac_cv_lib_netcdf_nc_inq_var_deflate" >&6; }
-if test $ac_cv_lib_netcdf_nc_inq_var_deflate = yes; then
-  HAS_NC4="yes"
-else
-  HAS_NC4="no"
-fi
-
-BUILD_NC3="no"
-HAS_NC3="no"
-OLIBS=${LIBS}
-LIBS="-lnetcdf "${NCCFLAGS}" "${NCLDFLAGS}
-if  test ${HAS_NC4} == "no"  ; then
-    { echo "$as_me:$LINENO: checking for nc_open in -lnetcdf" >&5
-echo $ECHO_N "checking for nc_open in -lnetcdf... $ECHO_C" >&6; }
-if test "${ac_cv_lib_netcdf_nc_open+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lnetcdf ${NCFLAGS} ${NCLDFLAGS}  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char nc_open ();
-int
-main ()
-{
-return nc_open ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
-  ac_cv_lib_netcdf_nc_open=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_lib_netcdf_nc_open=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_netcdf_nc_open" >&5
-echo "${ECHO_T}$ac_cv_lib_netcdf_nc_open" >&6; }
-if test $ac_cv_lib_netcdf_nc_open = yes; then
-  HAS_NC="yes"
-else
-  HAS_NC="no"
-fi
-
-  if  test ${HAS_NCCONFIG} == "yes"  ; then
-    HAS_NC3="yes"
-  else
-        { echo "$as_me:$LINENO: checking if you have netcdf 3.6.3)" >&5
-echo $ECHO_N "checking if you have netcdf 3.6.3)... $ECHO_C" >&6; }
-    if test "$cross_compiling" = yes; then
-  { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot run test program while cross compiling
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-        #include <stdio.h>
-        #include <string.h>
-	#include <stdlib.h>
-        #include <netcdf.h>
-
-int
-main ()
-{
-
-
-     char version[50];
-     int major,minor,patch;
-     strncpy(version,nc_inq_libvers(),50);
-     sscanf(version,"%*c%1d%*c%1d%*c%1d%*s",&major,&minor,&patch);
-     if ((major!=3) && (minor!=6) && (patch!=3)) return 1;
-     return 0;
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  BUILD_NC3="no"
-else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-BUILD_NC3="yes"
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-    if test ${BUILD_NC3} == "yes"  ; then
-       { echo "$as_me:$LINENO: result: \"no\"" >&5
-echo "${ECHO_T}\"no\"" >&6; }
-       { { echo "$as_me:$LINENO: error: Could not get a working NetCDF" >&5
-echo "$as_me: error: Could not get a working NetCDF" >&2;}
-   { (exit 1); exit 1; }; }
-    else
-       { echo "$as_me:$LINENO: result: \"yes\"" >&5
-echo "${ECHO_T}\"yes\"" >&6; }
-    fi
-    HAS_NC3="yes"
-  fi
-fi
-LIBS=${OLIBS}
-CFLAGS=${CFLAGS}" -Iinclude -Iinclude/cdTime"
-MAINDIR=`pwd`
-
-# Library sources
-LIBSOURCES="Src/cmor.c Src/cmor_variables.c Src/cmor_axes.c Src/cmor_tables.c Src/cmor_grids.c Src/cdTime/cdTimeConv.c Src/cdTime/cdUtil.c Src/cdTime/timeConv.c Src/cdTime/timeArith.c Src/cmor_cfortran_interface.c Src/cmor_md5.c"
-LIBFSOURCES="Src/cmor_fortran_interface.f90"
-
-
-cat >confcache <<\_ACEOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs, see configure's option --config-cache.
-# It is not useful on other systems.  If it contains results you don't
-# want to keep, you may remove or edit it.
-#
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
-#
-# `ac_cv_env_foo' variables (set or unset) will be overridden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
-# following values.
-
-_ACEOF
-
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, we kill variables containing newlines.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(
-  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
-    eval ac_val=\$$ac_var
-    case $ac_val in #(
-    *${as_nl}*)
-      case $ac_var in #(
-      *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5
-echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;;
-      esac
-      case $ac_var in #(
-      _ | IFS | as_nl) ;; #(
-      *) $as_unset $ac_var ;;
-      esac ;;
-    esac
-  done
-
-  (set) 2>&1 |
-    case $as_nl`(ac_space=' '; set) 2>&1` in #(
-    *${as_nl}ac_space=\ *)
-      # `set' does not quote correctly, so add quotes (double-quote
-      # substitution turns \\\\ into \\, and sed turns \\ into \).
-      sed -n \
-	"s/'/'\\\\''/g;
-	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
-      ;; #(
-    *)
-      # `set' quotes correctly as required by POSIX, so do not add quotes.
-      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
-      ;;
-    esac |
-    sort
-) |
-  sed '
-     /^ac_cv_env_/b end
-     t clear
-     :clear
-     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
-     t end
-     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
-     :end' >>confcache
-if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
-  if test -w "$cache_file"; then
-    test "x$cache_file" != "x/dev/null" &&
-      { echo "$as_me:$LINENO: updating cache $cache_file" >&5
-echo "$as_me: updating cache $cache_file" >&6;}
-    cat confcache >$cache_file
-  else
-    { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5
-echo "$as_me: not updating unwritable cache $cache_file" >&6;}
-  fi
-fi
-rm -f confcache
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-# Transform confdefs.h into DEFS.
-# Protect against shell expansion while executing Makefile rules.
-# Protect against Makefile macro expansion.
-#
-# If the first sed substitution is executed (which looks for macros that
-# take arguments), then branch to the quote section.  Otherwise,
-# look for a macro that doesn't take arguments.
-ac_script='
-t clear
-:clear
-s/^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 (][^	 (]*([^)]*)\)[	 ]*\(.*\)/-D\1=\2/g
-t quote
-s/^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 ][^	 ]*\)[	 ]*\(.*\)/-D\1=\2/g
-t quote
-b any
-:quote
-s/[	 `~#$^&*(){}\\|;'\''"<>?]/\\&/g
-s/\[/\\&/g
-s/\]/\\&/g
-s/\$/$$/g
-H
-:any
-${
-	g
-	s/^\n//
-	s/\n/ /g
-	p
-}
-'
-DEFS=`sed -n "$ac_script" confdefs.h`
-
-
-ac_libobjs=
-ac_ltlibobjs=
-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
-  # 1. Remove the extension, and $U if already installed.
-  ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
-  ac_i=`echo "$ac_i" | sed "$ac_script"`
-  # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
-  #    will be set to the directory where LIBOBJS objects are built.
-  ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext"
-  ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo'
-done
-LIBOBJS=$ac_libobjs
-
-LTLIBOBJS=$ac_ltlibobjs
-
-
-
-: ${CONFIG_STATUS=./config.status}
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
-echo "$as_me: creating $CONFIG_STATUS" >&6;}
-cat >$CONFIG_STATUS <<_ACEOF
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate the current configuration.
-# Compiler output produced by configure, useful for debugging
-# configure, is in config.log if it exists.
-
-debug=false
-ac_cs_recheck=false
-ac_cs_silent=false
-SHELL=\${CONFIG_SHELL-$SHELL}
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-## --------------------- ##
-## M4sh Initialization.  ##
-## --------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-  setopt NO_GLOB_SUBST
-else
-  case `(set -o) 2>/dev/null` in
-  *posix*) set -o posix ;;
-esac
-
-fi
-
-
-
-
-# PATH needs CR
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conf$$.sh
-fi
-
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  as_unset=unset
-else
-  as_unset=false
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.  Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-as_nl='
-'
-IFS=" ""	$as_nl"
-
-# Find who we are.  Look in the path if we contain no directory separator.
-case $0 in
-  *[\\/]* ) as_myself=$0 ;;
-  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-IFS=$as_save_IFS
-
-     ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
-  as_myself=$0
-fi
-if test ! -f "$as_myself"; then
-  echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
-  { (exit 1); exit 1; }
-fi
-
-# Work around bugs in pre-3.0 UWIN ksh.
-for as_var in ENV MAIL MAILPATH
-do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-for as_var in \
-  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
-  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
-  LC_TELEPHONE LC_TIME
-do
-  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
-    eval $as_var=C; export $as_var
-  else
-    ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
-  fi
-done
-
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
-  as_basename=basename
-else
-  as_basename=false
-fi
-
-
-# Name of the executable.
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-
-# CDPATH.
-$as_unset CDPATH
-
-
-
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
-
-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
-  # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line after each line using $LINENO; the second 'sed'
-  # does the real work.  The second script uses 'N' to pair each
-  # line-number line with the line containing $LINENO, and appends
-  # trailing '-' during substitution so that $LINENO is not a special
-  # case at line end.
-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # scripts with optimization help from Paolo Bonzini.  Blame Lee
-  # E. McMahon (1931-1989) for sed's syntax.  :-)
-  sed -n '
-    p
-    /[$]LINENO/=
-  ' <$as_myself |
-    sed '
-      s/[$]LINENO.*/&-/
-      t lineno
-      b
-      :lineno
-      N
-      :loop
-      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
-      t loop
-      s/-\n.*//
-    ' >$as_me.lineno &&
-  chmod +x "$as_me.lineno" ||
-    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
-   { (exit 1); exit 1; }; }
-
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensitive to this).
-  . "./$as_me.lineno"
-  # Exit status is that of the last command.
-  exit
-}
-
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
-  as_dirname=dirname
-else
-  as_dirname=false
-fi
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in
--n*)
-  case `echo 'x\c'` in
-  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
-  *)   ECHO_C='\c';;
-  esac;;
-*)
-  ECHO_N='-n';;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
-  rm -f conf$$.dir/conf$$.file
-else
-  rm -f conf$$.dir
-  mkdir conf$$.dir
-fi
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
-  as_ln_s='ln -s'
-  # ... but there are two gotchas:
-  # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
-  # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-  # In both cases, we have to default to `cp -p'.
-  ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-    as_ln_s='cp -p'
-elif ln conf$$.file conf$$ 2>/dev/null; then
-  as_ln_s=ln
-else
-  as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-if mkdir -p . 2>/dev/null; then
-  as_mkdir_p=:
-else
-  test -d ./-p && rmdir ./-p
-  as_mkdir_p=false
-fi
-
-if test -x / >/dev/null 2>&1; then
-  as_test_x='test -x'
-else
-  if ls -dL / >/dev/null 2>&1; then
-    as_ls_L_option=L
-  else
-    as_ls_L_option=
-  fi
-  as_test_x='
-    eval sh -c '\''
-      if test -d "$1"; then
-        test -d "$1/.";
-      else
-	case $1 in
-        -*)set "./$1";;
-	esac;
-	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
-	???[sx]*):;;*)false;;esac;fi
-    '\'' sh
-  '
-fi
-as_executable_p=$as_test_x
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-exec 6>&1
-
-# Save the log message, to keep $[0] and so on meaningful, and to
-# report actual input values of CONFIG_FILES etc. instead of their
-# values after options handling.
-ac_log="
-This file was extended by cmor $as_me 2.0, which was
-generated by GNU Autoconf 2.61.  Invocation command line was
-
-  CONFIG_FILES    = $CONFIG_FILES
-  CONFIG_HEADERS  = $CONFIG_HEADERS
-  CONFIG_LINKS    = $CONFIG_LINKS
-  CONFIG_COMMANDS = $CONFIG_COMMANDS
-  $ $0 $@
-
-on `(hostname || uname -n) 2>/dev/null | sed 1q`
-"
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-# Files that config.status was made for.
-config_files="$ac_config_files"
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-ac_cs_usage="\
-\`$as_me' instantiates files from templates according to the
-current configuration.
-
-Usage: $0 [OPTIONS] [FILE]...
-
-  -h, --help       print this help, then exit
-  -V, --version    print version number and configuration settings, then exit
-  -q, --quiet      do not print progress messages
-  -d, --debug      don't remove temporary files
-      --recheck    update $as_me by reconfiguring in the same conditions
-  --file=FILE[:TEMPLATE]
-		   instantiate the configuration file FILE
-
-Configuration files:
-$config_files
-
-Report bugs to <bug-autoconf at gnu.org>."
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-ac_cs_version="\\
-cmor config.status 2.0
-configured by $0, generated by GNU Autoconf 2.61,
-  with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
-
-Copyright (C) 2006 Free Software Foundation, Inc.
-This config.status script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it."
-
-ac_pwd='$ac_pwd'
-srcdir='$srcdir'
-MKDIR_P='$MKDIR_P'
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-# If no file are specified by the user, then we need to provide default
-# value.  By we need to know if files were specified by the user.
-ac_need_defaults=:
-while test $# != 0
-do
-  case $1 in
-  --*=*)
-    ac_option=`expr "X$1" : 'X\([^=]*\)='`
-    ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
-    ac_shift=:
-    ;;
-  *)
-    ac_option=$1
-    ac_optarg=$2
-    ac_shift=shift
-    ;;
-  esac
-
-  case $ac_option in
-  # Handling of the options.
-  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
-    ac_cs_recheck=: ;;
-  --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
-    echo "$ac_cs_version"; exit ;;
-  --debug | --debu | --deb | --de | --d | -d )
-    debug=: ;;
-  --file | --fil | --fi | --f )
-    $ac_shift
-    CONFIG_FILES="$CONFIG_FILES $ac_optarg"
-    ac_need_defaults=false;;
-  --he | --h |  --help | --hel | -h )
-    echo "$ac_cs_usage"; exit ;;
-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-  | -silent | --silent | --silen | --sile | --sil | --si | --s)
-    ac_cs_silent=: ;;
-
-  # This is an error.
-  -*) { echo "$as_me: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&2
-   { (exit 1); exit 1; }; } ;;
-
-  *) ac_config_targets="$ac_config_targets $1"
-     ac_need_defaults=false ;;
-
-  esac
-  shift
-done
-
-ac_configure_extra_args=
-
-if $ac_cs_silent; then
-  exec 6>/dev/null
-  ac_configure_extra_args="$ac_configure_extra_args --silent"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-if \$ac_cs_recheck; then
-  echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
-  CONFIG_SHELL=$SHELL
-  export CONFIG_SHELL
-  exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-exec 5>>config.log
-{
-  echo
-  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## Running $as_me. ##
-_ASBOX
-  echo "$ac_log"
-} >&5
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-# Handling of arguments.
-for ac_config_target in $ac_config_targets
-do
-  case $ac_config_target in
-    "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
-    "setup.py") CONFIG_FILES="$CONFIG_FILES setup.py" ;;
-    "compile_line.txt") CONFIG_FILES="$CONFIG_FILES compile_line.txt" ;;
-
-  *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
-echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
-   { (exit 1); exit 1; }; };;
-  esac
-done
-
-
-# If the user did not use the arguments to specify the items to instantiate,
-# then the envvar interface is used.  Set only those that are not.
-# We use the long form for the default assignment because of an extremely
-# bizarre bug on SunOS 4.1.3.
-if $ac_need_defaults; then
-  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
-fi
-
-# Have a temporary directory for convenience.  Make it in the build tree
-# simply because there is no reason against having it here, and in addition,
-# creating and moving files from /tmp can sometimes cause problems.
-# Hook for its removal unless debugging.
-# Note that there is a small window in which the directory will not be cleaned:
-# after its creation but before its name has been assigned to `$tmp'.
-$debug ||
-{
-  tmp=
-  trap 'exit_status=$?
-  { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
-' 0
-  trap '{ (exit 1); exit 1; }' 1 2 13 15
-}
-# Create a (secure) tmp directory for tmp files.
-
-{
-  tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
-  test -n "$tmp" && test -d "$tmp"
-}  ||
-{
-  tmp=./conf$$-$RANDOM
-  (umask 077 && mkdir "$tmp")
-} ||
-{
-   echo "$me: cannot create a temporary directory in ." >&2
-   { (exit 1); exit 1; }
-}
-
-#
-# Set up the sed scripts for CONFIG_FILES section.
-#
-
-# No need to generate the scripts if there are no CONFIG_FILES.
-# This happens for instance when ./config.status config.h
-if test -n "$CONFIG_FILES"; then
-
-_ACEOF
-
-
-
-ac_delim='%!_!# '
-for ac_last_try in false false false false false :; do
-  cat >conf$$subs.sed <<_ACEOF
-SHELL!$SHELL$ac_delim
-PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim
-PACKAGE_NAME!$PACKAGE_NAME$ac_delim
-PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim
-PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim
-PACKAGE_STRING!$PACKAGE_STRING$ac_delim
-PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim
-exec_prefix!$exec_prefix$ac_delim
-prefix!$prefix$ac_delim
-program_transform_name!$program_transform_name$ac_delim
-bindir!$bindir$ac_delim
-sbindir!$sbindir$ac_delim
-libexecdir!$libexecdir$ac_delim
-datarootdir!$datarootdir$ac_delim
-datadir!$datadir$ac_delim
-sysconfdir!$sysconfdir$ac_delim
-sharedstatedir!$sharedstatedir$ac_delim
-localstatedir!$localstatedir$ac_delim
-includedir!$includedir$ac_delim
-oldincludedir!$oldincludedir$ac_delim
-docdir!$docdir$ac_delim
-infodir!$infodir$ac_delim
-htmldir!$htmldir$ac_delim
-dvidir!$dvidir$ac_delim
-pdfdir!$pdfdir$ac_delim
-psdir!$psdir$ac_delim
-libdir!$libdir$ac_delim
-localedir!$localedir$ac_delim
-mandir!$mandir$ac_delim
-DEFS!$DEFS$ac_delim
-ECHO_C!$ECHO_C$ac_delim
-ECHO_N!$ECHO_N$ac_delim
-ECHO_T!$ECHO_T$ac_delim
-LIBS!$LIBS$ac_delim
-build_alias!$build_alias$ac_delim
-host_alias!$host_alias$ac_delim
-target_alias!$target_alias$ac_delim
-build!$build$ac_delim
-build_cpu!$build_cpu$ac_delim
-build_vendor!$build_vendor$ac_delim
-build_os!$build_os$ac_delim
-host!$host$ac_delim
-host_cpu!$host_cpu$ac_delim
-host_vendor!$host_vendor$ac_delim
-host_os!$host_os$ac_delim
-target!$target$ac_delim
-target_cpu!$target_cpu$ac_delim
-target_vendor!$target_vendor$ac_delim
-target_os!$target_os$ac_delim
-PATH!$PATH$ac_delim
-NCCFLAGS!$NCCFLAGS$ac_delim
-NCLDFLAGS!$NCLDFLAGS$ac_delim
-ZFLAGS!$ZFLAGS$ac_delim
-ZLDFLAGS!$ZLDFLAGS$ac_delim
-UDUNITS2FLAGS!$UDUNITS2FLAGS$ac_delim
-UDUNITS2LDFLAGS!$UDUNITS2LDFLAGS$ac_delim
-UUIDFLAGS!$UUIDFLAGS$ac_delim
-UUIDLDFLAGS!$UUIDLDFLAGS$ac_delim
-LIBSOURCES!$LIBSOURCES$ac_delim
-LIBFSOURCES!$LIBFSOURCES$ac_delim
-FC!$FC$ac_delim
-FFLAGS!$FFLAGS$ac_delim
-FCFLAGS!$FCFLAGS$ac_delim
-LDFLAGS!$LDFLAGS$ac_delim
-CFLAGS!$CFLAGS$ac_delim
-INCFILES!$INCFILES$ac_delim
-TEST_FORTRAN!$TEST_FORTRAN$ac_delim
-LIBFILES!$LIBFILES$ac_delim
-VERB!$VERB$ac_delim
-MODFILES!$MODFILES$ac_delim
-MACROS!$MACROS$ac_delim
-DEBUG!$DEBUG$ac_delim
-OK_COLOR!$OK_COLOR$ac_delim
-NO_COLOR!$NO_COLOR$ac_delim
-CDATPREFIX!$CDATPREFIX$ac_delim
-PYTHONEXEC!$PYTHONEXEC$ac_delim
-MAKEDEPPYTHON!$MAKEDEPPYTHON$ac_delim
-MAKETESTPYTHON!$MAKETESTPYTHON$ac_delim
-CC!$CC$ac_delim
-CPPFLAGS!$CPPFLAGS$ac_delim
-ac_ct_CC!$ac_ct_CC$ac_delim
-EXEEXT!$EXEEXT$ac_delim
-OBJEXT!$OBJEXT$ac_delim
-CPP!$CPP$ac_delim
-LN_S!$LN_S$ac_delim
-SED!$SED$ac_delim
-RANLIB!$RANLIB$ac_delim
-ac_ct_FC!$ac_ct_FC$ac_delim
-FCLIBS!$FCLIBS$ac_delim
-NCCONFIG!$NCCONFIG$ac_delim
-LIBOBJS!$LIBOBJS$ac_delim
-LTLIBOBJS!$LTLIBOBJS$ac_delim
-_ACEOF
-
-  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 92; then
-    break
-  elif $ac_last_try; then
-    { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
-echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
-   { (exit 1); exit 1; }; }
-  else
-    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
-  fi
-done
-
-ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed`
-if test -n "$ac_eof"; then
-  ac_eof=`echo "$ac_eof" | sort -nru | sed 1q`
-  ac_eof=`expr $ac_eof + 1`
-fi
-
-cat >>$CONFIG_STATUS <<_ACEOF
-cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b end
-_ACEOF
-sed '
-s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g
-s/^/s,@/; s/!/@,|#_!!_#|/
-:n
-t n
-s/'"$ac_delim"'$/,g/; t
-s/$/\\/; p
-N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n
-' >>$CONFIG_STATUS <conf$$subs.sed
-rm -f conf$$subs.sed
-cat >>$CONFIG_STATUS <<_ACEOF
-:end
-s/|#_!!_#|//g
-CEOF$ac_eof
-_ACEOF
-
-
-# VPATH may cause trouble with some makes, so we remove $(srcdir),
-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
-if test "x$srcdir" = x.; then
-  ac_vpsub='/^[	 ]*VPATH[	 ]*=/{
-s/:*\$(srcdir):*/:/
-s/:*\${srcdir}:*/:/
-s/:*@srcdir@:*/:/
-s/^\([^=]*=[	 ]*\):*/\1/
-s/:*$//
-s/^[^=]*=[	 ]*$//
-}'
-fi
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-fi # test -n "$CONFIG_FILES"
-
-
-for ac_tag in  :F $CONFIG_FILES
-do
-  case $ac_tag in
-  :[FHLC]) ac_mode=$ac_tag; continue;;
-  esac
-  case $ac_mode$ac_tag in
-  :[FHL]*:*);;
-  :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5
-echo "$as_me: error: Invalid tag $ac_tag." >&2;}
-   { (exit 1); exit 1; }; };;
-  :[FH]-) ac_tag=-:-;;
-  :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
-  esac
-  ac_save_IFS=$IFS
-  IFS=:
-  set x $ac_tag
-  IFS=$ac_save_IFS
-  shift
-  ac_file=$1
-  shift
-
-  case $ac_mode in
-  :L) ac_source=$1;;
-  :[FH])
-    ac_file_inputs=
-    for ac_f
-    do
-      case $ac_f in
-      -) ac_f="$tmp/stdin";;
-      *) # Look for the file first in the build tree, then in the source tree
-	 # (if the path is not absolute).  The absolute path cannot be DOS-style,
-	 # because $ac_f cannot contain `:'.
-	 test -f "$ac_f" ||
-	   case $ac_f in
-	   [\\/$]*) false;;
-	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
-	   esac ||
-	   { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5
-echo "$as_me: error: cannot find input file: $ac_f" >&2;}
-   { (exit 1); exit 1; }; };;
-      esac
-      ac_file_inputs="$ac_file_inputs $ac_f"
-    done
-
-    # Let's still pretend it is `configure' which instantiates (i.e., don't
-    # use $as_me), people would be surprised to read:
-    #    /* config.h.  Generated by config.status.  */
-    configure_input="Generated from "`IFS=:
-	  echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure."
-    if test x"$ac_file" != x-; then
-      configure_input="$ac_file.  $configure_input"
-      { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
-    fi
-
-    case $ac_tag in
-    *:-:* | *:-) cat >"$tmp/stdin";;
-    esac
-    ;;
-  esac
-
-  ac_dir=`$as_dirname -- "$ac_file" ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$ac_file" : 'X\(//\)[^/]' \| \
-	 X"$ac_file" : 'X\(//\)$' \| \
-	 X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
-echo X"$ac_file" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-  { as_dir="$ac_dir"
-  case $as_dir in #(
-  -*) as_dir=./$as_dir;;
-  esac
-  test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {
-    as_dirs=
-    while :; do
-      case $as_dir in #(
-      *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #(
-      *) as_qdir=$as_dir;;
-      esac
-      as_dirs="'$as_qdir' $as_dirs"
-      as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_dir" : 'X\(//\)[^/]' \| \
-	 X"$as_dir" : 'X\(//\)$' \| \
-	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-      test -d "$as_dir" && break
-    done
-    test -z "$as_dirs" || eval "mkdir $as_dirs"
-  } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
-echo "$as_me: error: cannot create directory $as_dir" >&2;}
-   { (exit 1); exit 1; }; }; }
-  ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-  # A ".." for each directory in $ac_dir_suffix.
-  ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'`
-  case $ac_top_builddir_sub in
-  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
-  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
-  esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
-  .)  # We are building in place.
-    ac_srcdir=.
-    ac_top_srcdir=$ac_top_builddir_sub
-    ac_abs_top_srcdir=$ac_pwd ;;
-  [\\/]* | ?:[\\/]* )  # Absolute name.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir
-    ac_abs_top_srcdir=$srcdir ;;
-  *) # Relative name.
-    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_build_prefix$srcdir
-    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
-
-  case $ac_mode in
-  :F)
-  #
-  # CONFIG_FILE
-  #
-
-  ac_MKDIR_P=$MKDIR_P
-  case $MKDIR_P in
-  [\\/$]* | ?:[\\/]* ) ;;
-  */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
-  esac
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-# If the template does not know about datarootdir, expand it.
-# FIXME: This hack should be removed a few years after 2.60.
-ac_datarootdir_hack=; ac_datarootdir_seen=
-
-case `sed -n '/datarootdir/ {
-  p
-  q
-}
-/@datadir@/p
-/@docdir@/p
-/@infodir@/p
-/@localedir@/p
-/@mandir@/p
-' $ac_file_inputs` in
-*datarootdir*) ac_datarootdir_seen=yes;;
-*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
-  { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
-echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-  ac_datarootdir_hack='
-  s&@datadir@&$datadir&g
-  s&@docdir@&$docdir&g
-  s&@infodir@&$infodir&g
-  s&@localedir@&$localedir&g
-  s&@mandir@&$mandir&g
-    s&\\\${datarootdir}&$datarootdir&g' ;;
-esac
-_ACEOF
-
-# Neutralize VPATH when `$srcdir' = `.'.
-# Shell code in configure.ac might set extrasub.
-# FIXME: do we really want to maintain this feature?
-cat >>$CONFIG_STATUS <<_ACEOF
-  sed "$ac_vpsub
-$extrasub
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-:t
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s&@configure_input@&$configure_input&;t t
-s&@top_builddir@&$ac_top_builddir_sub&;t t
-s&@srcdir@&$ac_srcdir&;t t
-s&@abs_srcdir@&$ac_abs_srcdir&;t t
-s&@top_srcdir@&$ac_top_srcdir&;t t
-s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
-s&@builddir@&$ac_builddir&;t t
-s&@abs_builddir@&$ac_abs_builddir&;t t
-s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
-s&@MKDIR_P@&$ac_MKDIR_P&;t t
-$ac_datarootdir_hack
-" $ac_file_inputs | sed -f "$tmp/subs-1.sed" >$tmp/out
-
-test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
-  { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
-  { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
-  { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined.  Please make sure it is defined." >&5
-echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined.  Please make sure it is defined." >&2;}
-
-  rm -f "$tmp/stdin"
-  case $ac_file in
-  -) cat "$tmp/out"; rm -f "$tmp/out";;
-  *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;;
-  esac
- ;;
-
-
-
-  esac
-
-done # for ac_tag
-
-
-{ (exit 0); exit 0; }
-_ACEOF
-chmod +x $CONFIG_STATUS
-ac_clean_files=$ac_clean_files_save
-
-
-# configure is writing to config.log, and then calls config.status.
-# config.status does its own redirection, appending to config.log.
-# Unfortunately, on DOS this fails, as config.log is still kept open
-# by configure, so config.status won't be able to write to it; its
-# output is simply discarded.  So we exec the FD to /dev/null,
-# effectively closing config.log, so it can be properly (re)opened and
-# appended to by config.status.  When coming back to configure, we
-# need to make the FD available again.
-if test "$no_create" != yes; then
-  ac_cs_success=:
-  ac_config_status_args=
-  test "$silent" = yes &&
-    ac_config_status_args="$ac_config_status_args --quiet"
-  exec 5>/dev/null
-  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
-  exec 5>>config.log
-  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
-  # would make configure fail if this is the last instruction.
-  $ac_cs_success || { (exit 1); exit 1; }
-fi
-
-
-{ echo "$as_me:$LINENO: " >&5
-echo "$as_me: " >&6;}
-{ echo "$as_me:$LINENO: ************************************************************************" >&5
-echo "$as_me: ************************************************************************" >&6;}
-{ echo "$as_me:$LINENO:                               SUMMARY" >&5
-echo "$as_me:                               SUMMARY" >&6;}
-{ echo "$as_me:$LINENO:                             VERSION: ${CMOR_VERSION}" >&5
-echo "$as_me:                             VERSION: ${CMOR_VERSION}" >&6;}
-{ echo "$as_me:$LINENO: ************************************************************************" >&5
-echo "$as_me: ************************************************************************" >&6;}
-{ echo "$as_me:$LINENO: " >&5
-echo "$as_me: " >&6;}
-{ echo "$as_me:$LINENO: ........................................................................" >&5
-echo "$as_me: ........................................................................" >&6;}
-{ echo "$as_me:$LINENO: ...                             COMPILERS" >&5
-echo "$as_me: ...                             COMPILERS" >&6;}
-{ echo "$as_me:$LINENO: ........................................................................" >&5
-echo "$as_me: ........................................................................" >&6;}
-{ echo "$as_me:$LINENO: " >&5
-echo "$as_me: " >&6;}
-{ echo "$as_me:$LINENO:             FORTRAN" >&5
-echo "$as_me:             FORTRAN" >&6;}
-if test ${enable_fortran} == "-no" ; then
-  { echo "$as_me:$LINENO:         DISABLED" >&5
-echo "$as_me:         DISABLED" >&6;}
-else
-  { echo "$as_me:$LINENO:  FC=${FC}" >&5
-echo "$as_me:  FC=${FC}" >&6;}
-  { echo "$as_me:$LINENO:  F77=${F77}" >&5
-echo "$as_me:  F77=${F77}" >&6;}
-  { echo "$as_me:$LINENO:  FFLAGS=${FFLAGS}" >&5
-echo "$as_me:  FFLAGS=${FFLAGS}" >&6;}
-  { echo "$as_me:$LINENO:  FCFLAGS=${FCFLAGS}" >&5
-echo "$as_me:  FCFLAGS=${FCFLAGS}" >&6;}
-fi
-{ echo "$as_me:$LINENO: ........................................................................" >&5
-echo "$as_me: ........................................................................" >&6;}
-{ echo "$as_me:$LINENO: ...                             EXTERNALS                            ..." >&5
-echo "$as_me: ...                             EXTERNALS                            ..." >&6;}
-{ echo "$as_me:$LINENO: ........................................................................" >&5
-echo "$as_me: ........................................................................" >&6;}
-if test ${SZLIBFLAGS} != "nosz" ; then
-  { echo "$as_me:$LINENO: " >&5
-echo "$as_me: " >&6;}
-  { echo "$as_me:$LINENO: SZLIB" >&5
-echo "$as_me: SZLIB" >&6;}
-  { echo "$as_me:$LINENO:  CFLAGS  : ${SZLIBFLAGS}" >&5
-echo "$as_me:  CFLAGS  : ${SZLIBFLAGS}" >&6;}
-  { echo "$as_me:$LINENO:  LDFLAGS : ${SZLIBLDFLAGS}" >&5
-echo "$as_me:  LDFLAGS : ${SZLIBLDFLAGS}" >&6;}
-fi
-{ echo "$as_me:$LINENO: " >&5
-echo "$as_me: " >&6;}
-{ echo "$as_me:$LINENO: UUID" >&5
-echo "$as_me: UUID" >&6;}
-{ echo "$as_me:$LINENO:  CFLAGS  : ${UUIDFLAGS}" >&5
-echo "$as_me:  CFLAGS  : ${UUIDFLAGS}" >&6;}
-{ echo "$as_me:$LINENO:  LDFLAGS : ${UUIDLDFLAGS}" >&5
-echo "$as_me:  LDFLAGS : ${UUIDLDFLAGS}" >&6;}
-{ echo "$as_me:$LINENO: " >&5
-echo "$as_me: " >&6;}
-{ echo "$as_me:$LINENO: UDUNITS2" >&5
-echo "$as_me: UDUNITS2" >&6;}
-{ echo "$as_me:$LINENO:  CFLAGS  : ${UDUNITS2FLAGS}" >&5
-echo "$as_me:  CFLAGS  : ${UDUNITS2FLAGS}" >&6;}
-{ echo "$as_me:$LINENO:  LDFLAGS : ${UDUNITS2LDFLAGS}" >&5
-echo "$as_me:  LDFLAGS : ${UDUNITS2LDFLAGS}" >&6;}
-{ echo "$as_me:$LINENO: " >&5
-echo "$as_me: " >&6;}
-if test ${BUILD_NC3} == "no"  ; then
-  if test ${HAS_NC4} == "yes"  ; then
-     { echo "$as_me:$LINENO: NetCDF4" >&5
-echo "$as_me: NetCDF4" >&6;}
-     { echo "$as_me:$LINENO:  CFLAGS  : ${NCCFLAGS}" >&5
-echo "$as_me:  CFLAGS  : ${NCCFLAGS}" >&6;}
-     { echo "$as_me:$LINENO:  LDFLAGS : ${NCLDFLAGS}" >&5
-echo "$as_me:  LDFLAGS : ${NCLDFLAGS}" >&6;}
-  else
-     { echo "$as_me:$LINENO: NetCDF3.6.3" >&5
-echo "$as_me: NetCDF3.6.3" >&6;}
-     { echo "$as_me:$LINENO:  CFLAGS  : ${NCCFLAGS}" >&5
-echo "$as_me:  CFLAGS  : ${NCCFLAGS}" >&6;}
-     { echo "$as_me:$LINENO:  LDFLAGS : ${NCLDFLAGS}" >&5
-echo "$as_me:  LDFLAGS : ${NCLDFLAGS}" >&6;}
-  fi
-else
-     { echo "$as_me:$LINENO: No valid NetCDF found will build NetCDF3.6.3 for you" >&5
-echo "$as_me: No valid NetCDF found will build NetCDF3.6.3 for you" >&6;}
-fi
-{ echo "$as_me:$LINENO: " >&5
-echo "$as_me: " >&6;}
-{ echo "$as_me:$LINENO:  PYTHON" >&5
-echo "$as_me:  PYTHON" >&6;}
-if test "-"${PYTHONEXEC} == "-" ; then
-  { echo "$as_me:$LINENO:  Not built, not used it tests" >&5
-echo "$as_me:  Not built, not used it tests" >&6;}
-else
-  { echo "$as_me:$LINENO:  Built using python: ${PYTHONEXEC}" >&5
-echo "$as_me:  Built using python: ${PYTHONEXEC}" >&6;}
-fi
-{ echo "$as_me:$LINENO: " >&5
-echo "$as_me: " >&6;}
-{ echo "$as_me:$LINENO: Type \"make\" to build cmor" >&5
-echo "$as_me: Type \"make\" to build cmor" >&6;}
-{ echo "$as_me:$LINENO: Type \"make install\" to build and install cmor to ${prefix}" >&5
-echo "$as_me: Type \"make install\" to build and install cmor to ${prefix}" >&6;}
-{ echo "$as_me:$LINENO: " >&5
-echo "$as_me: " >&6;}
-{ echo "$as_me:$LINENO: Type \"make test\" to build and test cmor code only" >&5
-echo "$as_me: Type \"make test\" to build and test cmor code only" >&6;}
-{ echo "$as_me:$LINENO: Type \"make test_C\" to build cmor and test C only" >&5
-echo "$as_me: Type \"make test_C\" to build cmor and test C only" >&6;}
-if test "-"${MAKETESTPYTHON} != "-" ; then
-  { echo "$as_me:$LINENO: Will also test for python since your are using CDAT" >&5
-echo "$as_me: Will also test for python since your are using CDAT" >&6;}
-{ echo "$as_me:$LINENO: Type \"make test_python\" to build and test cmor python only" >&5
-echo "$as_me: Type \"make test_python\" to build and test cmor python only" >&6;}
-fi
-if test ${enable_fortran} != "-no" ; then
-  { echo "$as_me:$LINENO: Type \"make test_fortran\" to build cmor and test fortran only" >&5
-echo "$as_me: Type \"make test_fortran\" to build cmor and test fortran only" >&6;}
-else
-  { echo "$as_me:$LINENO: will also test for fortran" >&5
-echo "$as_me: will also test for fortran" >&6;}
-fi
-{ echo "$as_me:$LINENO: " >&5
-echo "$as_me: " >&6;}
-{ echo "$as_me:$LINENO: You can compile C or FORTRAN code using the compilation lines shown in file: compile_line.txt and printed bellow:" >&5
-echo "$as_me: You can compile C or FORTRAN code using the compilation lines shown in file: compile_line.txt and printed bellow:" >&6;}
-{ echo "$as_me:$LINENO: " >&5
-echo "$as_me: " >&6;}
-{ echo "$as_me:$LINENO: " >&5
-echo "$as_me: " >&6;}
-
-
-cat compile_line.txt
diff --git a/configure.ac b/configure.ac
deleted file mode 100644
index 90f7a11..0000000
--- a/configure.ac
+++ /dev/null
@@ -1,368 +0,0 @@
-dnl                                                -*- Autoconf -*-
-dnl  Process this file with autoconf to produce a configure script.
-
-dnl AC_PREREQ(2.59)
-AC_INIT(cmor, 2.0, doutriaux1 at llnl.gov)
-
-GIT_TAG=`./get_git_version.sh`
-
-AC_CANONICAL_TARGET
-echo "TARGET: "${target_os}
-RTAG="none"
-case ${target_os} in
- linux-*) 
-   RTAG="-Wl,-rpath="
- ;;
- darwin*)
-   RTAG="-R"
- ;;
-esac
-
-CMOR_VERSION=${PACKAGE_VERSION}" (commit: ${GIT_TAG})"
-
-AC_PREFIX_DEFAULT([/usr/local/cmor])
-AC_CONFIG_FILES([Makefile setup.py compile_line.txt])
-
-
-INCFILES="include/cmor.h  include/cmor_func_def.h include/cmor_md5.h "`ls -x --width=10000 include/cdTime/*.h include/cdTime/cdunifpp/*.h`
-AC_SUBST(PATH)
-AC_SUBST(NCCFLAGS)
-AC_SUBST(NCLDFLAGS)
-AC_SUBST(ZFLAGS)
-AC_SUBST(ZLDFLAGS)
-AC_SUBST(UDUNITS2FLAGS)
-AC_SUBST(UDUNITS2LDFLAGS)
-AC_SUBST(UUIDFLAGS)
-AC_SUBST(UUIDLDFLAGS)
-AC_SUBST(LIBSOURCES)
-AC_SUBST(LIBFSOURCES)
-AC_SUBST(FC)
-AC_SUBST(FFLAGS)
-AC_SUBST(FCFLAGS)
-AC_SUBST(LDFLAGS)
-AC_SUBST(CFLAGS)
-AC_SUBST(INCFILES)
-AC_SUBST(TEST_FORTRAN)
-AC_SUBST(LIBFILES)
-AC_SUBST(VERB)
-AC_SUBST(MODFILES)
-AC_SUBST(MACROS)
-AC_SUBST(DEBUG)
-AC_SUBST(OK_COLOR)
-AC_SUBST(NO_COLOR)
-
-MACROS=""
-DEBUG=""
-
-OK_COLOR=""
-NO_COLOR=""
-
-AC_ARG_ENABLE([verbose-test],[AS_HELP_STRING([--enable-verbose-test],[enable verbose testing (default off)])])
-if test "-"${enable_verbose_test} == "-yes" ; then
-  VERB=""
-else
-  VERB=">/dev/null 2>/dev/null"
-fi
-if test "-"${enable_verbose_test} == "-yes" ; then
-  VERB=""
-else
-  VERB=">/dev/null 2>/dev/null"
-fi
-
-AC_ARG_ENABLE([color],[AS_HELP_STRING([--enable-color],[enable colored output (default on)])],[
-if test "x${enableval}" == "xyes" ; then
-  MACROS=${MACROS}" -DCOLOREDOUTPUT"
-  NO_COLOR="NO_COLOR2"
-  OK_COLOR="OK_COLOR2"
-fi
-],[ 
-MACROS=${MACROS}" -DCOLOREDOUTPUT" 
-NO_COLOR="NO_COLOR2"
-OK_COLOR="OK_COLOR2"
-])
-AC_ARG_ENABLE([debug],[AS_HELP_STRING([--enable-debug],[enable debug flag while commpiling (default on)])],[enable_debug=yes],[enable_debug=yes])
-if test ${enable_debug} == "yes" ; then
-  DEBUG="-g"
-fi
-
-LIBFILES="cmor.o cmor_axes.o cmor_variables.o cmor_tables.o cdTimeConv.o cdUtil.o timeConv.o timeArith.o cmor_grids.o cmor_md5.o "
-LIBFFILES="cmor_cfortran_interface.o cmor_fortran_interface.o"
-
-dnl ##########################################################
-dnl  Turn on/off fortran
-dnl ##########################################################
-AC_ARG_ENABLE([fortran],[AS_HELP_STRING([--enable-fortran],[enable fortran api (default will try)])])
-enable_fortran="-"${enable_fortran}
-TEST_FORTRAN="test_fortran"
-if test ${enable_fortran} == "-no" ; then
-  FC=""
-  F77=""
-  FFLAGS=""
-  FCFLAGS=""
-  TEST_FORTRAN=" "
-  MODFILES=" "
-else
-  LIBFILES=${LIBFILES}" "${LIBFFILES}
-  MODFILES="cmor_users_functions.*"
-fi
-
-CDATPREFIX=" "
-MAKETESTPYTHON=" "
-dnl turn on/off python
-AC_ARG_WITH([cdat],[AS_HELP_STRING([--with-cdat],[enable support for cdat put path root (w/o bin/cdat)])],[],[with_cdat="no"])
-with_cdatb="-"${with_cdat}
-if [ test ${with_cdatb} != "-yes"  ] ; then
-  if [ test ${with_cdatb} != "-no" ] ; then
-    PYTHONEXEC=${with_cdat}/bin/cdat
-    MAKEDEPPYTHON="python"
-    MAKETESTPYTHON="test_python"
-    CDATPREFIX="--prefix="${with_cdat}
-  else
-    PYTHONEXEC=" "
-    MAKEDEPPYTHON=" "
-  fi
-else
-  PYTHONEXEC="cdat"
-  MAKEDEPPYTHON="python"
-  MAKETESTPYTHON="test_python"
-fi
-AC_ARG_WITH([python],[AS_HELP_STRING([--with-python],[enable support for python put path root (w/o bin/python)])],[],[with_python="no"])
-with_pythonb="-"${with_python}
-if [ test ${with_pythonb} != "-yes"  ] ; then
-  if [ test ${with_pythonb} != "-no" ] ; then
-    PYTHONEXEC=${with_python}/bin/python
-    MAKEDEPPYTHON="python"
-  fi
-else
-  PYTHONEXEC="python"
-  MAKEDEPPYTHON="python"
-fi
-
-AC_SUBST(CDATPREFIX)
-
-AC_SUBST(PYTHONEXEC)
-AC_SUBST(MAKEDEPPYTHON)
-AC_SUBST(MAKETESTPYTHON)
-
-dnl  basic test
-AC_PROG_CC
-AC_PROG_CPP
-AC_PROG_LN_S
-AC_PROG_SED
-AC_PROG_MKDIR_P
-AC_PROG_RANLIB
-if test ${enable_fortran} != "-no" ; then
-  AC_PROG_FC
-  AC_FC_LIBRARY_LDFLAGS
-fi
-
-LDFLAGS=${LDFLAGS}" -lm "
-
-
-AC_ARG_WITH([uuid],[AS_HELP_STRING([--with-uuid],[enable support for uuid in none standard location])],[],[with_uuid="no"])
-with_uuidb="-"${with_uuid}
-if [ test ${with_uuidb} != "-yes" ] ; then
-  if [ test ${with_uuidb} != "-no" ] ; then
-   UUIDFLAGS=" -I${with_uuid}/include"
-   if [ test ${RTAG} != "none" ] ; then
-     UUIDLDFLAGS=" -L${with_uuid}/lib  ${RTAG}${with_uuid}/lib -luuid"
-   else
-     UUIDLDFLAGS=" -L${with_uuid}/lib -luuid"
-   fi
-  else
-    UUIDLDFLAGS="-luuid"
-    UUIDFLAGS=""
-  fi
-else
-  UUIDLDFLAGS="-luuid"
-  UUIDFLAGS=""
-fi
-AC_CHECK_LIB([uuid],[uuid_create],[],[AC_ERROR([Could not get a working uuid])],[ ${UUIDFLAGS} ${UUIDLDFLAGS}  ])
-
-LIBS=""
-AC_ARG_WITH([udunits2],[AS_HELP_STRING([--with-udunits2],[enable support for udunits2 in none standard location])],[],[with_udunits2="no"])
-with_udunits2b="-"${with_udunits2}
-if [ test ${with_udunits2b} != "-yes" ] ; then
-  if [ test ${with_udunits2b} != "-no" ] ; then
-   UDUNITS2FLAGS=" -I${with_udunits2}/include"
-   if [ test ${RTAG} != "none" ] ; then
-     UDUNITS2LDFLAGS=" -L${with_udunits2}/lib  ${RTAG}${with_udunits2}/lib -ludunits2 -lexpat"
-   else
-     UDUNITS2LDFLAGS=" -L${with_udunits2}/lib -ludunits2 -lexpat"
-   fi
-  else
-    UDUNITS2FLAGS="-ludunits2"
-    UDUNITS2LDFLAGS=""
-  fi
-else
-  UDUNITS2FLAGS="-ludunits2"
-  UDUNITS2LDFLAGS=""
-fi
-AC_CHECK_LIB([udunits2],[ut_parse],[],[AC_ERROR([Could not get a working udunits2])],[ ${UDUNITS2FLAGS} ${UDUNITS2LDFLAGS} -lm  ])
-LIBS=""
-
-
-AC_ARG_WITH([netcdf],[AS_HELP_STRING([--with-netcdf],[enable support for NetCDF in none standard location])],[],[with_netcdf="no"])
-with_netcdfb="-"${with_netcdf}
-if [ test ${with_netcdfb} != "-yes" ]; then
-  if [ test ${with_netcdfb} != "-no" ] ; then
-    AC_CHECK_FILE([${with_netcdf}/bin/nc-config],[HAS_NCCONFIG=yes],[HAS_NCCONFIG=no])
-    if [ test ${HAS_NCCONFIG} == "yes" ] ; then 
-      NCCFLAGS=`${with_netcdf}/bin/nc-config --cflags`
-      NCLDFLAGS=`${with_netcdf}/bin/nc-config --libs`
-    else 
-#echo "CRAP!"
-     NCCFLAGS=" -I${with_netcdf}/include"
-     if [ test ${RTAG} != "none" ] ; then
-      NCLDFLAGS=" -L${with_netcdf}/lib  ${RTAG}${with_netcdf}/lib -lnetcdf"
-     else
-      NCLDFLAGS=" -L${with_netcdf}/lib -lnetcdf"
-     fi
-    fi
-  else
-    NCCFLAGS="-lnetcdf"
-    NCLDFLAGS=""
-  fi
-else
-  AC_PATH_PROG(NCCONFIG,nc-config,"no")
-  if [ test NCCONFIG != "no" ] ; then
-   NCCFLAGS=`${NCCONFIG} --cflags`
-   NCLDFLAGS=`${NCCONFIG} --libs`
-  else
-   NCCFLAGS="-lnetcdf"
-   NCLDFLAGS=""
-  fi
-fi
-
-CFLAGS=${NCCFLAGS}
-LDFLAGS=${NCLDFLAGS}
-
-dnl ok that this point we need to see if it is NC3 or NC4
-AC_CHECK_LIB([netcdf],[nc_inq_var_deflate],[HAS_NC4="yes"],[HAS_NC4="no"],[${NCFLAGS} ${NCLDFLAGS} ])
-BUILD_NC3="no"
-HAS_NC3="no"
-OLIBS=${LIBS}
-LIBS="-lnetcdf "${NCCFLAGS}" "${NCLDFLAGS}
-if [ test ${HAS_NC4} == "no" ] ; then
-  dnl ok couldn't get nc4, lets see if that is a nc3
-  AC_CHECK_LIB([netcdf],[nc_open],[HAS_NC="yes"],[HAS_NC="no"],[${NCFLAGS} ${NCLDFLAGS} ])
-  if [ test ${HAS_NCCONFIG} == "yes" ] ; then
-    HAS_NC3="yes"
-  else
-    dnl need to test if it is version 3.6.3
-    AC_MSG_CHECKING([if you have netcdf 3.6.3)])
-    AC_RUN_IFELSE(
-        [AC_LANG_PROGRAM([
-        #include <stdio.h>
-        #include <string.h>
-	#include <stdlib.h>
-        #include <netcdf.h>
-        ],
-        [ [
-
-     char version[50];
-     int major,minor,patch;
-     strncpy(version,nc_inq_libvers(),50);
-     sscanf(version,"%*c%1d%*c%1d%*c%1d%*s",&major,&minor,&patch);
-     if ((major!=3) && (minor!=6) && (patch!=3)) return 1;
-     return 0;
-        ]])],[BUILD_NC3="no"],[BUILD_NC3="yes"])
-    if [test ${BUILD_NC3} == "yes" ] ; then
-       AC_MSG_RESULT(["no"])
-       AC_ERROR([Could not get a working NetCDF])
-    else
-       AC_MSG_RESULT(["yes"])
-    fi
-    HAS_NC3="yes"
-  fi
-fi
-LIBS=${OLIBS}
-CFLAGS=${CFLAGS}" -Iinclude -Iinclude/cdTime"
-MAINDIR=`pwd`
-
-# Library sources
-LIBSOURCES="Src/cmor.c Src/cmor_variables.c Src/cmor_axes.c Src/cmor_tables.c Src/cmor_grids.c Src/cdTime/cdTimeConv.c Src/cdTime/cdUtil.c Src/cdTime/timeConv.c Src/cdTime/timeArith.c Src/cmor_cfortran_interface.c Src/cmor_md5.c"
-LIBFSOURCES="Src/cmor_fortran_interface.f90"
-
-
-AC_OUTPUT
-
-AC_MSG_NOTICE([])
-AC_MSG_NOTICE([************************************************************************])
-AC_MSG_NOTICE([                              SUMMARY])
-AC_MSG_NOTICE([                            VERSION: ${CMOR_VERSION}])
-AC_MSG_NOTICE([************************************************************************])
-AC_MSG_NOTICE([])
-AC_MSG_NOTICE([........................................................................])
-AC_MSG_NOTICE([...                             COMPILERS])
-AC_MSG_NOTICE([........................................................................])
-AC_MSG_NOTICE([])
-AC_MSG_NOTICE([            FORTRAN])
-if test ${enable_fortran} == "-no" ; then
-  AC_MSG_NOTICE([        DISABLED])
-else
-  AC_MSG_NOTICE([ FC=${FC}])
-  AC_MSG_NOTICE([ F77=${F77}])
-  AC_MSG_NOTICE([ FFLAGS=${FFLAGS}])
-  AC_MSG_NOTICE([ FCFLAGS=${FCFLAGS}])
-fi
-AC_MSG_NOTICE([........................................................................])
-AC_MSG_NOTICE([...                             EXTERNALS                            ...])
-AC_MSG_NOTICE([........................................................................])
-if [test ${SZLIBFLAGS} != "nosz" ]; then
-  AC_MSG_NOTICE([])
-  AC_MSG_NOTICE([SZLIB])
-  AC_MSG_NOTICE([ CFLAGS  : ${SZLIBFLAGS}])
-  AC_MSG_NOTICE([ LDFLAGS : ${SZLIBLDFLAGS}])
-fi
-AC_MSG_NOTICE([])
-AC_MSG_NOTICE([UUID])
-AC_MSG_NOTICE([ CFLAGS  : ${UUIDFLAGS}])
-AC_MSG_NOTICE([ LDFLAGS : ${UUIDLDFLAGS}])
-AC_MSG_NOTICE([])
-AC_MSG_NOTICE([UDUNITS2])
-AC_MSG_NOTICE([ CFLAGS  : ${UDUNITS2FLAGS}])
-AC_MSG_NOTICE([ LDFLAGS : ${UDUNITS2LDFLAGS}])
-AC_MSG_NOTICE([])
-if [test ${BUILD_NC3} == "no" ] ; then 
-  if [test ${HAS_NC4} == "yes" ] ; then
-     AC_MSG_NOTICE([NetCDF4])
-     AC_MSG_NOTICE([ CFLAGS  : ${NCCFLAGS}])
-     AC_MSG_NOTICE([ LDFLAGS : ${NCLDFLAGS}])
-  else
-     AC_MSG_NOTICE([NetCDF3.6.3])
-     AC_MSG_NOTICE([ CFLAGS  : ${NCCFLAGS}])
-     AC_MSG_NOTICE([ LDFLAGS : ${NCLDFLAGS}])
-  fi
-else
-     AC_MSG_NOTICE([No valid NetCDF found will build NetCDF3.6.3 for you])
-fi
-AC_MSG_NOTICE([])
-AC_MSG_NOTICE([ PYTHON])
-if test "-"${PYTHONEXEC} == "-" ; then
-  AC_MSG_NOTICE([ Not built, not used it tests])
-else
-  AC_MSG_NOTICE([ Built using python: ${PYTHONEXEC}])
-fi
-AC_MSG_NOTICE([])
-AC_MSG_NOTICE([Type "make" to build cmor])
-AC_MSG_NOTICE([Type "make install" to build and install cmor to ${prefix}])
-AC_MSG_NOTICE([])
-AC_MSG_NOTICE([Type "make test" to build and test cmor code only])
-AC_MSG_NOTICE([Type "make test_C" to build cmor and test C only])
-if test "-"${MAKETESTPYTHON} != "-" ; then
-  AC_MSG_NOTICE([Will also test for python since your are using CDAT])
-AC_MSG_NOTICE([Type "make test_python" to build and test cmor python only])
-fi
-if test ${enable_fortran} != "-no" ; then
-  AC_MSG_NOTICE([Type "make test_fortran" to build cmor and test fortran only])
-else
-  AC_MSG_NOTICE([will also test for fortran])
-fi
-AC_MSG_NOTICE([])
-AC_MSG_NOTICE([You can compile C or FORTRAN code using the compilation lines shown in file: compile_line.txt and printed bellow:])
-AC_MSG_NOTICE([])
-AC_MSG_NOTICE([])
-
-
-cat compile_line.txt
diff --git a/data/tas_sample.nc b/data/tas_sample.nc
deleted file mode 100644
index 602789c..0000000
Binary files a/data/tas_sample.nc and /dev/null differ
diff --git a/get_git_version.sh b/get_git_version.sh
deleted file mode 100755
index 7d27fa7..0000000
--- a/get_git_version.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/usr/bin/env sh
-
-if [ "X"${CC} = "X" ] ; then
-    gcc show_git.c -o a.out ; ./a.out ; rm a.out
-else
-   ${CC} show_git.c -o a.out ; ./a.out ; rm a.out
-fi
diff --git a/include/cdTime/cddrs.h b/include/cdTime/cddrs.h
deleted file mode 100644
index cad5837..0000000
--- a/include/cdTime/cddrs.h
+++ /dev/null
@@ -1,151 +0,0 @@
-/* -*-Mode: C;-*-
- * Module:      cddrs.h - include file for C DRS wrapper routines
- *
- * Copyright:	1994, Regents of the University of California
- *		This software may not be distributed to others without
- *		permission of the author.
- *
- * Author:      Bob Drach, Lawrence Livermore National Laboratory
- *              drach at llnl.gov
- *
- * Version:     $Id$
- *
- * Revision History:
- *
- * $Log: cddrs.h,v $
- * Revision 1.13  1997/09/26  21:45:26  drach
- * - Added HDF
- * - Repaired fouled up cddrs includes
- *
- * Revision 1.10  1995/07/12  22:07:49  drach
- * - Add cw_get_fileid function
- *
- * Revision 1.9  1995/06/09  22:44:15  drach
- * Added extensions for string length and dimension types
- *
- * Revision 1.8  1995/02/15  20:54:58  drach
- * - Added IDRS_VECTOR as synonym for IDRS_UNEQUALLY_SPACED
- *
- * Revision 1.7  1995/01/21  00:52:24  drach
- * - Added compatibility defines
- *
- * Revision 1.6  1995/01/18  02:53:05  drach
- * - Added majority flags
- *
- * Revision 1.5  1995/01/13  01:02:30  drach
- * Added getnd prototype
- *
- * Revision 1.4  1994/12/17  00:42:37  drach
- * - removed CW_MAX_LU (use CU_MAX_LU in cdunif instead)
- *
- * Revision 1.3  1994/12/16  00:44:43  drach
- * - Included drscdf.h
- *
- * Revision 1.2  1994/12/14  02:32:43  drach
- * - Modified extern function declarations
- * - Added CwRoundPolicy typedef
- * - Added null defs
- *
- * Revision 1.1  1994/11/23  22:56:22  drach
- * Initial version.
- *
- *
- */
-
-#ifndef __cddrs_h
-#define __cddrs_h
-
-#include "drscdf.h"
-
-#define CW_STRING_NULL " "		     /* Null character string */
-#define CW_FLOAT_NULL 1.0e20		     /* Null float arg */
-#define CW_FLOAT_DELTA 1.0e14		     /* Treat floats as null if = CW_FLOAT_NULL +/- CW_FLOAT_DELTA */
-#define CW_INT_NULL 0			     /* Null int arg */
-#define CW_MAX_NAME 128			     /* Max characters in a name (= CU_MAX_NAME) */
-#define IDRS_VECTOR IDRS_UNEQUALLY_SPACED    /* Synonym for unequally-spaced dimension flag */
-
-					     /* For compatibility with older versions of drscdf.h */
-#ifndef __EXTENDED_DRS_DATATYPES
-#define __EXTENDED_DRS_DATATYPES
-#define IDRS_I1 7
-#define IDRS_I2 8
-#define IDRS_IEEE_R8 9
-#define IDRS_CRAY_R16 10
-#define IDRS_IEEE_R16 11
-#endif
-
-typedef enum {CW_ROUND_NEAREST = 1, CW_ROUND_UP, CW_ROUND_DOWN, CW_RANGE} CwRoundPolicy;
-typedef enum {CW_C_MAJORITY = 1, CW_FORTRAN_MAJORITY} CwMajority;
-typedef enum {CW_STANDARD = 1, CW_EXTENDED} CwExtensionOption;
-typedef enum {CW_LOCAL = 1, CW_SHARED, CW_IMPLICIT_SHARED} CwDimensionType;
-
-#undef PROTO
-#if defined(__STDC__) || (OS_NAME == AIX)
-#define PROTO(x) x
-#else
-#define PROTO(x) ()
-#endif
-
-extern int cw_aslun PROTO((int lud,char* dicfil,int lu,char* datfil,int istat));
-extern int cw_cllun PROTO((int lu));
-extern int cw_cluvdb PROTO((void));
-extern int cw_drstest PROTO((int ierr));
-extern int cw_getdat PROTO((int lu,void* a,int isize));
-extern int cw_getcdim PROTO((int idim,char* source,char* name,char* title,char* units,int* dtype,int reqlen,float* var,int* retlen));
-extern int cw_getcdimD PROTO((int idim,char* source,char* name,char* title,char* units,int* dtype,int reqlen,double* var,int* retlen));
-extern int cw_getedim PROTO((int n,char* dsrc,char* dna,char* dti,char* dun,int* dtype,int* idim,float* df,float* dl));
-extern int cw_getedimD PROTO((int n,char* dsrc,char* dna,char* dti,char* dun,int* dtype,int* idim,double* df,double* dl));
-extern int cw_getelemd PROTO((int* type,int* bpe));
-extern int cw_get_fileid PROTO((int lu));
-extern int cw_getname PROTO((char* source,char* name,char* title,char* units,char* date,char* time,char* typed,int* nd));
-extern int cw_getnd PROTO((int* nd));
-extern int cw_getrge2 PROTO((int lu,int idim,double elem1,double elem2,int* ind1,int* ind2,float* dlow,float* dhigh));
-extern int cw_getrge2D PROTO((int lu,int idim,double elem1,double elem2,int* ind1,int* ind2,double* dlow,double* dhigh));
-extern int cw_getslab PROTO((int lu,int rank,int* order,float* fe,float* le,float* cycle,void* data,int* datadim));
-extern int cw_inqdict PROTO((int lu,int oper));
-extern int cw_inqlun PROTO((int lu,char* datafile,int* nvar,float* version));
-extern int cw_majority PROTO((CwMajority majority));
-extern int cw_set_dimension_option PROTO((CwExtensionOption option));
-extern int cw_set_string_option PROTO((CwExtensionOption option));
-extern int cw_setdim PROTO((int n,char* dna,char* dun,int idim,double df,double dl));
-extern int cw_seterr PROTO((int ierrlun,int reportlevel));
-extern int cw_setname PROTO((char* source,char* name,char* title,char* units,char* typed));
-extern int cw_setvdim PROTO((int n,char* dso,char* dna,char* dti,char* dun,double df,double dl));
-
-					     /* Compatibility functions */
-extern int cw_putdat PROTO((int lu,void* a));
-extern int cw_putdic PROTO((int lu, int iopt));
-extern int cw_putvdim PROTO((int lu,int len,float* dimvar,int* i1,int* i2));
-extern int cw_setdate PROTO((char* date,char* time));
-extern int cw_setrep PROTO((int irep));
-
-#ifdef CDCOMPAT
-#define Aslun cw_aslun
-#define Cllun cw_cllun
-#define Cluvdb cw_cluvdb
-#define Drstest cw_drstest
-#define Getdat cw_getdat
-#define Getcdim cw_getcdim
-#define GetcdimD cw_getcdimD
-#define Getedim cw_getedim
-#define GetedimD cw_getedimD
-#define Getelemd cw_getelemd
-#define Getname cw_getname
-#define Getnd cw_getnd
-#define Getrge2 cw_getrge2
-#define Getslab cw_getslab
-#define Inqdict cw_inqdict
-#define Inqlun cw_inqlun
-#define Majority cw_majority
-#define Setdim cw_setdim
-#define Seterr cw_seterr
-#define Setname cw_setname
-#define Setvdim cw_setvdim
-#define Putdat cw_putdat
-#define Putdic cw_putdic
-#define Putvdim cw_putvdim
-#define Setdate cw_setdate
-#define Setrep cw_setrep
-#endif
-
-#endif
diff --git a/include/cdTime/cddrsint.h b/include/cdTime/cddrsint.h
deleted file mode 100644
index bd9e892..0000000
--- a/include/cdTime/cddrsint.h
+++ /dev/null
@@ -1,107 +0,0 @@
-/* -*-Mode: C;-*-
- * Module:      cddrsint.h - internal include file for DRS wrapper routines
- *
- * Copyright:	1994, Regents of the University of California
- *		This software may not be distributed to others without
- *		permission of the author.
- *
- * Author:      Bob Drach, Lawrence Livermore National Laboratory
- *              drach at llnl.gov
- *
- * Version:     $Id$
- *
- * Revision History:
- *
- * $Log: cddrsint.h,v $
- * Revision 1.7  1995/06/09  22:44:16  drach
- * Added extensions for string length and dimension types
- *
- * Revision 1.6  1995/03/09  00:35:16  drach
- * Added netCDF, upgraded cureadarray with casting, user-specified indices
- *
- * Revision 1.5  1995/01/21  00:53:18  drach
- * - Recognize "" as a string null, since cfortran.h trims " "
- *
- * Revision 1.4  1995/01/13  01:03:57  drach
- * Added vdims fields:
- * - values (dimension cache), isCycle, and cycle
- * - Added cw_lookup_cycle, cw_dimget, cw_unif_to_drs_datatype
- *
- * Revision 1.3  1994/12/17  00:42:51  drach
- * - Define CW_IS_FLOAT_NULL
- *
- * Revision 1.2  1994/12/16  00:45:23  drach
- * - Added string match macro
- * - Added isset
- * - Added several function declarations
- *
- * Revision 1.1  1994/12/14  02:33:53  drach
- * - Added to CVS
- *
- *
- */
-
-#ifndef __cddrsint_h
-#define __cddrsint_h
-
-#include <string.h>
-#include <math.h>
-#include "drscdf.h"
-#include "cddrs.h"
-
-					     /* Set and null-terminate a VDB string
-					      * Note that either NULL, "" or " " are treated
-					      * as null strings.
-					      */
-#define VDB_STRING_SET(d,s,n) {strncpy((d),((s && strcmp(s,"")) ? s : CW_STRING_NULL),(n));(d)[(n)-1]='\0';cw_strtrim((d));}
-#define CW_STRING_MATCH(s,t) ((!strcmp((s),CW_STRING_NULL))||(!strcmp((t),CW_STRING_NULL))||(!strcmp((s),(t)))) 
-#define CW_IS_FLOAT_NULL(x) (fabs((x)-CW_FLOAT_NULL)<=CW_FLOAT_DELTA)
-
-typedef struct {
-	int filelu;			     /* Dictionary file logical unit */
-	char source[CU_MAX_NAME];	     /* DRS source string */
-	char name[CU_MAX_NAME];		     /* DRS variable name */
-	char title[CU_MAX_NAME];	     /* DRS variable title */
-	char units[CU_MAX_NAME];	     /* DRS variable units */
-	char date[CU_MAX_NAME];		     /* DRS date written */
-	char time[CU_MAX_NAME];		     /* DRS time written */
-	char type[CU_MAX_NAME];		     /* type string, e.g., 'R*4' */
-	int ndims;			     /* number of dimensions */
-} CwVar;
-
-typedef struct {
-	char source[CU_MAX_NAME];	     /* source string */
-	char name[CU_MAX_NAME];		     /* DRS dimension name */
-	char title[CU_MAX_NAME];	     /* DRS dimension title */
-	char units[CU_MAX_NAME];	     /* DRS dimension units */
-	int type;			     /* IDRS_EQUALLY_SPACED | IDRS_UNEQUALLY_SPACED | IDRS_IMPLICIT_VECTOR */
-	double dfreq;			     /* first value of requested dimension range */
-	double dlreq;			     /* first value of requested dimension range */
-	double dfactual;		     /* first value of range as received */
-	double dlactual;		     /* first value of range as received */
-	int len;			     /* number of values in the dimension */
-	int reqlen;			     /* number of values requested */
-	int isset;			     /* True iff cw_setdim or cw_setvdim has been called */
-					     /* since the last cw_cllun call.*/
-	double* values;			     /* Actual values, or double** 0 if not cached */
-	int isCycle;			     /* 1 iff dimension is cyclical */
-	double cycle;			     /* dimension period, if isCycle */
-} CwDim;
-
-extern int cw_geterr PROTO((void));
-extern void cw_error PROTO((char *fmt, ...));
-extern void cw_lookup PROTO((double tab[], long n, double x, long *k));
-extern int cw_lookup_cycle PROTO((double tab[], long n, double x, double cycle, CwRoundPolicy policy, double delta, long *k, long *icycle));
-extern int cw_lookup_with_policy PROTO((double tab[], long n, double x, CwRoundPolicy policy, double delta, long *k));
-extern int cw_dimget PROTO((int fileid, int dimid, double** values, long *dimlen));
-extern int cw_dimmap PROTO((int fileid, int dimid, double df, double dl, CwRoundPolicy policy, double delta, int isCycle, double cycle, double **dp, long *idf, long *idl, double *xdf, double *xdl));
-extern int cw_varid PROTO((int fileid, const char* source, const char* name, const char* title, const char* units));
-extern int cw_string_attget PROTO((int fileid, int varid, const char* attname, char* value));
-extern CuType cw_drs_to_unif_datatype PROTO((const char* drstype));
-extern int cw_unif_to_drs_datatype PROTO((CuType dtype, char* drstype));
-extern int cw_unif_to_drs_enumtype PROTO((CuType dtype, int* enumtype));
-extern void cw_add_extension PROTO((const char* filename, const char* extension, char* result));
-extern char* cw_strtrim PROTO((char* s));
-extern int cw_dimension_varid PROTO((int fileid, int dimid, char* dname));
-
-#endif
diff --git a/include/cdTime/cdms.h b/include/cdTime/cdms.h
deleted file mode 100644
index 84c8c03..0000000
--- a/include/cdTime/cdms.h
+++ /dev/null
@@ -1,319 +0,0 @@
-/*
- * Module:      cdms.h - CDMS user-level definitions
- *
- * Copyright:	1994, Regents of the University of California
- *		This software may not be distributed to others without
- *		permission of the author.
- *
- * Author:      Bob Drach, Lawrence Livermore National Laboratory
- *              drach at llnl.gov
- *
- * Version:     $Id$
- *
- * Revision History:
- *
- * $Log: cdms.h,v $
- * Revision 1.1.1.1  1997/12/09 18:57:39  drach
- * Copied from cirrus
- *
- * Revision 1.11  1997/11/24  17:28:03  drach
- * - Added QL package to cdunif
- * - Added NdimIntersect function to CDMS
- *
- * Revision 1.10  1997/11/10  19:22:28  drach
- * - Added cuvargets to cdunif, cdSlabRead to cdms
- *
- * Revision 1.9  1997/10/24  18:23:34  drach
- * - Cache netCDF unlimited dimensions
- * - Consistent with GrADS src170
- *
- * Revision 1.8  1996/04/04  21:48:02  drach
- * - Minor fix for SGI version
- *
- * Revision 1.7  1996/04/04  18:27:02  drach
- * - Added CDMS inquiry, lookup, open, and internal routines
- *
- * Revision 1.6  1996/02/23  01:21:21  drach
- * - Moved most of cdms.h to cdmsint.h (original in cdms_v1.h)
- * - Added new time model declarations to cdms.h
- * - Added -DNO_DECLARE flag to fcddrs.h
- *
- * Revision 1.5  1994/11/17  20:02:29  drach
- * Moved #endif
- *
- * Revision 1.4  1994/10/25  00:58:51  drach
- * - Added dset and var tags for get functions
- * - Added CdDeleteDset and CdDeleteVar prototypes
- *
- * Revision 1.3  1994/08/12  21:45:33  drach
- * - modified access fields to longs
- * - added dimension directions to order struct
- * - changed geom floats to doubles
- * - added level, sset struct
- * - changed varHandle args to var
- * - added templates for new routines
- *
- * Revision 1.2  1994/07/19  23:57:53  drach
- * - Added CdMinute
- * - changed unsigned struct components to signed
- *
- * Revision 1.1  1994/07/13  18:29:29  drach
- * Initial version
- *
- *
- */
-
-
-/*
- * =================================================================
- *			Macros and Enums
- * =================================================================
- */
-#ifndef _CDMS_H
-#define _CDMS_H
-
-#include "cddrs.h"
-#include "cdunif.h"
-
-#define CD_ATT_MAX 10240		     /* Max bytes in attribute */
-#define CD_DEFAULT_DB 0
-#define CD_DIM_OFFSET 0x80000		     /* Dimension ID offset */
-#define CD_GLOBAL 0			     /* Null variable ID */
-#define CD_GLOB_DIM_OFFSET 0x200000	     /* Global dimension offset */
-#define CD_GLOB_GRID_OFFSET 0x400000	     /* Global grid offset */
-#define CD_GRID_OFFSET 0x100000		     /* Grid ID offset */
-#define CD_LAST_DAY -1			     /* Last day of month */
-#define CD_MAX_ABSUNITS 64		     /* Max characters in absolute units */
-#define CD_MAX_ABS_COMPON 7		     /* Max components in absolute time format */
-#define CD_MAX_CHARTIME 48		     /* Max characters in character time */
-#define CD_MAX_NAME CU_MAX_NAME		     /* Max characters in a name */
-#define CD_MAX_PATH CU_MAX_PATH		     /* Max characters in a file pathname */
-#define CD_MAX_RELUNITS 64		     /* Max characters in relative units */
-#define CD_MAX_TIME_DELTA 64		     /* Max characters in time delta */
-#define CD_MAX_VAR_COMPS 32		     /* Max number of variable components */
-#define CD_MAX_VAR_DIMS CU_MAX_VAR_DIMS	     /* Max dimensions in a variable */
-#define CD_NULL_DAY 1			     /* Null day value */
-#define CD_NULL_HOUR 0.0		     /* Null hour value */
-#define CD_NULL_ID 0			     /* Reserved ID */
-#define CD_NULL_MONTH 1			     /* Null month value */
-#define CD_NULL_YEAR 0			     /* Null year value, component time */
-#define CD_ROOT_ENV "CDMSROOT"		     /* CDMS root environment variable */
-#define CD_SUCCESS 0
-
-typedef enum cdType {cdInvalidType = -1,
-			     cdByte = CuByte,
-			     cdChar = CuChar,
-			     cdShort = CuShort,
-			     cdInt = CuInt,
-			     cdLong = CuLong,
-			     cdFloat = CuFloat,
-			     cdDouble = CuDouble,
-			     cdLongDouble = CuLongDouble,
-			     cdCharTime
-} cdType;
-
-typedef enum cdIntersectPolicy {cdRoundNearest = CW_ROUND_NEAREST,
-			    cdRange = CW_RANGE
-} cdIntersectPolicy;
-
-typedef enum cdRepresent {cdExternalArray = 1, cdInternalArray, cdLinearRep} cdRepresent;
-typedef enum cdOpenMode {cdReadOnly = 1, cdReadWrite} cdOpenMode;
-typedef enum cdGridType {cdRectangular = 1, cdZonal, cdMeridional, cdProjected, cdQuasiRegular} cdGridType;
-typedef enum cdDimType {cdLongitude = 1, cdLatitude, cdLevel, cdCalendar, cdClimatology,
-				cdMonotonic} cdDimType;
-typedef enum cdDimShape {cdLinearShape = 1, cdWrapped} cdDimShape;
-typedef enum cdPolygonType {cdBox = 1, cdAnnulus, cdLoc, cdPoly, cdGlobal} cdPolygonType;
-typedef enum cdMonths {cdJan = 1, cdFeb, cdMar, cdApr, cdMay, cdJun, cdJul, cdAug,
-			       cdSep, cdOct, cdNov, cdDec } cdMonths;
-typedef enum cdSeasons {cdDJF = cdDec,	/* DJF */
-				cdMAM = cdMar,		/* MAM */
-				cdJJA = cdJun,		/* JJA */
-				cdSON = cdSep} cdSeasons;		/* SON */
-
-typedef enum cdIntersectOpt {cdSubset = 1, cdPoint, cdIntersect} cdIntersectOpt;
-
-enum cdLevelType {cdUnknown=0, cdTwoMeter, cdAtmosphere, cdHybrid, cdPressure, cdSeaLevel, cdSigma, cdSkin,
-			   cdSoil, cdSurface, cdTopAtmos};
-
-					     /* Dean's DRS-like functions */
-
-typedef enum {CE_C_MAJORITY = 1, CE_FORTRAN_MAJORITY} CeMajority;
-#define CU_C_MAJORITY CE_C_MAJORITY
-#define CU_FORTRAN_MAJORITY CE_FORTRAN_MAJORITY
-
-                                             /* Note: if time stuff changes, so should fcdms.h!!  */
-#define cdStandardCal   0x11
-#define cdClimCal        0x0
-#define cdHasLeap      0x100
-#define cdHasNoLeap    0x000
-#define cd365Days     0x1000
-#define cd360Days     0x0000
-#define cdJulianCal  0x10000
-#define cdMixedCal   0x20000
-
-typedef enum cdCalenType {
-	cdStandard    = ( cdStandardCal | cdHasLeap   | cd365Days),
-	cdJulian      = ( cdStandardCal | cdHasLeap   | cd365Days | cdJulianCal),
-	cdNoLeap      = ( cdStandardCal | cdHasNoLeap | cd365Days),
-	cd360         = ( cdStandardCal | cdHasNoLeap | cd360Days),
-	cdClim        = ( cdClimCal     | cdHasNoLeap | cd365Days),
-	cdClimLeap    = ( cdClimCal     | cdHasLeap   | cd365Days),
-	cdClim360     = ( cdClimCal     | cdHasNoLeap | cd360Days),
-	cdMixed       = ( cdStandardCal | cdHasLeap   | cd365Days | cdMixedCal)
-}  cdCalenType;
-
-/*
- * =================================================================
- *			Structures
- * =================================================================
- */
-
-/* Component time */
-typedef struct {
-	long 		year;		     /* Year */
-	short 		month;		     /* Numerical month (1..12) */
-	short 		day;		     /* Day of month (1..31) */
-	double 		hour;		     /* Hour and fractional hours */
-} cdCompTime;
-
-/*
- * =================================================================
- *			Function Prototypes
- * =================================================================
- */
-extern int cdDimInq(long dsetid, long dimid, char* name, char* alias, cdType* datatype, int* natts, cdDimType* type, int* subtype, long* length, cdDimShape* topology);
-extern int cdDsetClose(long dsetid);
-extern int cdDsetInq(long dsetid, int* ndims, int* nvars, int* ngrids, int* ngatts);
-extern int cdGridInq(long dsetid, long gridid, char* name, cdGridType* type, int* ndims, long dim[], int* natts);
-extern int cdVarGetCoord(long dsetid, long varid, long dimid, double indices[]);
-extern int cdVarGetIndex(long dsetid, long varid, long dimid, long indices[]);
-extern int cdVarGetIndexRange(long dsetid, long varid, long dimid, long* index1, long* index2);
-extern int cdVarInq(long dsetid, long varid, char* name, char* alias, cdType* datatype, int* ndims, long dim[], int* natts);
-extern int cdVarSetCoordRange(long dsetid, long varid, long dimid, double coord1, double coord2, cdIntersectOpt opt, long* len);
-extern int cdVarSetIndex(long dsetid, long varid, long dimid, long nindices, long index[], long* len);
-extern int cdVarSetIndexRange(long dsetid, long varid, long dimid,  long index1, long index2, long* len);
-extern long cdDimLookup(long dsetid, char* name);
-extern long cdDimLookupAlias(long dsetid, char* alias);
-extern long cdDsetOpen(const char* path, cdOpenMode mode, long dbid);
-extern long cdGridLookup(long dsetid, char* name);
-extern long cdVarLookup(long dsetid, char* name);
-extern long cdVarLookupAlias(long dsetid, char* alias);
-
-extern void cdChar2Comp(cdCalenType timetype, char* chartime, cdCompTime* comptime);
-extern void cdChar2Rel(cdCalenType timetype, char* chartime, char* relunits, double* reltime);
-extern void cdComp2Char(cdCalenType timetype, cdCompTime comptime, char* time);
-extern void cdComp2Rel(cdCalenType timetype, cdCompTime comptime, char* relunits, double* reltime);
-extern void cdRel2Char(cdCalenType timetype, char* relunits, double reltime, char* chartime);
-#ifdef __cplusplus
-extern "C"
-#else
-extern
-#endif
-void cdRel2Comp(cdCalenType timetype, char* relunits, double reltime, cdCompTime* comptime);
-extern void cdRel2Rel(cdCalenType timetype, char* relunits, double reltime, char* outunits, double* outtime);
-extern int cdAbs2Comp(char *absunits, void *abstime, cdType abstimetype, cdCompTime *comptime, double *frac);
-extern int cdComp2Abs(cdCompTime comptime, char *absunits, cdType abstimetype, double frac, void *abstime);
-extern int cdDecodeRelativeTime(cdCalenType timetype, char* units, double time, cdCompTime* comptime);
-extern int cdDecodeAbsoluteTime(char* units, void* time, cdType abstimetype, cdCompTime* comptime, double* fraction);
-
-extern long cdSlabRead(long dsetid, long varid, const long order[], const double first[], const double last[], const double modulus[], cdIntersectPolicy policy, cdType usertype, void *values);
-extern long cdNdimIntersect(long dsetid, long varid, const long order[], const double first[], const double last[], const double modulus[], cdIntersectPolicy policy, long start[], long count[], long stride[]);
-
-extern int cdTypeLen(cdType datatype);
-
-					     /* Dean's DRS-like extensions */
-extern int cedimgeta(int fileid, int dimid, void* values, void **charvalues[]);
-extern int cevargeta(int fileid, int varid, const long start[], const long count[], void* value);
-extern int cemajority(CeMajority majority);
-extern int cehyperslabinq(int fileid, int varid, int rank,long* order,double* fe,double* le,double* cycle, long *data_arraysize, int *dim_arraylengths);
-extern int cehyperslab(int fileid, int varid, int rank,long* order,double* fe,double* le,double* cycle,double *dimarray, void *data);
-extern int cehyperslaba(int fileid, int varid, int rank,long* order,double* fe,double* le,double* cycle,long dimsize, double *dimarray, void *data);
-extern int cehyperslabi(int fileid, int varid, int rank,long* order,long* fe,long* le,double* cycle,void **data, int *dimsize, double *dimarray[]);
-
-
-#define cudimgeta cedimgeta
-#define cuvargeta cevargeta
-#define cumajority cemajority
-#define cuhyperslabinq cehyperslabinq
-#define cuhyperslab cehyperslab
-#define cuhyperslaba cehyperslaba
-#define cuhyperslabi cehyperslabi
-
-/*
- * =================================================================
- *			Globals
- * =================================================================
- */
-
-extern CeMajority ceMajority; /* Default majority for Dean's extensions */
-
-
-/*
- * =================================================================
- *	This stuff is used in the original time stuff,
- *      should eventually be moved to cdmsint.h
- * =================================================================
- */
-
-typedef enum CdMonths {CdJan = 1, CdFeb, CdMar, CdApr, CdMay, CdJun, CdJul, CdAug,
-			       CdSep, CdOct, CdNov, CdDec } CdMonths;
-
-typedef enum CdSeasons {CdWinter = CdDec,	/* DJF */
-				CdSpring = CdMar,		/* MAM */
-				CdSummer = CdJun,		/* JJA */
-				CdFall = CdSep} CdSeasons;		/* SON */
-
-typedef enum CdTimeUnit {
-	CdMinute = 1,
-	CdHour = 2,
-	CdDay = 3,
-	CdWeek = 4,			     /* Always = 7 days */
-	CdMonth = 5,
-	CdSeason = 6,			     /* Always = 3 months */
-	CdYear = 7,
-	CdSecond = 8
-} CdTimeUnit;
-
-#define CdChronCal    0x1
-#define CdClimCal     0x0
-#define CdBaseRel    0x00
-#define CdBase1970   0x10
-#define CdHasLeap   0x100
-#define CdNoLeap    0x000
-#define Cd365      0x1000
-#define Cd360      0x0000
-#define CdJulianType 0x10000
-
-typedef enum CdTimeType {
-	CdChron       = ( CdChronCal | CdBase1970 | CdHasLeap | Cd365),	/* 4369 */
-	CdJulianCal   = ( CdChronCal | CdBase1970 | CdHasLeap | Cd365 | CdJulianType),
-	CdChronNoLeap = ( CdChronCal | CdBase1970 | CdNoLeap  | Cd365),	/* 4113 */
-	CdChron360    = ( CdChronCal | CdBase1970 | CdNoLeap  | Cd360),	/*   17 */
-	CdRel         = ( CdChronCal | CdBaseRel  | CdHasLeap | Cd365),	/* 4353 */
-	CdRelNoLeap   = ( CdChronCal | CdBaseRel  | CdNoLeap  | Cd365),	/* 4097 */
-	CdClim        = ( CdClimCal  | CdBaseRel  | CdNoLeap  | Cd365), /* 4096 */
-	CdClimLeap    = ( CdClimCal  | CdBaseRel  | CdHasLeap | Cd365),
-	CdClim360     = ( CdClimCal  | CdBaseRel  | CdNoLeap  | Cd365)
-}  CdTimeType;
-
-#define CdNullYear 0
-#define CdNullMonth CdJan
-#define CdNullDay 1
-#define CdLastDay -1
-#define CdNullHour 0.0
-
-typedef struct {
-	long    		year;	     /* e.g., 1979 */
-	short			month;	     /* e.g., CdDec */
-	short			day;	     /* e.g., 30 */
-	double			hour;	     /* hour and fractional hour */
-	long			baseYear;    /* base year for relative, 1970 for CdChron */
-	CdTimeType		timeType;    /* e.g., CdChron */
-} CdTime;
-
-typedef struct {
-	long   			count;	     /* units count  */
-	CdTimeUnit		units;	     /* time interval units */
-} CdDeltaTime;
-
-#endif
diff --git a/include/cdTime/cdms.inc b/include/cdTime/cdms.inc
deleted file mode 100644
index bba349e..0000000
--- a/include/cdTime/cdms.inc
+++ /dev/null
@@ -1,57 +0,0 @@
-c -*-Mode: Fortran;-*-
-c  Module:      cdms.inc - CDMS Fortran API include file
-c 
-c  Copyright:	1996, Regents of the University of California
-c 		This software may not be distributed to others without
-c 		permission of the author.
-c 
-c  Author:      Bob Drach, Lawrence Livermore National Laboratory
-c               drach at llnl.gov
-c 
-c  Version:     $Id$
-c 
-c  Revision History:
-c 
-c  $Log: cdms.inc,v $
-c Revision 1.1  1996/04/04  22:36:02  drach
-c - Initial version
-c
-c 
-
-c
-c     Declarations
-c     
-      external fcdchar2comp, fcdchar2rel, fcdcomp2char
-      external fcdcomp2rel, fcdrel2char, fcdrel2comp
-      external fcdrel2rel
-
-      integer CD_STANDARD, CD_JULIAN, CD_NOLEAP, CD_360, CD_CLIM
-      integer CD_CLIMLEAP, CD_CLIM360, CD_NULL_YEAR, CD_NULL_MONTH
-      integer CD_LAST_DAY, CD_MAX_CHARTIME, CD_MAX_TIME_DELTA
-      integer CD_NULL_DAY
-      double precision CD_NULL_HOUR
-c     
-c     Time types and parameters
-c     
-      parameter(CD_STANDARD = '00001111'X)
-      parameter(CD_JULIAN = '00011111'X)
-      parameter(CD_MIXED = '00021111'X)
-      parameter(CD_NOLEAP = '00001011'X)
-      parameter(CD_360 = '00000011'X)
-      parameter(CD_CLIM = '00001000'X)
-      parameter(CD_CLIMLEAP = '00001100'X)
-      parameter(CD_CLIM360 = '00000000'X)
-      
-      parameter(CD_NULL_YEAR = 0)
-      parameter(CD_NULL_MONTH = 1)
-      parameter(CD_LAST_DAY = 1)
-      parameter(CD_MAX_CHARTIME = 48)
-      parameter(CD_MAX_TIME_DELTA = 64)
-      parameter(CD_NULL_DAY = 1)
-      parameter(CD_NULL_HOUR = 0.0)
-      
-
-
-
-
-
diff --git a/include/cdTime/cdmsint.h b/include/cdTime/cdmsint.h
deleted file mode 100644
index 9e7dcaa..0000000
--- a/include/cdTime/cdmsint.h
+++ /dev/null
@@ -1,588 +0,0 @@
-/* -*-Mode: C;-*-
- * Module:      cdmsint.h - CDMS internal database definitions
- *
- * Copyright:	1995, Regents of the University of California
- *		This software may not be distributed to others without
- *		permission of the author.
- *
- * Author:      Bob Drach, Lawrence Livermore National Laboratory
- *              drach at llnl.gov
- *
- * Version:     $Id$
- *
- * Revision History:
- *
- * $Log: cdmsint.h,v $
- * Revision 1.1.1.1  1997/12/09 18:57:39  drach
- * Copied from cirrus
- *
- * Revision 1.3  1997/10/24  18:23:35  drach
- * - Cache netCDF unlimited dimensions
- * - Consistent with GrADS src170
- *
- * Revision 1.2  1996/04/04  18:27:04  drach
- * - Added CDMS inquiry, lookup, open, and internal routines
- *
- * Revision 1.1  1996/02/23  01:21:23  drach
- * - Moved most of cdms.h to cdmsint.h (original in cdms_v1.h)
- * - Added new time model declarations to cdms.h
- * - Added -DNO_DECLARE flag to fcddrs.h
- *
- *
- */
-
-#ifndef _CDMSINT_H
-#define _CDMSINT_H
-
-#include <stdio.h>
-#include <stddef.h>
-#include "cdms.h"
-
-/*
- * =================================================================
- *			Macros and Typedefs
- * =================================================================
- */
-
-#define CD_NAME_DUP -2
-#define CD_ALIAS_DUP -3
-#define cdSymtabNentries(table) (table)->nentries /* number of entries in symbol table */
-#define cdDsetVar(dset,varid) (cdVar*)((dset)->vars->entries)+((varid)-1) /* dset variable with id varid */
-#define cdDsetDim(dset,dimid) (cdDim*)((dset)->dims->entries)+((dimid)-CD_DIM_OFFSET-1) /* dset dimension with id dimid */
-#define cdDsetGrid(dset,gridid) (cdGrid*)((dset)->grids->entries)+((gridid)-CD_GRID_OFFSET-1) /* dset dimension with id dimid */
-
-#define cdSetByte(vp,val) {unsigned char *ucp; ucp=(unsigned char*)(vp); *ucp=(val);}
-#define cdSetShort(vp,val) {short *sp; sp=(short*)(vp); *sp=(val);}
-#define cdSetInt(vp,val) {int *ip; ip=(int*)(vp); *ip=(val);}
-#define cdSetLong(vp,val) {long *lp; lp=(long*)(vp); *lp=(val);}
-#define cdSetFloat(vp,val) {float *fp; fp = (float *)(vp); *fp=(val);}
-#define cdSetDouble(vp,val) {double *dp; dp=(double*)(vp); *dp=(val);}
-#if !defined(sgi) && !defined(__alpha) && !defined(__x86_64__) && !defined(__ia64)
-#define cdSetLongDouble(vp,val) {long double *ldp; ldp=(long double*)(vp); *ldp=(val);}
-#endif
-#define cdSetCharTime(vp,val) {char *cp; cp=(char*)(vp); strncpy(cp,(val),CD_MAX_CHARTIME); cp[CD_MAX_CHARTIME-1]='\0';}
-
-					     /* For Dean's DRS-like extensions */
-
-#define CE_FLOAT_NULL 1.0e20   /* Null float arg */
-#define CE_FLOAT_DELTA 1.0e14  /* Treat floats as null if = CE_FLOAT_NULL +/- CE_FLOAT_DELTA */
-#define CE_INT_NULL 0
-#define CE_IS_FLOAT_NULL(x) (fabs((x)-CE_FLOAT_NULL)<=CE_FLOAT_DELTA)
-
-typedef enum {CE_ROUND_NEAREST = 1, CE_ROUND_UP, CE_ROUND_DOWN, CE_RANGE} CeRoundPolicy;
-
-typedef enum cdUnit {
-	cdMinute = CdMinute,
-	cdHour = CdHour,
-	cdDay = CdDay,
-	cdWeek = CdWeek,			     /* Always = 7 days */
-	cdMonth = CdMonth,
-	cdSeason = CdSeason,			     /* Always = 3 months */
-	cdYear = CdYear,
-	cdSecond = CdSecond,
-	cdFraction			     /* Fractional part of absolute time */
-} cdUnitTime;
-
-/*
- * =================================================================
- *			Structures
- * =================================================================
- */
-
-/* Symbol table index entry */
-typedef struct {
-	char name[CD_MAX_NAME];		     /* Name (key) */
-	int index;			     /* Index into symbol table (0-origin) */
-	short deleted;			     /* 1 iff entry is marked for deletion */
-} cdTag;
-
-/* Symbol table */
-typedef struct {
-	cdTag *nameIndex;		     /* Sorted name index */
-	cdTag *aliasIndex;		     /* Sorted alias index */
-	int nentries;			     /* Number of table entries */
-	int length;			     /* Allocated slots for entries, may be > nentries */
-	size_t entrySize;		     /* Size of each entry*/
-	void *entries;			     /* Symbol table */
-} cdSymtab;
-
-/* Attribute */
-typedef struct cdAtt {
-	char            name[CD_MAX_NAME]; /* Attribute name */
-	cdType          datatype;            /* Datatype of the attribute */
-	long            length;		     /* Number of elements (NOT bytes) */
-	void*           values;		     /* Pointer to internal structure for GrADS */
-	struct cdAtt*   next;		     /* Next attribute */
-} cdAtt;
-
-/* Dataset */
-typedef struct cdDset {
-	long 		id;		     /* Dataset ID */
-	long            dbid;		     /* Database ID */
-	char 		path[CD_MAX_PATH];   /* Dataset pathname */
-	char		fileTemp[CD_MAX_PATH]; /* File template */
-	cdSymtab*       vars;		     /* Variables */
-	cdSymtab*       dims;		     /* Dimensions */
-	cdSymtab*       grids;		     /* Grids */
-	int             ngatts;		     /* Number of global attributes */
-	cdAtt*          atts;		     /* Global attributes */
-	struct cdDset*  next;		     /* Next dataset */
-} cdDset;
-
-/* Database */
-typedef struct cdDb {
-	long            id;		     /* Database ID */
-	char            path[CD_MAX_PATH];   /* Database pathname */
-	cdDset*         dsets;		     /* Datasets */
-	struct cdDb*    next;		     /* Next database */
-} cdDb;
-
-/* Parameter */
-typedef struct {
-	char 		name[CD_MAX_NAME];   /* Parameter name */
-	char 		longName[CD_MAX_NAME]; /* Descriptive name */
-	char 		units[CD_MAX_NAME];  /* Standard units */
-} cdParm;
-
-/* Polygon */
-typedef struct {
-	long 		id;		     /* Polygon ID */
-	cdPolygonType 	type;		     /* cdBox, cdAnnulus, etc. */
-	long 		length;		     /* Number of points */
-	struct {
-		double  lon;		     /* Longitude point */
-		double  lat;		     /* Latitude point */
-	} 		*points;	     /* Points */
-} cdPolygon;
-
-/* Variable */
-typedef struct {
-	long 		id;		     /* Variable ID */
-	long		dsetid;		     /* Dataset ID */
-	char		name[CD_MAX_NAME];   /* Parameter name (official) */
-	char		alias[CD_MAX_NAME];  /* Name in file */
-	char		aliasTitle[CD_MAX_NAME];  /* Title in file */
-	int             natts;		     /* Number of attributes */
-	cdAtt*          atts;		     /* Attribute list */
-	int 		ncomps;		     /* Number of components */
-	long		comps[CD_MAX_VAR_COMPS]; /* Component variable IDs, if ncomps>1 */
-	void*           data;		     /* Data for implicit array definition */
-	cdType		datatype;	     /* cdChar, cdInt, etc. */
-	char		delta[CD_MAX_TIME_DELTA]; /* Delta, for linear rep (datatype is double, long, or chartime) */
-	long            length;		     /* Number of elements */
-	int 		ndims;		     /* Number of dimensions */
-	long		dim[CD_MAX_VAR_DIMS];	/* Dimension IDs */
-	char		fileTemp[CD_MAX_PATH];  /* File template */
-	long 		gridid;		     /* Grid ID, if spatio-temporal */
-	char 		initVal[CD_MAX_CHARTIME]; /* Initial value, for linear rep (datatype is double, long, or chartime)*/
-	long 		levelid;	     /* Level ID, if spatio-temporal */
-	char 		longName[CD_MAX_NAME];  /* Parameter title */
-	cdRepresent	rep;		     /* cdExternalArray, cdInternalArray, cdLinear, ... */
-	char 		stat[CD_MAX_NAME];   /* Statistic */
-	long 		timeid;		     /* Time ID, if spatio-temporal */
-	char 		units[CD_MAX_NAME];  /* Units in file */
-} cdVar;
-
-/* Dimension */
-typedef struct cdDim{
-	long 		id;		     /* Dimension ID */
-	char 		name[CD_MAX_NAME];   /* Dimension name */
-	char            alias[CD_MAX_NAME];  /* Dimension alias */
-	int             natts;		     /* Number of attribtues */
-	cdAtt*          atts;		     /* Attributes */
-	cdDimType 	type;		     /* cdLongitude, cdLatitude, etc. */
-	cdType          datatype;	     /* Dimension datatype */
-	int 		subtype;	     /* cdSigma, cdJulian, etc., interpret using type */
-	long 		length;		     /* Number of elements */
-	int 		topology;	     /* E.g., cdWrapped */
-	int             unlimited;	     /* 0 if fixed, 1 if unlimited length (extensible) */
-	cdVar*  	boundary;	     /* Boundary variable if any */
-	struct cdDim*   partition;	     /* variable with partition indices */
-	cdRepresent	rep;		     /* cdExternalArray, cdInternalArray, cdLinear, ... */
-	char            units[CD_MAX_NAME];  /* Dimension units */
-	char		delta[CD_MAX_TIME_DELTA]; /* Delta, for linear rep (datatype is double, long, or chartime) */
-	char 		initVal[CD_MAX_CHARTIME]; /* Initial value, for linear rep (datatype is double, long, or chartime) */
-	void*           data;		     /* Data for implicit array definition */
-} cdDim;
-
-/* Grid */
-typedef struct {
-	long            id;		     /* Grid ID */
-	char 		name[CD_MAX_NAME];   /* Grid name */
-	int             natts;		     /* Number of attributes */
-	cdAtt*          atts;		     /* Attribute list */
-	cdGridType 	type;		     /* Grid type (rectangular, projected, ...) */
-	long 		familyid;	     /* Grid family ID */
-	long 		lon;		     /* Longitude dimension ID */
-	long 		lat;		     /* Latitude dimension ID */
-	long            length;		     /* Number of zones */
-	int             ndims;		     /* Number of dimensions */
-	long            dim[CD_MAX_VAR_DIMS]; /* Dimensions (IDs), in order of definition */
-	cdVar* 		mask;		     /* Mask variable if any */
-	double 		projArgs[3];	     /* Projection arguments */
-} cdGrid;
-
-/*
- * =================================================================
- *			Function Prototypes
- * =================================================================
- */
-
-extern cdDb* cdDbLookupId(long dbid);
-extern cdDset* cdDsetLookup(cdDb* db, const char* path);
-extern cdDset* cdDsetLookupId(long dsetid);
-extern cdDset* cdDsetInsert(cdDb* db, const char* path);
-extern int cdDsetDelete(long dsetid);
-extern void cdAttlistDestroy(cdAtt* attlist);
-extern cdAtt* cdAttInsert(char* name, cdAtt** attlist);
-extern cdAtt* cdAttlistGet(cdDset* dset, long objid);
-
-extern void cdError(char *fmt, ...);
-extern int cdInit(void);
-extern cdSymtab *cdSymtabCreate(int nentries, size_t entrySize);
-extern void cdSymtabDestroy(cdSymtab *table);
-extern int cdSymDelete(cdSymtab *table, int id);
-extern int cdSymInsert(cdSymtab *table, char *name, char *alias, void *entry);
-extern int cdSymLookup(int nindex, cdTag *indexTable, char *key, int *loc);
-extern int cdSymLookupName(cdSymtab *table, char *name, int *loc, void **entry);
-extern int cdSymLookupAlias(cdSymtab *table, char *alias, int *loc, void **entry);
-
-					     /* Basic time routines */
-int cdParseRelunits(cdCalenType timetype, char* relunits, cdUnitTime* unit, cdCompTime* base_comptime);
-int cdParseDeltaTime(cdCalenType timetype, char* deltaTime, double* value, cdUnitTime* unit);
-extern void CdDayOfYear(CdTime *date, int *doy);
-extern void CdDaysInMonth(CdTime *date, int *days);
-extern void CdError(char *fmt, ...);
-extern void CdMonthDay(int *doy, CdTime *date);
-extern void Cdc2e(char *ctime, CdTimeType timeType, double *etime, long *baseYear);
-extern void Cdc2h(char *ctime, CdTimeType timeType, CdTime *htime);
-extern void Cde2c(double etime, CdTimeType timeType, long baseYear, char *ctime);
-extern void Cde2h(double etime, CdTimeType timeType, long baseYear, CdTime *htime);
-extern void Cdh2c(CdTime *htime, char *ctime);
-extern void Cdh2e(CdTime *htime, double *etime);
-
-					     /* Dean's DRS-like extensions */
-extern int cealterdata(int fileid, int varid, const long count[], void* value);
-extern int ce_dimget(int fileid, int dimid, double** values, long *dimlen);
-extern void ce_lookup(double tab[], long n, double x, long *k);
-extern int ce_lookup_with_policy(double tab[], long n, double x, CeRoundPolicy policy, double delta, long *k);
-extern int ce_lookup_cycle(double tab[], long n, double x, double cycle, CeRoundPolicy policy, double delta,
-			   long *k, long *icycle);
-extern int ce_dimmap(int fileid, int dimid, double df, double dl, CeRoundPolicy policy, double delta, int isCycle,
-		     double cycle, double** dp, long *idf, long *idl, double *xdf, double *xdl);
-extern int ce_dimmapi(int fileid, int dimid, double df, double dl, CeRoundPolicy policy, double delta, int isCycle,
-		      double cycle, double** dp, long *idf, long *idl, double *xdf, double *xdl);
-extern int cevarinq(int fileid, int varid, char* name, CuType* datatype, int* ndims, int dimids[], int* natts);
-
-/*
- * =================================================================
- *			Globals
- * =================================================================
- */
-
-extern cdDb* cdCurrentDb;		     /* Database for dataset currently being parsed */
-extern cdDset* cdCurrentDset;		     /* Dataset currently being parsed */
-extern int cdLineno;			     /* Line number of dataset file currently being parsed */
-extern long cdNextDimid;		     /* Next dimension ID */
-extern long cdNextGridid;		     /* Next grid ID */
-extern long cdNextVarid;		     /* Next variable ID */
-extern int cdYyerrors;			     /* Number of parsing errors */
-
-
-
-
-/* NB!!! Everything below this line is OBSOLETE!! */
-
-typedef enum CdDsetType {CdExperiment = 1, CdObservation} CdDsetType;
-typedef enum CdGridType {CdRegistered = 1, CdSpectral = 2} CdGridType;
-typedef enum CdOpenMode {CdReadOnly = 1, CdReadWrite} CdOpenMode;
-typedef enum CdQaLevel {CdUnvalidated = 1, CdValidated = 2} CdQaLevel;
-
-					     /* See cdunif.h */
-typedef enum CdType {CdInvalidType = -1,
-			     CdByte = CuByte,
-			     CdChar = CuChar,
-			     CdShort = CuShort,
-			     CdInt = CuInt,
-			     CdLong = CuLong,
-			     CdFloat = CuFloat,
-			     CdDouble = CuDouble,
-			     CdLongDouble = CuLongDouble} CdType;
-
-typedef enum CdDimensionType {
-	CdXDimension = 1,
-	CdYDimension,
-	CdZDimension,
-	CdTDimension,
-	CdPDimension
-} CdDimensionType;
-
-					     /* Sequential access cursor operations */
-typedef enum {
-	CdFirst = 1,
-	CdLast,
-	CdNext,
-	CdPrev
-} CdCursorOp;
-
-/* predefined statistics */
-#define CdMonthlyMeans "monthly mean"
-
-/*
- * =================================================================
- *			Structures
- * =================================================================
- */
-
-typedef struct {
-	long   			id;	     /* Database ID */
-	char			name[CU_MAX_PATH]; /* Full dataset pathname */
-	CdDsetType		dsetType;    /* Experimental or observed */
-} CdDsetDes;
-typedef CdDsetDes *CdDset;
-
-/* Order descriptor */
-/* Each value is a dimension index, 0 .. 4, indicating */
-/* the order of the dimensions on output. C-majority is observed, */
-/* that is, dimension 0 is LEAST rapidly varying. A negative value */
-/* indicates that the dimension is not applicable. For direction, a positive value */
-/* indicates increasing values, negative indicates decreasing */
-/* values. Direction for parameters refers to the canonical */
-/* ordering as defined in the database. */
-
-typedef struct {
-	short  		parm;		     /* Parameter dimension, for compound elements */
-	short		lon;		     /* Longitude dimension */
-	short		lat;		     /* Latitude dimension */
-	short		lev;		     /* Level dimension */
-	short		time;		     /* Time dimension */
-	short  		parmDir;	     /* Parameter dimension direction, for compound elements */
-	short		lonDir;		     /* Longitude dimension direction */
-	short		latDir;		     /* Latitude dimension direction */
-	short		levDir;		     /* Level dimension direction */
-	short		timeDir;	     /* Time dimension direction */
-} CdOrder;
-
-typedef struct {			/* specification of range of data to return */
-        int 		bgnColNum; 	/* begining column number to read */
-        int 		colCnt;   	/* count of colums to read */
-        int 		bgnRowNum; 	/* beginning row number to read */
-        int 		rowCnt;		/* count of rows to read */
-	int		bgnLevNum;
-	int		levCnt;
-        double		bgnTime; 	/* beginning time to read; depends on timeType */
-        int 		stepCnt;	/* count of time steps to read */
-} CdRegion;
-
-typedef struct {
-	char   prjnName[21];		/* projection name */
-	long   nx;			/* count of columns */
-	long   ny;			/* count of rows */
-	double lat;			/* lat of origin in degrees */
-	double lon;			/* lon of origin in degrees */
-	long   orig_ix;			/* column # for origin, left column is 1 */
-	long   orig_iy;			/* row # for origin; top row is 1 */
-	double x_int_dis;		/* distance interval between columns in km */
-	double y_int_dis;		/* distance interval between rows in km */
-	double parm_1;			/* geom parm 1, depends on projection */
-	double parm_2;			/* geom parm 2, depends on projection */
-	double parm_3;			/* geom parm 3, depends on projection */
-} CdRegGeom;
-
-typedef struct {			/* info from table grid_spct_geom */
-	char   trnc_type[21];		/* spectral truncation type (triangular/etc) */ 
-	long   coef_cnt;		/* count of complex coefficients used */ 
-	long   max_lat_wav_num;		/* max latitudinal wavenumber (M in GRIB) */
-	long   max_lon_wav_num_1;	/* max longitudinal wavenumber 1 (J in GRIB) */
-	long   max_lon_wav_num_2;	/* max longitudinal wavenumber 2 (K in GRIB) */
-} CdSpctGeom;
-
-typedef struct {
-	double begEtm;			     /* Beginning epochal time */
-	double begLvl;			     /* Beginning level  */
-	double endEtm;			     /* End epochal time */
-	double endLvl;			     /* End level */
-	long fileId;			     /* Database file ID */
-	CdOrder storageOrder;		     /* Storage order in external file */
-	long varId;			     /* Database variable ID */
-} CdSlab;
-
-typedef struct {
-	long   			id;
-	char			name[41];
-	long			count;
-	char			lvlType[41];
-	char			remark[121];
-	char			units[41];
-	double			*values;
-} CdLevel;
-
-typedef struct {
-	char   		alias[CD_MAX_NAME];	     /* name in the file  */
-	CdType  	dataType;	     /* data type of var */
-	long		dsetId;		     /* Dataset ID */
-	CdGridType	gridType;	     /* grid type (registered |	spectral) */
-	long		id;		     /* Variable ID */
-	CdLevel		level;		     /* Level */
-	long	  	lvlId;		     /* level database ID */
-	double		maxEtm;		     /* Ending epochal time */
-	double		minEtm;		     /* Beginning epochal time */
-	double		missing;	     /* missing data value */
-	char   		name[CD_MAX_NAME];	     /* parameter (official variable) name */
-	long		nx;		     /* Number of longitudes */
-	long		ny;		     /* Number of latitudes */
-	long		nz;		     /* Number of levels */
-	long		nt;		     /* Number of times */
-	long		parmId;		     /* parameter database ID */
-	char		parmUnits[CD_MAX_NAME];	     /* official units */
-	CdRegGeom       regGeom;	     /* registered geometry */
-	char		remark[CD_MAX_NAME];	     /* comments */
-	double		scaleB;		     /* mapping from actual units to official units */
-					     /* is parmUnits = (scaleM * units) + scaleB*/
-	double		scaleM;
-	CdSpctGeom      spctGeom;	     /* spectral geometry */
-	char		statistic[CD_MAX_NAME];	/* Statistic identifier */
-	CdOrder         storageOrder;	     /* storage order, in external file or internally */
-	CdTimeType	timeType;	     /* time type */
-	char		title[CD_MAX_NAME];	     /* parameter title */
-	char		units[CD_MAX_NAME];	     /* actual units (cf. parmUnits) */
-} CdVar;
-
-/*
- * =================================================================
- *			Function Prototypes
- * =================================================================
- */
-
-/* Connect to the database */
-/*
-extern int
-CdConnectDb(void);
-*/
-/* Disconnect from the database */
-/*
-extern void
-CdDisconnectDb(void);
-*/
-/* Open a dataset. Returns a handle for the dataset*/
-
-extern CdDset
-CdOpenDset(char *path,	     	             /* Dataset path name */
-	   CdOpenMode openMode		     /* Open mode */
-	   );
-
-
-/* Close a dataset */
-
-extern void
-CdCloseDset(CdDset dset);		     /* Dataset handle */
-
-/* Get a variable handle */
-
-extern int
-CdLookupVar(CdDset dset,		     /* Dataset handle */
-	    char *varName,		     /* Variable (parameter) name*/
-	    char *statistic,	             /* Statistic (if NULL, return the first variable) */
-	    CdVar *var,			     /* Variable descriptor (returned) */
-	    CdRegion *region);		     /* Region (returned) */
-
-/* Read a region of data. A region is a description of a four-dimensional */
-/* lon-lat-lev-time portion of data. */
-
-extern int
-CdReadRegion(CdVar *var,		     /* variable */
-	     CdRegion *region,		     /* Region to read */
-	     CdOrder *order,		     /* Ordering of data dimensions on return */
-	     CdType datatype,   	     /* Datatype of data to be returned (input) */
-	     void *data);		     /* Data returned (output) */
-
-
-/* Set a region */
-
-extern int
-CdSetLon(CdVar *var,		     	     /* variable */
-	 double firstLon,		     /* first longitude in range */
-	 double lastLon,		     /* last longitude in range */
-	 CdRegion *region);		     /* region to set */
-
-extern int
-CdSetLat(CdVar *var,		     	     /* variable */
-	 double firstLat,
-	 double lastLat,
-	 CdRegion *region);
-
-extern int
-CdSetLevel(CdVar *var,		     	     /* variable */
-	   double firstLevel,
-	   double lastLevel,
-	   CdRegion *region);
-
-extern int
-CdSetTime(CdVar *var,		             /* variable */
-	  CdTime *start,
-	  CdTime *end,
-	  CdRegion *region);
-
-/* Get dimension ranges from a region */
-
-extern int
-CdGetLon(CdVar *var,		     	     /* variable */
-	 CdRegion *region,
-	 double *firstLon,
-	 double *lastLon);
-
-extern int
-CdGetLat(CdVar *var,		             /* variable */
-	 CdRegion *region,
-	 double *firstLat,
-	 double *lastLat);
-
-extern int
-CdGetLevel(CdVar *var,		             /* variable */
-	   CdRegion *region,
-	   double *firstLevel,
-	   double *lastLevel);
-
-extern int
-CdGetTime(CdVar *var,		             /* variable */
-	  CdRegion *region,
-	  CdTime *start,
-	  CdTime *end);
-
-/* Get region size, returns number of elements */
-
-extern long
-CdRegionSize(CdRegion *region, CdType dataType);
-
-/* Set the order structure from human-readable form */
-extern int
-CdSetOrder(CdVar *var,			     /* Variable handle */
-	   CdOrder *order,		     /* Returned order structure */
-	   char orderSpec[11]);		     /* Order specification, any permutation such as */
-                                             /* "SpSxSySzSt", "SxSySpStSz" , "StSpSzSySx" */
-					     /* where S is either '+' for increasing dimension values */
-					     /* in the resulting array, or '-' for decreasing values. */
-
-/* Get the registered geometry for a variable */
-extern int
-CdGetRegGeom(CdVar *var,	     	     /* Variableiable */
-	     CdRegGeom *varRegGeom);	     /* registered geometry (output) */
-
-/* Get the spectral geometry for a variable */
-extern int
-CdGetSpctGeom(CdVar *var,		     /* Variable */
-	      CdSpctGeom *varSpctGeom);	     /* spectral geometry */
-	      
-
-extern CdVar
-CdSetVarCursor(CdDset dset,			     /* Dataset handle */
-		char *varName,		     /* Variable name */
-		char *statistic);		     /* Variable statistic, or NULL for first */
-
-					     /* Fetch a variable */
-extern CdVar
-CdFetchVar(CdCursorOp op);		     /* Cursor operation */
-
-					     /* Error routines */
-
-#endif
diff --git a/include/cdTime/cdmsint_new.h b/include/cdTime/cdmsint_new.h
deleted file mode 100644
index 05347fd..0000000
--- a/include/cdTime/cdmsint_new.h
+++ /dev/null
@@ -1,1063 +0,0 @@
-/* psql structs, pointers, defines */
-
-#ifndef _PSQL_H
-#define _PSQL_H
-
-#include <stdio.h>
-#include <math.h>
-#include <stdarg.h>
-#include <cdms.h>
-#include <string.h>
-#include <dirent.h>
-#include <sys/stat.h>
-#include <stdlib.h>
-#include <netcdf.h>
-#include <pwd.h>
-#include <grp.h>
-#include <sys/types.h>
-#include <time.h>
-#include <ctype.h>
-
-
-/*--------------------------------------------------------------------
- *                Integer ID numbers for CDMS tree nodes
- *-------------------------------------------------------------------*/
-
-
-typedef enum {
-        id_cdNone = 4321,
-        id_cdHd,
-        id_cdTmp,
-        id_cdPql,
-        id_cdDb,
-        id_cdDset,
-        id_cdVar,
-        id_cdDim,
-        id_cdAtt
-} cdms_Id;
-
-
-/*--------------------------------------------------------------------
- *                PQL keywords and enumerations
- *-------------------------------------------------------------------*/
-
-
-#define L_pql 42             /* number of pql keywords */
-#define L_pql_node_type 5    /* number of pql tree node identifiers */
-
-enum { i_database,  i_dataset,   i_variable,  i_dimension,  i_attribute,
-       i_select,    i_distinct,  i_at,        i_below,      i_above,
-       i_name,      i_value,     i_length,    i_where,      i_union,
-       i_show,      i_id,        i_from,      i_dirtree,    i_end,
-       i_readmeta,  i_writemeta, i_pwd,       i_tempmount,  i_group,
-       i_release,   i_read,      i_cd,        i_virtual,    i_ndim,
-       i_ttycopy,   i_with,      i_for,       i_filename,   i_readcheck,
-       i_type,      i_check,     i_alter,     i_readalter,  i_subfgroup,
-       i_writeds,   i_lenreadbuf };
-
-#ifndef PSQL
-char *pqlkey[L_pql] = {
-       "database",  "dataset",   "variable",  "dimension",  "attribute",
-       "select",    "distinct",  "at",        "below",      "above",
-       "name",      "value",     "length",    "where",      "union",
-       "show",      "id",        "from",      "dirtree",    "end",
-       "readmeta",  "writemeta", "pwd",       "tempmount",  "group",
-       "release",   "read",      "cd",        "virtual",    "ndim",
-       "ttycopy",   "with",      "for",       "filename",   "readcheck",
-       "type",      "check",     "alter",     "readalter",  "subfgroup",
-       "writeds",   "lenreadbuf" };
-
-cdms_Id pqlnode[L_pql_node_type] = {
-       id_cdDb,     id_cdDset,   id_cdVar,    id_cdDim,     id_cdAtt };
-#else
-extern char *pqlkey[];
-extern cdms_Id pqlnode[];
-#endif
-
-
-/**********************************************************************/
-                             /* Database */
-/**********************************************************************/
-
-
-typedef struct cdDb_n {
-        cdms_Id            id;        /* id identifier of this struct */
-        cdms_Id            id_above;  /* id struct above this struct */
-        void               *above;    /* struct above this struct */
-        char               *name;     /* Database name */
-        struct cdDset_n    *dsets;    /* Datasets */
-        struct cdVar_n     *vars;     /* Variables */
-        struct cdDim_n     *dims;     /* Dimensions */
-        struct cdAtt_n     *atts;     /* Attributes */
-        struct cdPql_n     *pqls;     /* Pql lists */
-        struct cdDb_n      *next;     /* Next database */
-        struct cdCheck_n   *ckdefs;   /* Check Var,Dim,Att def. */
-        struct cdDbFlag_n  *f;        /* Global scalars, flags */
-} cdDb_new;
-
-
-/**********************************************************************/
-                             /* Dataset */
-/**********************************************************************/
-
-
-typedef struct cdDset_n {
-        cdms_Id          id;         /* id identifier of this struct */
-        cdms_Id          id_above;   /* id struct above this struct */
-        void             *above;     /* struct above this struct */
-        char             *name;      /* Dataset name */
-        struct cdVar_n   *vars;      /* Variables */
-        struct cdDim_n   *dims;      /* Dimensions */
-        struct cdAtt_n   *atts;      /* Attributes */
-        struct cdDset_n  *next;      /* Next dataset */
-} cdDset_new;
-
-
-/**********************************************************************/
-                             /* Variable */
-/**********************************************************************/
-
-
-typedef struct cdVar_n {
-        cdms_Id          id;           /* id identifier of this struct */
-        cdms_Id          id_above;     /* id struct above this struct */
-        void             *above;       /* struct above this struct */
-        char             *name;        /* Parameter name (official) */
-        struct cdAtt_n   *atts;        /* Attributes */
-        int              ndims;        /* Number of dimensions */
-        struct cdTmp_n   *dim;         /* Dimension IDs (in dim order) */
-        cdType           datatype;     /* cdChar, cdInt, etc. */
-        long             length;       /* Number of elements */
-        void             *data;        /* Data for implicit definition */
-        struct cdVar_n   *next;        /* Next Variable */
-} cdVar_new;
-
-
-/**********************************************************************/
-                             /* Dimension */
-/**********************************************************************/
-
-
-typedef struct cdDim_n {
-        cdms_Id         id;            /* id identifier of this struct */
-        cdms_Id         id_above;      /* id struct above this struct */
-        void            *above;        /* struct above this struct */
-        char            *name;         /* Dimension name */
-        struct cdAtt_n  *atts;         /* Attributes */
-        char            *units;        /* Units*/
-        cdType          datatype;      /* Dimension datatype */
-        long            length;        /* Number of elements */
-        void            *data;         /* coordinates if not cdLinear */
-        struct cdDim_n  *next;         /* Next Dimension */
-} cdDim_new;
-
-
-/**********************************************************************/
-                             /* Attribute */
-/**********************************************************************/
-
-
-typedef struct cdAtt_n {
-        cdms_Id         id;        /* id identifier of this struct */
-        cdms_Id         id_above;  /* id struct above this struct */
-        void            *above;    /* struct above this struct */
-        char            *name;     /* Attribute name */
-        cdType          datatype;  /* Datatype of the attribute */
-        long            length;    /* Number of elements (NOT bytes) */
-        void            *values;   /* Attribute values */
-        struct cdAtt_n  *next;     /* Next Attribute */
-} cdAtt_new;
-
-
-/**********************************************************************/
-                           /* Struct Header */
-/**********************************************************************/
-
-
-typedef struct cdHd_n {
-        cdms_Id         id;        /* id identifier of this struct */
-        cdms_Id         id_above;  /* id struct above this struct */
-        void            *above;    /* struct above this struct */
-} cdHd;
-
-
-/**********************************************************************/
-      /* Substitution Struct -- placeholder pointer of desired struct */
-/**********************************************************************/
-
-
-typedef struct cdTmp_n {
-        cdms_Id         id;        /* id identifier of this struct */
-        cdms_Id         id_above;  /* id struct above this struct */
-        void            *above;    /* struct above this struct */
-        struct cdTmp_n  *next;     /* next Tempory */
-        cdms_Id         id_want;   /* id of wanted struct */
-        char            *nam_want; /* name of wanted struct */
-        void            *want;     /* address wanted struct */
-} cdTmp;
-
-
-/**********************************************************************/
-      /* PQL List Selection Struct -- list of tree struct addresses */
-/**********************************************************************/
-
-
-typedef struct cdPql_n {
-        cdms_Id         id;        /* id identifier of this struct */
-        cdms_Id         id_above;  /* id struct above this struct */
-        void            *above;    /* struct above this struct */
-        struct cdPql_n  *next;     /* next List */
-        char            *name;     /* Pql name */
-        char            *pqlmsg;   /* user's input pql instruction */
-        long            length;    /* length of user's list */
-        long            *list;     /* list as user-ID's */
-} cdPql;
-
-
-/**********************************************************************/
-          /* internal -- PQL read in sub-set of dataset variable */
-/**********************************************************************/
-
-
-typedef struct var_pql_read_n {
-        struct cdVar_n  *var;     /* Variable struct */
-        void            *data;    /* data array */
-        char            *path;    /* input file directory */
-        char            *file;    /* input file */
-
-       /*------- Input file Variable info -------*/
-        int             ndims;    /* Variable number of dimensions */
-        cdType          vtyp;     /* Variable datatype */
-        long            vlen;     /* Variable length */
-        int             *dorder;  /* Variable dim transposing */
-
-       /*------- Input file per-dimension Variable info -------*/
-        struct cdDim_n  **dims;   /* Dimension struct */
-        char            ***plst;  /* Pathlist attribute or NULL */
-        char            ***flst;  /* Filelist attribute or NULL */
-        int             **ilst;   /* Poslist attribute or NULL */
-        int             **fpt;    /* Filepoint attribute or NULL */
-
-        long            *index;   /* User want index */
-        long            *count;   /* User want count */
-
-        long            *rdidx;   /* Read file index */
-        long            *rdcnt;   /* Read file count */
-        long            *memidx;  /* Read file to memory array index */
-
-       /* REMOVE FROM STRUCT   per-dimension info */
-        long            *len;     /* Coordinate length */
-        cdType          *typ;     /* Coordinate datatype */
-        void            **cord;   /* Coordinate array */
-} var_pql_read;
-
-
-/**********************************************************************/
-          /* internal -- PQL read in sub-set of dataset variable */
-/**********************************************************************/
-
-
-typedef struct dim_pql_read_n {
-        struct cdDim_n  *dim;     /* Dimension struct */
-        void            *data;    /* data array */
-
-       /*------- Input file Dimension info -------*/
-        cdType          dtyp;     /* Dimension datatype */
-        long            index;    /* User want index */
-        long            count;    /* User want count */
-} dim_pql_read;
-
-
-/**********************************************************************/
-          /* internal -- PQL list of struct CDMS-tree-node addresses */
-/**********************************************************************/
-
-
-typedef struct cdms_pql_list_n {
-        long      L_list;     /* physical size of list */
-        long      length;     /* used length of list */
-        void      **list;     /* list of struct addresses */
-
-
-       /*------- where clause, input from user card -------*/
-        int       flg_sid;    /* 1 =, 2 !=, 3 <, 4 <=, 5 >, 6 >= */
-        long      tst_sid;    /* length test arg. */
-
-        int       flg_nam;    /* 1 =, 2 !=, 3 <, 4 <=, 5 >, 6 >= */
-        char      *tst_nam;   /* name test arg. */
-
-        int       flg_len;    /* 1 =, 2 !=, 3 <, 4 <=, 5 >, 6 >= */
-        long      tst_len;    /* length test arg. */
-
-        int       flg_typ;    /* 1 =, 2 !=, 3 <, 4 <=, 5 >, 6 >= */
-        char      *tst_typ;   /* type test arg. */
-
-        int       flg_val;    /* 1 =, 2 !=, 3 <, 4 <=, 5 >, 6 >= */
-        cdType    tst_vtyp;   /* type of the value test arg. */
-        char      *tst_a_val; /* ascii value test */
-        long      tst_i_val;  /* integer value test */
-        double    tst_f_val;  /* floating value test */
-
-        int       flg_dim;    /* 1 =, 2 !=, 3 <, 4 <=, 5 >, 6 >= */
-        long      tst_dim;    /* ndim test arg. */
-
-        int       flg_v1d;    /* 1 =, 2 !=, 3 <, 4 <=, 5 >, 6 >= */
-                              /* variable name = dimension name test */
-
-        int       flg_grp;    /* 1 =, 2 !=, 3 <, 4 <=, 5 >, 6 >= */
-                              /* dataset used in f-spanning-group */
-
-
-       /*------- where clause, input from tree-node -------*/
-        long      nod_sid;    /* length test arg. */
-
-        char      *nod_nam;   /* name test arg. */
-
-        long      nod_len;    /* length test arg. */
-
-        cdType    nod_typ;    /* type test arg. */
-
-        cdType    nod_vtyp;   /* type of the value test arg. */
-        void      *nod_val;   /* ascii value test */
-
-        int       nod_dim;    /* variable number of dimensions */
-
-        int       nod_v1d;    /* flag for variable==dimension */
-
-        int       nod_grp;    /* flag for dataset==group */
-
-
-       /*------- show section edit flags -------*/
-        int       pflg;       /* (0,1) print title lines */
-        int       cflg;       /* (0,1) print converted dim. values */
-} cdms_pql_list;
-
-
-/**********************************************************************/
-          /* internal -- ascii metafile line, and line symbols */
-/**********************************************************************/
-
-
-typedef struct cdms_card_n {
-        FILE   *fp;        /* file pointer */
-        char   *eof;       /* return value from fgets() */
-        int    len_line;   /* string length of ascii line */
-        char   *asc_line;  /* ascii line */
-        int    num_sym;    /* number of symbols */
-        int    *idx_sym;   /* char-index of symbol */
-        int    *len_sym;   /* char-length of symbol */
-        int    *cls_sym;   /* classification of symbol */
-        int    L_asc_line; /* memory size of asc_line */
-        int    L_idx_sym;  /* memory size of idx_sym */
-       /*---------------------------------
-        * cls_sym[] -- classification flag identifying symbol
-                    -- (integer of a letter)
-             ( ) < > { } , : ; = " -- special letters
-             'a' -- symbol, ascii name
-             'i' -- symbol, integer number
-             'f' -- symbol, floating number
-             'q' -- ascii string contained within quotes "..."
-        * idx_sym[] -- index of symbol in ascii input line
-        * len_sym[] -- character length of symbol
-        *---------------------------------*/
-} cdms_card;
-
-
-/**********************************************************************/
-     /* internal -- User-Meta-Disc Variable correspondence */
-/**********************************************************************/
-
-
-#define D_max 8
-
-typedef struct cdms_rd_var_n {
-       /*--------------- disc_to_meta correspondence ---------------*/
-        long            f_siz[D_max];    /* disc dimension sizes */
-        long            f_len[D_max];    /* length index arrays */
-        long            *f_out[D_max];   /* to_meta index arrays */
-
-       /*--------------- user_to_meta correspondence ---------------*/
-        long            u_pos[D_max];    /* user position in meta */
-        long            u_siz[D_max];    /* user dimension sizes */
-        long            u_len[D_max];    /* length index arrays */
-        long            *u_in[D_max];    /* to_meta index arrays */
-        struct cdDim_n  *u_dim[D_max];   /* user sub-dimensions */
-
-       /*--------------- disc_to_user correspondence ---------------*/
-        long            rd_len[D_max];   /* length index arrays */
-        long            *rd_in[D_max];   /* read-in index array */
-        long            *rd_out[D_max];  /* read-out array */
-
-       /*--------------- general info                ---------------*/
-        struct cdVar_n  *var;            /* meta variable struct */
-        long            ndims;           /* meta var-dim count */
-        long            m_siz[D_max];    /* meta var-dim sizes */
-        struct cdDim_n  *m_dim[D_max];   /* meta var-dim structs */
-        char            *rd_dir;         /* directory path */
-        char            *rd_list;        /* list of filenames */
-        long            nfil;            /* number of filenames */
-        long            ifil;            /* idx current file */
-        int             f_id;            /* cdunif file id */
-        int             f_recdim;        /* cdunif file recdim */
-        int             f_id_var;        /* cdunif file variable id */
-        int             f_ndims;         /* cdunif file var dim count */
-        int             f_dim[D_max];    /* cdunif file var dim id's */
-        int             free_flg[8];     /* memory cleanup flags */
-                     /* free_flg: 0 f_in, 1 f_out, 2 u_in, 3 u_out,
-                        4 rd_in, 5 rd_out, 6 rd_list, 7 rd_dir */    
-} cdms_rd_var;
-
-
-/**********************************************************************/
-      /* internal -- user directory-to-cdms-tree structure */
-/**********************************************************************/
-
-
-typedef struct cdms_dir_n {
-        int             db_n;      /* number for db names */
-        int             ds_n;      /* number for dset names */
-        char            *aaflag;   /* ascii key for db,dset names */
-        int             dirflag;   /* 0 dir -- db, 1 dir -- dset */
-        int             numflag;   /* max no. levels to expand */
-        int             scnflag;   /* 0 -- open file, 1 -- don't */
-        int             ownflag;   /* file owner flag (0 no, 1 yes) */
-        int             conflag;   /* 0 -- stop on bad file, 1 -- no */
-        int             vmxflag;   /* get var. min-max (0 no, 1 yes) */
-        int             tmxflag;   /* get time bgn-end (0 no, 1 yes) */
-} cdms_dir;
-
-
-/**********************************************************************/
-      /* internal -- add sub-data-file to spanning file declaration */
-/**********************************************************************/
-
-
-typedef struct span_list_n {
-        struct cdDb_n   *dbs;      /* db of first spaned file */
-        int             ct;        /* calendar first file */
-
-       /*--------------- dimension card info         ---------------*/
-        char            *dname;    /* name spaning dimension */
-        int             flg_dtyp;  /* 1 time '1980-1-1 0:0' on cards */
-        int             select;    /* 0--pt1pt2 cord axis subset, */
-                                   /* 1--idxidx, 2--idxcnt, */
-                                   /* 3--offoff, 4--offcnt */
-        char            *altf;     /* NULL or alterfile */
-        int             lvlst;     /* length of vlst (from dim card) */
-        char            **vlst;    /* NULL or variable list */
-
-       /*--------------- filelist size arrays        ---------------*/
-        int             L_flist;   /* size of per-file lists */
-        int             n_flist;   /* number of files */
-        char            **flist;   /* list of file names */
-        char            **plist;   /* list of file paths */
-        int             *fdoff;    /* list of file-dim offsets */
-
-       /*--------------- coordinate size arrays      ---------------*/
-        int             L_cord;    /* size of coord. arrays */
-        int             n_cord;    /* number of coordinates */
-        double          *scord;    /* span coordinate array */
-        int             *fpoint;   /* filepoint span attribute */
-
-       /*--------------- units,delta card info       ---------------*/
-        int             flg_del;   /* flag, 1 if delta .cdms format */
-        char            *uni;      /* units first file */
-        int             flg_uni;   /* 1,2,3 mo,da,6h time flag */
-        double          delt;      /* delta between coordinates */
-} span_list;
-
-
-/**********************************************************************/
-      /* internal -- pql group instruction */
-/**********************************************************************/
-
-
-typedef struct cdms_group_n {
-        cdVar_new       **vlist;   /* list of datasets */
-        cdDim_new       **dlist;   /* list of dimensions */
-        int             *index;    /* index to coordinates */
-        int             *count;    /* number of coordinates */
-        int             *order;    /* sort order position */
-        double          *coord;    /* coordinates */
-} cdms_group;
-
-
-/**********************************************************************/
-                          /* Check Var,Dim,Att Struct */
-/**********************************************************************/
-
-
-typedef struct cdCheck_n {
-        cdms_Id          id;          /* id identifier of this struct */
-        struct cdCheck_n *next;       /* Next Check struct */
-        char             *name;       /* official name */
-        int              L_alias;     /* size of **alias */
-        int              nalias;      /* number of alias */
-        char             **alias;     /* list of alias names */
-        char             *tagname;    /* unique identifer name */
-        int              L_card;      /* size of **card */
-        int              ncard;       /* number of cards */
-        char             **card;      /* list of cards */
-        int              L_fstruct;   /* size of **fstruct */
-        int              nfstruct;    /* number of struct */
-        cdHd             **fstruct;   /* list of VAR,DIM,DSET struct */
-} cdCheck;
-
-
-/**********************************************************************/
-                          /* Key Global per Database */
-/**********************************************************************/
-
-
-typedef struct cdDbFlag_n {
-        cdms_Id     id;                    /* id identifier */
-        int         L_multi;               /* size of arrays */
-        int         *multi_ioc;            /* multi-file ioc's */
-        cdDset_new  **multi_ds;            /* multi-file 1st var. */
-        FILE        *FPT_OUT;              /* NULL or ioc of file */
-        int         FPT_TTY;               /* flag: print to tty */
-        int         ERR_no;                /* global error flag */
-        char        *TempMount;            /* tempory mount point */
-        int         EDIT_STRUCT_DATA_FLG;  /* edit struct or data */
-        int         FPT_PY;                /* flag: print to python */
-        int         qlerrflg;              /* flag: 'ql' routines */
-        char        *PSQL_MSG;             /* message to print */
-        char        *PY_PSQL_MSG;          /* message to python */
-        int         l_PY_PSQL_MSG;         /* length of PY_PSQL_MSG */
-        int         L_PY_PSQL_MSG;         /* size of PY_PSQL_MSG */
-        int         l_ALT_PAT;             /* length of ALT_PAT */
-        char        *ALT_PAT;              /* alter replace patern */
-} cdDbFlag;
-
-
-/**********************************************************************/
-              /* Global scalars, arrays, statement functions */
-/**********************************************************************/
-
-
-#ifndef PSQL
-cdDb_new   *DB_ROOT_ADR;           /* tree root address */
-FILE       *FPT_OUT;               /* NULL or ioc of file */
-int        FPT_TTY;                /* flag to print to tty */
-int        ERR_no;                 /* global error flag */
-char       *TempMount;             /* ascii tempory mount returned by pwd */
-int        EDIT_STRUCT_DATA_FLG;   /* edit struct or data flag */
-int        FPT_PY;                 /* flag: print to python */
-char       *PSQL_MSG;              /* psql message to print */
-char       *PY_PSQL_MSG;           /* psql message to send to python */
-int        l_PY_PSQL_MSG;          /* length of PY_PSQL_MSG */
-int        L_PY_PSQL_MSG;          /* size of PY_PSQL_MSG array */
-#else
-extern cdDb_new   *DB_ROOT_ADR;
-extern FILE       *FPT_OUT;
-extern int        FPT_TTY;
-extern int        ERR_no;
-extern char       *TempMount;
-extern int        EDIT_STRUCT_DATA_FLG;
-extern int        FPT_PY;
-extern            *PSQL_MSG;
-extern            *PY_PSQL_MSG;
-extern            l_PY_PSQL_MSG;
-extern            L_PY_PSQL_MSG;
-#endif
-
-#define pt_to_long(p,l) { void **v; v = (void *) &l; *v = (void *) p; }
-#define long_to_pt(l,p) { void **v; v = (void *) &l, p = *v; }
-#define err_x(a) { err_m(a); ERR_no = 1; return; }
-#define err_t(a,b) { if( a ) err_x(b); }
-#define err_r(void) { if( ERR_no ) return; }
-#define err_i(a) { ERR_no = a; }
-#define qlerr_x(a) { err_m(a); ERR_no = 0; return -1; }
-#define qlerr_r(void) { if( ERR_no ) { ERR_no = 0; return -1; } }
-
-/*.......error macros for functions of type long int.......*/
-#define err_xl(a) { err_m(a); ERR_no = 1; return (long) 0; }
-#define err_rl(void) { if( ERR_no ) return (long) 0; }
-#define err_tl(a,b) { if( a ) err_xl(b); }
-
-/*.......error macros for functions of type void* .......*/
-#define err_xv(a) { err_m(a); ERR_no = 1; return NULL; }
-#define err_rv(void) { if( ERR_no ) return NULL; }
-#define err_tv(a,b) { if( a ) err_xv(b); }
-
-/*.......err macros for functions of type int.......*/
-#define err_xi(a) { err_m(a); ERR_no = 1; return 0; }
-#define err_ri(void) { if( ERR_no ) return 0; }
-#define err_ti(a,b) { if( a ) err_xi(b); }
-
-
-/**********************************************************************/
-                         /* Function prototypes */
-/**********************************************************************/
-
-
-/*..........bgn_extern..........*/
-extern void alt_addatt( cdms_card *line,   
-                 cdHd      *hd,     
-                 int       idx,     
-                 int       flg );
-extern void alt_adddim( cdms_card *line,   
-                 cdHd      *hd,     
-                 int       flg );
-extern void alt_addvar( cdms_card *line,   
-                 cdHd      *hd,     
-                 int       flg );
-extern void alt_arg_pat( char *out,   
-                  char *in );
-extern void alt_att_concat( cdms_card *line,   
-                     cdHd      *hd,     
-                     int       idx );
-extern void alt_delatt( cdms_card *line,   
-                 cdHd      *hd );
-extern void alt_del_node( cdAtt_new *att );
-extern void alter_dataset( cdHd *cur );
-extern void alt_midmonth( cdHd *hd,      
-                   char *nmod,    
-                   char *ncal,    
-                   char *ntim );
-extern void alt_mod_shape( cdAtt_new *att );
-extern void alt_newtim( cdms_card *line,   
-                 cdDim_new *dim,    
-                 int       idx );
-extern void alt_one_dim( cdDim_new *dim,   
-                  cdCheck   *ck );
-extern void alt_one_ds( cdDset_new *ds,    
-                 cdCheck    *ck );
-extern void alt_one_var( cdVar_new *var,   
-                  cdCheck   *ck );
-extern void alt_tim6h( cdHd *hd,      
-                char *nmod,    
-                char *ncal,    
-                char *ntim );
-extern long alt_values( cdms_card *line,   
-                 int       idx,     
-                 cdHd      *hd,     
-                 long      len );
-extern void alt_wrt_cards( cdDset_new *dset,    
-                    char       *name );
-extern void ary_min_max( cdType typ,     
-                  long   len,     
-                  void   *ary,    
-                  double *min,    
-                  double *max );
-extern void *ary_off( cdType typ,     
-               long   idx,     
-               void   *ary );
-extern void *ary_trans( cdType typ,        
-                 long   len,        
-                 void   *ary,       
-                 cdType out_typ );
-extern void att_to_dgv( cdDim_new  *dim,    
-                 cdVar_new  *var );
-extern void cdPqltty(void);
-extern void check_dataset( cdHd *cur,     
-                    int  pflg );
-extern int check_filename( char *name );
-extern int ck_lnk_list_att( cdAtt_new *att0,   
-                     int       pflg );
-extern int ck_lnk_list_dim( cdDim_new *dim0,   
-                     int       pflg );
-extern int ck_lnk_list_var( cdVar_new *var0,   
-                     int       pflg );
-extern void ck_nam_fnd( cdms_Id idwant,       
-                 char    name[],       
-                 char    tagname[],    
-                 int     *num,         
-                 cdCheck ***cklist );
-extern int ck_one_att( cdAtt_new *att0,    
-                cdCheck   *ck,      
-                int        pflg );
-extern int ck_one_dim( cdDim_new *dim,     
-                cdCheck   *ck,      
-                int        pflg );
-extern int ck_one_var( cdVar_new *var,     
-                cdCheck   *ck,      
-                int        pflg );
-extern void *copy_struct( cdHd *cur,    
-                   cdHd *abv );
-extern char *cr_asc_cpy( char *in );
-extern void cr_att_cpy( cdAtt_new *atta,   
-                 cdHd      *cur );
-extern void *cre_struct( cdms_Id idwant,   
-                  cdHd    *cur );
-extern void delete_struct( cdHd *cur );
-extern int dim_f1( int       idx,    
-            cdms_card *line,  
-            cdDim_new *dim );
-extern int dim_f2( int       idx,      
-            cdms_card *line,    
-            cdDim_new *dim );
-extern int dim_f3( int       idx,      
-            cdms_card *line,    
-            cdDim_new *dim );
-extern void dir_file( cdms_dir *dir,    
-               char     *path,   
-               char     *name,   
-               cdHd     *cur );
-extern void dir_file_dim( cdms_dir   *dir,      
-                   char       *path,     
-                   char       *name,     
-                   int        f_id,      
-                   int        f_ndims,   
-                   cdDset_new *ds );
-extern void dir_file_noscan( cdms_dir *dir,    
-                      char     *path,   
-                      char     *name,   
-                      cdHd     *cur );
-extern cdHd *dir_struct( cdms_dir *dir,    
-                  char     *path,   
-                  cdHd     *hd,     
-                  int      flg );
-extern void dir_to_tree( cdms_dir *dir,    
-                  int      lev,     
-                  cdHd     *cur );
-extern void edit_struct( cdHd *cur );
-extern void edit_struct_att( cdAtt_new *att );
-extern void edit_struct_dim( cdDim_new *dim,    
-                      int       dedit );
-extern void edit_struct_hdr( char name[] );
-extern void edit_struct_num( char   name[],   
-                      cdType typ,      
-                      long   len,      
-                      void   *ary );
-extern void edit_struct_var( cdVar_new *var,    
-                      int       dedit );
-extern void *empty_struct( cdHd *cur );
-extern int ending_quote( char *asc_line,   
-                  int       idx1,   
-                  int       idx2 );
-extern int ending_star( char *asc_line,   
-                 int       idx1,   
-                 int       idx2 );
-extern void err_cdms( char *in,   
-               int  n );
-extern void err_m( char *msg );
-extern void fnd_dir_list( char ***nam,   
-                   int  **flg,    
-                   int  *num,     
-                   int  scnflg );
-extern void **fnd_lnk_list( cdms_Id idwant,   
-                     cdHd    *cur );
-extern void *get_coord( cdDim_new *dim,    
-                 cdType    typ,     
-                 long      *len );
-extern char *get_cur_dir( void );
-extern char *get_path_of_file( char *filename,   
-                        char *mpath );
-extern cdDb_new *init_user_db( void );
-extern void ins_asym_eos( cdms_card  *line );
-extern void load_ds_arrays( cdDset_new *dset );
-extern void mem_cdms_card( cdms_card  **out1 );
-extern void mem_cdms_pql_list( cdms_pql_list **out2 );
-extern cdCheck *mem_check( cdCheck *cka,   
-                    int     ncd,    
-                    int     nal,    
-                    int     nfs );
-extern span_list *mem_span_list( span_list *spa,   
-                          int       nfl,    
-                          int       nsc );
-extern void *mem_struct( cdms_Id idwant,   
-                  cdHd    *cur );
-extern void *meta_after_eq( int       idx,    
-                     cdms_card *line,  
-                     cdType    *typ,   
-                     long      *num );
-extern void *meta_att( cdms_card *line,   
-                cdHd      *mas );
-extern int meta_str_sym( cdms_card *line,  
-                  int       idx,    
-                  int       len );
-extern void *nam_fnd( char    name[],   
-               cdms_Id idwant,   
-               cdHd    *cur );
-extern void *old_att_name( cdHd *cur );
-extern void old_py_name( cdms_card  *line );
-extern int pql_alter( cdms_card     *line,   
-               cdms_pql_list *pql,    
-               int           idx );
-extern int pql_check( cdms_card     *line,   
-               cdms_pql_list *pql,    
-               int           idx );
-extern void pql_compress( cdms_pql_list *pql,      
-                   int           idx,       
-                   cdms_Id       idwant );
-extern int pql_dirtree( cdms_card     *line,   
-                 cdms_pql_list *pql,    
-                 int           idx );
-extern void pql_execute( char msg_ln[] );
-extern int pql_filename( cdms_card     *line,   
-                  cdms_pql_list *pql,    
-                  int           idx );
-extern cdPql *pql_fld1( cdms_card  *line,      
-                 int        idx,        
-                 int        *outidx );
-extern int pql_fld2( cdms_card *line,      
-              int       idx );
-extern cdHd *pql_fld3( cdms_card *line,      
-                int       idx,        
-                int       *outidx );
-extern int pql_fld4( cdms_card     *line,   
-              cdms_pql_list *pql,    
-              int           idx );
-extern int pql_fld5( cdms_card *line,      
-              int       idx,        
-              int       *idx_w );
-extern int pql_fld6( cdms_card     *line,   
-              cdms_pql_list *pql,    
-              int           idx );
-extern int pql_gen_list( cdms_card     *line,   
-                  cdms_pql_list *pql,    
-                  int           i2,      
-                  int           i3 );
-extern int pql_group( cdms_card     *line,   
-               cdms_pql_list *pql,    
-               int           idx );
-extern void pql_key_sym( cdms_card  *line );
-extern int pql_lenreadbuf( cdms_card     *line,   
-                    cdms_pql_list *pql,    
-                    int           idx );
-extern void pql_one_level( cdms_pql_list *pql,    
-                    cdHd          *cur );
-extern void pql_one_level_all( cdms_pql_list *pql,    
-                        cdHd          *cur );
-extern void pql_one_mem( cdms_pql_list *pql,   
-                  int           num );
-extern char *pql_rd_line( cdms_card *line,       
-                   char      msg_ln[] );
-extern int pql_read( cdms_card     *line,   
-              cdms_pql_list *pql,    
-              int           idx );
-extern int pql_readalter( cdms_card     *line,   
-                   cdms_pql_list *pql,    
-                   int           idx );
-extern int pql_readcheck( cdms_card     *line,   
-                   cdms_pql_list *pql,    
-                   int           idx );
-extern void pql_read_cmp( var_pql_read *rd,     
-                   void         *ary1,   
-                   void         *ary2,   
-                   cdType       typ );
-extern void pql_read_dmem( var_pql_read *rd );
-extern void pql_read_exp( var_pql_read *rd,     
-                   void         *ary1,   
-                   void         *ary2,   
-                   cdType       typ );
-extern void pql_read_fil( var_pql_read *rd );
-extern long *pql_read_idx( var_pql_read *rd );
-extern var_pql_read *pql_read_mem( cdVar_new *var );
-extern int pql_readmeta( cdms_card     *line,   
-                  cdms_pql_list *pql,    
-                  int           idx );
-extern int pql_read_sec( cdms_card     *line,    
-                  cdms_pql_list *pql,     
-                  var_pql_read  **outrd,  
-                  int           idx );
-extern void pql_read_var( var_pql_read *rd );
-extern void pql_read_wrt( var_pql_read *rd,     
-                   char         *nam );
-extern int pql_release( cdms_card     *line,   
-                 cdms_pql_list *pql,    
-                 int           idx );
-extern int pql_select( cdms_card     *line,   
-                cdms_pql_list *pql,    
-                int           idx );
-extern int pql_show( cdms_card     *line,   
-              cdms_pql_list *pql,    
-              int           idx );
-extern void pql_show_ary( cdType typ,      
-                   long   len,      
-                   void   *ary );
-extern void pql_show_ed( int           cnt,     
-                  cdms_card     *line,   
-                  int           idxl1,   
-                  int           idxl2,   
-                  int           idxl3,   
-                  cdms_pql_list *pql,    
-                  int           idx1,    
-                  int           idx2 );
-extern int pql_show_sec( cdms_card     *line,   
-                  cdms_pql_list *pql,    
-                  int           idx );
-extern void pql_show_value( cdms_pql_list *pql,   
-                     int           idx );
-extern int pql_subfgroup( cdms_card     *line,   
-                   cdms_pql_list *pql,    
-                   int           idx );
-extern void pql_sublist( cdms_card     *line,    
-                  cdms_pql_list *pql,     
-                  int           idx,      
-                  int           idxl1,    
-                  int           idxl2 );
-extern void pql_tree( cdms_pql_list *pql,     
-               cdms_Id       idwant,   
-               int           tflg,     
-               cdHd          *cur );
-extern int pql_union( cdms_card     *line,   
-               cdms_pql_list *pql,    
-               int           idx );
-extern int pql_virtual( cdms_card     *line,   
-                 cdms_pql_list *pql,    
-                 int           idx );
-extern int pql_where( cdms_card     *line,   
-               cdms_pql_list *pql,    
-               int           idx );
-extern int pql_whr_1test( cdms_pql_list *pql );
-extern int pql_whr_dtest( cdms_pql_list *pql );
-extern int pql_whr_gtest( cdms_pql_list *pql );
-extern int pql_whr_itest( cdms_pql_list *pql );
-extern int pql_whr_ltest( cdms_pql_list *pql );
-extern void pql_whr_node( cdms_pql_list *pql,    
-                   int           idx );
-extern int pql_whr_ntest( cdms_pql_list *pql );
-extern int pql_whr_test( cdms_pql_list *pql,     
-                  int           idx1,     
-                  int           idx2 );
-extern int pql_whr_ttest( cdms_pql_list *pql );
-extern int pql_whr_vtest( cdms_pql_list *pql );
-extern int pql_with( cdms_card     *line,   
-               cdms_pql_list *pql,    
-               int           idx );
-extern int pql_writeds( cdms_card     *line,   
-                 cdms_pql_list *pql,    
-                 int           idx );
-extern int pql_writemeta( cdms_card     *line,   
-                   cdms_pql_list *pql,    
-                   int           idx );
-extern void pro_data_lines( cdms_card *line,   
-                     cdHd      *mas );
-extern cdDb_new *pro_db_lines( cdms_card *line,   
-                        cdHd      *mas );
-extern void pro_dim_lines( cdms_card  *line,   
-                    cdHd       *mas );
-extern cdDset_new *pro_dset_lines( cdms_card *line,   
-                            cdHd      *mas );
-extern void pro_tmp_att( void );
-extern void pro_var_lines( cdms_card *line,   
-                    cdHd      *mas );
-extern char *py_psql_execute( long ldb,         
-                       char msg_ln[] );
-extern long py_psql_init( void );
-extern int qlattget( int   fileid,     
-              int   varid,      
-              char  *name,      
-              void  *values );
-extern int qlattinq( int     fileid,      
-              int     varid,       
-              char    *name,       
-              CuType  *datatype,   
-              int     *len );
-extern int qlattname( int   fileid,   
-               int   varid,    
-               int   attnum,   
-               char  *name );
-extern int qlclose( int  fileid );
-extern cdDim_new *ql_dim_fnd( int  fileid,    
-                       int  varid,     
-                       int  dimid,     
-                       char *name,     
-                       int  *n_dim );
-extern int qldimget( int   fileid,     
-              int   dimid,      
-              void  *values );
-extern int qldimid( int   fileid,   
-             int   varid,    
-             char  *name );
-extern int qldiminq( int        fileid,      
-              int        dimid,       
-              char       *dimname,    
-              char       *dimunits,   
-              CuType     *datatype,   
-              CuDimType  *dimtype,    
-              int        *varid,      
-              long       *length );
-extern int qlinquire( int fileid,     
-               int *ndims,     
-               int *nvars,     
-               int *natts,     
-               int *recdim );
-extern int qlintr( char msg_ln[] );
-extern int qlopenread( int   fileid,        
-                char *controlpath,   
-                char *datapath );
-extern int qlseterropts( int  err_flg );
-extern cdVar_new *ql_var_fnd( int  fileid,    
-                       int  varid,     
-                       char *name,     
-                       int  *n_var );
-extern int qlvarget( int   fileid,    
-              int   varid,     
-              long  start[],   
-              long  count[],   
-              void  *value );
-extern int qlvarid( int  fileid,   
-             char *name );
-extern int qlvarinq( int     fileid,      
-              int     varid,       
-              char    *name,       
-              CuType  *datatype,   
-              int     *ndims,      
-              int     dimids[],    
-              int     *natts );
-extern void rd_alt_dim_mod( dim_pql_read *rd,      
-                     char         *name );
-extern void rd_alt_dim_tran( dim_pql_read *rd,     
-                      long         *idx );
-extern int rd_alter_file( char *filename );
-extern void rd_alt_var_mod( var_pql_read *rd,      
-                     char         *name );
-extern long *rd_alt_var_ridx( var_pql_read *rd );
-extern long *rd_alt_var_tidx( var_pql_read *rd );
-extern void rd_alt_var_tran( var_pql_read *rd,     
-                      long         *idx );
-extern int rd_check_file( char *filename );
-extern void *rd_dim_array( cdDim_new *dim,     
-                    long      start,    
-                    long      count );
-extern void *rd_dim_coord( dim_pql_read *rd );
-extern int rd_meta_file( char *filename );
-extern int rd_meta_line( cdms_card *line );
-extern void rd_small_dim_card( cdms_card *line,    
-                        span_list *span );
-extern void rd_small_file( cdms_card *line,    
-                    char      *path,    
-                    char      *fall );
-extern void *rd_var_array( cdVar_new *var,       
-                    long      start[],    
-                    long      count[] );
-extern void rel_cdms_card( cdms_card  *line );
-extern void rel_cdms_pql_list( cdms_pql_list *pql );
-extern void rel_check( cdCheck  *cka );
-extern void *scn_lnk_list( char    name[],   
-                    cdms_Id idwant,   
-                    cdHd    *cur );
-extern void scn_small_alterf( cdDset_new *ds,       
-                       char       *altf,     
-                       char       *mpath );
-extern void scn_small_db( span_list *span,   
-                   cdDb_new  *db,     
-                   char      *nam,    
-                   char      *pth );
-extern void scn_small_file( cdms_card *line,     
-                     span_list *span,     
-                     char      *mpath );
-extern char *typ_as_ascii( cdType  dtype );
-extern cdType typ_from_ascii( char *aa );
-extern void typ_from_cdunif( CuType dtype,   
-                      cdType *typ,    
-                      int    *len );
-extern int typ_of_calendar( char *aa );
-extern int typ_time_dim( char *dnam );
-extern void typ_to_cdunif( cdType dtype,    
-                    CuType *typ,     
-                    int    *len );
-extern void typ_to_netcdf( cdType  dtype,    
-                    nc_type *typ,     
-                    int     *len );
-extern void wrt_ds_to_netcdf( cdDset_new *dset,   
-                       char       *nam,    
-                       char       *tim );
-extern void wrt_msg( void );
-extern void wrt_small_file( cdHd *hd,      
-                     char *unam );
-/*..........end_extern..........*/
-#endif
diff --git a/include/cdTime/cdrra.h b/include/cdTime/cdrra.h
deleted file mode 100644
index cf747f7..0000000
--- a/include/cdTime/cdrra.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/* -*-Mode: C;-*-
- * Module:      cdunif right-ragged array definitions
- *
- * Copyright:	1994, Regents of the University of California
- *		This software may not be distributed to others without
- *		permission of the author.
- *
- * Author:      Bob Drach, Lawrence Livermore National Laboratory
- *              drach at llnl.gov
- *
- * Version:     $Id$
- *
- * Revision History:
- *
- * $Log: cdrra.h,v $
- * Revision 1.1  1994/11/18  23:42:26  drach
- * Initial version
- *
- *
- */
-
-
-				/* ddi right ragged array declarations */
-#ifndef _DDI_RRA
-#define _DDI_RRA
-
-#include <stddef.h>
-
-typedef struct {
-	long rank;	/* number of dimensions */
-	long *arraySize; /* vector of lengths of dimensions of base array */
-	long *dimensionSize; /* vector of lengths of index vectors */
-	long **indices;		/* index vectors; indices[k] is vector of length dimensionSize[k] */
-} DDI_RRA;
-
-				/* Set the ith element of dimension id of a to value  */
-#define SETRRA(a,id,i,value) a->indices[id][i]=value
-
-extern DDI_RRA *createRRA(long rank, const long arraySize[], const long dimensionSize[]);
-extern void destroyRRA(DDI_RRA *);
-extern int sortRRA(DDI_RRA *, DDI_RRA *, const long []);
-extern int printRRA(DDI_RRA *);
-#endif
diff --git a/include/cdTime/cdunif.h b/include/cdTime/cdunif.h
deleted file mode 100644
index e7bc676..0000000
--- a/include/cdTime/cdunif.h
+++ /dev/null
@@ -1,175 +0,0 @@
-/* -*-Mode: C;-*-
- * Module:      cdunif - cdunif uniform I/O  include file
- *
- * Copyright:	1994, Regents of the University of California
- *		This software may not be distributed to others without
- *		permission of the author.
- *
- * Author:      Bob Drach, Lawrence Livermore National Laboratory
- *              drach at llnl.gov
- *
- * Version:     $Id$
- *
- * Revision History:
- *
- * $Log: cdunif.h,v $
- * Revision 1.1.1.1  1997/12/09 18:57:39  drach
- * Copied from cirrus
- *
- * Revision 1.14  1997/11/24  17:28:04  drach
- * - Added QL package to cdunif
- * - Added NdimIntersect function to CDMS
- *
- * Revision 1.13  1997/11/10  19:22:29  drach
- * - Added cuvargets to cdunif, cdSlabRead to cdms
- *
- * Revision 1.12  1997/01/06  17:47:13  drach
- * - Added HDF to cdunif
- *
- * Revision 1.11  1996/02/23  01:21:24  drach
- * - Moved most of cdms.h to cdmsint.h (original in cdms_v1.h)
- * - Added new time model declarations to cdms.h
- * - Added -DNO_DECLARE flag to fcddrs.h
- *
- * Revision 1.10  1995/10/16  18:56:33  drach
- * - Added CuInt datatype, DEC Alpha version
- *
- * Revision 1.9  1995/03/09  00:35:18  drach
- * Added netCDF, upgraded cureadarray with casting, user-specified indices
- *
- * Revision 1.8  1995/01/18  02:53:38  drach
- * - Explicitly set CuFileType enums
- *
- * Revision 1.7  1994/12/20  01:19:45  drach
- * - Added cdrra and cureadarray functions
- *
- * Revision 1.6  1994/12/17  00:43:02  drach
- * - add cugetlu, cufreelu
- *
- * Revision 1.5  1994/12/16  00:45:42  drach
- * - Added invalid CuType
- *
- * Revision 1.4  1994/12/14  02:33:01  drach
- * - Added comment
- *
- * Revision 1.3  1994/11/23  23:00:06  drach
- * *** empty log message ***
- *
- * Revision 1.2  1994/11/23  22:56:23  drach
- * Changed hyperlong to long double.
- *
- * Revision 1.1  1994/11/18  23:42:27  drach
- * Initial version
- *
- *
- */
-#ifndef _CDUNIF_H
-#define _CDUNIF_H
-
-/*
- * =================================================================
- *			Macros and Enums
- * =================================================================
- */
-
-#define CU_FATAL 1			     /* Exit immediately on fatal error */
-#define CU_VERBOSE 2			     /* Report errors */
-
-#define CU_GLOBAL -1			     /* Global varid */
-#define CU_MAX_LU 99			     /* Max logical unit for Fortran I/O */
-#define CU_MAX_NAME 128			     /* Max characters in a name */
-#define CU_MAX_PATH 256			     /* Max characters in a file pathname */
-#define CU_MAX_VAR_DIMS 512		     /* Max dimensions in a variable */
-#define CU_SETRRA(a,id,i,value) a->indices[id][i]=value	/* Set a right-ragged array element */
-
-					     /* Note: integer types must be grouped, also floats (cf cuCast) */
-					     /* IF MODIFIED, SHOULD ALSO MODIFY CDMS.H !!*/
-typedef enum CuType {CuInvalidType = -1, CuByte = 1, CuChar, CuShort, CuInt, CuLong, CuFloat, CuDouble, CuLongDouble} CuType;
-
-					     /* Note: For cuseterropts to work correctly,
-					      * valid formats must begin at 0 and increase
-					      * sequentially, with CuNumberOfFormats the last entry.
-					      */
-typedef enum CuFileType {CuUnknown = -1, CuDrs=0, CuGrads=1, CuNetcdf=2, CuHdf=3, CuQL=4, CuPop=5, CuPP=6, CuNumberOfFormats} CuFileType;
-typedef enum CuDimType {CuGlobalDim = 1, CuLocalDim} CuDimType;
-
-typedef struct {
-	long rank;	/* number of dimensions */
-	long *arraySize; /* vector of lengths of dimensions of base array */
-	long *dimensionSize; /* vector of lengths of index vectors */
-	long **indices;		/* index vectors; indices[k] is vector of length dimensionSize[k] */
-} CuRRA;
-
-/*
- * =================================================================
- *			Function prototypes
- * =================================================================
- */
-
-extern int cuopenread(const char* controlpath, const char* datapath);
-extern int cuclose(int fileid);
-extern int cuinquire(int fileid, int* ngdims, int* nvars, int* natts, int* recdim);
-extern int cudimid(int fileid, int varid, const char* name);
-extern int cudiminq(int fileid, int dimid, char* dimname, char* dimunits, CuType* dataType, CuDimType* dimtype, int* varid, long* length);
-extern int cudimget(int fileid, int dimid, void* values);
-extern int cuvarid(int fileid, const char* name);
-extern int cuvarinq(int fileid, int varid, char* name, CuType* datatype, int* ndims, int dimids[], int* natts);
-extern int cuvarget(int fileid, int varid, const long start[], const long count[], void* value);
-extern int cuvargets(int fileid, int varid, const long order[], const long start[], const long count[], const long stride[], CuType usertype, void *values);
-extern int cuattinq(int fileid, int varid, const char* name, CuType* datatype, int* len);
-extern int cuattget(int fileid, int varid, const char* name, void* value);
-extern int cuattname(int fileid, int varid, int attnum, char* name);
-extern int cutypelen(CuType datatype);
-extern int cusetlu(int lu1, int lu2);
-extern int cugetlu(int* lu1, int* lu2);
-extern int cufreelu(int lu);
-extern void cuseterropts(int erropts);
-extern int cugeterropts(void);
-extern int cugeterr(void);
-
-extern int cureadarray(int fileid, int varid, CuRRA *vIndices, CuRRA *uIndices,
-		       const long transpose[], CuType usertype, void *userArray);
-extern CuRRA *cucreateRRA(long rank, const long arraySize[], const long dimensionSize[]);
-extern void cudestroyRRA(CuRRA *);
-extern int cusortRRA(CuRRA *, CuRRA *, const long []);
-extern void cuprintRRA(CuRRA *);
-
-/*
- * =================================================================
- *			Globals
- * =================================================================
- */
-
-extern int cuErrOpts;			     /* Error options */
-extern int cuErrorOccurred;		     /* True iff cdError was called */
-
-/*
- * =================================================================
- *			Error returns
- * =================================================================
- */
-
-#define CU_SERROR       -1      /* System error */
-#define	CU_SUCCESS	0	/* Success */
-#define	CU_EBADID	1	/* Bad ID passed to driver layer */
-#define	CU_OPENFILES	2	/* Too many files open */
-#define	CU_EINVAL	4	/* Invalid Argument */
-#define	CU_ENOTINDEFINE	6	/* Operation not allowed in data mode (netCDF only) */
-#define	CU_EINDEFINE	7	/* Operation not allowed in define mode (netCDF only) */
-#define	CU_EINVALCOORDS	8	/* Coordinates out of Domain */
-#define CU_ENOTATT	11	/* Attribute not found */
-#define CU_EBADTYPE	13	/* Not a cdunif data type */
-#define CU_EBADDIM	14	/* Invalid dimension id */
-#define CU_ENOTVAR	17	/* Variable not found */
-#define CU_EGLOBAL	18	/* Action prohibited on CU_GLOBAL varid */
-#define CU_ENOTCU	19	/* Not a file supported by cdunif*/
-#define CU_EMAXNAME     21      /* CU_MAX_NAME exceeded */
-#define CU_ENOVARS      51      /* File has no variables */
-#define CU_EINTERN      52      /* cdunif internal error */
-#define CU_EBADFORM     53      /* Format recognized but not supported */
-#define CU_DRIVER       54      /* Driver layer error */
-#define CU_EINVLU       55      /* Invalid logical unit (DRS only) */
-#define CU_EOPEN        56      /* File open error */
-#define CU_ENOCAST      57      /* Cannot cast between user and file datatypes */
-
-#endif
diff --git a/include/cdTime/cdunifint.h b/include/cdTime/cdunifint.h
deleted file mode 100644
index 8e3bed0..0000000
--- a/include/cdTime/cdunifint.h
+++ /dev/null
@@ -1,383 +0,0 @@
-/* -*-Mode: C;-*-
- * Module:      cdunifint.h - cdunif internal include file
- *
- * Copyright:	1994, Regents of the University of California
- *		This software may not be distributed to others without
- *		permission of the author.
- *
- * Author:      Bob Drach, Lawrence Livermore National Laboratory
- *              drach at llnl.gov
- *
- * Version:     $Id$
- *
- * Revision History:
- *
- * $Log: cdunifint.h,v $
- * Revision 1.2  1998/07/02 23:40:47  drach
- * - Added support for absolute time, via routines cdAbs2Comp, cdComp2Abs, cdDecodeRelativeTime, and cdDecodeAbsoluteTime
- * - Added support for the LANL POP ocean data format
- *
- * Revision 1.1.1.1  1997/12/09 18:57:39  drach
- * Copied from cirrus
- *
- * Revision 1.15  1997/12/03  22:21:53  drach
- * - In cdunifdrs.c, dimensions which are reversed or subsetted wrt a
- *   coordinate dimension are now treated as local.
- * - Added cdDimGetDouble to cdmsslab.c
- * - Fixed wraparound, reading wraparound dimensions in cdmsslab.c
- *
- * Revision 1.14  1997/11/24  17:28:06  drach
- * - Added QL package to cdunif
- * - Added NdimIntersect function to CDMS
- *
- * Revision 1.13  1997/10/24  18:23:36  drach
- * - Cache netCDF unlimited dimensions
- * - Consistent with GrADS src170
- *
- * Revision 1.12  1997/09/26  21:45:27  drach
- * - Added HDF
- * - Repaired fouled up cddrs includes
- *
- * Revision 1.11  1997/01/06  17:47:14  drach
- * - Added HDF to cdunif
- *
- * Revision 1.10  1995/10/16  18:57:20  drach
- * - Added CuInt datatype, DEC Alpha version
- * - Modified prototypes for casting routines
- *
- * Revision 1.9  1995/09/15  21:18:52  drach
- * - Modified for Cray
- *
- * Revision 1.8  1995/03/09  00:35:19  drach
- * Added netCDF, upgraded cureadarray with casting, user-specified indices
- *
- * Revision 1.7  1995/01/18  02:53:59  drach
- * - Made cuseterropts a dispatch function
- *
- * Revision 1.6  1994/12/20  23:12:46  drach
- * - Added GrADS function declarations
- *
- * Revision 1.5  1994/12/20  01:20:07  drach
- * - Added copybuffer size define
- *
- * Revision 1.4  1994/12/17  00:43:26  drach
- * - remove cuNextLu extern def - localized in cdunif.c now
- *
- * Revision 1.3  1994/12/14  02:33:40  drach
- * - Renamed _CDUNIFIO_H to _CDUNIFINT_H
- *
- * Revision 1.2  1994/11/18  00:12:47  drach
- * Added error processing routines and externs.
- *
- * Revision 1.1  1994/11/17  21:39:13  drach
- * Initial version
- *
- *
- */
-#ifndef _CDUNIFINT_H
-#define _CDUNIFINT_H
-
-#include <stdlib.h>
-#include "cdunif.h"
-
-/*
- * =================================================================
- *			Magic cookies
- * =================================================================
- */
-#if defined(cray)
-#define DRS_MAGIC_COOKIE 0x4452532044494354
-#define NETCDF_MAGIC_COOKIE 0x4344460100000000
-#define NETCDF4_MAGIC_COOKIE 0x894844460000000
-#define NETCDF4_64BIT_MAGIC_COOKIE 0x460243440000000
-#define NETCDF4_64BIT_MAGIC_COOKIE2 0x444689480000000
-#define HDF_MAGIC_COOKIE 0x0e03130100000000
-#elif defined(__alpha)
-#define DRS_MAGIC_COOKIE 0x5443494420535244
-#define NETCDF_MAGIC_COOKIE 0x0000000001464443
-#define NETCDF4_MAGIC_COOKIE 0x000000046444889
-#define NETCDF4_64BIT_MAGIC_COOKIE 0x000000002464443
-#define NETCDF4_64BIT_MAGIC_COOKIE2 0x0000000046444889
-#define HDF_MAGIC_COOKIE 0x000000000113030e
-#elif defined(__ia64)
-#define DRS_MAGIC_COOKIE 0x5443494420535244
-#define NETCDF_MAGIC_COOKIE 0x0000000001464443
-#define NETCDF4_MAGIC_COOKIE 0x000000046444889
-#define NETCDF4_64BIT_MAGIC_COOKIE 0x000000002464443
-#define NETCDF4_64BIT_MAGIC_COOKIE2 0x000000046444889
-#define HDF_MAGIC_COOKIE 0x000000000113030e
-#elif defined(__x86_64__)
-#define DRS_MAGIC_COOKIE 0x5443494420535244
-#define NETCDF_MAGIC_COOKIE 0x0000000001464443
-#define NETCDF4_MAGIC_COOKIE 0x000000002464443
-#define NETCDF4_64BIT_MAGIC_COOKIE 0x000000002464443
-#define NETCDF4_64BIT_MAGIC_COOKIE2 0x000000046444889
-#define HDF_MAGIC_COOKIE 0x000000000113030e
-#elif defined(BYTESWAP)
-#define DRS_MAGIC_COOKIE 0x20535244
-#define NETCDF_MAGIC_COOKIE 0x01464443
-#define HDF_MAGIC_COOKIE 0x0113030e
-#define NETCDF4_MAGIC_COOKIE 1178880137 
-#define NETCDF4_64BIT_MAGIC_COOKIE 0x02464443
-#define NETCDF4_64BIT_MAGIC_COOKIE2 0x46444889
-#else
-#define DRS_MAGIC_COOKIE 0x44525320
-#define NETCDF_MAGIC_COOKIE 0x43444601
-#define HDF_MAGIC_COOKIE 0x0e031301
-#define NETCDF4_MAGIC_COOKIE  -1991752634
-#define NETCDF4_64BIT_MAGIC_COOKIE 0x46024344
-#define NETCDF4_64BIT_MAGIC_COOKIE2 0x44468948
-#endif
-
-#define CU_BUFSIZE 204800		     /* Size of cureadarray copy buffer, in bytes */
-/*
- * =================================================================
- *			Structures
- * =================================================================
- */
-
-typedef struct cu_file CuFile;
-typedef struct cu_var CuVar;
-typedef struct cu_dim CuDim;
-typedef struct cu_att CuAtt;
-
-struct cu_att {  			     /* Attribute */
-	char name[CU_MAX_NAME+1];	     /* Attribute name */
-	CuType datatype;		     /* Datatype of the attribute */
-	long len;			     /* Number of elements (NOT bytes) */
-	void *val;			     /* Pointer to internal structure for GrADS */
-};
-
-struct cu_dim {	        		     /* Dimension */
-	char name[CU_MAX_NAME+1];	     /* Dimension name */
-	char units[CU_MAX_NAME+1];	     /* Dimension units */
-	CuVar* var;			     /* Variable for local dimensions; (CuVar*)0 for global */
-	CuVar* coord;			     /* Associated coordinate variable if global, or (CuVar*)0 if local */
-	int internid;			     /* Internal integer ID (0-origin dimension number for DRS) */
-	int spacing;			     /* For DRS, IDRS_EQUALLY_SPACED or IDRS_UNEQUALLY_SPACED */
-	double first;			     /* First dimension value, for DRS eq-spaced dimensions, or first coordinate value for DRS uneq-spaced dimensions */
-	double interval;		     /* Dimension interval for DRS eq-spaced dimensions */
-	void *internp;			     /* Pointer to internal structure for GrADS */
-	long len;			     /* Number of elements (NOT bytes) */
-	CuType datatype;		     /* Datatype of related coordinate dimension, or CuDouble if none */
-	CuDimType dimtype;		     /* Type of dimensions (CuGlobalDim or CuLocalDim) */
-};
-
-struct cu_var { 			     /* Variable */
-	int id;				     /* Cdunif ID */
-	char name[CU_MAX_NAME+1];	     /* Variable name */
-	CuFile *file;			     /* File containing this variable */
-	int internalid;			     /* Internal ID (e.g., for netCDF) */
-	void *internp;			     /* Pointer to internal structure for GrADS */
-	CuType datatype;		     /* Datatype of variable */
-	int ndims;			     /* Number of dimensions */
-	int dims[CU_MAX_VAR_DIMS];	     /* Pointer to array of dimension IDs */
-	int natts;			     /* Number of attributes for this variable */
-	CuAtt *atts;			     /* Pointer to array of attributes */
-};
-
-struct cu_file { 			     /* File */
-	char controlpath[CU_MAX_PATH+1];     /* Pathname of control file */
-	char datapath[CU_MAX_PATH+1];	     /* Pathname of datafile (e.g., for DRS) */
-	int id;				     /* Cdunif ID */
-	int internid1;			     /* First internal ID (e.g. dictionary LU for DRS); netCDF file ID */
-	int internid2;			     /* Second internal ID (e.g., datafile LU for DRS) */
-	void *internp;			     /* Pointer to internal structure for GrADS */
-	CuFileType filetype;		     /* File format */
-	int ndims;			     /* Total number of global AND local dimensions */
-	CuDim* dims;			     /* Pointer to array of global and local dimensions */
-	int recdim;			     /* Record dimension, or -1 if not applicable */
-	void *recdimcache;		     /* Record dimension cached values, or 0 if no values */
-	int nvars;			     /* Number of variables */
-	CuVar* vars;			     /* Pointer to array of variables */
-	int ngatts;			     /* Number of global attributes */
-	CuAtt* atts;			     /* Pointer to array of global attributes */
-	CuFile* next;			     /* Next file in list */
-};
-
-/*
- * =================================================================
- *			Function prototypes
- * =================================================================
- */
-					     /* cdunif internal functions */
-extern CuFile* CuCreateFile(CuFileType filetype);
-extern CuFile* CuLookupFile(int fileid);
-extern int CuDeleteFile(int fileid);
-extern CuVar* CuCreateVars(CuFile* file, int nvars);
-extern CuVar* CuLookupVar(CuFile* file, int varid);
-extern int CuDeleteVars(CuFile* file);
-extern CuDim* CuCreateDims(CuFile* file, int ndims);
-extern CuDim* CuLookupDim(CuFile* file, int dimid);
-extern CuAtt* CuCreateAtts(CuFile* file, CuVar* var, int natts);
-extern int CuSetAtt(CuFile* file, CuVar* var, int attnum, const char *name, CuType datatype, long len, void *values);
-extern CuAtt* CuLookupAtt(CuFile* file, int varid, const char *name);
-extern int CuDeleteAtts(CuFile* file, CuVar *var);
-extern CuFileType CuGetFileType(const char *controlpath);
-extern void CuError(int ierr, char *fmt, ...);
-
-					     /* cureadarray internal functions */
-extern int cuCopyArray(char *a, CuRRA *aIndices, char *b, CuRRA *bIndices, const long transpose[], size_t elemSize);
-extern int cureadarray1(int fileid, int varid, CuRRA *vIndices, const long transpose[], void *userArray,
-			CuRRA *uIndices, void *copyBuffer, long lenBuffer, long iter);
-extern int cuCast(CuType fromType, CuType toType, long nelems, void *array);
-extern void cuFloat2Double(long nelems, void *buf);
-extern void cuDouble2LongDouble(long nelems, void *buf);
-extern void cuChar2Short(long nelems, void *buf);
-extern void cuShort2Int(long nelems, void *buf);
-extern void cuInt2Long(long nelems, void *buf);
-extern void cuDouble2Float(long nelems, void *buf);
-extern void cuLongDouble2Double(long nelems, void *buf);
-extern void cuShort2Char(long nelems, void *buf);
-extern void cuInt2Short(long nelems, void *buf);
-extern void cuLong2Int(long nelems, void *buf);
-
-					     /* Stub functions */
-extern int cuclose_stub(CuFile* file);
-extern int cuinquire_stub(CuFile* file, int* ngdims, int* nvars, int* natts, int* recdim);
-extern int cudimid_stub(CuFile* file, int varid, const char* name);
-extern int cudiminq_stub(CuFile* file, int dimid, char* dimname, char* dimunits, CuType* dataType, CuDimType* dimtype, int* varid, long* length);
-extern int cudimget_stub(CuFile* file, int dimid, void* values);
-extern int cuvarid_stub(CuFile* file, const char* name);
-extern int cuvarinq_stub(CuFile* file, int varid, char* name, CuType* datatype, int* ndims, int dimids[], int* natts);
-extern int cuvarget_stub(CuFile* file, int varid, const long start[], const long count[], void* value);
-extern int cuattinq_stub(CuFile* file, int varid, const char* name, CuType* datatype, int* len);
-extern int cuattget_stub(CuFile* file, int varid, const char* name, void* value);
-extern int cuattname_stub(CuFile* file, int varid, int attnum, char* name);
-
-					     /* Generic functions use cdunifint structures built at */
-					     /* file open, can be used for any format which builds */
-					     /* the proper structures */
-extern int cuinquire_gen(CuFile* file, int* ngdims, int* nvars, int* natts, int* recdim);
-extern int cudimid_gen(CuFile* file, int varid, const char* name);
-extern int cudiminq_gen(CuFile* file, int dimid, char* dimname, char* dimunits, CuType* dataType, CuDimType* dimtype, int* varid, long* length);
-extern int cuvarid_gen(CuFile* file, const char* name);
-extern int cuvarinq_gen(CuFile* file, int varid, char* name, CuType* datatype, int* ndims, int dimids[], int* natts);
-extern int cuattinq_gen(CuFile* file, int varid, const char* name, CuType* datatype, int* len);
-extern int cuattget_gen(CuFile* file, int varid, const char* name, void* value);
-extern int cuattname_gen(CuFile* file, int varid, int attnum, char* name);
-extern void cuseterropts_gen(int erropts);
-
-					     /* DRS functions */
-#ifdef drs
-extern int cuopenread_drs(const char* controlpath, const char* datapath);
-extern int cuclose_drs(CuFile* file);
-extern int cudimget_drs(CuFile* file, int dimid, void* values);
-extern int cuvarget_drs(CuFile* file, int varid, const long start[], const long count[], void* value);
-extern void cuseterropts_drs(int erropts);
-extern char* custrtrim(char* s);
-#else
-extern int cuopenread_stub_drs(const char* controlpath, const char* datapath);
-#endif
-
-					     /* GrADS functions */
-#ifdef grads
-extern int cuopenread_grads(const char* controlpath, const char* datapath);
-extern int cuclose_grads(CuFile* file);
-extern int cudimget_grads(CuFile* file, int dimid, void* value);
-extern int cuvarget_grads(CuFile* file, int varid, const long start[], const long count[], void* value);
-#else
-extern int cuopenread_stub_grads(const char* controlpath, const char* datapath);
-#endif
-
-					     /* netCDF functions */
-#ifdef netcdf
-#include "netcdf.h"
-extern int cuopenread_nc(const char* controlpath, const char* datapath);
-extern int cuclose_nc(CuFile* file);
-extern int cuinquire_nc(CuFile* file, int* ngdims, int* nvars, int* natts, int* recdim);
-extern int cudimid_nc(CuFile* file, int varid, const char* name);
-extern int cudiminq_nc(CuFile* file, int dimid, char* dimname, char* dimunits, CuType* dataType, CuDimType* dimtype, int* varid, long* length);
-extern int cudimget_nc(CuFile* file, int dimid, void* values);
-extern int cuvarid_nc(CuFile* file, const char* name);
-extern int cuvarinq_nc(CuFile* file, int varid, char* name, CuType* datatype, int* ndims, int dimids[], int* natts);
-extern int cuvarget_nc(CuFile* file, int varid, const long start[], const long count[], void* value);
-extern int cuattinq_nc(CuFile* file, int varid, const char* name, CuType* datatype, int* len);
-extern int cuattget_nc(CuFile* file, int varid, const char* name, void* value);
-extern int cuattname_nc(CuFile* file, int varid, int attnum, char* name);
-extern void cuseterropts_nc(int erropts);
-extern void cumapdatatype_nc(nc_type nctype, CuType* cutype);
-extern int cugetattany_nc(CuFile* file, int varid, const char *name, CuType xtype, void *data);
-#else
-extern int cuopenread_stub_nc(const char* controlpath, const char* datapath);
-#endif
-
-					     /* HDF functions */
-#ifdef hdf
-#include "hdfi.h"
-typedef int32 hdf_type;
-extern int cuopenread_hdf(const char* controlpath, const char* datapath);
-extern int cuclose_hdf(CuFile* file);
-extern int cuinquire_hdf(CuFile* file, int* ngdims, int* nvars, int* natts, int* recdim);
-extern int cudimid_hdf(CuFile* file, int varid, const char* name);
-extern int cudiminq_hdf(CuFile* file, int dimid, char* dimname, char* dimunits, CuType* dataType, CuDimType* dimtype, int* varid, long* length);
-extern int cudimget_hdf(CuFile* file, int dimid, void* values);
-extern int cuvarid_hdf(CuFile* file, const char* name);
-extern int cuvarinq_hdf(CuFile* file, int varid, char* name, CuType* datatype, int* ndims, int dimids[], int* natts);
-extern int cuvarget_hdf(CuFile* file, int varid, const long start[], const long count[], void* value);
-extern int cuattinq_hdf(CuFile* file, int varid, const char* name, CuType* datatype, int* len);
-extern int cuattget_hdf(CuFile* file, int varid, const char* name, void* value);
-extern int cuattname_hdf(CuFile* file, int varid, int attnum, char* name);
-extern void cuseterropts_hdf(int erropts);
-extern void cuerrorreport_hdf(/* NO ARGS */);
-extern void cumapdatatype_hdf(hdf_type nctype, CuType* cutype);
-#else
-extern int cuopenread_stub_hdf(const char* controlpath, const char* datapath);
-#endif
-
-					     /* QL functions */
-#ifdef HAVE_QL
-extern int cuopenread_ql(const char* controlpath, const char* datapath);
-extern int cuclose_ql(CuFile* file);
-extern int cuinquire_ql(CuFile* file, int* ngdims, int* nvars, int* natts, int* recdim);
-extern int cudimid_ql(CuFile* file, int varid, const char* name);
-extern int cudiminq_ql(CuFile* file, int dimid, char* dimname, char* dimunits, CuType* dataType, CuDimType* dimtype, int* varid, long* length);
-extern int cudimget_ql(CuFile* file, int dimid, void* values);
-extern int cuvarid_ql(CuFile* file, const char* name);
-extern int cuvarinq_ql(CuFile* file, int varid, char* name, CuType* datatype, int* ndims, int dimids[], int* natts);
-extern int cuvarget_ql(CuFile* file, int varid, const long start[], const long count[], void* value);
-extern int cuattinq_ql(CuFile* file, int varid, const char* name, CuType* datatype, int* len);
-extern int cuattget_ql(CuFile* file, int varid, const char* name, void* value);
-extern int cuattname_ql(CuFile* file, int varid, int attnum, char* name);
-extern void cuseterropts_ql(int erropts);
-#else
-extern int cuopenread_stub_ql(const char* controlpath, const char* datapath);
-#endif
-
-					     /* POP functions */
-#ifdef HAVE_POP
-#include "apic.h"
-extern int cuopenread_pop(const char* controlpath, const char* datapath);
-extern int cuclose_pop(CuFile* file);
-extern int cuinquire_pop(CuFile* file, int* ngdims, int* nvars, int* natts, int* recdim);
-extern int cudimid_pop(CuFile* file, int varid, const char* name);
-extern int cudiminq_pop(CuFile* file, int dimid, char* dimname, char* dimunits, CuType* dataType, CuDimType* dimtype, int* varid, long* length);
-extern int cudimget_pop(CuFile* file, int dimid, void* values);
-extern int cuvarid_pop(CuFile* file, const char* name);
-extern int cuvarinq_pop(CuFile* file, int varid, char* name, CuType* datatype, int* ndims, int dimids[], int* natts);
-extern int cuvarget_pop(CuFile* file, int varid, const long start[], const long count[], void* value);
-extern int cuattinq_pop(CuFile* file, int varid, const char* name, CuType* datatype, int* len);
-extern int cuattget_pop(CuFile* file, int varid, const char* name, void* value);
-extern int cuattname_pop(CuFile* file, int varid, int attnum, char* name);
-extern void cuseterropts_pop(int erropts);
-extern void cumapdatatype_pop(Type nctype, CuType* cutype);
-#else
-extern int cuopenread_stub_pop(const char* controlpath, const char* datapath);
-#endif
-
-					     /* PP functions */
-#ifdef HAVE_PP
-extern int cuopenread_pp(const char* controlpath, const char* datapath);
-extern int cuclose_pp(CuFile* file);
-extern int cudimget_pp(CuFile* file, int dimid, void* values);
-extern int cuvarget_pp(CuFile* file, int varid, const long start[], const long count[], void* value);
-#else
-extern int cuopenread_stub_pp(const char* controlpath, const char* datapath);
-#endif
-
-					     /* Globals */
-
-extern int cuLastDrsErr;		     /* Most recent DRS error number */
-extern int cuLastError;			     /* Most recent cdunif error */
-
-#endif
diff --git a/include/cdTime/cdunifpp/cdunifpp.h b/include/cdTime/cdunifpp/cdunifpp.h
deleted file mode 100644
index 6655820..0000000
--- a/include/cdTime/cdunifpp/cdunifpp.h
+++ /dev/null
@@ -1,1086 +0,0 @@
-/*
- *
- *    Copyright (C) 2004-2006 NERC DataGrid
- *    This software may be distributed under the terms of the
- *    CCLRC Licence for CCLRC Software
- * <CDATDIR>/External_License/CCLRC_CDAT_License.txt 
- *
- */
-/* Header file for stuff used internally by cdunif_pp */
-
-
-/* all the headers we use */
-#include "cdunif.h"
-#include "cdunifint.h"
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <math.h>
-#include <time.h>
-#include <ctype.h>
-#include <unistd.h>
-
-#ifndef M_PI
-#define M_PI 3.14159265358979323846
-#endif
-
-/*---------------------------------------------------------*/
-
-#define CDUNIFPP_VERSION "0.13"
-
-/*---------------------------------------------------------*/
-
-/* Data types for internal calculations:
- *
- * NOTE: Fint and Freal must be the same length as each other
- * and inttype and realtype must be set accordingly
- *
- * Currently, this *must* be four-byte, because there is NO CuType
- * corresponding to 8-byte integer on Linux/gcc (would need to be
- * long long, but CuLong corresponds to a long)
- *  sizes:   int = 4,  long = 4,  long long = 8
- * 
- */
-
-typedef int Fint;
-typedef float Freal;
-
-static const CuType inttype  = CuInt;
-static const CuType realtype = CuFloat;
-
-static const int wordsize = sizeof(Fint);
-
-/* for float comparisons - related to word size */
-static const float tolerance = 1e-4;
-
-
-/* data types of exact length -- may need to change according to platform
- * (these are double-checked at run-time in pp_check_sizes() 
- */
-
-typedef int Fint4;
-typedef long long Fint8;
-typedef float Freal4;
-typedef double Freal8;
-
-/*---------------------------------------------------------*/
-
-/* endian-ness - set or clear LITTLE_ENDIAN_MACHINE *
- * currently seems that BYTESWAP is set for us, so use that,
- * but could change to include endian.h and then
- * test using #if (__BYTE_ORDER == __LITTLE_ENDIAN)
- */
-#ifdef BYTESWAP
-#define LITTLE_ENDIAN_MACHINE
-#else
-#undef LITTLE_ENDIAN_MACHINE
-#endif
-
-/*---------------------------------------------------------*/
-
-/*longest string attribute value */
-#define MAX_ATT_LEN 120
-
-/*---------------------------------------------------------*/
-
-/* Define the following symbol if you want to read in the half-level
- * values and use them in pp_compare_levels() as extra conditions
- * for two levels to match.  (Grep the code for BDY_LEVS for details.)
- *
- * Currently undefined, as if these have *not* been set consistently
- * in the header, this could cause more problems than it solves.  In
- * particular, BULEV and BHULEV header elements were still BRSVD1 and
- * BRSVD2 ("reserved for future use") at UM vn 4.5.
- */
-
-/* #define BDY_LEVS */
-
-
-/*---------------------------------------------------------*/
-
-/* constants */
-
-static const int n_int_hdr = 45;
-static const int n_real_hdr = 19;
-/* static const int n_hdr = n_int_hdr + n_real_hdr; */
-static const int n_hdr = 64;
-
-/* int_fill_value is output */
-static const int int_fill_value = -32768;
-
-/* int_missing_data is convention in input file */
-static const int int_missing_data = -32768;
-
-static const Freal reference_pressure = 1e5; /* Pa */
-
-/* origin time */
-static const int default_year_orig = 1970;
-static const int default_month_orig = 1;
-static const int default_day_orig = 1;
-static const int default_hour_orig =  0;
-static const int default_minute_orig = 0;
-static const int default_second_orig = 0;
-
-static const Freal lon_modulo=360.;
-
-static const Freal pressure_scaling=100.; /* hPa to Pa */
-
-
-/*---------------------------------------------------------*/
-
-/* first, for convenience, typedefs for all the structs */
-typedef struct pp_file PPfile;
-typedef struct pp_var PPvar;
-typedef struct pp_dim PPdim;
-typedef struct pp_rec PPrec;
-typedef struct pp_hdr PPhdr;
-typedef struct pp_stashmeta PPstashmeta;
-typedef struct pp_dimnames PPdimnames;
-typedef struct pp_data PPdata;
-typedef struct pp_list PPlist;
-typedef struct pp_listel PPlistel;
-typedef struct pp_listhandle PPlisthandle;
-
-typedef struct pp_fieldvar PPfieldvar;
-typedef struct pp_genaxis PPgenaxis;
-typedef struct pp_regaxis PPregaxis;
-typedef struct pp_rotgrid PProtgrid;
-typedef struct pp_rotmap PProtmap;
-typedef struct pp_zaxis PPzaxis;
-typedef struct pp_level PPlevel;
-typedef struct pp_taxis PPtaxis;
-typedef struct pp_time PPtime;
-typedef struct pp_xsaxis PPxsaxis;
-typedef struct pp_date PPdate;
-typedef struct pp_landmask PPlandmask;
-typedef struct pp_extra PPextra;
-
-/* similar typedefs for enums are below */
-
-enum pp_calendartype {
-  gregorian, 
-  cal360day,
-  model
-};
-
-enum pp_filetype {
-  pp_type,
-  um_type
-};
-
-enum pp_convert {
-  convert_none,
-  convert_int,
-  convert_real
-};
-
-enum pp_axistype {
-  xaxistype,
-  yaxistype,
-  zaxistype,
-  taxistype,
-  num_axistype
-};
-
-enum pp_axisgentype {
-  regaxis_type,
-  zaxis_type,
-  taxis_type,
-  xsaxis_type
-}; /* JAK 2005-01-5 */
-
-enum pp_axisregtype {
-  xregtype,
-  yregtype
-};
-
-enum pp_lev_type {
-  pseudo_lev_type,
-  height_lev_type,
-  depth_lev_type,
-  hybrid_sigmap_lev_type,
-  hybrid_height_lev_type,
-  pressure_lev_type,
-  soil_lev_type,
-  boundary_layer_top_lev_type,
-  top_of_atmos_lev_type,
-  mean_sea_lev_type,
-  surface_lev_type,
-  tropopause_lev_type,
-  other_lev_type
-};
-
-enum pp_lev_val_type {
-  lev_type,
-  hybrid_sigmap_a_type,
-  hybrid_sigmap_b_type,
-  hybrid_height_a_type,
-  hybrid_height_b_type
-};
-
-enum pp_dir {
-  xdir,
-  ydir,
-  zdir,
-  tdir
-};
-
-enum pp_extra_vec {
-  extra_x=1, 
-  extra_y=2,
-  extra_title=10
-};
-
-typedef enum pp_convert PPconvert;
-typedef enum pp_filetype PPfiletype;
-typedef enum pp_axistype PPaxistype;
-typedef enum pp_lev_type PPlevtype;
-typedef enum pp_lev_val_type PPlevvaltype;
-typedef enum pp_calendartype PPcalendartype;
-typedef enum pp_axisgentype PPaxisgentype; /* JAK 2005-01-05 */
-typedef enum pp_axisregtype PPaxisregtype;
-typedef enum pp_dir PPdir;
-typedef enum pp_extra_vec PPextravec;
-
-/* Structures for all sorts of things. */
-
-/* (In the rare case where structures are included in another directly,
- * not as a pointer, need to be defined in correct order.  This currently
- * only affects struct pp_date)
- */
-
-/* --- these three are internal structures we will hang off the internp 
- * elements of CuFile, CuVar, CuDim
- */
-struct pp_file {
-  FILE *fh; /* stdio FILE handle */
-  int nrec; /* number of PP records */
-  PPrec **recs; /* records */
-  PPlist *heaplist; /* heap memory */
-  PPfiletype type; /* PP or UM */
-  int swap; /* true if byte swap */
-  int wordsize; /* in bytes */
-  PPlandmask *landmask;
-};
-struct pp_var {
-  int firstrecno; /* for fieldvar */
-  int lastrecno;  /* for fieldvar */
-  PPdata *data;  /* for dim var */
-
-  PPlist *atts;  /* temporary place to store attributes 
-		  * until the number is known and they can be
-		  * added properly
-		  */
-};
-
-/*
- * struct pp_dim {
- * };
- */
-
-/*------------------------------------------------------*/
-
-/* metadata which is not contained in the header but looked up 
- * as a function of the stash codes
- */
-#define SM_MAX_LEN MAX_ATT_LEN
-struct pp_stashmeta {
-  char longname[SM_MAX_LEN+1];
-  char units[SM_MAX_LEN+1];
-  char shortname[SM_MAX_LEN+1];
-  char stdname[SM_MAX_LEN+1];
-
-  /* "source" is where the lookup comes from.
-   *
-   * Quite deliberately there is only one "source", rather than separate sources 
-   * for the various names and units (even though the STASHmaster file has long
-   * name but not units in a usable form).  These have to go together.  It is
-   * no good using a STASHmaster file to override some diagnostics and then using 
-   * compiled-in units lookup.  Therefore the means of overriding the lookup
-   * with table-driven input is going to have to be something better than
-   * STASHmaster files.
-   */
-  char source[SM_MAX_LEN+1];
-};
-
-/* dimension names (for setting cell methods) */
-struct pp_dimnames {
-  /* we will not be modifying these strings, so declare as const
-   * in order to copy in pointers that are declared const without warnings
-   */
-  const char *x;
-  const char *y;
-  const char *z;
-  const char *t;
-};
-
-/* structure for temporary use while scanning fieldvars */
-struct pp_fieldvar {
-  int firstrecno; /* first record number */
-  int lastrecno; /* last record number */
-  PPrec *firstrec; /* first record */
-  PPlist *axes; /* JAK 2005-01-05 */
-  PProtgrid *rotgrid;  /* link to rotated grid, which will 
-			* be used for CF "coordinates" stuff
-			*/
-  PPdimnames dim_names;
-  PPstashmeta stashmeta;
-  PPhdr *first_header;
-};
-
-
-struct pp_data {
-  CuType type;
-  int n;
-  void *values;
-};
-
-/* for linked list */
-struct pp_list {
-  int n;
-  PPlistel *first;
-  PPlistel *last;
-};
-
-struct pp_listel {
-  void *ptr;
-  PPlistel *prev;
-  PPlistel *next;
-};
-
-struct pp_listhandle {
-  /* This is a little structure which stores the information needed for pp_list_walk.
-   * Its main purpose is to store the position outside the list structure itself,
-   * so that for read-only scanning of the list, the PPlist* can be declared
-   * as const.
-   */
-  PPlistel *current;
-  const PPlist *list;
-};
-
-/* land mask */
-struct pp_landmask {
-  PPgenaxis *xaxis;
-  PPgenaxis *yaxis;
-  PPdata *data;
-};
-
-struct pp_genaxis { /* JAK 2005-01-04 */
-  int dimid;
-  PPaxisgentype gentype;
-  PPdir dir;
-  void *axis;
-};
-
-struct pp_rotmap {
-  Freal pole_lon;
-  Freal pole_lat;
-  Freal truepole_gridlon;
-  CuVar *map_var;
-  char name[CU_MAX_NAME+1];
-};
-
-
-struct pp_rotgrid {
-  /* A rotated grid consists of a mapping and actual x and y values 
-   *
-   * Very typically, a mesoscale file will contain only a single mapping
-   * but will contain u and p grids with this mapping.  These two grids
-   * will need separate lon,lat coordinate variables.
-   */
-  PProtmap *rotmap;
-  PPgenaxis *xaxis;
-  PPgenaxis *yaxis;
-  char coords[MAX_ATT_LEN+1];
-};
-
-
-/* NON_ROTATED is a pointer value which can be set to imply that an axis
- * is not rotated, which is non-zero but will not match any real-life memory
- * location, so that pp_get_rotmap() can return it for a non-rotated axis, 
- * while returning NULL for a problem such as unable to allocate memory
- */
-
-#define NON_ROTATED ((PProtmap *) 1)
-
-/* and analogously... */
-
-#define NON_ROTATED_GRID ((PProtgrid *) 1)
-
-
-/* regaxis used for x or y axes */
-struct pp_regaxis {
-  int dimid;
-  PPaxisregtype type;
-  Fint n;
-  Freal start;
-  Freal interval;
-  PProtmap *rotmap; 
-};
-
-/* zaxis: on reading in a vertical axis, we will ASAP set pp_lev_type to correct
- * type (see the enum above) by calling pp_level_type().  All tests should ideally 
- * be done on pp_lev_type.  Additionally we store lbvc which is a copy of the level
- * code in the header, for use "in extremis", but really lbvc should not be used
- * outside of pp_zaxis_set() and pp_level_type() itself, so if you are looking for
- * something to fix then grep the code for other instances of lbvc...
- */
-
-struct pp_zaxis {
-  int dimid;
-  PPlevtype lev_type;
-  Fint lbvc;
-  PPlist *values;
-};
-
-struct pp_level {
-  PPlevtype type;
-
-  union {
-
-    struct { 
-      Freal level;
-#ifdef BDY_LEVS
-      Freal ubdy_level;
-      Freal lbdy_level;
-#endif
-    } misc;
-
-    struct {
-      Freal a;
-      Freal b;
-#ifdef BDY_LEVS
-      Freal ubdy_a;
-      Freal ubdy_b;
-      Freal lbdy_a;
-      Freal lbdy_b;
-#endif
-    } hybrid_sigmap;
-
-    struct { 
-      Freal a;
-      Freal b;
-#ifdef BDY_LEVS
-      Freal ubdy_a;
-      Freal ubdy_b;
-      Freal lbdy_a;
-      Freal lbdy_b;
-#endif
-    } hybrid_height;
-    
-    struct { 
-      Fint index;
-    } pseudo;
-    
-  } values;
-};
-
-struct pp_date {
-  /* this is a generic date */
-  Fint year;
-  Fint month;
-  Fint day;
-  Fint hour;
-  Fint minute;
-  Fint second;
-};
-
-struct pp_taxis {
-  int dimid;
-  Fint type;
-  PPlist *values;
-  PPdate time_orig;
-};
-
-struct pp_time {
-  /* this is a value on time axis */
-  Fint type;
-  PPdate time1;
-  PPdate time2;
-};
-
-struct pp_xsaxis {  /* could be pp cross section? */
-  Fint axiscode;
-  PPdata *data;
-};
-
-/* These #defines control which of the PP header elements are to be stored in memory.
- * To reduce memory use, comment out the ones which are not required.
- * If you comment out one which is needed, the error should be at compile time.
- */
-
-#define PP_STORE_LBYR
-#define PP_STORE_LBMON
-#define PP_STORE_LBDAT
-#define PP_STORE_LBHR
-#define PP_STORE_LBMIN
-#define PP_STORE_LBDAY
-#define PP_STORE_LBYRD
-#define PP_STORE_LBMOND
-#define PP_STORE_LBDATD
-#define PP_STORE_LBHRD
-#define PP_STORE_LBMIND
-#define PP_STORE_LBDAYD
-#define PP_STORE_LBTIM
-#define PP_STORE_LBFT
-#define PP_STORE_LBLREC
-#define PP_STORE_LBCODE
-#define PP_STORE_LBHEM
-#define PP_STORE_LBROW
-#define PP_STORE_LBNPT
-#define PP_STORE_LBEXT
-#define PP_STORE_LBPACK
-#define PP_STORE_LBREL
-#define PP_STORE_LBFC
-#define PP_STORE_LBCFC
-#define PP_STORE_LBPROC
-#define PP_STORE_LBVC
-#define PP_STORE_LBRVC
-#define PP_STORE_LBEXP
-#define PP_STORE_LBBEGIN
-#define PP_STORE_LBNREC
-#define PP_STORE_LBPROJ
-#define PP_STORE_LBTYP
-#define PP_STORE_LBLEV
-#define PP_STORE_LBRSVD1
-#define PP_STORE_LBRSVD2
-#define PP_STORE_LBRSVD3
-#define PP_STORE_LBRSVD4
-#define PP_STORE_LBSRCE
-#define PP_STORE_LBUSER1
-#define PP_STORE_LBUSER2
-#define PP_STORE_LBUSER3
-#define PP_STORE_LBUSER4
-#define PP_STORE_LBUSER5
-#define PP_STORE_LBUSER6
-#define PP_STORE_LBUSER7
-#define PP_STORE_BULEV
-#define PP_STORE_BHULEV
-#define PP_STORE_BRSVD3
-#define PP_STORE_BRSVD4
-#define PP_STORE_BDATUM
-#define PP_STORE_BACC
-#define PP_STORE_BLEV
-#define PP_STORE_BRLEV
-#define PP_STORE_BHLEV
-#define PP_STORE_BHRLEV
-#define PP_STORE_BPLAT
-#define PP_STORE_BPLON
-#define PP_STORE_BGOR
-#define PP_STORE_BZY
-#define PP_STORE_BDY
-#define PP_STORE_BZX
-#define PP_STORE_BDX
-#define PP_STORE_BMDI
-#define PP_STORE_BMKS
-
-
-struct pp_hdr {
-#ifdef PP_STORE_LBYR
-  Fint LBYR;     
-#endif
-#ifdef PP_STORE_LBMON
-  Fint LBMON;    
-#endif
-#ifdef PP_STORE_LBDAT
-  Fint LBDAT;    
-#endif
-#ifdef PP_STORE_LBHR
-  Fint LBHR;     
-#endif
-#ifdef PP_STORE_LBMIN
-  Fint LBMIN;    
-#endif
-#ifdef PP_STORE_LBDAY
-  Fint LBDAY;    
-#endif
-#ifdef PP_STORE_LBYRD
-  Fint LBYRD;    
-#endif
-#ifdef PP_STORE_LBMOND
-  Fint LBMOND;   
-#endif
-#ifdef PP_STORE_LBDATD
-  Fint LBDATD;   
-#endif
-#ifdef PP_STORE_LBHRD
-  Fint LBHRD;    
-#endif
-#ifdef PP_STORE_LBMIND
-  Fint LBMIND;   
-#endif
-#ifdef PP_STORE_LBDAYD
-  Fint LBDAYD;   
-#endif
-#ifdef PP_STORE_LBTIM
-  Fint LBTIM;    
-#endif
-#ifdef PP_STORE_LBFT
-  Fint LBFT;     
-#endif
-#ifdef PP_STORE_LBLREC
-  Fint LBLREC;   
-#endif
-#ifdef PP_STORE_LBCODE
-  Fint LBCODE;   
-#endif
-#ifdef PP_STORE_LBHEM
-  Fint LBHEM;    
-#endif
-#ifdef PP_STORE_LBROW
-  Fint LBROW;    
-#endif
-#ifdef PP_STORE_LBNPT
-  Fint LBNPT;    
-#endif
-#ifdef PP_STORE_LBEXT
-  Fint LBEXT;    
-#endif
-#ifdef PP_STORE_LBPACK
-  Fint LBPACK;   
-#endif
-#ifdef PP_STORE_LBREL
-  Fint LBREL;    
-#endif
-#ifdef PP_STORE_LBFC
-  Fint LBFC;     
-#endif
-#ifdef PP_STORE_LBCFC
-  Fint LBCFC;    
-#endif
-#ifdef PP_STORE_LBPROC
-  Fint LBPROC;   
-#endif
-#ifdef PP_STORE_LBVC
-  Fint LBVC;     
-#endif
-#ifdef PP_STORE_LBRVC
-  Fint LBRVC;    
-#endif
-#ifdef PP_STORE_LBEXP
-  Fint LBEXP;    
-#endif
-#ifdef PP_STORE_LBBEGIN
-  Fint LBBEGIN;   
-#endif
-#ifdef PP_STORE_LBNREC
-  Fint LBNREC;   
-#endif
-#ifdef PP_STORE_LBPROJ
-  Fint LBPROJ;   
-#endif
-#ifdef PP_STORE_LBTYP
-  Fint LBTYP;    
-#endif
-#ifdef PP_STORE_LBLEV
-  Fint LBLEV;    
-#endif
-#ifdef PP_STORE_LBRSVD1
-  Fint LBRSVD1;  
-#endif
-#ifdef PP_STORE_LBRSVD2
-  Fint LBRSVD2;  
-#endif
-#ifdef PP_STORE_LBRSVD3
-  Fint LBRSVD3;  
-#endif
-#ifdef PP_STORE_LBRSVD4
-  Fint LBRSVD4;  
-#endif
-#ifdef PP_STORE_LBSRCE
-  Fint LBSRCE;   
-#endif
-#ifdef PP_STORE_LBUSER1
-  Fint LBUSER1;  
-#endif
-#ifdef PP_STORE_LBUSER2
-  Fint LBUSER2;  
-#endif
-#ifdef PP_STORE_LBUSER3
-  Fint LBUSER3;  
-#endif
-#ifdef PP_STORE_LBUSER4
-  Fint LBUSER4;  
-#endif
-#ifdef PP_STORE_LBUSER5
-  Fint LBUSER5;  
-#endif
-#ifdef PP_STORE_LBUSER6
-  Fint LBUSER6;  
-#endif
-#ifdef PP_STORE_LBUSER7
-  Fint LBUSER7;  
-#endif
-#ifdef PP_STORE_BULEV
-  Freal BULEV;
-#endif
-#ifdef PP_STORE_BHULEV
-  Freal BHULEV;
-#endif
-#ifdef PP_STORE_BRSVD3
-  Freal BRSVD3;
-#endif
-#ifdef PP_STORE_BRSVD4
-  Freal BRSVD4;
-#endif
-#ifdef PP_STORE_BDATUM
-  Freal BDATUM;
-#endif
-#ifdef PP_STORE_BACC
-  Freal BACC;  
-#endif
-#ifdef PP_STORE_BLEV
-  Freal BLEV;  
-#endif
-#ifdef PP_STORE_BRLEV
-  Freal BRLEV; 
-#endif
-#ifdef PP_STORE_BHLEV
-  Freal BHLEV; 
-#endif
-#ifdef PP_STORE_BHRLEV
-  Freal BHRLEV;
-#endif
-#ifdef PP_STORE_BPLAT
-  Freal BPLAT; 
-#endif
-#ifdef PP_STORE_BPLON
-  Freal BPLON; 
-#endif
-#ifdef PP_STORE_BGOR
-  Freal BGOR;  
-#endif
-#ifdef PP_STORE_BZY
-  Freal BZY;   
-#endif
-#ifdef PP_STORE_BDY
-  Freal BDY;   
-#endif
-#ifdef PP_STORE_BZX
-  Freal BZX;   
-#endif
-#ifdef PP_STORE_BDX
-  Freal BDX;   
-#endif
-#ifdef PP_STORE_BMDI
-  Freal BMDI;  
-#endif
-#ifdef PP_STORE_BMKS
-  Freal BMKS;  
-#endif
-};
-
-struct pp_rec {
-  int recno; /* record number */
-  PPhdr hdr; /* header structure */
-  long datapos; /* file pos data start (after any fortran record length int) in bytes */
-  long disklen; /* length on disks (words) -- including padding + before unpacking */
-  long datalen; /* data length (words) */ 
-
-  PPlevel *lev;
-  PPtime *time;
-  int zindex; /* index on z axis within a variable - used for detecting vars with irreg z,t */
-  int tindex; /* index on t axis within a variable - used for detecting vars with irreg z,t */
-  int disambig_index; /* index used for splitting variables with irreg z,t into 
-		       * sets of variables with regular z,t */
-  int supervar_index; /* when a variable is split, this is set to an index which is common
-		       * across the set, but different from sets generated from other
-		       * super-variables
-		       */
-  Freal mean_period; /* period (in days) of time mean 
-			(store here so as to calculate once only) */
-};
-
-
-/*---------------------------------------------------------*/
-
-/* Function like macros */
-/* The code profiler suggests that pp_compare_ints and pp_compare_reals are candidates for
- * inlining; however, unfortunately this sometimes gets compiled with c89 which doesn't support
- * inline functions.  Use a #define for pp_compare_ints.  pp_compare_reals, which is more
- * awkward to #define, is just going to have to stay as it is for now (it's called less often).
- */
-
-/* ----------------------------------------------------------- */
-
-/* Define some values which can be used for initialising variables
- * to no particular value, but may aid debugging to not have them
- * completely uninitialised.  Should not be tested for in production
- * code, as these could still happen to match a genuine value.
- */
-
-#define UNSET_INT -999
-#define UNSET_REAL 1e9
-
-/* ----------------------------------------------------------- */
-
-#define pp_compare_ints(a,b) ((a)<(b)?(-1):(a)>(b)?1:0)
-
-/* ----------------------------------------------------------- */
-
-/* error-checking macros */
-
-/* these are to allow a compact way of incorporating error-checking of 
- * the return value of a function call, without obfuscating the basic purpose
- * of the line of code, which is executing the function call.
- *
- * CKI used for integer functions which return negative value on failure
- * CKP used for pointer functions which return NULL on failure
- * CKF for floats for good measure (probably not used)
- *
- * put the ERRBLK (or ERRBLKI or ERRBLKP) at the end of the subroutine, with 
- * the "label" argument set to the subroutine name (as a string)
- */
-
-#define FLT_ERR -1e38
-
-#ifdef DEBUG
-#define ERR abort();
-#else
-/* ERR: unconditional branch */
-#define ERR goto err;
-#endif
-
-#define CKI(i)  if ((i) < 0){ ERR }
-#define CKP(p)  if ((p) == NULL){ ERR }
-#define CKF(f)  if ((f) == FLT_ERR){ ERR }
-
-/* ERRIF: conditional branch */
-#define ERRIF(i)  if (i){ ERR }
-
-#define ERRBLK(label,rtn) err: pp_error(label); return (rtn);
-#define ERRBLKI(label) ERRBLK((label),-1);
-#define ERRBLKP(label) ERRBLK((label),NULL);
-#define ERRBLKF(label) ERRBLK((label),FLT_ERR);
-
-
-/* ----------------------------------------------------------- */
-
-/* prototypes */
-
-/* in cdunifpp_attribute.c: */
-CuAtt *pp_att_new(const char *, CuType, long, const void *, PPlist *);
-int pp_add_att(PPlist *, const char *, CuType, long, const void *, PPlist *);
-CuAtt *pp_string_att_new(const char *, const char *, PPlist *);
-int pp_add_string_att(PPlist *, const char *, const char *, PPlist *);
-int pp_add_string_att_if_set(PPlist *, const char *, const char *, PPlist *);
-int pp_copy_and_free_atts(CuFile *, CuVar *, PPlist *, PPlist *);
-
-/* in cdunifpp_axisvals.c: */
-PPdata *pp_data_new(CuType,int,PPlist *);
-PPdata *pp_regaxis_to_values(const PPregaxis *, PPlist *);
-PPdata *pp_zaxis_to_values(const PPzaxis *, PPlevvaltype, PPlist *);
-PPdata *pp_taxis_to_values(const PPtaxis *, PPlist *);
-PPdata *pp_taxis_to_boundary_values(const PPtaxis *, PPlist *);
-int pp_is_time_mean(Fint);
-int pp_grid_supported(const PPhdr *);
-int pp_axis_regular(const PPextravec, const PPrec *, const PPfile *);
-int pp_is_rotated_grid(const PPhdr *);
-Freal pp_mean_period(const PPtime *);
-Freal pp_time_diff(Fint, const PPdate *, const PPdate *);
-Freal pp_sec_to_day(long long);
-PPcalendartype pp_calendar_type(Fint);
-long long pp_gregorian_to_secs(const PPdate *);
-char *pp_t_units(const PPtaxis *, PPlist *);
-
-/* in cdunifpp_check.c: */
-int pp_check_sizes();
-
-
-/* in cdunifpp_compare.c: */
-/* int pp_compare_ints(Fint, Fint); */
-/* int pp_compare_reals(Freal, Freal); */
-/* int pp_compare_ptrs(const void *, const void *); */
-int pp_compare_records_between_vars(const PPrec *, const PPrec *);
-int pp_compare_mean_periods(const PPrec *, const PPrec *);
-int pp_both_values_in_range(Freal, Freal, Freal, Freal);
-int pp_compare_records_within_var(const PPrec *, const PPrec *);
-int pp_compare_records(const void *, const void *);
-int pp_records_from_different_vars(const PPrec *, const PPrec *);
-int pp_compare_regaxes(const void *, const void *);
-int pp_compare_rotmaps(const void *, const void *);
-int pp_compare_rotgrids(const void *, const void *);
-int pp_compare_xsaxes( const void *, const void *);
-int pp_compare_lists(const PPlist *, const PPlist *, int (*)(const void*, const void*));
-int pp_compare_levels(const void *, const void *);
-int pp_compare_zaxes(const void *, const void *);
-int pp_compare_times(const void *, const void *);
-int pp_compare_dates(const PPdate *, const PPdate *);
-int pp_compare_taxes(const void *, const void *);
-
-/* in cdunifpp_data.c: */
-int pp_data_copy(const CuFile *, const CuVar *, const long [], const long [], void *);
-int pp_data_read(const CuFile *, const CuVar *, const long [], const long [], void *);
-
-/* in cdunifpp_error.c: */
-int pp_switch_bug();
-int pp_error(const char*);
-int pp_errorhandle_init();
-int pp_error_mesg(const char *, const char *);
-
-/* in cdunifpp_filetype.c: */
-int pp_determine_file_type(PPfile *, const char *, int);
-int pp_determine_file_type_by_name(PPfile *, const char *);
-int pp_is_ppum_file(const char *, FILE *);
-int pp_determine_file_type_by_contents(PPfile *);
-int pp_valid_um_word2(Fint8);
-int pp_valid_pp_word1(Fint8,int);
-
-
-int pp_string_ends_with(const char *, const char *);
-
-/* in cdunifpp_linklist.c: */
-void *pp_list_new(PPlist *);
-int pp_list_free(PPlist *, int, PPlist *);
-int pp_list_size(const PPlist *);
-int pp_list_add(PPlist *, void *, PPlist *);
-int pp_list_del(PPlist *, void *, PPlist *);
-int pp_list_del_by_listel(PPlist *, PPlistel *, PPlist *);
-int pp_list_startwalk(const PPlist *, PPlisthandle *);
-void *pp_list_walk(PPlisthandle *,int);
-void *pp_list_find(PPlist *, const void *, int (*)(const void *, const void *), int, int *);
-
-typedef int(*free_func) (void *, PPlist *);
-
-int pp_list_add_or_find(PPlist *, void *,
-			int (*)(const void *, const void *), int, 
-			free_func, int *, PPlist *);
-
-/* in cdunifpp_malloc.c: */
-void *pp_malloc(size_t, PPlist *);
-void *pp_dup(const void *, size_t, PPlist *);
-int pp_free(void *, PPlist *);
-int pp_free_all(PPlist *);
-
-/* in cdunifpp_ppcode.c: */
-char *pp_pplongname(int);
-char *pp_ppshortname(int);
-char *pp_ppunit(int);
-
-/* in cdunifpp_process.c: */
-int pp_process(CuFile *);
-int pp_test_skip_var(const PPhdr *, const PPlandmask *);
-int pp_initialise_records(PPrec**, int, PPlist *);
-int pp_set_disambig_index(PPgenaxis *, PPgenaxis *, PPrec **, int, int);
-int pp_var_has_regular_z_t(PPgenaxis *, PPgenaxis *, PPrec **, int);
-int pp_store_dim_names(PPdimnames *, const PPlist *, const CuDim *);
-int pp_get_cell_methods (const PPlist *, const PPhdr *, const CuDim *, char []);
-int pp_append_cell_method(char [], const char *, const char *);
-int pp_var_get_extra_atts(const CuVar *, const PPfieldvar *, const CuDim *, PPlist *, PPlist *);
-int pp_append_string(char *, const char *, int);
-PPlist *pp_get_global_attributes(const char *, const PPfile *, PPlist *);
-int pp_free_tmp_vars(PPlist *, PPlist *, PPlist *, PPlist *, PPlist *, PPlist *);
-
-/* in cdunifpp_read.c: */
-size_t pp_read_words(void *, size_t, PPconvert, const PPfile *);
-int pp_swapbytes(void *, int, int);
-void * pp_read_data_record(const PPrec *, const PPfile *, PPlist *);
-int pp_swap32couplets(char *,int);
-int pp_skip_fortran_record(const PPfile *);
-int pp_skip_word(const PPfile *);
-void *pp_read_header(const PPfile *, PPlist *);
-int pp_read_all_headers(CuFile *);
-int pp_store_header(PPhdr *, const void *);
-int pp_evaluate_lengths (const PPhdr *, const PPfile *, long *, long *);
-PPdata *pp_read_extradata(const PPrec *, const PPfile *, PPlist *, const PPextravec);
-int pp_extra_has_vector(const PPextravec,const PPrec *, const PPfile *);
-
-/* in cdunifpp_rotgrid.c */
-
-PProtmap *pp_get_rotmap(const PPhdr *, PPlist *, PPlist *);
-
-PProtgrid *pp_get_rotgrid(PPgenaxis *, PPgenaxis *, PPlist *, PPlist *);
-
-int pp_calc_rot_grid(PProtgrid *, PPdata **, PPdata **, PPlist *);
-
-/* in cdunifpp_stashname.c: */
-char *pp_stashname(int, int, int);
-
-/* in cdunifpp_stash2pp.c: */
-int pp_stashpp(int, int, int);
-
-/* in cdunifpp_struct.c: */
-CuFile *pp_create_file(const char *);
-int pp_delete_file(CuFile *);
-
-/* in cdunifpp_unwgdoswrap.c: */
-int pp_unwgdos_wrap(const void *, int, void *, long, Freal, PPlist *);
-
-/* in cdunifpp_varinfo.c: */
-int pp_var_lookup(const PPhdr *, PPstashmeta *) ;
-int pp_get_var_default_shortname(const PPhdr *, char *, int);
-int pp_get_var_default_longname(const PPhdr *, char *, int);
-int pp_get_var_default_units(const PPhdr *, char *, int);
-int pp_get_var_stash_model(const PPhdr *);
-int pp_get_var_stash_section(const PPhdr *);
-int pp_get_var_stash_item(const PPhdr *);
-int pp_get_var_packing(const PPhdr *);
-int pp_get_var_compression(const PPhdr *);
-int pp_get_var_processing(const PPhdr *);
-int pp_get_var_gridcode(const PPhdr *);
-int pp_get_var_name(int varid, const char *, CuVar *) ;
-void *pp_get_var_fill_value(const PPhdr *);
-int pp_var_is_land_mask(const PPhdr *);
-CuType pp_get_var_type(const PPhdr *);
-int pp_var_is_time_mean(const PPhdr *);
-int pp_var_is_time_min(const PPhdr *);
-int pp_var_is_time_max(const PPhdr *);
-int pp_var_is_time_variance(const PPhdr *);
-int pp_var_is_zonal_mean(const PPhdr *);
-int pp_var_is_vertical_mean(const PPhdr *);
-int pp_var_is_missing(const PPhdr *hdr);
-
-/* in cdunifpp_debug.c: */
-void pp_dump_header(const PPhdr *);
-void pp_dump_date(PPdate *);
-void pp_dump_time(PPtime *);
-void pp_dump_list(PPlist *, void (*)(void *));
-void pp_dump_taxis(PPgenaxis *);
-
-
-
-/* in cdunifpp_genaxis.c: */
-/* JAK 2005-01-10 */
-
-PPgenaxis *pp_genaxis_new(const PPaxisgentype, const PPdir, PPlist *);
-int pp_genaxis_free(PPgenaxis *, PPlist *);
-int pp_genaxis_compare(const void *, const void *);
-PPdata *pp_genaxis_to_values(const PPgenaxis *, int, PPlist *);
-PProtmap *pp_genaxis_rotmap(const PPgenaxis *);
-Fint pp_genaxis_len(const PPgenaxis *);
-PPdata *pp_genaxis_getCF(const PPgenaxis *, char *, char *, PPlist *, PPlist *);
-
-PPdata *pp_xsaxis_to_values(const PPxsaxis *, PPlist *);
-int pp_xsaxis_set(PPgenaxis *, const PPrec *, const PPfile *, const PPextravec, PPlist *);
-int pp_axistype(const PPxsaxis *);
-
-PPlevtype pp_zaxis_lev_type(const PPgenaxis *);
-PPlevtype pp_level_type(const PPhdr *);
-int pp_zaxis_set(PPgenaxis *, const PPhdr *);
-int pp_zaxis_add(PPgenaxis *, const PPlevel *, int *, PPlist *);
-
-int pp_taxis_set(PPgenaxis *, const PPhdr *);
-int pp_taxis_add(PPgenaxis *, const PPtime *, int *,PPlist *);
-int pp_taxis_is_time_mean(PPgenaxis *);
-
-int pp_regaxis_set(PPgenaxis *, PPaxisregtype, const PPhdr *, PPlist *, PPlist *);
-int pp_set_horizontal_axes(PPrec *, PPfile *, 
-			   PPgenaxis **, PPgenaxis **, 
-			   PPlist *, PPlist *);
-
-PPgenaxis *pp_get_taxis_from_list(const PPlist *);
-PPgenaxis *pp_get_zaxis_from_list(const PPlist *);
-PPgenaxis *pp_get_yaxis_from_list(const PPlist *);
-PPgenaxis *pp_get_xaxis_from_list(const PPlist *);
-
-int pp_genaxis_print(const PPgenaxis *, const char *);
-int pp_lev_set(PPlevel *, PPhdr *);
-int pp_time_set(PPtime *, PPhdr *);
-
-#define D(x) {printf("debug: %d\n",x);}
-
-#ifdef DEBUG
-#define DMESS(expr) printf("DBG: " #expr "\n")
-#else
-#define DMESS(expr)
-#endif
diff --git a/include/cdTime/cdunifpp/cdunifpp_frename.h b/include/cdTime/cdunifpp/cdunifpp_frename.h
deleted file mode 100644
index ffc0344..0000000
--- a/include/cdTime/cdunifpp/cdunifpp_frename.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- *
- *    Copyright (C) 2004 NERC DataGrid
- *    This software may be distributed under the terms of the
- *    CCLRC Licence for CCLRC Software
- * <CDATDIR>/External_License/CCLRC_CDAT_License.txt 
- *
- */
-/* including this header file will rename all the functions in the library
- * used for WGDOS unpacking within cdunifpp, in order to avoid potential
- * namespace conflicts 
- */
-
-#define bit_test pp_unwgdos__bit_test
-#define extrin pp_unwgdos__extrin
-#define move_bits pp_unwgdos__move_bits
-#define read_wgdos_header pp_unwgdos__read_wgdos_header
-#define unwgdos pp_unwgdos__unwgdos
-#define xpnd pp_unwgdos__xpnd
-#define c8_to_i4 pp_unwgdos__c8_to_i4
-#define c8toi4_ pp_unwgdos__c8toi4_
-#define c8_to_i8 pp_unwgdos__c8_to_i8
-#define c8toi8_ pp_unwgdos__c8toi8_
-#define c8_to_l4 pp_unwgdos__c8_to_l4
-#define c8tol4_ pp_unwgdos__c8tol4_
-#define c8_to_l8 pp_unwgdos__c8_to_l8
-#define c8tol8_ pp_unwgdos__c8tol8_
-#define c8_to_r4 pp_unwgdos__c8_to_r4
-#define c8tor4_ pp_unwgdos__c8tor4_
-#define c8_to_r8 pp_unwgdos__c8_to_r8
-#define c8tor8_ pp_unwgdos__c8tor8_
-#define cos_backspace pp_unwgdos__cos_backspace
-#define cosbackspace_ pp_unwgdos__cosbackspace_
-#define cos_close pp_unwgdos__cos_close
-#define cosclose_ pp_unwgdos__cosclose_
-#define cos_open pp_unwgdos__cos_open
-#define cosopen_ pp_unwgdos__cosopen_
-#define cos_read pp_unwgdos__cos_read
-#define cosread_ pp_unwgdos__cosread_
-#define cos_rewind pp_unwgdos__cos_rewind
-#define cosrewind_ pp_unwgdos__cosrewind_
-#define expand21_ pp_unwgdos__expand21_
-#define expand21_r4_ pp_unwgdos__expand21_r4_
-#define expand21_r8_ pp_unwgdos__expand21_r8_
-#define i4_to_i8 pp_unwgdos__i4_to_i8
-#define i8_to_i4 pp_unwgdos__i8_to_i4
-#define ibmi2_to_i4 pp_unwgdos__ibmi2_to_i4
-#define ibmi2toi4_ pp_unwgdos__ibmi2toi4_
-#define ibmi2_to_i8 pp_unwgdos__ibmi2_to_i8
-#define ibmi2toi8_ pp_unwgdos__ibmi2toi8_
-#define ibmi4_to_i4 pp_unwgdos__ibmi4_to_i4
-#define ibmi4toi4_ pp_unwgdos__ibmi4toi4_
-#define ibmi4_to_i8 pp_unwgdos__ibmi4_to_i8
-#define ibmi4toi8_ pp_unwgdos__ibmi4toi8_
-#define ibmr4_to_r4 pp_unwgdos__ibmr4_to_r4
-#define ibmr4tor4_ pp_unwgdos__ibmr4tor4_
-#define ibmr4_to_r8 pp_unwgdos__ibmr4_to_r8
-#define ibmr4tor8_ pp_unwgdos__ibmr4tor8_
-#define ibmr8_to_r8 pp_unwgdos__ibmr8_to_r8
-#define ibmr8tor8_ pp_unwgdos__ibmr8tor8_
-#define ii4toi8_ pp_unwgdos__ii4toi8_
-#define ii8toi4_ pp_unwgdos__ii8toi4_
-#define r4_to_r8 pp_unwgdos__r4_to_r8
-#define r4tor8_ pp_unwgdos__r4tor8_
-#define r8_to_r4 pp_unwgdos__r8_to_r4
-#define r8tor4_ pp_unwgdos__r8tor4_
-#define swap_bytes pp_unwgdos__swap_bytes
-#define swapbytes_ pp_unwgdos__swapbytes_
diff --git a/include/cdTime/cdunifpp/crayio.h b/include/cdTime/cdunifpp/crayio.h
deleted file mode 100644
index 7280a91..0000000
--- a/include/cdTime/cdunifpp/crayio.h
+++ /dev/null
@@ -1,396 +0,0 @@
-#if !defined(COS_HDR)
-#define COS_HDR
-
-#ifdef _CRAY
-#include <fortran.h>
-typedef _fcd fpchar;
-#else
-typedef char *fpchar;
-#endif
-
-#if defined _CRAY
-#if defined _CRAYMPP
-#define SHORT32
-#define INT64
-#define FLOAT32
-#else
-#define SHORT64
-#define INT64
-#define FLOAT64
-#endif
-#else
-#define SHORT16
-#define INT32
-#define FLOAT32
-#endif
-
-#define DOUBLE64
-#if defined _CRAY || defined __alpha || defined __ia64 || defined __x86_64__ || _MIPS_SZLONG == 64 || defined __64BIT__
-#define LONG64
-#else
-#define LONG32
-#define LONGLONG64
-#endif
-
-#ifdef _IBM
-
-#ifdef SHORT16
-typedef unsigned short int uint16;
-#endif
-#ifdef INT32
-typedef unsigned int uint32;
-#endif
-#ifdef SHORT32
-typedef unsigned short int uint32;
-#endif
-#ifdef FLOAT32
-typedef float float32;
-#endif
-#ifdef DOUBLE64
-typedef double float64;
-#endif
-#ifdef LONG64
-typedef unsigned long int uint64;
-#else
-typedef unsigned long long int uint64;
-#endif
-
-#else
-
-#ifdef SHORT16
-typedef short int int16;
-typedef unsigned short int uint16;
-#endif
-#ifdef INT32
-typedef int int32;
-typedef unsigned int uint32;
-#endif
-#ifdef SHORT32
-typedef short int int32;
-typedef unsigned short int uint32;
-#endif
-#ifdef FLOAT32
-typedef float float32;
-#endif
-#ifdef DOUBLE64
-typedef double float64;
-#endif
-#ifdef LONG64
-typedef long int int64;
-typedef unsigned long int uint64;
-#else
-typedef long long int int64;
-typedef unsigned long long int uint64;
-#endif
-
-#endif
-
-#define _IEEE4 0
-#define _IEEE8 1
-#define _CRAY8 2
-
-#ifndef _FLT_TYPE
-#ifdef _CRAY
-#ifndef _CRAYIEEE
-#define _FLT_TYPE _CRAY8
-#else
-#define _FLT_TYPE _IEEE8
-#endif
-#else
-#define _FLT_TYPE _IEEE4
-#endif
-#endif
-
-#ifndef _INT_TYPE
-#ifdef _CRAY
-#ifndef _CRAYIEEE
-#define _INT_TYPE _CRAY8
-#else
-#define _INT_TYPE _IEEE8
-#endif
-#else
-#define _INT_TYPE _IEEE4
-#endif
-#endif
-
-#if _FLT_TYPE == _CRAY8 || _FLT_TYPE == _IEEE8
-#define _FLT_SIZE 8
-#else
-#define _FLT_SIZE 4
-#endif
-
-#if _INT_TYPE == _CRAY8 || _INT_TYPE == _IEEE8
-#define _INT_SIZE 8
-#else
-#define _INT_SIZE 4
-#endif
-
-#if _FLT_SIZE == 8
-#ifdef FLOAT32
-#define REAL double
-#else
-#define REAL float
-#endif
-#else
-#define REAL float
-#endif
-
-#if _INT_SIZE == 8
-#ifdef INT32
-#ifdef LONG64
-#define INTEGER long
-#else
-#define INTEGER long long
-#endif
-#else
-#define INTEGER int
-#endif
-#else
-#define INTEGER int
-#endif
-
-#if defined __alpha || defined __ia64 || defined __x86_64__ || defined __i386
-#define LITTLE__ENDIAN
-#else
-#define BIG__ENDIAN
-#endif
-
-#ifdef _CRAY
-#ifndef _CRAYIEEE
-#define _CRAYNONIEEE
-#endif
-#endif
-
-#ifdef _CRAY
-#ifndef _CRAYMPP
-#define _CRAYPVP
-#endif
-#endif
-
-#define CBCW    0   /* COS block control word */
-#define CEOR    010 /* COS end of record      */
-#define CEOF    016 /* COS end of file        */
-#define CEOD    017 /* COS end of data        */
-
-#define CRAYWORD 8     /* Size of Cray word in bytes    */
-#define BLOCKSIZE 4096 /* Size of Cray block in bytes   */
-
-#define MINSEXP32  0x3f6b   /* min valid (translatable subnormal) 
-                               Cray masked exponent for IEEE 32 bit f.p. */
-#define MINEXP32   0x3f83   /* min valid (translatable normal) 
-                               Cray masked exponent for IEEE 32 bit f.p. */
-#define MAXEXP32   0x4080   /* max valid (translatable) 
-                               Cray masked exponent for IEEE 32 bit f.p. */
-#define MINSEXP64  0x3bce   /* min valid (translatable subnormal) 
-                               Cray masked exponent for IEEE 64 bit f.p. */
-#define MINEXP64   0x3c03   /* min valid (translatable normal) 
-                               Cray masked exponent for IEEE 64 bit f.p. */
-#define MAXEXP64   0x4400   /* max valid (translatable) 
-                               Cray masked exponent for IEEE 64 bit f.p. */
-
-#define MINCEXP    0x2003   /* min valid Cray masked exponent */
-#define MAXCEXP    0x5ffe   /* max valid Cray masked exponent */
-
-#define MINI32EXP  1        /* min valid 32 bit IEEE masked exponent */
-#define MAXI32EXP  254      /* max valid 32 bit IEEE masked exponent */
-#define MINI64EXP  1        /* min valid 64 bit IEEE masked exponent */
-#define MAXI64EXP  2046     /* max valid 64 bit IEEE masked exponent */
-
-#define CBIAS      040000      /* Cray f.p. exponent bias */
-#define I32BIAS    0177        /* IEEE 32 bit f.p. exponent bias */
-#define I64BIAS    01777       /* IEEE 64 bit f.p. exponent bias */
-
-#define CSIGNMASK  0x80        /* Mask to get 1st of 8 bits */
-#define CSIGNMASK1 0x80000000  /* Mask to get 1st of 32 bits */
-#define I32_NAN    0x7fffffff
-#define I32_INFP   0x7f800000
-#define I32_INFN   0xff800000
-#define I32_ZEROP  0x00000000
-#define I32_ZERON  0x80000000
-#ifdef LONG64
-#define CSIGNMASK2 0x8000000000000000l  /* Mask to get 1st of 64 bits */
-#define I64_NAN    0x7fffffffffffffffl
-#define I64_INFP   0x7ff0000000000000l
-#define I64_INFN   0xfff0000000000000l
-#else
-#define CSIGNMASK2 0x8000000000000000ll /* Mask to get 1st of 64 bits */
-#define I64_NAN    0x7fffffffffffffffll
-#define I64_INFP   0x7ff0000000000000ll
-#define I64_INFN   0xfff0000000000000ll
-#endif
-
-#if defined _CRAY
-#define cosopen COSOPEN
-#define cosclose COSCLOSE
-#define cosrewind COSREWIND
-#define cosbackspace COSBACKSPACE
-#define cosread COSREAD
-#define swapbytes SWAPBYTES
-#define c8tor4 C8TOR4
-#define c8toi4 C8TOI4
-#define c8tol4 C8TOL4
-#define c8tor8 C8TOR8
-#define c8toi8 C8TOI8
-#define c8tol8 C8TOL8
-#define r8tor4 R8TOR4
-#define ii8toi4 II8TOI4
-#define r4tor8 R4TOR8
-#define ii4toi8 II4TOI8
-#define r4toc8 R4TOC8
-#define i4toc8 I4TOC8
-#define l4toc8 L4TOC8
-#define r8toc8 R8TOC8
-#define i8toc8 I8TOC8
-#define l8toc8 L8TOC8
-#define ibmi4toi4 IBMI4TOI4
-#define ibmi2toi4 IBMI2TOI4
-#define ibmr4tor4 IBMR4TOR4
-#define ibmi4toi8 IBMI4TOI8
-#define ibmi2toi8 IBMI2TOI8
-#define ibmr4tor8 IBMR4TOR8
-#define ibmr8tor8 IBMR8TOR8
-#ifdef _CRAYPVP
-#define ibmi4toc8 IBMI4TOC8
-#define ibmi2toc8 IBMI2TOC8
-#define ibmr4toc8 IBMR4TOC8
-#define ibmr8toc8 IBMR8TOC8
-#endif
-#define expand21 EXPAND21
-#ifndef _CRAYPVP
-#define expand21_r4 EXPAND21_R4_
-#define expand21_r8 EXPAND21_R8_
-#endif
-#elif defined __sun || defined __sgi || defined __osf__ || defined __uxpv__ || defined __linux || defined _SX
-#define cosopen cosopen_
-#define cosclose cosclose_
-#define cosrewind cosrewind_
-#define cosbackspace cosbackspace_
-#define cosread cosread_
-#define swapbytes swapbytes_
-#define c8tor4 c8tor4_
-#define c8toi4 c8toi4_
-#define c8tol4 c8tol4_
-#define c8tor8 c8tor8_
-#define c8toi8 c8toi8_
-#define c8tol8 c8tol8_
-#define r8tor4 r8tor4_
-#define ii8toi4 ii8toi4_
-#define r4tor8 r4tor8_
-#define ii4toi8 ii4toi8_
-#define ibmi4toi4 ibmi4toi4_
-#define ibmi2toi4 ibmi2toi4_
-#define ibmr4tor4 ibmr4tor4_
-#define ibmi4toi8 ibmi4toi8_
-#define ibmi2toi8 ibmi2toi8_
-#define ibmr4tor8 ibmr4tor8_
-#define ibmr8tor8 ibmr8tor8_
-#define expand21  expand21_
-#define expand21_r4 expand21_r4_
-#define expand21_r8 expand21_r8_
-#endif
-
-/* definition of a cosfile */
-
-typedef struct {
-	char            *fname;   /* file name                         */
-	FILE            *fp;      /* current file                      */
-	unsigned long   fwi;      /* forward index of current bcw/rcw  */
-	unsigned long   pri;      /* backward index of current bcw/rcw */
-} COSFILE;
-
-/* Routines callable from C */
-
-COSFILE *cos_open (char *, char *);
-int cos_close (COSFILE *);
-int cos_rewind (COSFILE *);
-int cos_backspace (COSFILE *);
-int cos_read (COSFILE *, void *, int, int *);
-void swap_bytes(void *, int, int);
-int c8_to_r4(void *, void *, int);
-int c8_to_i4(void *, void *, int);
-int c8_to_l4(void *, void *, int);
-int c8_to_r8(void *, void *, int);
-int c8_to_i8(void *, void *, int);
-int c8_to_l8(void *, void *, int);
-int r8_to_r4(void *, void *, int);
-int i8_to_i4(void *, void *, int);
-int r4_to_r8(void *, void *, int);
-int i4_to_i8(void *, void *, int);
-#ifdef _CRAY
-int r4_to_c8(void *, void *, int);
-int i4_to_c8(void *, void *, int);
-int l4_to_c8(void *, void *, int);
-int r8_to_c8(void *, void *, int);
-int i8_to_c8(void *, void *, int);
-int l8_to_c8(void *, void *, int);
-#endif
-int ibmi4_to_i4(void *, void *, int);
-int ibmi2_to_i4(void *, void *, int, int);
-int ibmr4_to_r4(void *, void *, int);
-int ibmi4_to_i8(void *, void *, int, int);
-int ibmi2_to_i8(void *, void *, int, int);
-int ibmr4_to_r8(void *, void *, int, int);
-int ibmr8_to_r8(void *, void *, int);
-#ifdef _CRAYPVP
-int ibmi4_to_c8(void *, void *, int, int);
-int ibmi2_to_c8(void *, void *, int, int);
-int ibmr4_to_c8(void *, void *, int, int);
-int ibmr8_to_c8(void *, void *, int);
-#endif
-
-/* Routines callable from Fortran */
-
-void cosopen (COSFILE **, fpchar, fpchar, INTEGER *, long, long);
-void cosclose (COSFILE **, INTEGER *);
-void cosrewind (COSFILE **, INTEGER *);
-void cosbackspace (COSFILE **, INTEGER *);
-void cosread (COSFILE **, void *, INTEGER *, INTEGER *, INTEGER *);
-void swapbytes(void *, INTEGER *, INTEGER *);
-void c8tor4(void *, void *, INTEGER *, INTEGER *);
-void c8toi4(void *, void *, INTEGER *, INTEGER *);
-void c8tol4(void *, void *, INTEGER *, INTEGER *);
-void c8tor8(void *, void *, INTEGER *, INTEGER *);
-void c8toi8(void *, void *, INTEGER *, INTEGER *);
-void c8tol8(void *, void *, INTEGER *, INTEGER *);
-void expand21(INTEGER *, void *, void *, INTEGER *);
-#ifndef _CRAYPVP
-void expand21_r4(INTEGER *, void *, void *, INTEGER *);
-void expand21_r8(INTEGER *, void *, void *, INTEGER *);
-#endif
-void r8tor4(void *, void *, INTEGER *, INTEGER *);
-void ii8toi4(void *, void *, INTEGER *, INTEGER *);
-void r4tor8(void *, void *, INTEGER *, INTEGER *);
-void ii4toi8(void *, void *, INTEGER *, INTEGER *);
-#ifdef _CRAY
-void r4toc8(void *, void *, INTEGER *, INTEGER *);
-void i4toc8(void *, void *, INTEGER *, INTEGER *);
-void l4toc8(void *, void *, INTEGER *, INTEGER *);
-void r8toc8(void *, void *, INTEGER *, INTEGER *);
-void i8toc8(void *, void *, INTEGER *, INTEGER *);
-void l8toc8(void *, void *, INTEGER *, INTEGER *);
-#endif
-void ibmi4toi4 (void *, void *, INTEGER *, INTEGER *);
-void ibmi2toi4 (void *, void *, INTEGER *, INTEGER *, INTEGER *);
-void ibmr4tor4 (void *, void *, INTEGER *, INTEGER *);
-void ibmi4toi8 (void *, void *, INTEGER *, INTEGER *, INTEGER *);
-void ibmi2toi8 (void *, void *, INTEGER *, INTEGER *, INTEGER *);
-void ibmr4tor8 (void *, void *, INTEGER *, INTEGER *, INTEGER *);
-void ibmr8tor8 (void *, void *, INTEGER *, INTEGER *);
-#ifdef _CRAYPVP
-void ibmi4toc8 (void *, void *, INTEGER *, INTEGER *, INTEGER *);
-void ibmi2toc8 (void *, void *, INTEGER *, INTEGER *, INTEGER *);
-void ibmr4toc8 (void *, void *, INTEGER *, INTEGER *, INTEGER *);
-void ibmr8toc8 (void *, void *, INTEGER *, INTEGER *);
-#endif
-#ifdef _CRAY
-int CRY2CRI(int *, int *, void *, int *, void *, int *, int *, int *);
-int CRI2CRY(int *, int *, void *, int *, void *, int *, int *, int *);
-int IEG2CRI(int *, int *, void *, int *, void *, int *, int *, int *);
-int CRI2IEG(int *, int *, void *, int *, void *, int *, int *, int *);
-int IBM2CRI(int *, int *, void *, int *, void *, int *, int *, int *);
-#endif
-#ifdef _CRAYPVP
-int IBM2CRAY(int *, int *, void *, int *, void *);
-#endif
-
-#endif
diff --git a/include/cdTime/cdunifpp/util.h b/include/cdTime/cdunifpp/util.h
deleted file mode 100644
index 8876188..0000000
--- a/include/cdTime/cdunifpp/util.h
+++ /dev/null
@@ -1,251 +0,0 @@
-#if !defined(UTIL_HDR)
-#define UTIL_HDR
-
-#include <stdio.h>
-
-#if defined _CRAY
-#if defined _CRAYMPP
-#define SHORT32
-#define INT64
-#define FLOAT32
-#else
-#define SHORT64
-#define INT64
-#define FLOAT64
-#endif
-#else
-#define SHORT16
-#define INT32
-#define FLOAT32
-#endif
-
-#define DOUBLE64
-#if defined _CRAY || defined __alpha || defined __ia64 || defined __x86_64__ || _MIPS_SZLONG == 64 || defined __64BIT__ 
-#define LONG64
-#else
-#define LONG32
-#define LONGLONG64
-#endif
-
-#ifdef _IBM
-
-#ifdef SHORT16
-typedef unsigned short int uint16;
-#endif
-#ifdef INT32
-typedef unsigned int uint32;
-#endif
-#ifdef SHORT32
-typedef unsigned short int uint32;
-#endif
-#ifdef FLOAT32
-typedef float float32;
-#endif
-#ifdef DOUBLE64
-typedef double float64;
-#endif
-#ifdef LONG64
-typedef unsigned long int uint64;
-#else
-typedef unsigned long long int uint64;
-#endif
-
-#else
-
-#ifdef SHORT16
-typedef short int int16;
-typedef unsigned short int uint16;
-#endif
-#ifdef INT32
-typedef int int32;
-typedef unsigned int uint32;
-#endif
-#ifdef SHORT32
-typedef short int int32;
-typedef unsigned short int uint32;
-#endif
-#ifdef FLOAT32
-typedef float float32;
-#endif
-#ifdef DOUBLE64
-typedef double float64;
-#endif
-#ifdef LONG64
-typedef long int int64;
-typedef unsigned long int uint64;
-#else
-typedef long long int int64;
-typedef unsigned long long int uint64;
-#endif
-
-#endif
-
-#define _IEEE4 0
-#define _IEEE8 1
-#define _CRAY8 2
-
-#ifndef _FLT_TYPE
-#ifdef _CRAY
-#ifndef _CRAYIEEE
-#define _FLT_TYPE _CRAY8
-#else
-#define _FLT_TYPE _IEEE8
-#endif
-#else
-#define _FLT_TYPE _IEEE4
-#endif
-#endif
-
-#ifndef _INT_TYPE
-#ifdef _CRAY
-#ifndef _CRAYIEEE
-#define _INT_TYPE _CRAY8
-#else
-#define _INT_TYPE _IEEE8
-#endif
-#else
-#define _INT_TYPE _IEEE4
-#endif
-#endif
-
-#if _FLT_TYPE == _CRAY8 || _FLT_TYPE == _IEEE8
-#define _FLT_SIZE 8
-#else
-#define _FLT_SIZE 4
-#endif
-
-#if _INT_TYPE == _CRAY8 || _INT_TYPE == _IEEE8
-#define _INT_SIZE 8
-#else
-#define _INT_SIZE 4
-#endif
-
-#if _FLT_SIZE == 8
-#ifdef FLOAT32
-#define REAL double
-#else
-#define REAL float
-#endif
-#else
-#define REAL float
-#endif
-
-#if _INT_SIZE == 8
-#ifdef INT32
-#ifdef LONG64
-#define INTEGER long
-#else
-#define INTEGER long long
-#endif
-#else
-#define INTEGER int
-#endif
-#else
-#define INTEGER int
-#endif
-
-#if defined __alpha || defined __ia64 || defined __x86_64__ || defined __i386
-#define LITTLE__ENDIAN
-#else
-#define BIG__ENDIAN
-#endif
-
-#ifdef _CRAY
-#ifndef _CRAYIEEE
-#define _CRAYNONIEEE
-#endif
-#endif
-
-#ifdef _CRAY
-#ifndef _CRAYMPP
-#define _CRAYPVP
-#endif
-#endif
-
-#if defined _CRAY
-#define swapbytes SWAPBYTES
-#define expand21 EXPAND21
-#ifndef _CRAYPVP
-#define expand21_r4 EXPAND21_R4_
-#define expand21_r8 EXPAND21_R8_
-#endif
-#elif defined __sun || defined __sgi || defined __osf__ || defined __uxpv__ || defined __linux || defined _SX
-#define swapbytes swapbytes_
-#define expand21 expand21_
-#define expand21_r4 expand21_r4_
-#define expand21_r8 expand21_r8_
-#endif
-
-/* definition of a cosfile */
-
-typedef struct {
-	char            *fname;   /* file name                         */
-	FILE            *fp;      /* current file                      */
-	unsigned long   fwi;      /* forward index of current bcw/rcw  */
-	unsigned long   pri;      /* backward index of current bcw/rcw */
-} COSFILE;
-
-/* Routines callable from C */
-
-COSFILE *cos_open (char *, char *);
-int cos_close (COSFILE *);
-int cos_rewind (COSFILE *);
-int cos_backspace (COSFILE *);
-int cos_read (COSFILE *, void *, int, int *);
-int c8_to_r4(void *, void *, int);
-int c8_to_i4(void *, void *, int);
-int c8_to_l4(void *, void *, int);
-int c8_to_r8(void *, void *, int);
-int c8_to_i8(void *, void *, int);
-int c8_to_l8(void *, void *, int);
-int r8_to_r4(void *, void *, int);
-int i8_to_i4(void *, void *, int);
-int r4_to_r8(void *, void *, int);
-int i4_to_i8(void *, void *, int);
-#ifdef _CRAY
-int r4_to_c8(void *, void *, int);
-int i4_to_c8(void *, void *, int);
-int l4_to_c8(void *, void *, int);
-int r8_to_c8(void *, void *, int);
-int i8_to_c8(void *, void *, int);
-int l8_to_c8(void *, void *, int);
-#endif
-int ibmi4_to_i4(void *, void *, int);
-int ibmi2_to_i4(void *, void *, int, int);
-int ibmr4_to_r4(void *, void *, int);
-int ibmi4_to_i8(void *, void *, int, int);
-int ibmi2_to_i8(void *, void *, int, int);
-int ibmr4_to_r8(void *, void *, int, int);
-int ibmr8_to_r8(void *, void *, int);
-#ifdef _CRAYPVP
-int ibmi4_to_c8(void *, void *, int, int);
-int ibmi2_to_c8(void *, void *, int, int);
-int ibmr4_to_c8(void *, void *, int, int);
-int ibmr8_to_c8(void *, void *, int);
-#endif
-void swap_bytes(void *, INTEGER, INTEGER);
-
-/* Routines callable from Fortran and C */
-
-void expand21(INTEGER *, void *, void *, INTEGER *);
-#ifndef _CRAYPVP
-void expand21_r4(INTEGER *, void *, void *, INTEGER *);
-void expand21_r8(INTEGER *, void *, void *, INTEGER *);
-#endif
-#ifdef _CRAY
-int CRY2CRI(int *, int *, void *, int *, void *, int *, int *, int *);
-int CRI2CRY(int *, int *, void *, int *, void *, int *, int *, int *);
-int IEG2CRI(int *, int *, void *, int *, void *, int *, int *, int *);
-int CRI2IEG(int *, int *, void *, int *, void *, int *, int *, int *);
-int IBM2CRI(int *, int *, void *, int *, void *, int *, int *, int *);
-#endif
-#ifdef _CRAYPVP
-int IBM2CRAY(int *, int *, void *, int *, void *);
-int CRAY2IBM(int *, int *, void *, int *, void *);
-#endif
-#ifdef _CRAYNONIEEE
-int CRAY2IEG(int *, int *, void *, int *, void *);
-int IEG2CRAY(int *, int *, void *, int *, void *);
-#endif
-
-#endif
diff --git a/include/cdTime/cdunifpp/vardef.h b/include/cdTime/cdunifpp/vardef.h
deleted file mode 100644
index 4058341..0000000
--- a/include/cdTime/cdunifpp/vardef.h
+++ /dev/null
@@ -1,67 +0,0 @@
-#include "util.h"
-
-#define _IEEE4 0
-#define _IEEE8 1
-#define _CRAY8 2
-
-#ifndef _FLT_TYPE
-#ifdef _CRAY
-#ifndef _CRAYIEEE
-#define _FLT_TYPE _CRAY8
-#else
-#define _FLT_TYPE _IEEE8
-#endif
-#else
-#define _FLT_TYPE _IEEE4
-#endif
-#endif
-
-#ifndef _INT_TYPE
-#ifdef _CRAY
-#ifndef _CRAYIEEE
-#define _INT_TYPE _CRAY8
-#else
-#define _INT_TYPE _IEEE8
-#endif
-#else
-#define _INT_TYPE _IEEE4
-#endif
-#endif
-
-#if _FLT_TYPE == _CRAY8 || _FLT_TYPE == _IEEE8
-#define _FLT_SIZE 8
-#else
-#define _FLT_SIZE 4
-#endif
-
-#if _INT_TYPE == _CRAY8 || _INT_TYPE == _IEEE8
-#define _INT_SIZE 8
-#else
-#define _INT_SIZE 4
-#endif
-
-#if _FLT_SIZE == 8
-#define real8
-#ifdef FLOAT32
-#define REAL double
-#else
-#define REAL float
-#endif
-#else
-#define REAL float
-#endif
-
-#if _INT_SIZE == 8
-#define int8
-#ifdef INT32
-#ifdef LONG64
-#define INTEGER long
-#else
-#define INTEGER long long
-#endif
-#else
-#define INTEGER int
-#endif
-#else
-#define INTEGER int
-#endif
diff --git a/include/cdTime/cfortran.h b/include/cdTime/cfortran.h
deleted file mode 100644
index 8ecd155..0000000
--- a/include/cdTime/cfortran.h
+++ /dev/null
@@ -1,2369 +0,0 @@
-/* cfortran.h  4.3 */
-/* www-zeus.desy.de/~burow   OR   anonymous ftp at zebra.desy.de */
-/* Burkhard Burow  burow at desy.de                 1990 - 1998. */
-
-#ifndef __CFORTRAN_LOADED
-#define __CFORTRAN_LOADED
-
-/* 
-   THIS FILE IS PROPERTY OF BURKHARD BUROW. IF YOU ARE USING THIS FILE YOU
-   SHOULD ALSO HAVE ACCESS TO CFORTRAN.DOC WHICH PROVIDES TERMS FOR USING,
-   MODIFYING, COPYING AND DISTRIBUTING THE CFORTRAN.H PACKAGE.
-*/
-
-/* 
-  Avoid symbols already used by compilers and system *.h:
-  __ - OSF1 zukal06 V3.0 347 alpha, cc -c -std1 cfortest.c
-
- */
-
-
-/* First prepare for the C compiler. */
-
-#ifndef ANSI_C_preprocessor /* i.e. user can override. */
-#ifdef __CF__KnR
-#define ANSI_C_preprocessor 0
-#else
-#ifdef __STDC__
-#define ANSI_C_preprocessor 1
-#else
-#define _cfleft             1
-#define _cfright 
-#define _cfleft_cfright     0
-#define ANSI_C_preprocessor _cfleft/**/_cfright
-#endif
-#endif
-#endif
-
-#if ANSI_C_preprocessor
-#define _0(A,B)   A##B
-#define  _(A,B)   _0(A,B)  /* see cat,xcat of K&R ANSI C p. 231 */
-#define _2(A,B)   A##B     /* K&R ANSI C p.230: .. identifier is not replaced */
-#define _3(A,B,C) _(A,_(B,C))
-#else                      /* if it turns up again during rescanning.         */
-#define  _(A,B)   A/**/B
-#define _2(A,B)   A/**/B
-#define _3(A,B,C) A/**/B/**/C
-#endif
-
-#if (defined(vax)&&defined(unix)) || (defined(__vax__)&&defined(__unix__))
-#define VAXUltrix
-#endif
-
-#include <stdio.h>     /* NULL [in all machines stdio.h]                      */
-#include <string.h>    /* strlen, memset, memcpy, memchr.                     */
-#if !( defined(VAXUltrix) || defined(sun) || (defined(apollo)&&!defined(__STDCPP__)) )
-#include <stdlib.h>    /* malloc,free                                         */
-#else
-#include <malloc.h>    /* Had to be removed for DomainOS h105 10.4 sys5.3 425t*/
-#ifdef apollo
-#define __CF__APOLLO67 /* __STDCPP__ is in Apollo 6.8 (i.e. ANSI) and onwards */
-#endif
-#endif
-
-#if !defined(__GNUC__) && !defined(__sun) && (defined(sun)||defined(VAXUltrix)||defined(lynx))
-#define __CF__KnR     /* Sun, LynxOS and VAX Ultrix cc only supports K&R.     */
-                      /* Manually define __CF__KnR for HP if desired/required.*/
-#endif                /*       i.e. We will generate Kernighan and Ritchie C. */
-/* Note that you may define __CF__KnR before #include cfortran.h, in order to
-generate K&R C instead of the default ANSI C. The differences are mainly in the
-function prototypes and declarations. All machines, except the Apollo, work
-with either style. The Apollo's argument promotion rules require ANSI or use of
-the obsolete std_$call which we have not implemented here. Hence on the Apollo,
-only C calling FORTRAN subroutines will work using K&R style.*/
-
-
-/* Remainder of cfortran.h depends on the Fortran compiler. */
-
-#if defined(CLIPPERFortran) || defined(pgiFortran)
-#define f2cFortran
-#endif
-
-/* VAX/VMS does not let us \-split long #if lines. */ 
-/* Split #if into 2 because some HP-UX can't handle long #if */
-#if !(defined(NAGf90Fortran)||defined(f2cFortran)||defined(hpuxFortran)||defined(apolloFortran)||defined(sunFortran)||defined(IBMR2Fortran)||defined(CRAYFortran))
-#if !(defined(mipsFortran)||defined(DECFortran)||defined(vmsFortran)||defined(CONVEXFortran)||defined(PowerStationFortran)||defined(AbsoftUNIXFortran)||defined(AbsoftProFortran)||defined(SXFortran))
-/* If no Fortran compiler is given, we choose one for the machines we know.   */
-#if defined(lynx) || defined(VAXUltrix)
-#define f2cFortran    /* Lynx:      Only support f2c at the moment.
-                         VAXUltrix: f77 behaves like f2c.
-                           Support f2c or f77 with gcc, vcc with f2c. 
-                           f77 with vcc works, missing link magic for f77 I/O.*/
-#endif
-#if defined(__hpux)             /* 921107: Use __hpux instead of __hp9000s300 */
-#define       hpuxFortran       /*         Should also allow hp9000s7/800 use.*/
-#endif
-#if       defined(apollo)
-#define           apolloFortran /* __CF__APOLLO67 also defines some behavior. */
-#endif
-#if          defined(sun) || defined(__sun) 
-#define              sunFortran
-#endif
-#if       defined(_IBMR2)
-#define            IBMR2Fortran
-#endif
-#if        defined(_CRAY)
-#define             CRAYFortran /*       _CRAYT3E also defines some behavior. */
-#endif
-#if        defined(_SX)
-#define               SXFortran
-#endif
-#if         defined(mips) || defined(__mips)
-#define             mipsFortran
-#endif
-#if          defined(vms) || defined(__vms)
-#define              vmsFortran
-#endif
-#if      defined(__alpha) && defined(__unix__)
-#define              DECFortran
-#endif
-#if      defined(__ia64) && defined(__unix__)
-#define              LinuxFortran
-#endif
-#if      defined(__x86_64__) && defined(__unix__)
-#define              LinuxFortran
-#endif
-#if   defined(__convex__)
-#define           CONVEXFortran
-#endif
-#if   defined(VISUAL_CPLUSPLUS)
-#define     PowerStationFortran
-#endif
-#endif /* ...Fortran */
-#endif /* ...Fortran */
-
-/* Split #if into 2 because some HP-UX can't handle long #if */
-#if !(defined(NAGf90Fortran)||defined(f2cFortran)||defined(hpuxFortran)||defined(apolloFortran)||defined(sunFortran)||defined(IBMR2Fortran)||defined(CRAYFortran))
-#if !(defined(mipsFortran)||defined(DECFortran)||defined(vmsFortran)||defined(CONVEXFortran)||defined(PowerStationFortran)||defined(AbsoftUNIXFortran)||defined(AbsoftProFortran)||defined(SXFortran))
-/* If your compiler barfs on ' #error', replace # with the trigraph for #     */
- #error "cfortran.h:  Can't find your environment among:\
-    - MIPS cc and f77 2.0. (e.g. Silicon Graphics, DECstations, ...)     \
-    - IBM AIX XL C and FORTRAN Compiler/6000 Version 01.01.0000.0000     \
-    - VAX   VMS CC 3.1 and FORTRAN 5.4.                                  \
-    - Alpha VMS DEC C 1.3 and DEC FORTRAN 6.0.                           \
-    - Alpha OSF DEC C and DEC Fortran for OSF/1 AXP Version 1.2          \
-    - Apollo DomainOS 10.2 (sys5.3) with f77 10.7 and cc 6.7.            \
-    - CRAY                                                               \
-    - NEC SX-4 SUPER-UX                                                  \
-    - CONVEX                                                             \
-    - Sun                                                                \
-    - PowerStation Fortran with Visual C++                               \
-    - HP9000s300/s700/s800 Latest test with: HP-UX A.08.07 A 9000/730    \
-    - LynxOS: cc or gcc with f2c.                                        \
-    - VAXUltrix: vcc,cc or gcc with f2c. gcc or cc with f77.             \
-    -            f77 with vcc works; but missing link magic for f77 I/O. \
-    -            NO fort. None of gcc, cc or vcc generate required names.\
-    - f2c    : Use #define    f2cFortran, or cc -Df2cFortran             \
-    - NAG f90: Use #define NAGf90Fortran, or cc -DNAGf90Fortran          \
-    - Absoft UNIX F77: Use #define AbsoftUNIXFortran or cc -DAbsoftUNIXFortran \
-    - Absoft Pro Fortran: Use #define AbsoftProFortran \
-    - Portland Group Fortran: Use #define pgiFortran"
-/* Compiler must throw us out at this point! */
-#endif
-#endif
-
-
-#if defined(VAXC) && !defined(__VAXC)
-#define OLD_VAXC
-#pragma nostandard                       /* Prevent %CC-I-PARAMNOTUSED.       */
-#endif
-
-/* Throughout cfortran.h we use: UN = Uppercase Name.  LN = Lowercase Name.   */
-
-#if defined(f2cFortran) || defined(NAGf90Fortran) || defined(DECFortran) || defined(mipsFortran) || defined(apolloFortran) || defined(sunFortran) || defined(CONVEXFortran) || defined(SXFortran) || defined(extname)
-#define CFC_(UN,LN)            _(LN,_)      /* Lowercase FORTRAN symbols.     */
-#define orig_fcallsc(UN,LN)    CFC_(UN,LN)
-#else 
-#if defined(CRAYFortran) || defined(PowerStationFortran) || defined(AbsoftProFortran)
-#ifdef _CRAY          /* (UN), not UN, circumvents CRAY preprocessor bug.     */
-#define CFC_(UN,LN)            (UN)         /* Uppercase FORTRAN symbols.     */
-#else                 /* At least VISUAL_CPLUSPLUS barfs on (UN), so need UN. */
-#define CFC_(UN,LN)            UN           /* Uppercase FORTRAN symbols.     */
-#endif
-#define orig_fcallsc(UN,LN)    CFC_(UN,LN)  /* CRAY insists on arg.'s here.   */
-#else  /* For following machines one may wish to change the fcallsc default.  */
-#define CF_SAME_NAMESPACE
-#ifdef vmsFortran
-#define CFC_(UN,LN)            LN           /* Either case FORTRAN symbols.   */
-     /* BUT we usually use UN for C macro to FORTRAN routines, so use LN here,*/
-     /* because VAX/VMS doesn't do recursive macros.                          */
-#define orig_fcallsc(UN,LN)    UN
-#else      /* HP-UX without +ppu or IBMR2 without -qextname. NOT reccomended. */
-#define CFC_(UN,LN)            LN           /* Lowercase FORTRAN symbols.     */
-#define orig_fcallsc(UN,LN)    CFC_(UN,LN)
-#endif /*  vmsFortran */
-#endif /* CRAYFortran PowerStationFortran */
-#endif /* ....Fortran */
-
-#define fcallsc(UN,LN)               orig_fcallsc(UN,LN)
-#define preface_fcallsc(P,p,UN,LN)   CFC_(_(P,UN),_(p,LN))
-#define  append_fcallsc(P,p,UN,LN)   CFC_(_(UN,P),_(LN,p))
-
-#define C_FUNCTION(UN,LN)            fcallsc(UN,LN)      
-#define FORTRAN_FUNCTION(UN,LN)      CFC_(UN,LN)
-
-#ifndef COMMON_BLOCK
-#ifndef CONVEXFortran
-#ifndef CLIPPERFortran
-#if     !(defined(AbsoftUNIXFortran)||defined(AbsoftProFortran))
-#define COMMON_BLOCK(UN,LN)          CFC_(UN,LN)
-#else
-#define COMMON_BLOCK(UN,LN)          _(_C,LN)
-#endif  /* AbsoftUNIXFortran or AbsoftProFortran */
-#else
-#define COMMON_BLOCK(UN,LN)          _(LN,__)
-#endif  /* CLIPPERFortran */
-#else
-#define COMMON_BLOCK(UN,LN)          _3(_,LN,_)
-#endif  /* CONVEXFortran */
-#endif  /* COMMON_BLOCK */
-
-#ifndef DOUBLE_PRECISION
-#if defined(CRAYFortran) && !defined(_CRAYT3E)
-#define DOUBLE_PRECISION long double
-#else
-#define DOUBLE_PRECISION double
-#endif
-#endif
-
-#ifndef FORTRAN_REAL
-#if defined(CRAYFortran) &&  defined(_CRAYT3E)
-#define FORTRAN_REAL double
-#else
-#define FORTRAN_REAL float
-#endif
-#endif
-
-#ifdef CRAYFortran
-#ifdef _CRAY
-#include <fortran.h>
-#else
-#include "fortran.h"  /* i.e. if crosscompiling assume user has file. */
-#endif
-#define FLOATVVVVVVV_cfPP (FORTRAN_REAL *)   /* Used for C calls FORTRAN.     */
-/* CRAY's double==float but CRAY says pointers to doubles and floats are diff.*/
-#define VOIDP  (void *)  /* When FORTRAN calls C, we don't know if C routine 
-                            arg.'s have been declared float *, or double *.   */
-#else
-#define FLOATVVVVVVV_cfPP
-#define VOIDP
-#endif
-
-#ifdef vmsFortran
-#if    defined(vms) || defined(__vms)
-#include <descrip.h>
-#else
-#include "descrip.h"  /* i.e. if crosscompiling assume user has file. */
-#endif
-#endif
-
-#ifdef sunFortran
-#if defined(sun) || defined(__sun)
-#include <math.h>     /* Sun's FLOATFUNCTIONTYPE, ASSIGNFLOAT, RETURNFLOAT.  */
-#else
-#include "math.h"     /* i.e. if crosscompiling assume user has file. */
-#endif
-/* At least starting with the default C compiler SC3.0.1 of SunOS 5.3,
- * FLOATFUNCTIONTYPE, ASSIGNFLOAT, RETURNFLOAT are not required and not in
- * <math.h>, since sun C no longer promotes C float return values to doubles.
- * Therefore, only use them if defined.
- * Even if gcc is being used, assume that it exhibits the Sun C compiler
- * behavior in order to be able to use *.o from the Sun C compiler.
- * i.e. If FLOATFUNCTIONTYPE, etc. are in math.h, they required by gcc.
- */
-#endif
-
-#ifndef apolloFortran
-#define COMMON_BLOCK_DEF(DEFINITION, NAME) extern DEFINITION NAME
-#define CF_NULL_PROTO
-#else                                         /* HP doesn't understand #elif. */
-/* Without ANSI prototyping, Apollo promotes float functions to double.    */
-/* Note that VAX/VMS, IBM, Mips choke on 'type function(...);' prototypes. */
-#define CF_NULL_PROTO ...
-#ifndef __CF__APOLLO67
-#define COMMON_BLOCK_DEF(DEFINITION, NAME) \
- DEFINITION NAME __attribute((__section(NAME)))
-#else
-#define COMMON_BLOCK_DEF(DEFINITION, NAME) \
- DEFINITION NAME #attribute[section(NAME)]
-#endif
-#endif
-
-#ifdef __cplusplus
-#undef  CF_NULL_PROTO
-#define CF_NULL_PROTO  ...
-#endif
-
-
-#ifndef USE_NEW_DELETE
-#ifdef __cplusplus
-#define USE_NEW_DELETE 1
-#else
-#define USE_NEW_DELETE 0
-#endif
-#endif
-#if USE_NEW_DELETE
-#define _cf_malloc(N) new char[N]
-#define _cf_free(P)   delete[] P
-#else
-#define _cf_malloc(N) (char *)malloc(N)
-#define _cf_free(P)   free(P)
-#endif
-
-#ifdef mipsFortran
-#define CF_DECLARE_GETARG         int f77argc; char **f77argv
-#define CF_SET_GETARG(ARGC,ARGV)  f77argc = ARGC; f77argv = ARGV
-#else
-#define CF_DECLARE_GETARG
-#define CF_SET_GETARG(ARGC,ARGV)
-#endif
-
-#ifdef OLD_VAXC                          /* Allow %CC-I-PARAMNOTUSED.         */
-#pragma standard                         
-#endif
-
-#define AcfCOMMA ,
-#define AcfCOLON ;
-
-/*-------------------------------------------------------------------------*/
-
-/*               UTILITIES USED WITHIN CFORTRAN.H                          */
-
-#define _cfMIN(A,B) (A<B?A:B)
-
-/* 970211 - XIX.145:
-   firstindexlength  - better name is all_but_last_index_lengths
-   secondindexlength - better name is         last_index_length
- */
-#define  firstindexlength(A) (sizeof(A[0])==1 ? 1 : (sizeof(A) / sizeof(A[0])) )
-#define secondindexlength(A) (sizeof(A[0])==1 ?      sizeof(A) : sizeof(A[0])  )
-
-/* Behavior of FORTRAN LOGICAL. All machines' LOGICAL is same size as C's int.
-Conversion is automatic except for arrays which require F2CLOGICALV/C2FLOGICALV.
-f2c, MIPS f77 [DECstation, SGI], VAX Ultrix f77,
-HP-UX f77                                        : as in C.
-VAX/VMS FORTRAN, VAX Ultrix fort,
-Absoft Unix Fortran, IBM RS/6000 xlf             : LS Bit = 0/1 = TRUE/FALSE.
-Apollo                                           : neg.   = TRUE, else FALSE. 
-[Apollo accepts -1 as TRUE for function values, but NOT all other neg. values.]
-[DECFortran for Ultrix RISC is also called f77 but is the same as VAX/VMS.]   
-[MIPS f77 treats .eqv./.neqv. as .eq./.ne. and hence requires LOGICAL_STRICT.]*/
-
-#if defined(NAGf90Fortran) || defined(f2cFortran) || defined(mipsFortran) || defined(PowerStationFortran) || defined(hpuxFortran800) || defined(AbsoftUNIXFortran) || defined(AbsoftProFortran) || defined(SXFortran)
-/* SX/PowerStationFortran have 0 and 1 defined, others are neither T nor F.   */
-/* hpuxFortran800 has 0 and 0x01000000 defined. Others are unknown.           */
-#define LOGICAL_STRICT      /* Other Fortran have .eqv./.neqv. == .eq./.ne.   */
-#endif
-
-#define C2FLOGICALV(A,I) \
- do {int __i; for(__i=0;__i<I;__i++) A[__i]=C2FLOGICAL(A[__i]); } while (0)
-#define F2CLOGICALV(A,I) \
- do {int __i; for(__i=0;__i<I;__i++) A[__i]=F2CLOGICAL(A[__i]); } while (0)
-
-#if defined(apolloFortran)
-#define C2FLOGICAL(L) ((L)?-1:(L)&~((unsigned)1<<sizeof(int)*8-1))
-#define F2CLOGICAL(L) ((L)<0?(L):0) 
-#else
-#if defined(CRAYFortran)
-#define C2FLOGICAL(L) _btol(L)
-#define F2CLOGICAL(L) _ltob(&(L))     /* Strangely _ltob() expects a pointer. */
-#else
-#if defined(IBMR2Fortran) || defined(vmsFortran) || defined(DECFortran) || defined(AbsoftUNIXFortran)
-/* How come no AbsoftProFortran ? */
-#define C2FLOGICAL(L) ((L)?(L)|1:(L)&~(int)1)
-#define F2CLOGICAL(L) ((L)&1?(L):0)
-#else
-#if defined(CONVEXFortran)
-#define C2FLOGICAL(L) ((L) ? ~0 : 0 )
-#define F2CLOGICAL(L) (L)
-#else   /* others evaluate LOGICALs as for C. */
-#define C2FLOGICAL(L) (L)
-#define F2CLOGICAL(L) (L)
-#ifndef LOGICAL_STRICT
-#undef  C2FLOGICALV
-#undef  F2CLOGICALV
-#define C2FLOGICALV(A,I)
-#define F2CLOGICALV(A,I)
-#endif  /* LOGICAL_STRICT                     */
-#endif  /* CONVEXFortran || All Others        */
-#endif  /* IBMR2Fortran vmsFortran DECFortran AbsoftUNIXFortran */
-#endif  /* CRAYFortran                        */
-#endif  /* apolloFortran                      */
-
-/* 970514 - In addition to CRAY, there may be other machines
-            for which LOGICAL_STRICT makes no sense. */
-#if defined(LOGICAL_STRICT) && !defined(CRAYFortran)
-/* Force C2FLOGICAL to generate only the values for either .TRUE. or .FALSE.
-   SX/PowerStationFortran only have 0 and 1 defined.
-   Elsewhere, only needed if you want to do:
-     logical lvariable
-     if (lvariable .eq.  .true.) then       ! (1)
-   instead of
-     if (lvariable .eqv. .true.) then       ! (2)
-   - (1) may not even be FORTRAN/77 and that Apollo's f77 and IBM's xlf
-     refuse to compile (1), so you are probably well advised to stay away from 
-     (1) and from LOGICAL_STRICT.
-   - You pay a (slight) performance penalty for using LOGICAL_STRICT. */
-#undef  C2FLOGICAL
-#ifdef hpuxFortran800
-#define C2FLOGICAL(L) ((L)?0x01000000:0)
-#else
-#if defined(apolloFortran) || defined(vmsFortran) || defined(DECFortran)
-#define C2FLOGICAL(L) ((L)?-1:0) /* These machines use -1/0 for .true./.false.*/
-#else
-#define C2FLOGICAL(L) ((L)? 1:0) /* All others     use +1/0 for .true./.false.*/
-#endif
-#endif
-#endif /* LOGICAL_STRICT */
-
-/* Convert a vector of C strings into FORTRAN strings. */
-#ifndef __CF__KnR
-static char *c2fstrv(char* cstr, char *fstr, int elem_len, int sizeofcstr)
-#else
-static char *c2fstrv(      cstr,       fstr,     elem_len,     sizeofcstr)
-                     char* cstr; char *fstr; int elem_len; int sizeofcstr;
-#endif
-{ int i,j;
-/* elem_len includes \0 for C strings. Fortran strings don't have term. \0.
-   Useful size of string must be the same in both languages. */
-for (i=0; i<sizeofcstr/elem_len; i++) {
-  for (j=1; j<elem_len && *cstr; j++) *fstr++ = *cstr++;
-  cstr += 1+elem_len-j;
-  for (; j<elem_len; j++) *fstr++ = ' ';
-} /* 95109 - Seems to be returning the original fstr. */
-return fstr-sizeofcstr+sizeofcstr/elem_len; }
-
-/* Convert a vector of FORTRAN strings into C strings. */
-#ifndef __CF__KnR
-static char *f2cstrv(char *fstr, char* cstr, int elem_len, int sizeofcstr)
-#else
-static char *f2cstrv(      fstr,       cstr,     elem_len,     sizeofcstr)
-                     char *fstr; char* cstr; int elem_len; int sizeofcstr; 
-#endif
-{ int i,j;
-/* elem_len includes \0 for C strings. Fortran strings don't have term. \0.
-   Useful size of string must be the same in both languages. */
-cstr += sizeofcstr;
-fstr += sizeofcstr - sizeofcstr/elem_len;
-for (i=0; i<sizeofcstr/elem_len; i++) {
-  *--cstr = '\0';
-  for (j=1; j<elem_len; j++) *--cstr = *--fstr;
-} return cstr; }
-
-/* kill the trailing char t's in string s. */
-#ifndef __CF__KnR
-static char *kill_trailing(char *s, char t)
-#else
-static char *kill_trailing(      s,      t) char *s; char t;
-#endif
-{char *e; 
-e = s + strlen(s);
-if (e>s) {                           /* Need this to handle NULL string.*/
-  while (e>s && *--e==t);            /* Don't follow t's past beginning. */
-  e[*e==t?0:1] = '\0';               /* Handle s[0]=t correctly.       */
-} return s; }
-
-/* kill_trailingn(s,t,e) will kill the trailing t's in string s. e normally 
-points to the terminating '\0' of s, but may actually point to anywhere in s.
-s's new '\0' will be placed at e or earlier in order to remove any trailing t's.
-If e<s string s is left unchanged. */ 
-#ifndef __CF__KnR
-static char *kill_trailingn(char *s, char t, char *e)
-#else
-static char *kill_trailingn(      s,      t,       e) char *s; char t; char *e;
-#endif
-{ 
-if (e==s) *e = '\0';                 /* Kill the string makes sense here.*/
-else if (e>s) {                      /* Watch out for neg. length string.*/
-  while (e>s && *--e==t);            /* Don't follow t's past beginning. */
-  e[*e==t?0:1] = '\0';               /* Handle s[0]=t correctly.       */
-} return s; }
-
-/* Note the following assumes that any element which has t's to be chopped off,
-does indeed fill the entire element. */
-#ifndef __CF__KnR
-static char *vkill_trailing(char* cstr, int elem_len, int sizeofcstr, char t)
-#else
-static char *vkill_trailing(      cstr,     elem_len,     sizeofcstr,      t)
-                            char* cstr; int elem_len; int sizeofcstr; char t;
-#endif
-{ int i;
-for (i=0; i<sizeofcstr/elem_len; i++) /* elem_len includes \0 for C strings. */
-  kill_trailingn(cstr+elem_len*i,t,cstr+elem_len*(i+1)-1);
-return cstr; }
-
-#ifdef vmsFortran
-typedef struct dsc$descriptor_s fstring;
-#define DSC$DESCRIPTOR_A(DIMCT)  		                               \
-struct {                                                                       \
-  unsigned short dsc$w_length;	        unsigned char	 dsc$b_dtype;	       \
-  unsigned char	 dsc$b_class;	                 char	*dsc$a_pointer;	       \
-           char	 dsc$b_scale;	        unsigned char	 dsc$b_digits;         \
-  struct {                                                                     \
-    unsigned		       : 3;	  unsigned dsc$v_fl_binscale : 1;      \
-    unsigned dsc$v_fl_redim    : 1;       unsigned dsc$v_fl_column   : 1;      \
-    unsigned dsc$v_fl_coeff    : 1;       unsigned dsc$v_fl_bounds   : 1;      \
-  } dsc$b_aflags;	                                                       \
-  unsigned char	 dsc$b_dimct;	        unsigned long	 dsc$l_arsize;	       \
-           char	*dsc$a_a0;	                 long	 dsc$l_m [DIMCT];      \
-  struct {                                                                     \
-    long dsc$l_l;                         long dsc$l_u;                        \
-  } dsc$bounds [DIMCT];                                                        \
-}
-typedef DSC$DESCRIPTOR_A(1) fstringvector;
-/*typedef DSC$DESCRIPTOR_A(2) fstringarrarr;
-  typedef DSC$DESCRIPTOR_A(3) fstringarrarrarr;*/
-#define initfstr(F,C,ELEMNO,ELEMLEN)                                           \
-( (F).dsc$l_arsize=  ( (F).dsc$w_length                        =(ELEMLEN) )    \
-                    *( (F).dsc$l_m[0]=(F).dsc$bounds[0].dsc$l_u=(ELEMNO)  ),   \
-  (F).dsc$a_a0    =  ( (F).dsc$a_pointer=(C) ) - (F).dsc$w_length          ,(F))
-
-#else
-#define _NUM_ELEMS      -1
-#define _NUM_ELEM_ARG   -2
-#define NUM_ELEMS(A)    A,_NUM_ELEMS
-#define NUM_ELEM_ARG(B) *_2(A,B),_NUM_ELEM_ARG
-#define TERM_CHARS(A,B) A,B
-#ifndef __CF__KnR
-static int num_elem(char *strv, unsigned elem_len, int term_char, int num_term)
-#else
-static int num_elem(      strv,          elem_len,     term_char,     num_term)
-                    char *strv; unsigned elem_len; int term_char; int num_term;
-#endif
-/* elem_len is the number of characters in each element of strv, the FORTRAN
-vector of strings. The last element of the vector must begin with at least
-num_term term_char characters, so that this routine can determine how 
-many elements are in the vector. */
-{
-unsigned num,i;
-if (num_term == _NUM_ELEMS || num_term == _NUM_ELEM_ARG) 
-  return term_char;
-if (num_term <=0) num_term = (int)elem_len;
-for (num=0; ; num++) {
-  for (i=0; i<(unsigned)num_term && *strv==term_char; i++,strv++);
-  if (i==(unsigned)num_term) break;
-  else strv += elem_len-i;
-}
-return (int)num;
-}
-#endif
-/*-------------------------------------------------------------------------*/
-
-/*           UTILITIES FOR C TO USE STRINGS IN FORTRAN COMMON BLOCKS       */
-
-/* C string TO Fortran Common Block STRing. */
-/* DIM is the number of DIMensions of the array in terms of strings, not
-   characters. e.g. char a[12] has DIM = 0, char a[12][4] has DIM = 1, etc. */
-#define C2FCBSTR(CSTR,FSTR,DIM)                                                \
- c2fstrv((char *)CSTR, (char *)FSTR, sizeof(FSTR)/cfelementsof(FSTR,DIM)+1,    \
-         sizeof(FSTR)+cfelementsof(FSTR,DIM))
-
-/* Fortran Common Block string TO C STRing. */
-#define FCB2CSTR(FSTR,CSTR,DIM)                                                \
- vkill_trailing(f2cstrv((char *)FSTR, (char *)CSTR,                            \
-                        sizeof(FSTR)/cfelementsof(FSTR,DIM)+1,                 \
-                        sizeof(FSTR)+cfelementsof(FSTR,DIM)),                  \
-                sizeof(FSTR)/cfelementsof(FSTR,DIM)+1,                         \
-                sizeof(FSTR)+cfelementsof(FSTR,DIM), ' ')
-
-#define cfDEREFERENCE0
-#define cfDEREFERENCE1 *
-#define cfDEREFERENCE2 **
-#define cfDEREFERENCE3 ***
-#define cfDEREFERENCE4 ****
-#define cfDEREFERENCE5 *****
-#define cfelementsof(A,D) (sizeof(A)/sizeof(_(cfDEREFERENCE,D)(A)))
-
-/*-------------------------------------------------------------------------*/
-
-/*               UTILITIES FOR C TO CALL FORTRAN SUBROUTINES               */
-
-/* Define lookup tables for how to handle the various types of variables.  */
-
-#ifdef OLD_VAXC                                /* Prevent %CC-I-PARAMNOTUSED. */
-#pragma nostandard
-#endif
-
-#define ZTRINGV_NUM(I)       I
-#define ZTRINGV_ARGFP(I) (*(_2(A,I))) /* Undocumented. For PINT, etc. */
-#define ZTRINGV_ARGF(I) _2(A,I)
-#ifdef CFSUBASFUN
-#define ZTRINGV_ARGS(I) ZTRINGV_ARGF(I)
-#else
-#define ZTRINGV_ARGS(I) _2(B,I)
-#endif
-
-#define    PBYTE_cfVP(A,B) PINT_cfVP(A,B)
-#define  PDOUBLE_cfVP(A,B)
-#define   PFLOAT_cfVP(A,B)
-#ifdef ZTRINGV_ARGS_allows_Pvariables
-/* This allows Pvariables for ARGS. ARGF machinery is above ARGFP.
- * B is not needed because the variable may be changed by the Fortran routine,
- * but because B is the only way to access an arbitrary macro argument.       */
-#define     PINT_cfVP(A,B) int  B = (int)A;              /* For ZSTRINGV_ARGS */
-#else
-#define     PINT_cfVP(A,B)
-#endif
-#define PLOGICAL_cfVP(A,B) int *B;      /* Returning LOGICAL in FUNn and SUBn */
-#define    PLONG_cfVP(A,B) PINT_cfVP(A,B)
-#define   PSHORT_cfVP(A,B) PINT_cfVP(A,B)
-
-#define        VCF_INT_S(T,A,B) _(T,VVVVVVV_cfTYPE) B = A;
-#define        VCF_INT_F(T,A,B) _(T,_cfVCF)(A,B)
-/* _cfVCF table is directly mapped to _cfCCC table. */
-#define     BYTE_cfVCF(A,B)
-#define   DOUBLE_cfVCF(A,B)
-#if !defined(__CF__KnR)
-#define    FLOAT_cfVCF(A,B)
-#else
-#define    FLOAT_cfVCF(A,B) FORTRAN_REAL B = A;
-#endif
-#define      INT_cfVCF(A,B)
-#define  LOGICAL_cfVCF(A,B)
-#define     LONG_cfVCF(A,B)
-#define    SHORT_cfVCF(A,B)
-
-/* 980416
-   Cast (void (*)(CF_NULL_PROTO)) causes SunOS CC 4.2 occasionally to barf,
-   while the following equivalent typedef is fine.
-   For consistency use the typedef on all machines.
- */
-typedef void (*cfCAST_FUNCTION)(CF_NULL_PROTO);
-
-#define VCF(TN,I)       _Icf4(4,V,TN,_(A,I),_(B,I),F)
-#define VVCF(TN,AI,BI)  _Icf4(4,V,TN,AI,BI,S)
-#define        INT_cfV(T,A,B,F) _(VCF_INT_,F)(T,A,B)
-#define       INTV_cfV(T,A,B,F)
-#define      INTVV_cfV(T,A,B,F)
-#define     INTVVV_cfV(T,A,B,F)
-#define    INTVVVV_cfV(T,A,B,F)
-#define   INTVVVVV_cfV(T,A,B,F)
-#define  INTVVVVVV_cfV(T,A,B,F)
-#define INTVVVVVVV_cfV(T,A,B,F)
-#define PINT_cfV(      T,A,B,F) _(T,_cfVP)(A,B)
-#define PVOID_cfV(     T,A,B,F)
-#if defined(apolloFortran) || defined(hpuxFortran800) || defined(AbsoftUNIXFortran) || defined(AbsoftProFortran)
-#define    ROUTINE_cfV(T,A,B,F) void (*B)(CF_NULL_PROTO) = (cfCAST_FUNCTION)A;
-#else
-#define    ROUTINE_cfV(T,A,B,F)
-#endif
-#define     SIMPLE_cfV(T,A,B,F)
-#ifdef vmsFortran
-#define     STRING_cfV(T,A,B,F) static struct {fstring f; unsigned clen;} B =  \
-                                       {{0,DSC$K_DTYPE_T,DSC$K_CLASS_S,NULL},0};
-#define    PSTRING_cfV(T,A,B,F) static fstring B={0,DSC$K_DTYPE_T,DSC$K_CLASS_S,NULL};
-#define    STRINGV_cfV(T,A,B,F) static fstringvector B =                       \
-  {sizeof(A),DSC$K_DTYPE_T,DSC$K_CLASS_A,NULL,0,0,{0,0,1,1,1},1,0,NULL,0,{1,0}};
-#define   PSTRINGV_cfV(T,A,B,F) static fstringvector B =                       \
-          {0,DSC$K_DTYPE_T,DSC$K_CLASS_A,NULL,0,0,{0,0,1,1,1},1,0,NULL,0,{1,0}};
-#else
-#define     STRING_cfV(T,A,B,F) struct {unsigned int clen, flen;} B;
-#define    STRINGV_cfV(T,A,B,F) struct {char *s, *fs; unsigned flen;} B;
-#define    PSTRING_cfV(T,A,B,F) int     B;
-#define   PSTRINGV_cfV(T,A,B,F) struct{char *fs; unsigned int sizeofA,flen;}B;
-#endif
-#define    ZTRINGV_cfV(T,A,B,F)  STRINGV_cfV(T,A,B,F)
-#define   PZTRINGV_cfV(T,A,B,F) PSTRINGV_cfV(T,A,B,F)
-
-/* Note that the actions of the A table were performed inside the AA table.
-   VAX Ultrix vcc, and HP-UX cc, didn't evaluate arguments to functions left to
-   right, so we had to split the original table into the current robust two. */
-#define ACF(NAME,TN,AI,I)      _(TN,_cfSTR)(4,A,NAME,I,AI,_(B,I),0)
-#define   DEFAULT_cfA(M,I,A,B)
-#define   LOGICAL_cfA(M,I,A,B) B=C2FLOGICAL(B);
-#define  PLOGICAL_cfA(M,I,A,B) A=C2FLOGICAL(A);
-#define    STRING_cfA(M,I,A,B)  STRING_cfC(M,I,A,B,sizeof(A))
-#define   PSTRING_cfA(M,I,A,B) PSTRING_cfC(M,I,A,B,sizeof(A))
-#ifdef vmsFortran
-#define  AATRINGV_cfA(    A,B, sA,filA,silA)                                   \
- initfstr(B,_cf_malloc((sA)-(filA)),(filA),(silA)-1),                          \
-          c2fstrv(A,B.dsc$a_pointer,(silA),(sA));
-#define APATRINGV_cfA(    A,B, sA,filA,silA)                                   \
- initfstr(B,A,(filA),(silA)-1),c2fstrv(A,A,(silA),(sA));
-#else
-#define  AATRINGV_cfA(    A,B, sA,filA,silA)                                   \
-     (B.s=_cf_malloc((sA)-(filA)),B.fs=c2fstrv(A,B.s,(B.flen=(silA)-1)+1,(sA)));
-#define APATRINGV_cfA(    A,B, sA,filA,silA)                                   \
- B.fs=c2fstrv(A,A,(B.flen=(silA)-1)+1,B.sizeofA=(sA));
-#endif
-#define   STRINGV_cfA(M,I,A,B)                                                 \
-    AATRINGV_cfA((char *)A,B,sizeof(A),firstindexlength(A),secondindexlength(A))
-#define  PSTRINGV_cfA(M,I,A,B)                                                 \
-   APATRINGV_cfA((char *)A,B,sizeof(A),firstindexlength(A),secondindexlength(A))
-#define   ZTRINGV_cfA(M,I,A,B)  AATRINGV_cfA( (char *)A,B,                     \
-                    (_3(M,_ELEMS_,I))*(( _3(M,_ELEMLEN_,I))+1),                \
-                              (_3(M,_ELEMS_,I)),(_3(M,_ELEMLEN_,I))+1)
-#define  PZTRINGV_cfA(M,I,A,B) APATRINGV_cfA( (char *)A,B,                     \
-                    (_3(M,_ELEMS_,I))*(( _3(M,_ELEMLEN_,I))+1),                \
-                              (_3(M,_ELEMS_,I)),(_3(M,_ELEMLEN_,I))+1)
-
-#define    PBYTE_cfAAP(A,B) &A
-#define  PDOUBLE_cfAAP(A,B) &A
-#define   PFLOAT_cfAAP(A,B) FLOATVVVVVVV_cfPP &A
-#define     PINT_cfAAP(A,B) &A
-#define PLOGICAL_cfAAP(A,B) B= &A         /* B used to keep a common W table. */
-#define    PLONG_cfAAP(A,B) &A
-#define   PSHORT_cfAAP(A,B) &A
-
-#define AACF(TN,AI,I,C) _SEP_(TN,C,cfCOMMA) _Icf(3,AA,TN,AI,_(B,I))
-#define        INT_cfAA(T,A,B) &B
-#define       INTV_cfAA(T,A,B) _(T,VVVVVV_cfPP) A
-#define      INTVV_cfAA(T,A,B) _(T,VVVVV_cfPP)  A[0]
-#define     INTVVV_cfAA(T,A,B) _(T,VVVV_cfPP)   A[0][0]
-#define    INTVVVV_cfAA(T,A,B) _(T,VVV_cfPP)    A[0][0][0]
-#define   INTVVVVV_cfAA(T,A,B) _(T,VV_cfPP)     A[0][0][0][0]
-#define  INTVVVVVV_cfAA(T,A,B) _(T,V_cfPP)      A[0][0][0][0][0]
-#define INTVVVVVVV_cfAA(T,A,B) _(T,_cfPP)       A[0][0][0][0][0][0]
-#define       PINT_cfAA(T,A,B) _(T,_cfAAP)(A,B)
-#define      PVOID_cfAA(T,A,B) (void *) A
-#if defined(apolloFortran) || defined(hpuxFortran800) || defined(AbsoftUNIXFortran)
-#define    ROUTINE_cfAA(T,A,B) &B
-#else
-#define    ROUTINE_cfAA(T,A,B) (cfCAST_FUNCTION)A
-#endif
-#define     STRING_cfAA(T,A,B)  STRING_cfCC(T,A,B)
-#define    PSTRING_cfAA(T,A,B) PSTRING_cfCC(T,A,B)
-#ifdef vmsFortran
-#define    STRINGV_cfAA(T,A,B) &B
-#else
-#ifdef CRAYFortran
-#define    STRINGV_cfAA(T,A,B) _cptofcd(B.fs,B.flen)
-#else
-#define    STRINGV_cfAA(T,A,B) B.fs
-#endif
-#endif
-#define   PSTRINGV_cfAA(T,A,B) STRINGV_cfAA(T,A,B)
-#define    ZTRINGV_cfAA(T,A,B) STRINGV_cfAA(T,A,B)
-#define   PZTRINGV_cfAA(T,A,B) STRINGV_cfAA(T,A,B)
-
-#if defined(vmsFortran) || defined(CRAYFortran)
-#define JCF(TN,I)
-#define KCF(TN,I)
-#else
-#define JCF(TN,I)    _(TN,_cfSTR)(1,J,_(B,I), 0,0,0,0)
-#if defined(AbsoftUNIXFortran)
-#define  DEFAULT_cfJ(B) ,0
-#else
-#define  DEFAULT_cfJ(B)
-#endif
-#define  LOGICAL_cfJ(B) DEFAULT_cfJ(B)
-#define PLOGICAL_cfJ(B) DEFAULT_cfJ(B)
-#define   STRING_cfJ(B) ,B.flen
-#define  PSTRING_cfJ(B) ,B
-#define  STRINGV_cfJ(B) STRING_cfJ(B)
-#define PSTRINGV_cfJ(B) STRING_cfJ(B)
-#define  ZTRINGV_cfJ(B) STRING_cfJ(B)
-#define PZTRINGV_cfJ(B) STRING_cfJ(B)
-
-/* KCF is identical to DCF, except that KCF ZTRING is not empty. */
-#define KCF(TN,I)    _(TN,_cfSTR)(1,KK,_(B,I), 0,0,0,0)
-#if defined(AbsoftUNIXFortran)
-#define  DEFAULT_cfKK(B) , unsigned B
-#else
-#define  DEFAULT_cfKK(B)
-#endif
-#define  LOGICAL_cfKK(B) DEFAULT_cfKK(B)
-#define PLOGICAL_cfKK(B) DEFAULT_cfKK(B)
-#define   STRING_cfKK(B) , unsigned B
-#define  PSTRING_cfKK(B) STRING_cfKK(B)
-#define  STRINGV_cfKK(B) STRING_cfKK(B)
-#define PSTRINGV_cfKK(B) STRING_cfKK(B)
-#define  ZTRINGV_cfKK(B) STRING_cfKK(B)
-#define PZTRINGV_cfKK(B) STRING_cfKK(B)
-#endif
-
-#define WCF(TN,AN,I)      _(TN,_cfSTR)(2,W,AN,_(B,I), 0,0,0)
-#define  DEFAULT_cfW(A,B)
-#define  LOGICAL_cfW(A,B)
-#define PLOGICAL_cfW(A,B) *B=F2CLOGICAL(*B);
-#define   STRING_cfW(A,B) (A[B.clen]!='\0'?A[B.clen]='\0':0); /* A?="constnt"*/
-#define  PSTRING_cfW(A,B) kill_trailing(A,' ');
-#ifdef vmsFortran
-#define  STRINGV_cfW(A,B) _cf_free(B.dsc$a_pointer);
-#define PSTRINGV_cfW(A,B)                                                      \
-  vkill_trailing(f2cstrv((char*)A, (char*)A,                                   \
-                           B.dsc$w_length+1, B.dsc$l_arsize+B.dsc$l_m[0]),     \
-                   B.dsc$w_length+1, B.dsc$l_arsize+B.dsc$l_m[0], ' ');
-#else
-#define  STRINGV_cfW(A,B) _cf_free(B.s);
-#define PSTRINGV_cfW(A,B) vkill_trailing(                                      \
-         f2cstrv((char*)A,(char*)A,B.flen+1,B.sizeofA), B.flen+1,B.sizeofA,' ');
-#endif
-#define  ZTRINGV_cfW(A,B)      STRINGV_cfW(A,B)
-#define PZTRINGV_cfW(A,B)     PSTRINGV_cfW(A,B)
-
-#define   NCF(TN,I,C)       _SEP_(TN,C,cfCOMMA) _Icf(2,N,TN,_(A,I),0) 
-#define  NNCF(TN,I,C)        UUCF(TN,I,C)
-#define NNNCF(TN,I,C)       _SEP_(TN,C,cfCOLON) _Icf(2,N,TN,_(A,I),0) 
-#define        INT_cfN(T,A) _(T,VVVVVVV_cfTYPE) * A
-#define       INTV_cfN(T,A) _(T,VVVVVV_cfTYPE)  * A
-#define      INTVV_cfN(T,A) _(T,VVVVV_cfTYPE)   * A
-#define     INTVVV_cfN(T,A) _(T,VVVV_cfTYPE)    * A
-#define    INTVVVV_cfN(T,A) _(T,VVV_cfTYPE)     * A
-#define   INTVVVVV_cfN(T,A) _(T,VV_cfTYPE)      * A
-#define  INTVVVVVV_cfN(T,A) _(T,V_cfTYPE)       * A
-#define INTVVVVVVV_cfN(T,A) _(T,_cfTYPE)        * A
-#define       PINT_cfN(T,A) _(T,_cfTYPE)        * A
-#define      PVOID_cfN(T,A) void *                A
-#if defined(apolloFortran) || defined(hpuxFortran800) || defined(AbsoftUNIXFortran)
-#define    ROUTINE_cfN(T,A) void (**A)(CF_NULL_PROTO)
-#else
-#define    ROUTINE_cfN(T,A) void ( *A)(CF_NULL_PROTO)
-#endif
-#ifdef vmsFortran
-#define     STRING_cfN(T,A) fstring *             A
-#define    STRINGV_cfN(T,A) fstringvector *       A
-#else
-#ifdef CRAYFortran
-#define     STRING_cfN(T,A) _fcd                  A
-#define    STRINGV_cfN(T,A) _fcd                  A
-#else
-#define     STRING_cfN(T,A) char *                A
-#define    STRINGV_cfN(T,A) char *                A
-#endif
-#endif
-#define    PSTRING_cfN(T,A)   STRING_cfN(T,A) /* CRAY insists on arg.'s here. */
-#define   PNSTRING_cfN(T,A)   STRING_cfN(T,A) /* CRAY insists on arg.'s here. */
-#define   PPSTRING_cfN(T,A)   STRING_cfN(T,A) /* CRAY insists on arg.'s here. */
-#define   PSTRINGV_cfN(T,A)  STRINGV_cfN(T,A)
-#define    ZTRINGV_cfN(T,A)  STRINGV_cfN(T,A)
-#define   PZTRINGV_cfN(T,A) PSTRINGV_cfN(T,A)
-
-
-/* Apollo 6.7, CRAY, old Sun, VAX/Ultrix vcc/cc and new ultrix
-   can't hack more than 31 arg's.
-   e.g. ultrix >= 4.3 gives message:
-       zow35> cc -c -DDECFortran cfortest.c
-       cfe: Fatal: Out of memory: cfortest.c
-       zow35>
-   Old __hpux had the problem, but new 'HP-UX A.09.03 A 9000/735' is fine
-   if using -Aa, otherwise we have a problem.
- */
-#ifndef MAX_PREPRO_ARGS
-#if !defined(__GNUC__) && (defined(VAXUltrix) || defined(__CF__APOLLO67) || (defined(sun)&&!defined(__sun)) || defined(_CRAY) || defined(__ultrix__) || (defined(__hpux)&&defined(__CF__KnR)))
-#define MAX_PREPRO_ARGS 31
-#else
-#define MAX_PREPRO_ARGS 99
-#endif
-#endif
-
-#if defined(AbsoftUNIXFortran) || defined(AbsoftProFortran)
-/* In addition to explicit Absoft stuff, only Absoft requires:
-   - DEFAULT coming from _cfSTR.
-     DEFAULT could have been called e.g. INT, but keep it for clarity.
-   - M term in CFARGT14 and CFARGT14FS.
- */
-#define ABSOFT_cf1(T0) _(T0,_cfSTR)(0,ABSOFT1,0,0,0,0,0)
-#define ABSOFT_cf2(T0) _(T0,_cfSTR)(0,ABSOFT2,0,0,0,0,0)
-#define ABSOFT_cf3(T0) _(T0,_cfSTR)(0,ABSOFT3,0,0,0,0,0)
-#define DEFAULT_cfABSOFT1
-#define LOGICAL_cfABSOFT1
-#define  STRING_cfABSOFT1 ,MAX_LEN_FORTRAN_FUNCTION_STRING
-#define DEFAULT_cfABSOFT2
-#define LOGICAL_cfABSOFT2
-#define  STRING_cfABSOFT2 ,unsigned D0
-#define DEFAULT_cfABSOFT3
-#define LOGICAL_cfABSOFT3
-#define  STRING_cfABSOFT3 ,D0
-#else
-#define ABSOFT_cf1(T0)
-#define ABSOFT_cf2(T0)
-#define ABSOFT_cf3(T0)
-#endif
-
-/* _Z introduced to cicumvent IBM and HP silly preprocessor warning.
-   e.g. "Macro CFARGT14 invoked with a null argument."
- */
-#define _Z
-
-#define  CFARGT14S(S,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)                \
- S(T1,1)   S(T2,2)   S(T3,3)    S(T4,4)    S(T5,5)    S(T6,6)    S(T7,7)       \
- S(T8,8)   S(T9,9)   S(TA,10)   S(TB,11)   S(TC,12)   S(TD,13)   S(TE,14)
-#define  CFARGT27S(S,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR) \
- S(T1,1)   S(T2,2)   S(T3,3)    S(T4,4)    S(T5,5)    S(T6,6)    S(T7,7)       \
- S(T8,8)   S(T9,9)   S(TA,10)   S(TB,11)   S(TC,12)   S(TD,13)   S(TE,14)      \
- S(TF,15)  S(TG,16)  S(TH,17)   S(TI,18)   S(TJ,19)   S(TK,20)   S(TL,21)      \
- S(TM,22)  S(TN,23)  S(TO,24)   S(TP,25)   S(TQ,26)   S(TR,27)
-
-#define  CFARGT14FS(F,S,M,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)           \
- F(T1,1,0) F(T2,2,1) F(T3,3,1)  F(T4,4,1)  F(T5,5,1)  F(T6,6,1)  F(T7,7,1)     \
- F(T8,8,1) F(T9,9,1) F(TA,10,1) F(TB,11,1) F(TC,12,1) F(TD,13,1) F(TE,14,1)    \
- M       CFARGT14S(S,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)
-#define  CFARGT27FS(F,S,M,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR) \
- F(T1,1,0)  F(T2,2,1)  F(T3,3,1)  F(T4,4,1)  F(T5,5,1)  F(T6,6,1)  F(T7,7,1)   \
- F(T8,8,1)  F(T9,9,1)  F(TA,10,1) F(TB,11,1) F(TC,12,1) F(TD,13,1) F(TE,14,1)  \
- F(TF,15,1) F(TG,16,1) F(TH,17,1) F(TI,18,1) F(TJ,19,1) F(TK,20,1) F(TL,21,1)  \
- F(TM,22,1) F(TN,23,1) F(TO,24,1) F(TP,25,1) F(TQ,26,1) F(TR,27,1)             \
- M       CFARGT27S(S,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR)
-
-#if !(defined(PowerStationFortran)||defined(hpuxFortran800))
-/*  Old CFARGT14 -> CFARGT14FS as seen below, for Absoft cross-compile yields:
-      SunOS> cc -c -Xa -DAbsoftUNIXFortran c.c
-      "c.c", line 406: warning: argument mismatch
-    Haven't checked if this is ANSI C or a SunOS bug. SunOS -Xs works ok.
-    Behavior is most clearly seen in example:
-      #define A 1 , 2
-      #define  C(X,Y,Z) x=X. y=Y. z=Z.
-      #define  D(X,Y,Z) C(X,Y,Z)
-      D(x,A,z)
-    Output from preprocessor is: x = x . y = 1 . z = 2 .
- #define CFARGT14(F,S,M,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE) \
-       CFARGT14FS(F,S,M,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)
-*/
-#define  CFARGT14(F,S,M,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)             \
- F(T1,1,0) F(T2,2,1) F(T3,3,1)  F(T4,4,1)  F(T5,5,1)  F(T6,6,1)  F(T7,7,1)     \
- F(T8,8,1) F(T9,9,1) F(TA,10,1) F(TB,11,1) F(TC,12,1) F(TD,13,1) F(TE,14,1)    \
- M       CFARGT14S(S,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)
-#define  CFARGT27(F,S,M,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR) \
- F(T1,1,0)  F(T2,2,1)  F(T3,3,1)  F(T4,4,1)  F(T5,5,1)  F(T6,6,1)  F(T7,7,1)   \
- F(T8,8,1)  F(T9,9,1)  F(TA,10,1) F(TB,11,1) F(TC,12,1) F(TD,13,1) F(TE,14,1)  \
- F(TF,15,1) F(TG,16,1) F(TH,17,1) F(TI,18,1) F(TJ,19,1) F(TK,20,1) F(TL,21,1)  \
- F(TM,22,1) F(TN,23,1) F(TO,24,1) F(TP,25,1) F(TQ,26,1) F(TR,27,1)             \
- M       CFARGT27S(S,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR)
-
-#define  CFARGT20(F,S,M,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK) \
- F(T1,1,0)  F(T2,2,1)  F(T3,3,1)  F(T4,4,1)  F(T5,5,1)  F(T6,6,1)  F(T7,7,1)   \
- F(T8,8,1)  F(T9,9,1)  F(TA,10,1) F(TB,11,1) F(TC,12,1) F(TD,13,1) F(TE,14,1)  \
- F(TF,15,1) F(TG,16,1) F(TH,17,1) F(TI,18,1) F(TJ,19,1) F(TK,20,1)             \
- S(T1,1)    S(T2,2)    S(T3,3)    S(T4,4)    S(T5,5)    S(T6,6)    S(T7,7)     \
- S(T8,8)    S(T9,9)    S(TA,10)   S(TB,11)   S(TC,12)   S(TD,13)   S(TE,14)    \
- S(TF,15)   S(TG,16)   S(TH,17)   S(TI,18)   S(TJ,19)   S(TK,20)
-#define CFARGTA14(F,S,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE) \
- F(T1,A1,1,0)  F(T2,A2,2,1)  F(T3,A3,3,1) F(T4,A4,4,1)  F(T5,A5,5,1)  F(T6,A6,6,1)  \
- F(T7,A7,7,1)  F(T8,A8,8,1)  F(T9,A9,9,1) F(TA,AA,10,1) F(TB,AB,11,1) F(TC,AC,12,1) \
- F(TD,AD,13,1) F(TE,AE,14,1) S(T1,1)      S(T2,2)       S(T3,3)       S(T4,4)       \
- S(T5,5)       S(T6,6)       S(T7,7)      S(T8,8)       S(T9,9)       S(TA,10)      \
- S(TB,11)      S(TC,12)      S(TD,13)     S(TE,14)
-#if MAX_PREPRO_ARGS>31
-#define CFARGTA20(F,S,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK) \
- F(T1,A1,1,0)  F(T2,A2,2,1)  F(T3,A3,3,1)  F(T4,A4,4,1)  F(T5,A5,5,1)  F(T6,A6,6,1)  \
- F(T7,A7,7,1)  F(T8,A8,8,1)  F(T9,A9,9,1)  F(TA,AA,10,1) F(TB,AB,11,1) F(TC,AC,12,1) \
- F(TD,AD,13,1) F(TE,AE,14,1) F(TF,AF,15,1) F(TG,AG,16,1) F(TH,AH,17,1) F(TI,AI,18,1) \
- F(TJ,AJ,19,1) F(TK,AK,20,1) S(T1,1)       S(T2,2)       S(T3,3)       S(T4,4)       \
- S(T5,5)       S(T6,6)       S(T7,7)       S(T8,8)       S(T9,9)       S(TA,10)      \
- S(TB,11)      S(TC,12)      S(TD,13)      S(TE,14)      S(TF,15)      S(TG,16)      \
- S(TH,17)      S(TI,18)      S(TJ,19)      S(TK,20)
-#define CFARGTA27(F,S,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR) \
- F(T1,A1,1,0)  F(T2,A2,2,1)  F(T3,A3,3,1)  F(T4,A4,4,1)  F(T5,A5,5,1)  F(T6,A6,6,1)  \
- F(T7,A7,7,1)  F(T8,A8,8,1)  F(T9,A9,9,1)  F(TA,AA,10,1) F(TB,AB,11,1) F(TC,AC,12,1) \
- F(TD,AD,13,1) F(TE,AE,14,1) F(TF,AF,15,1) F(TG,AG,16,1) F(TH,AH,17,1) F(TI,AI,18,1) \
- F(TJ,AJ,19,1) F(TK,AK,20,1) F(TL,AL,21,1) F(TM,AM,22,1) F(TN,AN,23,1) F(TO,AO,24,1) \
- F(TP,AP,25,1) F(TQ,AQ,26,1) F(TR,AR,27,1) S(T1,1)       S(T2,2)       S(T3,3)       \
- S(T4,4)       S(T5,5)       S(T6,6)       S(T7,7)       S(T8,8)       S(T9,9)       \
- S(TA,10)      S(TB,11)      S(TC,12)      S(TD,13)      S(TE,14)      S(TF,15)      \
- S(TG,16)      S(TH,17)      S(TI,18)      S(TJ,19)      S(TK,20)      S(TL,21)      \
- S(TM,22)      S(TN,23)      S(TO,24)      S(TP,25)      S(TQ,26)      S(TR,27)
-#endif
-#else
-#define  CFARGT14(F,S,M,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)             \
- F(T1,1,0) S(T1,1) F(T2,2,1)  S(T2,2)  F(T3,3,1)  S(T3,3)  F(T4,4,1)  S(T4,4)  \
- F(T5,5,1) S(T5,5) F(T6,6,1)  S(T6,6)  F(T7,7,1)  S(T7,7)  F(T8,8,1)  S(T8,8)  \
- F(T9,9,1) S(T9,9) F(TA,10,1) S(TA,10) F(TB,11,1) S(TB,11) F(TC,12,1) S(TC,12) \
- F(TD,13,1) S(TD,13) F(TE,14,1) S(TE,14)
-#define  CFARGT27(F,S,M,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR) \
- F(T1,1,0)  S(T1,1)  F(T2,2,1)  S(T2,2)  F(T3,3,1)  S(T3,3)  F(T4,4,1)  S(T4,4)  \
- F(T5,5,1)  S(T5,5)  F(T6,6,1)  S(T6,6)  F(T7,7,1)  S(T7,7)  F(T8,8,1)  S(T8,8)  \
- F(T9,9,1)  S(T9,9)  F(TA,10,1) S(TA,10) F(TB,11,1) S(TB,11) F(TC,12,1) S(TC,12) \
- F(TD,13,1) S(TD,13) F(TE,14,1) S(TE,14) F(TF,15,1) S(TF,15) F(TG,16,1) S(TG,16) \
- F(TH,17,1) S(TH,17) F(TI,18,1) S(TI,18) F(TJ,19,1) S(TJ,19) F(TK,20,1) S(TK,20) \
- F(TL,21,1) S(TL,21) F(TM,22,1) S(TM,22) F(TN,23,1) S(TN,23) F(TO,24,1) S(TO,24) \
- F(TP,25,1) S(TP,25) F(TQ,26,1) S(TQ,26) F(TR,27,1) S(TR,27)
-
-#define  CFARGT20(F,S,M,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK) \
- F(T1,1,0)  S(T1,1)  F(T2,2,1)  S(T2,2)  F(T3,3,1)  S(T3,3)  F(T4,4,1)  S(T4,4)  \
- F(T5,5,1)  S(T5,5)  F(T6,6,1)  S(T6,6)  F(T7,7,1)  S(T7,7)  F(T8,8,1)  S(T8,8)  \
- F(T9,9,1)  S(T9,9)  F(TA,10,1) S(TA,10) F(TB,11,1) S(TB,11) F(TC,12,1) S(TC,12) \
- F(TD,13,1) S(TD,13) F(TE,14,1) S(TE,14) F(TF,15,1) S(TF,15) F(TG,16,1) S(TG,16) \
- F(TH,17,1) S(TH,17) F(TI,18,1) S(TI,18) F(TJ,19,1) S(TJ,19) F(TK,20,1) S(TK,20)
-#define CFARGTA14(F,S,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE) \
- F(T1,A1,1,0)  S(T1,1)  F(T2,A2,2,1)  S(T2,2)  F(T3,A3,3,1)  S(T3,3)           \
- F(T4,A4,4,1)  S(T4,4)  F(T5,A5,5,1)  S(T5,5)  F(T6,A6,6,1)  S(T6,6)           \
- F(T7,A7,7,1)  S(T7,7)  F(T8,A8,8,1)  S(T8,8)  F(T9,A9,9,1)  S(T9,9)           \
- F(TA,AA,10,1) S(TA,10) F(TB,AB,11,1) S(TB,11) F(TC,AC,12,1) S(TC,12)          \
- F(TD,AD,13,1) S(TD,13) F(TE,AE,14,1) S(TE,14)
-#if MAX_PREPRO_ARGS>31
-#define CFARGTA20(F,S,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK) \
- F(T1,A1,1,0)  S(T1,1)  F(T2,A2,2,1)  S(T2,2)  F(T3,A3,3,1)  S(T3,3)           \
- F(T4,A4,4,1)  S(T4,4)  F(T5,A5,5,1)  S(T5,5)  F(T6,A6,6,1)  S(T6,6)           \
- F(T7,A7,7,1)  S(T7,7)  F(T8,A8,8,1)  S(T8,8)  F(T9,A9,9,1)  S(T9,9)           \
- F(TA,AA,10,1) S(TA,10) F(TB,AB,11,1) S(TB,11) F(TC,AC,12,1) S(TC,12)          \
- F(TD,AD,13,1) S(TD,13) F(TE,AE,14,1) S(TE,14) F(TF,AF,15,1) S(TF,15)          \
- F(TG,AG,16,1) S(TG,16) F(TH,AH,17,1) S(TH,17) F(TI,AI,18,1) S(TI,18)          \
- F(TJ,AJ,19,1) S(TJ,19) F(TK,AK,20,1) S(TK,20)                
-#define CFARGTA27(F,S,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR) \
- F(T1,A1,1,0)  S(T1,1)  F(T2,A2,2,1)  S(T2,2)  F(T3,A3,3,1)  S(T3,3)           \
- F(T4,A4,4,1)  S(T4,4)  F(T5,A5,5,1)  S(T5,5)  F(T6,A6,6,1)  S(T6,6)           \
- F(T7,A7,7,1)  S(T7,7)  F(T8,A8,8,1)  S(T8,8)  F(T9,A9,9,1)  S(T9,9)           \
- F(TA,AA,10,1) S(TA,10) F(TB,AB,11,1) S(TB,11) F(TC,AC,12,1) S(TC,12)          \
- F(TD,AD,13,1) S(TD,13) F(TE,AE,14,1) S(TE,14) F(TF,AF,15,1) S(TF,15)          \
- F(TG,AG,16,1) S(TG,16) F(TH,AH,17,1) S(TH,17) F(TI,AI,18,1) S(TI,18)          \
- F(TJ,AJ,19,1) S(TJ,19) F(TK,AK,20,1) S(TK,20) F(TL,AL,21,1) S(TL,21)          \
- F(TM,AM,22,1) S(TM,22) F(TN,AN,23,1) S(TN,23) F(TO,AO,24,1) S(TO,24)          \
- F(TP,AP,25,1) S(TP,25) F(TQ,AQ,26,1) S(TQ,26) F(TR,AR,27,1) S(TR,27)
-#endif
-#endif
-
-
-#define PROTOCCALLSFSUB1( UN,LN,T1) \
-        PROTOCCALLSFSUB14(UN,LN,T1,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0)
-#define PROTOCCALLSFSUB2( UN,LN,T1,T2) \
-        PROTOCCALLSFSUB14(UN,LN,T1,T2,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0)
-#define PROTOCCALLSFSUB3( UN,LN,T1,T2,T3) \
-        PROTOCCALLSFSUB14(UN,LN,T1,T2,T3,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0)
-#define PROTOCCALLSFSUB4( UN,LN,T1,T2,T3,T4) \
-        PROTOCCALLSFSUB14(UN,LN,T1,T2,T3,T4,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0)
-#define PROTOCCALLSFSUB5( UN,LN,T1,T2,T3,T4,T5) \
-        PROTOCCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0)
-#define PROTOCCALLSFSUB6( UN,LN,T1,T2,T3,T4,T5,T6) \
-        PROTOCCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0)
-#define PROTOCCALLSFSUB7( UN,LN,T1,T2,T3,T4,T5,T6,T7) \
-        PROTOCCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0)
-#define PROTOCCALLSFSUB8( UN,LN,T1,T2,T3,T4,T5,T6,T7,T8) \
-        PROTOCCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0)
-#define PROTOCCALLSFSUB9( UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9) \
-        PROTOCCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,CF_0,CF_0,CF_0,CF_0,CF_0)
-#define PROTOCCALLSFSUB10(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA) \
-        PROTOCCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,CF_0,CF_0,CF_0,CF_0)
-#define PROTOCCALLSFSUB11(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB) \
-        PROTOCCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,CF_0,CF_0,CF_0)
-#define PROTOCCALLSFSUB12(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC) \
-        PROTOCCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,CF_0,CF_0)
-#define PROTOCCALLSFSUB13(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD) \
-        PROTOCCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,CF_0)
-
-
-#define PROTOCCALLSFSUB15(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF) \
-        PROTOCCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,CF_0,CF_0,CF_0,CF_0,CF_0)
-#define PROTOCCALLSFSUB16(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG) \
-        PROTOCCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,CF_0,CF_0,CF_0,CF_0)
-#define PROTOCCALLSFSUB17(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH) \
-        PROTOCCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,CF_0,CF_0,CF_0)
-#define PROTOCCALLSFSUB18(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI) \
-        PROTOCCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,CF_0,CF_0)
-#define PROTOCCALLSFSUB19(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ) \
-        PROTOCCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,CF_0)
-
-#define PROTOCCALLSFSUB21(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL) \
-        PROTOCCALLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0)
-#define PROTOCCALLSFSUB22(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM) \
-        PROTOCCALLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,CF_0,CF_0,CF_0,CF_0,CF_0)
-#define PROTOCCALLSFSUB23(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN) \
-        PROTOCCALLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,CF_0,CF_0,CF_0,CF_0)
-#define PROTOCCALLSFSUB24(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO) \
-        PROTOCCALLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,CF_0,CF_0,CF_0)
-#define PROTOCCALLSFSUB25(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP) \
-        PROTOCCALLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,CF_0,CF_0)
-#define PROTOCCALLSFSUB26(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ) \
-        PROTOCCALLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,CF_0)
-
-
-#ifndef FCALLSC_QUALIFIER
-#ifdef VISUAL_CPLUSPLUS
-#define FCALLSC_QUALIFIER __stdcall
-#else
-#define FCALLSC_QUALIFIER
-#endif
-#endif
-
-#ifdef __cplusplus
-#define CFextern extern "C"
-#else
-#define CFextern extern
-#endif
-
-
-#ifdef CFSUBASFUN
-#define PROTOCCALLSFSUB0(UN,LN) \
-   PROTOCCALLSFFUN0( VOID,UN,LN)
-#define PROTOCCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE) \
-   PROTOCCALLSFFUN14(VOID,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)
-#define PROTOCCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK)\
-   PROTOCCALLSFFUN20(VOID,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK)
-#define PROTOCCALLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR)\
-   PROTOCCALLSFFUN27(VOID,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR)
-#else
-/* Note: Prevent compiler warnings, null #define PROTOCCALLSFSUB14/20 after 
-   #include-ing cfortran.h if calling the FORTRAN wrapper within the same 
-   source code where the wrapper is created. */
-#define PROTOCCALLSFSUB0(UN,LN)     _(VOID,_cfPU)(CFC_(UN,LN))();
-#ifndef __CF__KnR
-#define PROTOCCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE) \
- _(VOID,_cfPU)(CFC_(UN,LN))( CFARGT14(NCF,KCF,_Z,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE) );
-#define PROTOCCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK)\
- _(VOID,_cfPU)(CFC_(UN,LN))( CFARGT20(NCF,KCF,_Z,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK) );
-#define PROTOCCALLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR)\
- _(VOID,_cfPU)(CFC_(UN,LN))( CFARGT27(NCF,KCF,_Z,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR) );
-#else
-#define PROTOCCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)     \
-         PROTOCCALLSFSUB0(UN,LN)
-#define PROTOCCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK) \
-         PROTOCCALLSFSUB0(UN,LN)
-#define PROTOCCALLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR) \
-         PROTOCCALLSFSUB0(UN,LN)
-#endif
-#endif
-
-
-#ifdef OLD_VAXC                                  /* Allow %CC-I-PARAMNOTUSED. */
-#pragma standard
-#endif
-
-
-#define CCALLSFSUB1( UN,LN,T1,                        A1)         \
-        CCALLSFSUB5 (UN,LN,T1,CF_0,CF_0,CF_0,CF_0,A1,0,0,0,0)
-#define CCALLSFSUB2( UN,LN,T1,T2,                     A1,A2)      \
-        CCALLSFSUB5 (UN,LN,T1,T2,CF_0,CF_0,CF_0,A1,A2,0,0,0)
-#define CCALLSFSUB3( UN,LN,T1,T2,T3,                  A1,A2,A3)   \
-        CCALLSFSUB5 (UN,LN,T1,T2,T3,CF_0,CF_0,A1,A2,A3,0,0)
-#define CCALLSFSUB4( UN,LN,T1,T2,T3,T4,               A1,A2,A3,A4)\
-        CCALLSFSUB5 (UN,LN,T1,T2,T3,T4,CF_0,A1,A2,A3,A4,0)
-#define CCALLSFSUB5( UN,LN,T1,T2,T3,T4,T5,            A1,A2,A3,A4,A5)          \
-        CCALLSFSUB10(UN,LN,T1,T2,T3,T4,T5,CF_0,CF_0,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,0,0,0,0,0)
-#define CCALLSFSUB6( UN,LN,T1,T2,T3,T4,T5,T6,         A1,A2,A3,A4,A5,A6)       \
-        CCALLSFSUB10(UN,LN,T1,T2,T3,T4,T5,T6,CF_0,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,A6,0,0,0,0)
-#define CCALLSFSUB7( UN,LN,T1,T2,T3,T4,T5,T6,T7,      A1,A2,A3,A4,A5,A6,A7)    \
-        CCALLSFSUB10(UN,LN,T1,T2,T3,T4,T5,T6,T7,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,0,0,0)
-#define CCALLSFSUB8( UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,   A1,A2,A3,A4,A5,A6,A7,A8) \
-        CCALLSFSUB10(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,0,0)
-#define CCALLSFSUB9( UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,A1,A2,A3,A4,A5,A6,A7,A8,A9)\
-        CCALLSFSUB10(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,0)
-#define CCALLSFSUB10(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA)\
-        CCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,CF_0,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,0,0,0,0)
-#define CCALLSFSUB11(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB)\
-        CCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,0,0,0)
-#define CCALLSFSUB12(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC)\
-        CCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,0,0)
-#define CCALLSFSUB13(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD)\
-        CCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,0)
-
-#ifdef __cplusplus
-#define CPPPROTOCLSFSUB0( UN,LN)
-#define CPPPROTOCLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)
-#define CPPPROTOCLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK)
-#define CPPPROTOCLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR)
-#else
-#define CPPPROTOCLSFSUB0(UN,LN) \
-        PROTOCCALLSFSUB0(UN,LN)
-#define CPPPROTOCLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)     \
-        PROTOCCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)
-#define CPPPROTOCLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK) \
-        PROTOCCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK)
-#define CPPPROTOCLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR) \
-        PROTOCCALLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR)
-#endif
-
-#ifdef CFSUBASFUN
-#define CCALLSFSUB0(UN,LN) CCALLSFFUN0(UN,LN)
-#define CCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE)\
-        CCALLSFFUN14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE)
-#else
-/* do{...}while(0) allows if(a==b) FORT(); else BORT(); */
-#define CCALLSFSUB0( UN,LN) do{CPPPROTOCLSFSUB0(UN,LN) CFC_(UN,LN)();}while(0)
-#define CCALLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE)\
-do{VVCF(T1,A1,B1) VVCF(T2,A2,B2) VVCF(T3,A3,B3) VVCF(T4,A4,B4) VVCF(T5,A5,B5)  \
-   VVCF(T6,A6,B6) VVCF(T7,A7,B7) VVCF(T8,A8,B8) VVCF(T9,A9,B9) VVCF(TA,AA,B10) \
-   VVCF(TB,AB,B11) VVCF(TC,AC,B12) VVCF(TD,AD,B13) VVCF(TE,AE,B14)             \
-   CPPPROTOCLSFSUB14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)          \
-   ACF(LN,T1,A1,1)  ACF(LN,T2,A2,2)  ACF(LN,T3,A3,3)                           \
-   ACF(LN,T4,A4,4)  ACF(LN,T5,A5,5)  ACF(LN,T6,A6,6)  ACF(LN,T7,A7,7)          \
-   ACF(LN,T8,A8,8)  ACF(LN,T9,A9,9)  ACF(LN,TA,AA,10) ACF(LN,TB,AB,11)         \
-   ACF(LN,TC,AC,12) ACF(LN,TD,AD,13) ACF(LN,TE,AE,14)                          \
-   CFC_(UN,LN)( CFARGTA14(AACF,JCF,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE) );\
-   WCF(T1,A1,1)  WCF(T2,A2,2)  WCF(T3,A3,3)  WCF(T4,A4,4)  WCF(T5,A5,5)        \
-   WCF(T6,A6,6)  WCF(T7,A7,7)  WCF(T8,A8,8)  WCF(T9,A9,9)  WCF(TA,AA,10)       \
-   WCF(TB,AB,11) WCF(TC,AC,12) WCF(TD,AD,13) WCF(TE,AE,14)      }while(0)
-#endif
-
-
-#if MAX_PREPRO_ARGS>31
-#define CCALLSFSUB15(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF)\
-        CCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,CF_0,CF_0,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,0,0,0,0,0)
-#define CCALLSFSUB16(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG)\
-        CCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,CF_0,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,0,0,0,0)
-#define CCALLSFSUB17(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH)\
-        CCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,0,0,0)
-#define CCALLSFSUB18(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI)\
-        CCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,0,0)
-#define CCALLSFSUB19(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ)\
-        CCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,0)
-
-#ifdef CFSUBASFUN
-#define CCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH, \
-        TI,TJ,TK, A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK) \
-        CCALLSFFUN20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH, \
-        TI,TJ,TK, A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK)
-#else
-#define CCALLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH, \
-        TI,TJ,TK, A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK) \
-do{VVCF(T1,A1,B1)  VVCF(T2,A2,B2)  VVCF(T3,A3,B3)  VVCF(T4,A4,B4)  VVCF(T5,A5,B5)   \
-   VVCF(T6,A6,B6)  VVCF(T7,A7,B7)  VVCF(T8,A8,B8)  VVCF(T9,A9,B9)  VVCF(TA,AA,B10)  \
-   VVCF(TB,AB,B11) VVCF(TC,AC,B12) VVCF(TD,AD,B13) VVCF(TE,AE,B14) VVCF(TF,AF,B15)  \
-   VVCF(TG,AG,B16) VVCF(TH,AH,B17) VVCF(TI,AI,B18) VVCF(TJ,AJ,B19) VVCF(TK,AK,B20)  \
-   CPPPROTOCLSFSUB20(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK)  \
-   ACF(LN,T1,A1,1)  ACF(LN,T2,A2,2)  ACF(LN,T3,A3,3)  ACF(LN,T4,A4,4)          \
-   ACF(LN,T5,A5,5)  ACF(LN,T6,A6,6)  ACF(LN,T7,A7,7)  ACF(LN,T8,A8,8)          \
-   ACF(LN,T9,A9,9)  ACF(LN,TA,AA,10) ACF(LN,TB,AB,11) ACF(LN,TC,AC,12)         \
-   ACF(LN,TD,AD,13) ACF(LN,TE,AE,14) ACF(LN,TF,AF,15) ACF(LN,TG,AG,16)         \
-   ACF(LN,TH,AH,17) ACF(LN,TI,AI,18) ACF(LN,TJ,AJ,19) ACF(LN,TK,AK,20)         \
-   CFC_(UN,LN)( CFARGTA20(AACF,JCF,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK) ); \
- WCF(T1,A1,1)  WCF(T2,A2,2)  WCF(T3,A3,3)  WCF(T4,A4,4)  WCF(T5,A5,5)  WCF(T6,A6,6)  \
- WCF(T7,A7,7)  WCF(T8,A8,8)  WCF(T9,A9,9)  WCF(TA,AA,10) WCF(TB,AB,11) WCF(TC,AC,12) \
- WCF(TD,AD,13) WCF(TE,AE,14) WCF(TF,AF,15) WCF(TG,AG,16) WCF(TH,AH,17) WCF(TI,AI,18) \
- WCF(TJ,AJ,19) WCF(TK,AK,20) }while(0)
-#endif
-#endif         /* MAX_PREPRO_ARGS */
-
-#if MAX_PREPRO_ARGS>31
-#define CCALLSFSUB21(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL)\
-        CCALLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,0,0,0,0,0,0)
-#define CCALLSFSUB22(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM)\
-        CCALLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,CF_0,CF_0,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,0,0,0,0,0)
-#define CCALLSFSUB23(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN)\
-        CCALLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,CF_0,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,0,0,0,0)
-#define CCALLSFSUB24(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO)\
-        CCALLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,0,0,0)
-#define CCALLSFSUB25(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP)\
-        CCALLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,0,0)
-#define CCALLSFSUB26(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ)\
-        CCALLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,0)
-
-#ifdef CFSUBASFUN
-#define CCALLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR, \
-                           A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR) \
-        CCALLSFFUN27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR, \
-                           A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR)
-#else
-#define CCALLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR, \
-                           A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR) \
-do{VVCF(T1,A1,B1)  VVCF(T2,A2,B2)  VVCF(T3,A3,B3)  VVCF(T4,A4,B4)  VVCF(T5,A5,B5)   \
-   VVCF(T6,A6,B6)  VVCF(T7,A7,B7)  VVCF(T8,A8,B8)  VVCF(T9,A9,B9)  VVCF(TA,AA,B10)  \
-   VVCF(TB,AB,B11) VVCF(TC,AC,B12) VVCF(TD,AD,B13) VVCF(TE,AE,B14) VVCF(TF,AF,B15)  \
-   VVCF(TG,AG,B16) VVCF(TH,AH,B17) VVCF(TI,AI,B18) VVCF(TJ,AJ,B19) VVCF(TK,AK,B20)  \
-   VVCF(TL,AL,B21) VVCF(TM,AM,B22) VVCF(TN,AN,B23) VVCF(TO,AO,B24) VVCF(TP,AP,B25)  \
-   VVCF(TQ,AQ,B26) VVCF(TR,AR,B27)                                                  \
-   CPPPROTOCLSFSUB27(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR) \
-   ACF(LN,T1,A1,1)  ACF(LN,T2,A2,2)  ACF(LN,T3,A3,3)  ACF(LN,T4,A4,4)          \
-   ACF(LN,T5,A5,5)  ACF(LN,T6,A6,6)  ACF(LN,T7,A7,7)  ACF(LN,T8,A8,8)          \
-   ACF(LN,T9,A9,9)  ACF(LN,TA,AA,10) ACF(LN,TB,AB,11) ACF(LN,TC,AC,12)         \
-   ACF(LN,TD,AD,13) ACF(LN,TE,AE,14) ACF(LN,TF,AF,15) ACF(LN,TG,AG,16)         \
-   ACF(LN,TH,AH,17) ACF(LN,TI,AI,18) ACF(LN,TJ,AJ,19) ACF(LN,TK,AK,20)         \
-   ACF(LN,TL,AL,21) ACF(LN,TM,AM,22) ACF(LN,TN,AN,23) ACF(LN,TO,AO,24)         \
-   ACF(LN,TP,AP,25) ACF(LN,TQ,AQ,26) ACF(LN,TR,AR,27)                          \
-   CFC_(UN,LN)( CFARGTA27(AACF,JCF,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR,\
-                                   A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR) ); \
- WCF(T1,A1,1)  WCF(T2,A2,2)  WCF(T3,A3,3)  WCF(T4,A4,4)  WCF(T5,A5,5)  WCF(T6,A6,6)  \
- WCF(T7,A7,7)  WCF(T8,A8,8)  WCF(T9,A9,9)  WCF(TA,AA,10) WCF(TB,AB,11) WCF(TC,AC,12) \
- WCF(TD,AD,13) WCF(TE,AE,14) WCF(TF,AF,15) WCF(TG,AG,16) WCF(TH,AH,17) WCF(TI,AI,18) \
- WCF(TJ,AJ,19) WCF(TK,AK,20) WCF(TL,AL,21) WCF(TM,AM,22) WCF(TN,AN,23) WCF(TO,AO,24) \
- WCF(TP,AP,25) WCF(TQ,AQ,26) WCF(TR,AR,27) }while(0)
-#endif
-#endif         /* MAX_PREPRO_ARGS */
-
-/*-------------------------------------------------------------------------*/
-
-/*               UTILITIES FOR C TO CALL FORTRAN FUNCTIONS                 */
-
-/*N.B. PROTOCCALLSFFUNn(..) generates code, whether or not the FORTRAN
-  function is called. Therefore, especially for creator's of C header files
-  for large FORTRAN libraries which include many functions, to reduce
-  compile time and object code size, it may be desirable to create
-  preprocessor directives to allow users to create code for only those
-  functions which they use.                                                */
-
-/* The following defines the maximum length string that a function can return.
-   Of course it may be undefine-d and re-define-d before individual
-   PROTOCCALLSFFUNn(..) as required. It would also be nice to have this derived
-   from the individual machines' limits.                                      */
-#define MAX_LEN_FORTRAN_FUNCTION_STRING 0x4FE
-
-/* The following defines a character used by CFORTRAN.H to flag the end of a
-   string coming out of a FORTRAN routine.                                 */
-#define CFORTRAN_NON_CHAR 0x7F
-
-#ifdef OLD_VAXC                                /* Prevent %CC-I-PARAMNOTUSED. */
-#pragma nostandard
-#endif
-
-#define _SEP_(TN,C,cfCOMMA)     _(__SEP_,C)(TN,cfCOMMA)
-#define __SEP_0(TN,cfCOMMA)  
-#define __SEP_1(TN,cfCOMMA)     _Icf(2,SEP,TN,cfCOMMA,0)
-#define        INT_cfSEP(T,B) _(A,B)
-#define       INTV_cfSEP(T,B) INT_cfSEP(T,B)
-#define      INTVV_cfSEP(T,B) INT_cfSEP(T,B)
-#define     INTVVV_cfSEP(T,B) INT_cfSEP(T,B)
-#define    INTVVVV_cfSEP(T,B) INT_cfSEP(T,B)
-#define   INTVVVVV_cfSEP(T,B) INT_cfSEP(T,B)
-#define  INTVVVVVV_cfSEP(T,B) INT_cfSEP(T,B)
-#define INTVVVVVVV_cfSEP(T,B) INT_cfSEP(T,B)
-#define       PINT_cfSEP(T,B) INT_cfSEP(T,B)
-#define      PVOID_cfSEP(T,B) INT_cfSEP(T,B)
-#define    ROUTINE_cfSEP(T,B) INT_cfSEP(T,B)
-#define     SIMPLE_cfSEP(T,B) INT_cfSEP(T,B)
-#define       VOID_cfSEP(T,B) INT_cfSEP(T,B)    /* For FORTRAN calls C subr.s.*/
-#define     STRING_cfSEP(T,B) INT_cfSEP(T,B)
-#define    STRINGV_cfSEP(T,B) INT_cfSEP(T,B)
-#define    PSTRING_cfSEP(T,B) INT_cfSEP(T,B)
-#define   PSTRINGV_cfSEP(T,B) INT_cfSEP(T,B)
-#define   PNSTRING_cfSEP(T,B) INT_cfSEP(T,B)
-#define   PPSTRING_cfSEP(T,B) INT_cfSEP(T,B)
-#define    ZTRINGV_cfSEP(T,B) INT_cfSEP(T,B)
-#define   PZTRINGV_cfSEP(T,B) INT_cfSEP(T,B)
-                         
-#if defined(SIGNED_BYTE) || !defined(UNSIGNED_BYTE)
-#ifdef OLD_VAXC
-#define INTEGER_BYTE               char    /* Old VAXC barfs on 'signed char' */
-#else
-#define INTEGER_BYTE        signed char    /* default */
-#endif
-#else
-#define INTEGER_BYTE        unsigned char
-#endif
-#define    BYTEVVVVVVV_cfTYPE INTEGER_BYTE
-#define  DOUBLEVVVVVVV_cfTYPE DOUBLE_PRECISION 
-#define   FLOATVVVVVVV_cfTYPE FORTRAN_REAL
-#define     INTVVVVVVV_cfTYPE int
-#define LOGICALVVVVVVV_cfTYPE int
-#define    LONGVVVVVVV_cfTYPE long
-#define   SHORTVVVVVVV_cfTYPE short
-#define          PBYTE_cfTYPE INTEGER_BYTE
-#define        PDOUBLE_cfTYPE DOUBLE_PRECISION 
-#define         PFLOAT_cfTYPE FORTRAN_REAL
-#define           PINT_cfTYPE int
-#define       PLOGICAL_cfTYPE int
-#define          PLONG_cfTYPE long
-#define         PSHORT_cfTYPE short
-
-#define CFARGS0(A,T,V,W,X,Y,Z) _3(T,_cf,A)
-#define CFARGS1(A,T,V,W,X,Y,Z) _3(T,_cf,A)(V)
-#define CFARGS2(A,T,V,W,X,Y,Z) _3(T,_cf,A)(V,W)
-#define CFARGS3(A,T,V,W,X,Y,Z) _3(T,_cf,A)(V,W,X)
-#define CFARGS4(A,T,V,W,X,Y,Z) _3(T,_cf,A)(V,W,X,Y)
-#define CFARGS5(A,T,V,W,X,Y,Z) _3(T,_cf,A)(V,W,X,Y,Z)
-
-#define  _Icf(N,T,I,X,Y)                 _(I,_cfINT)(N,T,I,X,Y,0)
-#define _Icf4(N,T,I,X,Y,Z)               _(I,_cfINT)(N,T,I,X,Y,Z)
-#define           BYTE_cfINT(N,A,B,X,Y,Z)        DOUBLE_cfINT(N,A,B,X,Y,Z)
-#define         DOUBLE_cfINT(N,A,B,X,Y,Z) _(CFARGS,N)(A,INT,B,X,Y,Z,0)
-#define          FLOAT_cfINT(N,A,B,X,Y,Z)        DOUBLE_cfINT(N,A,B,X,Y,Z)
-#define            INT_cfINT(N,A,B,X,Y,Z)        DOUBLE_cfINT(N,A,B,X,Y,Z)
-#define        LOGICAL_cfINT(N,A,B,X,Y,Z)        DOUBLE_cfINT(N,A,B,X,Y,Z)
-#define           LONG_cfINT(N,A,B,X,Y,Z)        DOUBLE_cfINT(N,A,B,X,Y,Z)
-#define          SHORT_cfINT(N,A,B,X,Y,Z)        DOUBLE_cfINT(N,A,B,X,Y,Z)
-#define          PBYTE_cfINT(N,A,B,X,Y,Z)       PDOUBLE_cfINT(N,A,B,X,Y,Z)
-#define        PDOUBLE_cfINT(N,A,B,X,Y,Z) _(CFARGS,N)(A,PINT,B,X,Y,Z,0)
-#define         PFLOAT_cfINT(N,A,B,X,Y,Z)       PDOUBLE_cfINT(N,A,B,X,Y,Z)
-#define           PINT_cfINT(N,A,B,X,Y,Z)       PDOUBLE_cfINT(N,A,B,X,Y,Z)
-#define       PLOGICAL_cfINT(N,A,B,X,Y,Z)       PDOUBLE_cfINT(N,A,B,X,Y,Z)
-#define          PLONG_cfINT(N,A,B,X,Y,Z)       PDOUBLE_cfINT(N,A,B,X,Y,Z)
-#define         PSHORT_cfINT(N,A,B,X,Y,Z)       PDOUBLE_cfINT(N,A,B,X,Y,Z)
-#define          BYTEV_cfINT(N,A,B,X,Y,Z)       DOUBLEV_cfINT(N,A,B,X,Y,Z)
-#define         BYTEVV_cfINT(N,A,B,X,Y,Z)      DOUBLEVV_cfINT(N,A,B,X,Y,Z)
-#define        BYTEVVV_cfINT(N,A,B,X,Y,Z)     DOUBLEVVV_cfINT(N,A,B,X,Y,Z)
-#define       BYTEVVVV_cfINT(N,A,B,X,Y,Z)    DOUBLEVVVV_cfINT(N,A,B,X,Y,Z)
-#define      BYTEVVVVV_cfINT(N,A,B,X,Y,Z)   DOUBLEVVVVV_cfINT(N,A,B,X,Y,Z)
-#define     BYTEVVVVVV_cfINT(N,A,B,X,Y,Z)  DOUBLEVVVVVV_cfINT(N,A,B,X,Y,Z)
-#define    BYTEVVVVVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVVVVVV_cfINT(N,A,B,X,Y,Z)
-#define        DOUBLEV_cfINT(N,A,B,X,Y,Z) _(CFARGS,N)(A,INTV,B,X,Y,Z,0)
-#define       DOUBLEVV_cfINT(N,A,B,X,Y,Z) _(CFARGS,N)(A,INTVV,B,X,Y,Z,0)
-#define      DOUBLEVVV_cfINT(N,A,B,X,Y,Z) _(CFARGS,N)(A,INTVVV,B,X,Y,Z,0)
-#define     DOUBLEVVVV_cfINT(N,A,B,X,Y,Z) _(CFARGS,N)(A,INTVVVV,B,X,Y,Z,0)
-#define    DOUBLEVVVVV_cfINT(N,A,B,X,Y,Z) _(CFARGS,N)(A,INTVVVVV,B,X,Y,Z,0)
-#define   DOUBLEVVVVVV_cfINT(N,A,B,X,Y,Z) _(CFARGS,N)(A,INTVVVVVV,B,X,Y,Z,0)
-#define  DOUBLEVVVVVVV_cfINT(N,A,B,X,Y,Z) _(CFARGS,N)(A,INTVVVVVVV,B,X,Y,Z,0)
-#define         FLOATV_cfINT(N,A,B,X,Y,Z)       DOUBLEV_cfINT(N,A,B,X,Y,Z)
-#define        FLOATVV_cfINT(N,A,B,X,Y,Z)      DOUBLEVV_cfINT(N,A,B,X,Y,Z)
-#define       FLOATVVV_cfINT(N,A,B,X,Y,Z)     DOUBLEVVV_cfINT(N,A,B,X,Y,Z)
-#define      FLOATVVVV_cfINT(N,A,B,X,Y,Z)    DOUBLEVVVV_cfINT(N,A,B,X,Y,Z)
-#define     FLOATVVVVV_cfINT(N,A,B,X,Y,Z)   DOUBLEVVVVV_cfINT(N,A,B,X,Y,Z)
-#define    FLOATVVVVVV_cfINT(N,A,B,X,Y,Z)  DOUBLEVVVVVV_cfINT(N,A,B,X,Y,Z)
-#define   FLOATVVVVVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVVVVVV_cfINT(N,A,B,X,Y,Z)
-#define           INTV_cfINT(N,A,B,X,Y,Z)       DOUBLEV_cfINT(N,A,B,X,Y,Z)
-#define          INTVV_cfINT(N,A,B,X,Y,Z)      DOUBLEVV_cfINT(N,A,B,X,Y,Z)
-#define         INTVVV_cfINT(N,A,B,X,Y,Z)     DOUBLEVVV_cfINT(N,A,B,X,Y,Z)
-#define        INTVVVV_cfINT(N,A,B,X,Y,Z)    DOUBLEVVVV_cfINT(N,A,B,X,Y,Z)
-#define       INTVVVVV_cfINT(N,A,B,X,Y,Z)   DOUBLEVVVVV_cfINT(N,A,B,X,Y,Z)
-#define      INTVVVVVV_cfINT(N,A,B,X,Y,Z)  DOUBLEVVVVVV_cfINT(N,A,B,X,Y,Z)
-#define     INTVVVVVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVVVVVV_cfINT(N,A,B,X,Y,Z)
-#define       LOGICALV_cfINT(N,A,B,X,Y,Z)       DOUBLEV_cfINT(N,A,B,X,Y,Z)
-#define      LOGICALVV_cfINT(N,A,B,X,Y,Z)      DOUBLEVV_cfINT(N,A,B,X,Y,Z)
-#define     LOGICALVVV_cfINT(N,A,B,X,Y,Z)     DOUBLEVVV_cfINT(N,A,B,X,Y,Z)
-#define    LOGICALVVVV_cfINT(N,A,B,X,Y,Z)    DOUBLEVVVV_cfINT(N,A,B,X,Y,Z)
-#define   LOGICALVVVVV_cfINT(N,A,B,X,Y,Z)   DOUBLEVVVVV_cfINT(N,A,B,X,Y,Z)
-#define  LOGICALVVVVVV_cfINT(N,A,B,X,Y,Z)  DOUBLEVVVVVV_cfINT(N,A,B,X,Y,Z)
-#define LOGICALVVVVVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVVVVVV_cfINT(N,A,B,X,Y,Z)
-#define          LONGV_cfINT(N,A,B,X,Y,Z)       DOUBLEV_cfINT(N,A,B,X,Y,Z)
-#define         LONGVV_cfINT(N,A,B,X,Y,Z)      DOUBLEVV_cfINT(N,A,B,X,Y,Z)
-#define        LONGVVV_cfINT(N,A,B,X,Y,Z)     DOUBLEVVV_cfINT(N,A,B,X,Y,Z)
-#define       LONGVVVV_cfINT(N,A,B,X,Y,Z)    DOUBLEVVVV_cfINT(N,A,B,X,Y,Z)
-#define      LONGVVVVV_cfINT(N,A,B,X,Y,Z)   DOUBLEVVVVV_cfINT(N,A,B,X,Y,Z)
-#define     LONGVVVVVV_cfINT(N,A,B,X,Y,Z)  DOUBLEVVVVVV_cfINT(N,A,B,X,Y,Z)
-#define    LONGVVVVVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVVVVVV_cfINT(N,A,B,X,Y,Z)
-#define         SHORTV_cfINT(N,A,B,X,Y,Z)       DOUBLEV_cfINT(N,A,B,X,Y,Z)
-#define        SHORTVV_cfINT(N,A,B,X,Y,Z)      DOUBLEVV_cfINT(N,A,B,X,Y,Z)
-#define       SHORTVVV_cfINT(N,A,B,X,Y,Z)     DOUBLEVVV_cfINT(N,A,B,X,Y,Z)
-#define      SHORTVVVV_cfINT(N,A,B,X,Y,Z)    DOUBLEVVVV_cfINT(N,A,B,X,Y,Z)
-#define     SHORTVVVVV_cfINT(N,A,B,X,Y,Z)   DOUBLEVVVVV_cfINT(N,A,B,X,Y,Z)
-#define    SHORTVVVVVV_cfINT(N,A,B,X,Y,Z)  DOUBLEVVVVVV_cfINT(N,A,B,X,Y,Z)
-#define   SHORTVVVVVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVVVVVV_cfINT(N,A,B,X,Y,Z)
-#define          PVOID_cfINT(N,A,B,X,Y,Z) _(CFARGS,N)(A,B,B,X,Y,Z,0)
-#define        ROUTINE_cfINT(N,A,B,X,Y,Z)         PVOID_cfINT(N,A,B,X,Y,Z)
-/*CRAY coughs on the first,
-  i.e. the usual trouble of not being able to
-  define macros to macros with arguments. 
-  New ultrix is worse, it coughs on all such uses.
- */
-/*#define       SIMPLE_cfINT                    PVOID_cfINT*/
-#define         SIMPLE_cfINT(N,A,B,X,Y,Z)         PVOID_cfINT(N,A,B,X,Y,Z)
-#define           VOID_cfINT(N,A,B,X,Y,Z)         PVOID_cfINT(N,A,B,X,Y,Z)
-#define         STRING_cfINT(N,A,B,X,Y,Z)         PVOID_cfINT(N,A,B,X,Y,Z)
-#define        STRINGV_cfINT(N,A,B,X,Y,Z)         PVOID_cfINT(N,A,B,X,Y,Z)
-#define        PSTRING_cfINT(N,A,B,X,Y,Z)         PVOID_cfINT(N,A,B,X,Y,Z)
-#define       PSTRINGV_cfINT(N,A,B,X,Y,Z)         PVOID_cfINT(N,A,B,X,Y,Z)
-#define       PNSTRING_cfINT(N,A,B,X,Y,Z)         PVOID_cfINT(N,A,B,X,Y,Z)
-#define       PPSTRING_cfINT(N,A,B,X,Y,Z)         PVOID_cfINT(N,A,B,X,Y,Z)
-#define        ZTRINGV_cfINT(N,A,B,X,Y,Z)         PVOID_cfINT(N,A,B,X,Y,Z)
-#define       PZTRINGV_cfINT(N,A,B,X,Y,Z)         PVOID_cfINT(N,A,B,X,Y,Z)
-#define           CF_0_cfINT(N,A,B,X,Y,Z)
-                         
-
-#define   UCF(TN,I,C)  _SEP_(TN,C,cfCOMMA) _Icf(2,U,TN,_(A,I),0)
-#define  UUCF(TN,I,C)  _SEP_(TN,C,cfCOMMA) _SEP_(TN,1,I) 
-#define UUUCF(TN,I,C)  _SEP_(TN,C,cfCOLON) _Icf(2,U,TN,_(A,I),0)
-#define        INT_cfU(T,A) _(T,VVVVVVV_cfTYPE)   A
-#define       INTV_cfU(T,A) _(T,VVVVVV_cfTYPE)  * A
-#define      INTVV_cfU(T,A) _(T,VVVVV_cfTYPE)   * A
-#define     INTVVV_cfU(T,A) _(T,VVVV_cfTYPE)    * A
-#define    INTVVVV_cfU(T,A) _(T,VVV_cfTYPE)     * A
-#define   INTVVVVV_cfU(T,A) _(T,VV_cfTYPE)      * A
-#define  INTVVVVVV_cfU(T,A) _(T,V_cfTYPE)       * A
-#define INTVVVVVVV_cfU(T,A) _(T,_cfTYPE)        * A
-#define       PINT_cfU(T,A) _(T,_cfTYPE)        * A
-#define      PVOID_cfU(T,A) void  *A 
-#define    ROUTINE_cfU(T,A) void (*A)(CF_NULL_PROTO) 
-#define       VOID_cfU(T,A) void   A    /* Needed for C calls FORTRAN sub.s.  */
-#define     STRING_cfU(T,A) char  *A    /*            via VOID and wrapper.   */
-#define    STRINGV_cfU(T,A) char  *A
-#define    PSTRING_cfU(T,A) char  *A
-#define   PSTRINGV_cfU(T,A) char  *A
-#define    ZTRINGV_cfU(T,A) char  *A
-#define   PZTRINGV_cfU(T,A) char  *A
-
-/* VOID breaks U into U and UU. */
-#define       INT_cfUU(T,A) _(T,VVVVVVV_cfTYPE) A
-#define      VOID_cfUU(T,A)             /* Needed for FORTRAN calls C sub.s.  */
-#define    STRING_cfUU(T,A) char *A 
-
-
-#define      BYTE_cfPU(A)   CFextern INTEGER_BYTE      FCALLSC_QUALIFIER A
-#define    DOUBLE_cfPU(A)   CFextern DOUBLE_PRECISION  FCALLSC_QUALIFIER A
-#if ! (defined(FLOATFUNCTIONTYPE)&&defined(ASSIGNFLOAT)&&defined(RETURNFLOAT))
-#define     FLOAT_cfPU(A)   CFextern FORTRAN_REAL      FCALLSC_QUALIFIER A
-#else				   	                   
-#define     FLOAT_cfPU(A)   CFextern FLOATFUNCTIONTYPE FCALLSC_QUALIFIER A
-#endif				   	                   
-#define       INT_cfPU(A)   CFextern int   FCALLSC_QUALIFIER   A
-#define   LOGICAL_cfPU(A)   CFextern int   FCALLSC_QUALIFIER   A
-#define      LONG_cfPU(A)   CFextern long  FCALLSC_QUALIFIER   A
-#define     SHORT_cfPU(A)   CFextern short FCALLSC_QUALIFIER   A
-#define    STRING_cfPU(A)   CFextern void  FCALLSC_QUALIFIER   A
-#define      VOID_cfPU(A)   CFextern void  FCALLSC_QUALIFIER   A
-
-#define    BYTE_cfE INTEGER_BYTE     A0;
-#define  DOUBLE_cfE DOUBLE_PRECISION A0;
-#if ! (defined(FLOATFUNCTIONTYPE)&&defined(ASSIGNFLOAT)&&defined(RETURNFLOAT))
-#define   FLOAT_cfE FORTRAN_REAL  A0;
-#else
-#define   FLOAT_cfE FORTRAN_REAL AA0;   FLOATFUNCTIONTYPE A0;
-#endif
-#define     INT_cfE int    A0;
-#define LOGICAL_cfE int    A0;
-#define    LONG_cfE long   A0;
-#define   SHORT_cfE short  A0;
-#define    VOID_cfE
-#ifdef vmsFortran
-#define  STRING_cfE static char AA0[1+MAX_LEN_FORTRAN_FUNCTION_STRING];        \
-                       static fstring A0 =                                     \
-             {MAX_LEN_FORTRAN_FUNCTION_STRING,DSC$K_DTYPE_T,DSC$K_CLASS_S,AA0};\
-               memset(AA0, CFORTRAN_NON_CHAR, MAX_LEN_FORTRAN_FUNCTION_STRING);\
-                                    *(AA0+MAX_LEN_FORTRAN_FUNCTION_STRING)='\0';
-#else
-#ifdef CRAYFortran
-#define  STRING_cfE static char AA0[1+MAX_LEN_FORTRAN_FUNCTION_STRING];        \
-                   static _fcd A0; *(AA0+MAX_LEN_FORTRAN_FUNCTION_STRING)='\0';\
-                memset(AA0,CFORTRAN_NON_CHAR, MAX_LEN_FORTRAN_FUNCTION_STRING);\
-                            A0 = _cptofcd(AA0,MAX_LEN_FORTRAN_FUNCTION_STRING);
-#else
-/* 'cc: SC3.0.1 13 Jul 1994' barfs on char A0[0x4FE+1]; 
- * char A0[0x4FE +1]; char A0[1+0x4FE]; are both OK.     */
-#define STRING_cfE static char A0[1+MAX_LEN_FORTRAN_FUNCTION_STRING];          \
-                       memset(A0, CFORTRAN_NON_CHAR,                           \
-                              MAX_LEN_FORTRAN_FUNCTION_STRING);                \
-                       *(A0+MAX_LEN_FORTRAN_FUNCTION_STRING)='\0';
-#endif
-#endif
-/* ESTRING must use static char. array which is guaranteed to exist after
-   function returns.                                                     */
-
-/* N.B.i) The diff. for 0 (Zero) and >=1 arguments.
-       ii)That the following create an unmatched bracket, i.e. '(', which
-          must of course be matched in the call.
-       iii)Commas must be handled very carefully                         */
-#define    INT_cfGZ(T,UN,LN) A0=CFC_(UN,LN)(
-#define   VOID_cfGZ(T,UN,LN)    CFC_(UN,LN)(
-#ifdef vmsFortran
-#define STRING_cfGZ(T,UN,LN)    CFC_(UN,LN)(&A0
-#else
-#if defined(CRAYFortran) || defined(AbsoftUNIXFortran) || defined(AbsoftProFortran)
-#define STRING_cfGZ(T,UN,LN)    CFC_(UN,LN)( A0
-#else
-#define STRING_cfGZ(T,UN,LN)    CFC_(UN,LN)( A0,MAX_LEN_FORTRAN_FUNCTION_STRING
-#endif
-#endif
-
-#define     INT_cfG(T,UN,LN)    INT_cfGZ(T,UN,LN)
-#define    VOID_cfG(T,UN,LN)   VOID_cfGZ(T,UN,LN)
-#define  STRING_cfG(T,UN,LN) STRING_cfGZ(T,UN,LN), /*, is only diff. from _cfG*/
-
-#define    BYTEVVVVVVV_cfPP
-#define     INTVVVVVVV_cfPP     /* These complement FLOATVVVVVVV_cfPP. */
-#define  DOUBLEVVVVVVV_cfPP
-#define LOGICALVVVVVVV_cfPP
-#define    LONGVVVVVVV_cfPP
-#define   SHORTVVVVVVV_cfPP
-#define          PBYTE_cfPP
-#define           PINT_cfPP
-#define        PDOUBLE_cfPP
-#define       PLOGICAL_cfPP
-#define          PLONG_cfPP
-#define         PSHORT_cfPP
-#define         PFLOAT_cfPP FLOATVVVVVVV_cfPP
-
-#define BCF(TN,AN,C)        _SEP_(TN,C,cfCOMMA) _Icf(2,B,TN,AN,0)
-#define        INT_cfB(T,A) (_(T,VVVVVVV_cfTYPE)) A
-#define       INTV_cfB(T,A)            A
-#define      INTVV_cfB(T,A)           (A)[0]
-#define     INTVVV_cfB(T,A)           (A)[0][0]
-#define    INTVVVV_cfB(T,A)           (A)[0][0][0]
-#define   INTVVVVV_cfB(T,A)           (A)[0][0][0][0]
-#define  INTVVVVVV_cfB(T,A)           (A)[0][0][0][0][0]
-#define INTVVVVVVV_cfB(T,A)           (A)[0][0][0][0][0][0]
-#define       PINT_cfB(T,A) _(T,_cfPP)&A
-#define     STRING_cfB(T,A) (char *)   A
-#define    STRINGV_cfB(T,A) (char *)   A
-#define    PSTRING_cfB(T,A) (char *)   A
-#define   PSTRINGV_cfB(T,A) (char *)   A
-#define      PVOID_cfB(T,A) (void *)   A
-#define    ROUTINE_cfB(T,A) (cfCAST_FUNCTION)A
-#define    ZTRINGV_cfB(T,A) (char *)   A
-#define   PZTRINGV_cfB(T,A) (char *)   A
-                                                              	
-#define SCF(TN,NAME,I,A)    _(TN,_cfSTR)(3,S,NAME,I,A,0,0)
-#define  DEFAULT_cfS(M,I,A)
-#define  LOGICAL_cfS(M,I,A)
-#define PLOGICAL_cfS(M,I,A)
-#define   STRING_cfS(M,I,A) ,sizeof(A)
-#define  STRINGV_cfS(M,I,A) ,( (unsigned)0xFFFF*firstindexlength(A) \
-                              +secondindexlength(A))
-#define  PSTRING_cfS(M,I,A) ,sizeof(A)
-#define PSTRINGV_cfS(M,I,A) STRINGV_cfS(M,I,A)
-#define  ZTRINGV_cfS(M,I,A)
-#define PZTRINGV_cfS(M,I,A)
-
-#define   HCF(TN,I)         _(TN,_cfSTR)(3,H,cfCOMMA, H,_(C,I),0,0)
-#define  HHCF(TN,I)         _(TN,_cfSTR)(3,H,cfCOMMA,HH,_(C,I),0,0)
-#define HHHCF(TN,I)         _(TN,_cfSTR)(3,H,cfCOLON, H,_(C,I),0,0)
-#define  H_CF_SPECIAL       unsigned
-#define HH_CF_SPECIAL
-#define  DEFAULT_cfH(M,I,A)
-#define  LOGICAL_cfH(S,U,B)
-#define PLOGICAL_cfH(S,U,B)
-#define   STRING_cfH(S,U,B) _(A,S) _(U,_CF_SPECIAL) B
-#define  STRINGV_cfH(S,U,B) STRING_cfH(S,U,B)
-#define  PSTRING_cfH(S,U,B) STRING_cfH(S,U,B)
-#define PSTRINGV_cfH(S,U,B) STRING_cfH(S,U,B)
-#define PNSTRING_cfH(S,U,B) STRING_cfH(S,U,B)
-#define PPSTRING_cfH(S,U,B) STRING_cfH(S,U,B)
-#define  ZTRINGV_cfH(S,U,B)
-#define PZTRINGV_cfH(S,U,B)
-
-/* Need VOID_cfSTR because Absoft forced function types go through _cfSTR. */
-/* No spaces inside expansion. They screws up macro catenation kludge.     */
-#define           VOID_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define           BYTE_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define         DOUBLE_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define          FLOAT_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define            INT_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define        LOGICAL_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,LOGICAL,A,B,C,D,E)
-#define           LONG_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define          SHORT_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define          BYTEV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define         BYTEVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define        BYTEVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define       BYTEVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define      BYTEVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define     BYTEVVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define    BYTEVVVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define        DOUBLEV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define       DOUBLEVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define      DOUBLEVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define     DOUBLEVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define    DOUBLEVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define   DOUBLEVVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define  DOUBLEVVVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define         FLOATV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define        FLOATVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define       FLOATVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define      FLOATVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define     FLOATVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define    FLOATVVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define   FLOATVVVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define           INTV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define          INTVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define         INTVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define        INTVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define       INTVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define      INTVVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define     INTVVVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define       LOGICALV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define      LOGICALVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define     LOGICALVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define    LOGICALVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define   LOGICALVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define  LOGICALVVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define LOGICALVVVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define          LONGV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define         LONGVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define        LONGVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define       LONGVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define      LONGVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define     LONGVVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define    LONGVVVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define         SHORTV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define        SHORTVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define       SHORTVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define      SHORTVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define     SHORTVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define    SHORTVVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define   SHORTVVVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define          PBYTE_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define        PDOUBLE_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define         PFLOAT_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define           PINT_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define       PLOGICAL_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,PLOGICAL,A,B,C,D,E)
-#define          PLONG_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define         PSHORT_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define         STRING_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,STRING,A,B,C,D,E)
-#define        PSTRING_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,PSTRING,A,B,C,D,E)
-#define        STRINGV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,STRINGV,A,B,C,D,E)
-#define       PSTRINGV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,PSTRINGV,A,B,C,D,E)
-#define       PNSTRING_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,PNSTRING,A,B,C,D,E)
-#define       PPSTRING_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,PPSTRING,A,B,C,D,E)
-#define          PVOID_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define        ROUTINE_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define         SIMPLE_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E)
-#define        ZTRINGV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,ZTRINGV,A,B,C,D,E)
-#define       PZTRINGV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,PZTRINGV,A,B,C,D,E)
-#define           CF_0_cfSTR(N,T,A,B,C,D,E)
-
-/* See ACF table comments, which explain why CCF was split into two. */
-#define CCF(NAME,TN,I)     _(TN,_cfSTR)(5,C,NAME,I,_(A,I),_(B,I),_(C,I))
-#define  DEFAULT_cfC(M,I,A,B,C)
-#define  LOGICAL_cfC(M,I,A,B,C)  A=C2FLOGICAL( A);
-#define PLOGICAL_cfC(M,I,A,B,C) *A=C2FLOGICAL(*A);
-#ifdef vmsFortran
-#define   STRING_cfC(M,I,A,B,C) (B.clen=strlen(A),B.f.dsc$a_pointer=A,         \
-        C==sizeof(char*)||C==(unsigned)(B.clen+1)?B.f.dsc$w_length=B.clen:     \
-          (memset((A)+B.clen,' ',C-B.clen-1),A[B.f.dsc$w_length=C-1]='\0'));
-      /* PSTRING_cfC to beware of array A which does not contain any \0.      */
-#define  PSTRING_cfC(M,I,A,B,C) (B.dsc$a_pointer=A, C==sizeof(char*) ?         \
-             B.dsc$w_length=strlen(A):  (A[C-1]='\0',B.dsc$w_length=strlen(A), \
-       memset((A)+B.dsc$w_length,' ',C-B.dsc$w_length-1), B.dsc$w_length=C-1));
-#else
-#define   STRING_cfC(M,I,A,B,C) (B.clen=strlen(A),                             \
-                C==sizeof(char*)||C==(unsigned)(B.clen+1)?B.flen=B.clen:       \
-                        (memset((A)+B.clen,' ',C-B.clen-1),A[B.flen=C-1]='\0'));
-#define  PSTRING_cfC(M,I,A,B,C) (C==sizeof(char*)? B=strlen(A):                \
-                    (A[C-1]='\0',B=strlen(A),memset((A)+B,' ',C-B-1),B=C-1));
-#endif
-          /* For CRAYFortran for (P)STRINGV_cfC, B.fs is set, but irrelevant. */
-#define  STRINGV_cfC(M,I,A,B,C) \
-        AATRINGV_cfA(    A,B,(C/0xFFFF)*(C%0xFFFF),C/0xFFFF,C%0xFFFF)
-#define PSTRINGV_cfC(M,I,A,B,C) \
-       APATRINGV_cfA(    A,B,(C/0xFFFF)*(C%0xFFFF),C/0xFFFF,C%0xFFFF)
-#define  ZTRINGV_cfC(M,I,A,B,C) \
-        AATRINGV_cfA(    A,B, (_3(M,_ELEMS_,I))*((_3(M,_ELEMLEN_,I))+1),       \
-                              (_3(M,_ELEMS_,I)), (_3(M,_ELEMLEN_,I))+1   )
-#define PZTRINGV_cfC(M,I,A,B,C) \
-       APATRINGV_cfA(    A,B, (_3(M,_ELEMS_,I))*((_3(M,_ELEMLEN_,I))+1),       \
-                              (_3(M,_ELEMS_,I)), (_3(M,_ELEMLEN_,I))+1   )
-
-#define     BYTE_cfCCC(A,B) &A
-#define   DOUBLE_cfCCC(A,B) &A
-#if !defined(__CF__KnR)
-#define    FLOAT_cfCCC(A,B) &A
-                               /* Although the VAX doesn't, at least the      */
-#else                          /* HP and K&R mips promote float arg.'s of     */
-#define    FLOAT_cfCCC(A,B) &B /* unprototyped functions to double. Cannot    */
-#endif                         /* use A here to pass the argument to FORTRAN. */
-#define      INT_cfCCC(A,B) &A
-#define  LOGICAL_cfCCC(A,B) &A
-#define     LONG_cfCCC(A,B) &A
-#define    SHORT_cfCCC(A,B) &A
-#define    PBYTE_cfCCC(A,B)  A
-#define  PDOUBLE_cfCCC(A,B)  A
-#define   PFLOAT_cfCCC(A,B)  A
-#define     PINT_cfCCC(A,B)  A
-#define PLOGICAL_cfCCC(A,B)  B=A       /* B used to keep a common W table. */
-#define    PLONG_cfCCC(A,B)  A
-#define   PSHORT_cfCCC(A,B)  A
-
-#define CCCF(TN,I,M)           _SEP_(TN,M,cfCOMMA) _Icf(3,CC,TN,_(A,I),_(B,I))
-#define        INT_cfCC(T,A,B) _(T,_cfCCC)(A,B) 
-#define       INTV_cfCC(T,A,B)  A
-#define      INTVV_cfCC(T,A,B)  A
-#define     INTVVV_cfCC(T,A,B)  A
-#define    INTVVVV_cfCC(T,A,B)  A
-#define   INTVVVVV_cfCC(T,A,B)  A
-#define  INTVVVVVV_cfCC(T,A,B)  A
-#define INTVVVVVVV_cfCC(T,A,B)  A
-#define       PINT_cfCC(T,A,B) _(T,_cfCCC)(A,B) 
-#define      PVOID_cfCC(T,A,B)  A
-#if defined(apolloFortran) || defined(hpuxFortran800) || defined(AbsoftUNIXFortran)
-#define    ROUTINE_cfCC(T,A,B) &A
-#else
-#define    ROUTINE_cfCC(T,A,B)  A
-#endif
-#define     SIMPLE_cfCC(T,A,B)  A
-#ifdef vmsFortran
-#define     STRING_cfCC(T,A,B) &B.f
-#define    STRINGV_cfCC(T,A,B) &B
-#define    PSTRING_cfCC(T,A,B) &B
-#define   PSTRINGV_cfCC(T,A,B) &B
-#else
-#ifdef CRAYFortran
-#define     STRING_cfCC(T,A,B) _cptofcd(A,B.flen)
-#define    STRINGV_cfCC(T,A,B) _cptofcd(B.s,B.flen)
-#define    PSTRING_cfCC(T,A,B) _cptofcd(A,B)
-#define   PSTRINGV_cfCC(T,A,B) _cptofcd(A,B.flen)
-#else
-#define     STRING_cfCC(T,A,B)  A
-#define    STRINGV_cfCC(T,A,B)  B.fs
-#define    PSTRING_cfCC(T,A,B)  A
-#define   PSTRINGV_cfCC(T,A,B)  B.fs
-#endif
-#endif
-#define    ZTRINGV_cfCC(T,A,B)   STRINGV_cfCC(T,A,B)
-#define   PZTRINGV_cfCC(T,A,B)  PSTRINGV_cfCC(T,A,B)
-
-#define    BYTE_cfX  return A0;
-#define  DOUBLE_cfX  return A0;
-#if ! (defined(FLOATFUNCTIONTYPE)&&defined(ASSIGNFLOAT)&&defined(RETURNFLOAT))
-#define   FLOAT_cfX  return A0;
-#else
-#define   FLOAT_cfX  ASSIGNFLOAT(AA0,A0); return AA0;
-#endif
-#define     INT_cfX  return A0;
-#define LOGICAL_cfX  return F2CLOGICAL(A0);
-#define    LONG_cfX  return A0;
-#define   SHORT_cfX  return A0;
-#define    VOID_cfX  return   ;
-#if defined(vmsFortran) || defined(CRAYFortran)
-#define  STRING_cfX  return kill_trailing(                                     \
-                                      kill_trailing(AA0,CFORTRAN_NON_CHAR),' ');
-#else
-#define  STRING_cfX  return kill_trailing(                                     \
-                                      kill_trailing( A0,CFORTRAN_NON_CHAR),' ');
-#endif
-
-#define CFFUN(NAME) _(__cf__,NAME)
-
-/* Note that we don't use LN here, but we keep it for consistency. */
-#define CCALLSFFUN0(UN,LN) CFFUN(UN)()
-
-#ifdef OLD_VAXC                                  /* Allow %CC-I-PARAMNOTUSED. */
-#pragma standard
-#endif
-
-#define CCALLSFFUN1( UN,LN,T1,                        A1)         \
-        CCALLSFFUN5 (UN,LN,T1,CF_0,CF_0,CF_0,CF_0,A1,0,0,0,0)
-#define CCALLSFFUN2( UN,LN,T1,T2,                     A1,A2)      \
-        CCALLSFFUN5 (UN,LN,T1,T2,CF_0,CF_0,CF_0,A1,A2,0,0,0)
-#define CCALLSFFUN3( UN,LN,T1,T2,T3,                  A1,A2,A3)   \
-        CCALLSFFUN5 (UN,LN,T1,T2,T3,CF_0,CF_0,A1,A2,A3,0,0)
-#define CCALLSFFUN4( UN,LN,T1,T2,T3,T4,               A1,A2,A3,A4)\
-        CCALLSFFUN5 (UN,LN,T1,T2,T3,T4,CF_0,A1,A2,A3,A4,0)
-#define CCALLSFFUN5( UN,LN,T1,T2,T3,T4,T5,            A1,A2,A3,A4,A5)          \
-        CCALLSFFUN10(UN,LN,T1,T2,T3,T4,T5,CF_0,CF_0,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,0,0,0,0,0)
-#define CCALLSFFUN6( UN,LN,T1,T2,T3,T4,T5,T6,         A1,A2,A3,A4,A5,A6)       \
-        CCALLSFFUN10(UN,LN,T1,T2,T3,T4,T5,T6,CF_0,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,A6,0,0,0,0)
-#define CCALLSFFUN7( UN,LN,T1,T2,T3,T4,T5,T6,T7,      A1,A2,A3,A4,A5,A6,A7)    \
-        CCALLSFFUN10(UN,LN,T1,T2,T3,T4,T5,T6,T7,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,0,0,0)
-#define CCALLSFFUN8( UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,   A1,A2,A3,A4,A5,A6,A7,A8) \
-        CCALLSFFUN10(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,0,0)
-#define CCALLSFFUN9( UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,A1,A2,A3,A4,A5,A6,A7,A8,A9)\
-        CCALLSFFUN10(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,0)
-#define CCALLSFFUN10(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA)\
-        CCALLSFFUN14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,CF_0,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,0,0,0,0)
-#define CCALLSFFUN11(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB)\
-        CCALLSFFUN14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,CF_0,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,0,0,0)
-#define CCALLSFFUN12(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC)\
-        CCALLSFFUN14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,CF_0,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,0,0)
-#define CCALLSFFUN13(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD)\
-        CCALLSFFUN14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,CF_0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,0)
-
-#define CCALLSFFUN14(UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE)\
-((CFFUN(UN)(  BCF(T1,A1,0) BCF(T2,A2,1) BCF(T3,A3,1) BCF(T4,A4,1) BCF(T5,A5,1) \
-              BCF(T6,A6,1) BCF(T7,A7,1) BCF(T8,A8,1) BCF(T9,A9,1) BCF(TA,AA,1) \
-              BCF(TB,AB,1) BCF(TC,AC,1) BCF(TD,AD,1) BCF(TE,AE,1)              \
-           SCF(T1,LN,1,A1)  SCF(T2,LN,2,A2)  SCF(T3,LN,3,A3)  SCF(T4,LN,4,A4)  \
-           SCF(T5,LN,5,A5)  SCF(T6,LN,6,A6)  SCF(T7,LN,7,A7)  SCF(T8,LN,8,A8)  \
-           SCF(T9,LN,9,A9)  SCF(TA,LN,10,AA) SCF(TB,LN,11,AB) SCF(TC,LN,12,AC) \
-           SCF(TD,LN,13,AD) SCF(TE,LN,14,AE))))
-
-/*  N.B. Create a separate function instead of using (call function, function
-value here) because in order to create the variables needed for the input
-arg.'s which may be const.'s one has to do the creation within {}, but these
-can never be placed within ()'s. Therefore one must create wrapper functions.
-gcc, on the other hand may be able to avoid the wrapper functions. */
-
-/* Prototypes are needed to correctly handle the value returned correctly. N.B.
-Can only have prototype arg.'s with difficulty, a la G... table since FORTRAN
-functions returning strings have extra arg.'s. Don't bother, since this only
-causes a compiler warning to come up when one uses FCALLSCFUNn and CCALLSFFUNn
-for the same function in the same source code. Something done by the experts in
-debugging only.*/    
-
-#define PROTOCCALLSFFUN0(F,UN,LN)                                              \
-_(F,_cfPU)( CFC_(UN,LN))(CF_NULL_PROTO);                                       \
-static _Icf(2,U,F,CFFUN(UN),0)() {_(F,_cfE) _Icf(3,GZ,F,UN,LN) ABSOFT_cf1(F));_(F,_cfX)}
-
-#define PROTOCCALLSFFUN1( T0,UN,LN,T1)                                         \
-        PROTOCCALLSFFUN5 (T0,UN,LN,T1,CF_0,CF_0,CF_0,CF_0)
-#define PROTOCCALLSFFUN2( T0,UN,LN,T1,T2)                                      \
-        PROTOCCALLSFFUN5 (T0,UN,LN,T1,T2,CF_0,CF_0,CF_0)
-#define PROTOCCALLSFFUN3( T0,UN,LN,T1,T2,T3)                                   \
-        PROTOCCALLSFFUN5 (T0,UN,LN,T1,T2,T3,CF_0,CF_0)
-#define PROTOCCALLSFFUN4( T0,UN,LN,T1,T2,T3,T4)                                \
-        PROTOCCALLSFFUN5 (T0,UN,LN,T1,T2,T3,T4,CF_0)
-#define PROTOCCALLSFFUN5( T0,UN,LN,T1,T2,T3,T4,T5)                             \
-        PROTOCCALLSFFUN10(T0,UN,LN,T1,T2,T3,T4,T5,CF_0,CF_0,CF_0,CF_0,CF_0)
-#define PROTOCCALLSFFUN6( T0,UN,LN,T1,T2,T3,T4,T5,T6)                          \
-        PROTOCCALLSFFUN10(T0,UN,LN,T1,T2,T3,T4,T5,T6,CF_0,CF_0,CF_0,CF_0)
-#define PROTOCCALLSFFUN7( T0,UN,LN,T1,T2,T3,T4,T5,T6,T7)                       \
-        PROTOCCALLSFFUN10(T0,UN,LN,T1,T2,T3,T4,T5,T6,T7,CF_0,CF_0,CF_0)
-#define PROTOCCALLSFFUN8( T0,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8)                    \
-        PROTOCCALLSFFUN10(T0,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,CF_0,CF_0)
-#define PROTOCCALLSFFUN9( T0,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9)                 \
-        PROTOCCALLSFFUN10(T0,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,CF_0)
-#define PROTOCCALLSFFUN10(T0,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA)              \
-        PROTOCCALLSFFUN14(T0,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,CF_0,CF_0,CF_0,CF_0)
-#define PROTOCCALLSFFUN11(T0,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB)           \
-        PROTOCCALLSFFUN14(T0,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,CF_0,CF_0,CF_0)
-#define PROTOCCALLSFFUN12(T0,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC)        \
-        PROTOCCALLSFFUN14(T0,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,CF_0,CF_0)
-#define PROTOCCALLSFFUN13(T0,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD)     \
-        PROTOCCALLSFFUN14(T0,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,CF_0)
-
-/* HP/UX 9.01 cc requires the blank between '_Icf(3,G,T0,UN,LN) CCCF(T1,1,0)' */
-
-#ifndef __CF__KnR
-#define PROTOCCALLSFFUN14(T0,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)  \
- _(T0,_cfPU)(CFC_(UN,LN))(CF_NULL_PROTO); static _Icf(2,U,T0,CFFUN(UN),0)(     \
-   CFARGT14FS(UCF,HCF,_Z,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE) )          \
-{       CFARGT14S(VCF,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)    _(T0,_cfE) \
- CCF(LN,T1,1)  CCF(LN,T2,2)  CCF(LN,T3,3)  CCF(LN,T4,4)  CCF(LN,T5,5)          \
- CCF(LN,T6,6)  CCF(LN,T7,7)  CCF(LN,T8,8)  CCF(LN,T9,9)  CCF(LN,TA,10)         \
- CCF(LN,TB,11) CCF(LN,TC,12) CCF(LN,TD,13) CCF(LN,TE,14)    _Icf(3,G,T0,UN,LN) \
- CFARGT14(CCCF,JCF,ABSOFT_cf1(T0),T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)); \
- WCF(T1,A1,1)   WCF(T2,A2,2)   WCF(T3,A3,3)   WCF(T4,A4,4)  WCF(T5,A5,5)       \
- WCF(T6,A6,6)   WCF(T7,A7,7)   WCF(T8,A8,8)   WCF(T9,A9,9)  WCF(TA,A10,10)     \
- WCF(TB,A11,11) WCF(TC,A12,12) WCF(TD,A13,13) WCF(TE,A14,14) _(T0,_cfX)}
-#else
-#define PROTOCCALLSFFUN14(T0,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)  \
- _(T0,_cfPU)(CFC_(UN,LN))(CF_NULL_PROTO); static _Icf(2,U,T0,CFFUN(UN),0)(     \
-   CFARGT14FS(UUCF,HHCF,_Z,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE) )        \
- CFARGT14FS(UUUCF,HHHCF,_Z,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE) ;        \
-{       CFARGT14S(VCF,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)    _(T0,_cfE) \
- CCF(LN,T1,1)  CCF(LN,T2,2)  CCF(LN,T3,3)  CCF(LN,T4,4)  CCF(LN,T5,5)          \
- CCF(LN,T6,6)  CCF(LN,T7,7)  CCF(LN,T8,8)  CCF(LN,T9,9)  CCF(LN,TA,10)         \
- CCF(LN,TB,11) CCF(LN,TC,12) CCF(LN,TD,13) CCF(LN,TE,14)    _Icf(3,G,T0,UN,LN) \
- CFARGT14(CCCF,JCF,ABSOFT_cf1(T0),T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)); \
- WCF(T1,A1,1)   WCF(T2,A2,2)   WCF(T3,A3,3)   WCF(T4,A4,4)   WCF(T5,A5,5)      \
- WCF(T6,A6,6)   WCF(T7,A7,7)   WCF(T8,A8,8)   WCF(T9,A9,9)   WCF(TA,A10,10)    \
- WCF(TB,A11,11) WCF(TC,A12,12) WCF(TD,A13,13) WCF(TE,A14,14) _(T0,_cfX)}
-#endif
-
-/*-------------------------------------------------------------------------*/
-
-/*               UTILITIES FOR FORTRAN TO CALL C ROUTINES                  */
-
-#ifdef OLD_VAXC                                /* Prevent %CC-I-PARAMNOTUSED. */
-#pragma nostandard
-#endif
-
-#if defined(vmsFortran) || defined(CRAYFortran)
-#define   DCF(TN,I)
-#define  DDCF(TN,I)
-#define DDDCF(TN,I)
-#else
-#define   DCF(TN,I)          HCF(TN,I)
-#define  DDCF(TN,I)         HHCF(TN,I)
-#define DDDCF(TN,I)        HHHCF(TN,I)
-#endif
-
-#define QCF(TN,I)       _(TN,_cfSTR)(1,Q,_(B,I), 0,0,0,0)
-#define  DEFAULT_cfQ(B)
-#define  LOGICAL_cfQ(B)
-#define PLOGICAL_cfQ(B)
-#define  STRINGV_cfQ(B) char *B; unsigned int _(B,N);
-#define   STRING_cfQ(B) char *B=NULL;
-#define  PSTRING_cfQ(B) char *B=NULL;
-#define PSTRINGV_cfQ(B) STRINGV_cfQ(B)
-#define PNSTRING_cfQ(B) char *B=NULL;
-#define PPSTRING_cfQ(B)
-
-#ifdef     __sgi   /* Else SGI gives warning 182 contrary to its C LRM A.17.7 */
-#define ROUTINE_orig    *(void**)& 
-#else
-#define ROUTINE_orig     (void *)  
-#endif
-
-#define ROUTINE_1     ROUTINE_orig   
-#define ROUTINE_2     ROUTINE_orig   
-#define ROUTINE_3     ROUTINE_orig   
-#define ROUTINE_4     ROUTINE_orig   
-#define ROUTINE_5     ROUTINE_orig   
-#define ROUTINE_6     ROUTINE_orig   
-#define ROUTINE_7     ROUTINE_orig   
-#define ROUTINE_8     ROUTINE_orig   
-#define ROUTINE_9     ROUTINE_orig   
-#define ROUTINE_10    ROUTINE_orig   
-#define ROUTINE_11    ROUTINE_orig   
-#define ROUTINE_12    ROUTINE_orig   
-#define ROUTINE_13    ROUTINE_orig   
-#define ROUTINE_14    ROUTINE_orig   
-#define ROUTINE_15    ROUTINE_orig   
-#define ROUTINE_16    ROUTINE_orig   
-#define ROUTINE_17    ROUTINE_orig   
-#define ROUTINE_18    ROUTINE_orig   
-#define ROUTINE_19    ROUTINE_orig   
-#define ROUTINE_20    ROUTINE_orig   
-#define ROUTINE_21    ROUTINE_orig   
-#define ROUTINE_22    ROUTINE_orig   
-#define ROUTINE_23    ROUTINE_orig   
-#define ROUTINE_24    ROUTINE_orig   
-#define ROUTINE_25    ROUTINE_orig   
-#define ROUTINE_26    ROUTINE_orig   
-#define ROUTINE_27    ROUTINE_orig   
-
-#define TCF(NAME,TN,I,M)              _SEP_(TN,M,cfCOMMA) _(TN,_cfT)(NAME,I,_(A,I),_(B,I),_(C,I))
-#define           BYTE_cfT(M,I,A,B,D) *A
-#define         DOUBLE_cfT(M,I,A,B,D) *A
-#define          FLOAT_cfT(M,I,A,B,D) *A
-#define            INT_cfT(M,I,A,B,D) *A
-#define        LOGICAL_cfT(M,I,A,B,D)  F2CLOGICAL(*A)
-#define           LONG_cfT(M,I,A,B,D) *A
-#define          SHORT_cfT(M,I,A,B,D) *A
-#define          BYTEV_cfT(M,I,A,B,D)  A
-#define        DOUBLEV_cfT(M,I,A,B,D)  A
-#define         FLOATV_cfT(M,I,A,B,D)  VOIDP A
-#define           INTV_cfT(M,I,A,B,D)  A
-#define       LOGICALV_cfT(M,I,A,B,D)  A
-#define          LONGV_cfT(M,I,A,B,D)  A
-#define         SHORTV_cfT(M,I,A,B,D)  A
-#define         BYTEVV_cfT(M,I,A,B,D)  (void *)A /* We have to cast to void *,*/
-#define        BYTEVVV_cfT(M,I,A,B,D)  (void *)A /* since we don't know the   */
-#define       BYTEVVVV_cfT(M,I,A,B,D)  (void *)A /* dimensions of the array.  */
-#define      BYTEVVVVV_cfT(M,I,A,B,D)  (void *)A /* i.e. Unfortunately, can't */
-#define     BYTEVVVVVV_cfT(M,I,A,B,D)  (void *)A /* check that the type       */
-#define    BYTEVVVVVVV_cfT(M,I,A,B,D)  (void *)A /* matches the prototype.    */
-#define       DOUBLEVV_cfT(M,I,A,B,D)  (void *)A
-#define      DOUBLEVVV_cfT(M,I,A,B,D)  (void *)A
-#define     DOUBLEVVVV_cfT(M,I,A,B,D)  (void *)A
-#define    DOUBLEVVVVV_cfT(M,I,A,B,D)  (void *)A
-#define   DOUBLEVVVVVV_cfT(M,I,A,B,D)  (void *)A
-#define  DOUBLEVVVVVVV_cfT(M,I,A,B,D)  (void *)A
-#define        FLOATVV_cfT(M,I,A,B,D)  (void *)A
-#define       FLOATVVV_cfT(M,I,A,B,D)  (void *)A
-#define      FLOATVVVV_cfT(M,I,A,B,D)  (void *)A
-#define     FLOATVVVVV_cfT(M,I,A,B,D)  (void *)A
-#define    FLOATVVVVVV_cfT(M,I,A,B,D)  (void *)A
-#define   FLOATVVVVVVV_cfT(M,I,A,B,D)  (void *)A
-#define          INTVV_cfT(M,I,A,B,D)  (void *)A  
-#define         INTVVV_cfT(M,I,A,B,D)  (void *)A  
-#define        INTVVVV_cfT(M,I,A,B,D)  (void *)A  
-#define       INTVVVVV_cfT(M,I,A,B,D)  (void *)A
-#define      INTVVVVVV_cfT(M,I,A,B,D)  (void *)A
-#define     INTVVVVVVV_cfT(M,I,A,B,D)  (void *)A
-#define      LOGICALVV_cfT(M,I,A,B,D)  (void *)A
-#define     LOGICALVVV_cfT(M,I,A,B,D)  (void *)A
-#define    LOGICALVVVV_cfT(M,I,A,B,D)  (void *)A
-#define   LOGICALVVVVV_cfT(M,I,A,B,D)  (void *)A
-#define  LOGICALVVVVVV_cfT(M,I,A,B,D)  (void *)A
-#define LOGICALVVVVVVV_cfT(M,I,A,B,D)  (void *)A
-#define         LONGVV_cfT(M,I,A,B,D)  (void *)A
-#define        LONGVVV_cfT(M,I,A,B,D)  (void *)A
-#define       LONGVVVV_cfT(M,I,A,B,D)  (void *)A
-#define      LONGVVVVV_cfT(M,I,A,B,D)  (void *)A
-#define     LONGVVVVVV_cfT(M,I,A,B,D)  (void *)A
-#define    LONGVVVVVVV_cfT(M,I,A,B,D)  (void *)A
-#define        SHORTVV_cfT(M,I,A,B,D)  (void *)A
-#define       SHORTVVV_cfT(M,I,A,B,D)  (void *)A
-#define      SHORTVVVV_cfT(M,I,A,B,D)  (void *)A
-#define     SHORTVVVVV_cfT(M,I,A,B,D)  (void *)A
-#define    SHORTVVVVVV_cfT(M,I,A,B,D)  (void *)A
-#define   SHORTVVVVVVV_cfT(M,I,A,B,D)  (void *)A
-#define          PBYTE_cfT(M,I,A,B,D)  A
-#define        PDOUBLE_cfT(M,I,A,B,D)  A
-#define         PFLOAT_cfT(M,I,A,B,D)  VOIDP A
-#define           PINT_cfT(M,I,A,B,D)  A
-#define       PLOGICAL_cfT(M,I,A,B,D)  ((*A=F2CLOGICAL(*A)),A)
-#define          PLONG_cfT(M,I,A,B,D)  A
-#define         PSHORT_cfT(M,I,A,B,D)  A
-#define          PVOID_cfT(M,I,A,B,D)  A
-#if defined(apolloFortran) || defined(hpuxFortran800) || defined(AbsoftUNIXFortran)
-#define        ROUTINE_cfT(M,I,A,B,D)  _(ROUTINE_,I)  (*A)
-#else
-#define        ROUTINE_cfT(M,I,A,B,D)  _(ROUTINE_,I)    A
-#endif
-/* A == pointer to the characters
-   D == length of the string, or of an element in an array of strings
-   E == number of elements in an array of strings                             */
-#define TTSTR(    A,B,D)                                                       \
-           ((B=_cf_malloc(D+1))[D]='\0', memcpy(B,A,D), kill_trailing(B,' '))
-#define TTTTSTR(  A,B,D)   (!(D<4||A[0]||A[1]||A[2]||A[3]))?NULL:              \
-                            memchr(A,'\0',D)                 ?A   : TTSTR(A,B,D)
-#define TTTTSTRV( A,B,D,E) (_(B,N)=E,B=_cf_malloc(_(B,N)*(D+1)), (void *)      \
-  vkill_trailing(f2cstrv(A,B,D+1, _(B,N)*(D+1)), D+1,_(B,N)*(D+1),' '))
-#ifdef vmsFortran
-#define         STRING_cfT(M,I,A,B,D)  TTTTSTR( A->dsc$a_pointer,B,A->dsc$w_length)
-#define        STRINGV_cfT(M,I,A,B,D)  TTTTSTRV(A->dsc$a_pointer, B,           \
-                                             A->dsc$w_length , A->dsc$l_m[0])
-#define        PSTRING_cfT(M,I,A,B,D)    TTSTR( A->dsc$a_pointer,B,A->dsc$w_length)
-#define       PPSTRING_cfT(M,I,A,B,D)           A->dsc$a_pointer
-#else
-#ifdef CRAYFortran
-#define         STRING_cfT(M,I,A,B,D)  TTTTSTR( _fcdtocp(A),B,_fcdlen(A))
-#define        STRINGV_cfT(M,I,A,B,D)  TTTTSTRV(_fcdtocp(A),B,_fcdlen(A),      \
-                              num_elem(_fcdtocp(A),_fcdlen(A),_3(M,_STRV_A,I)))
-#define        PSTRING_cfT(M,I,A,B,D)    TTSTR( _fcdtocp(A),B,_fcdlen(A))
-#define       PPSTRING_cfT(M,I,A,B,D)           _fcdtocp(A)
-#else
-#define         STRING_cfT(M,I,A,B,D)  TTTTSTR( A,B,D)
-#define        STRINGV_cfT(M,I,A,B,D)  TTTTSTRV(A,B,D, num_elem(A,D,_3(M,_STRV_A,I)))
-#define        PSTRING_cfT(M,I,A,B,D)    TTSTR( A,B,D)
-#define       PPSTRING_cfT(M,I,A,B,D)           A
-#endif
-#endif
-#define       PNSTRING_cfT(M,I,A,B,D)    STRING_cfT(M,I,A,B,D)
-#define       PSTRINGV_cfT(M,I,A,B,D)   STRINGV_cfT(M,I,A,B,D)
-#define           CF_0_cfT(M,I,A,B,D)
-
-#define RCF(TN,I)           _(TN,_cfSTR)(3,R,_(A,I),_(B,I),_(C,I),0,0)
-#define  DEFAULT_cfR(A,B,D)
-#define  LOGICAL_cfR(A,B,D)
-#define PLOGICAL_cfR(A,B,D) *A=C2FLOGICAL(*A);
-#define   STRING_cfR(A,B,D) if (B) _cf_free(B);
-#define  STRINGV_cfR(A,B,D) _cf_free(B);
-/* A and D as defined above for TSTRING(V) */
-#define RRRRPSTR( A,B,D)    if (B) memcpy(A,B, _cfMIN(strlen(B),D)),           \
-                  (D>strlen(B)?memset(A+strlen(B),' ', D-strlen(B)):0), _cf_free(B);
-#define RRRRPSTRV(A,B,D)    c2fstrv(B,A,D+1,(D+1)*_(B,N)), _cf_free(B);
-#ifdef vmsFortran
-#define  PSTRING_cfR(A,B,D) RRRRPSTR( A->dsc$a_pointer,B,A->dsc$w_length)
-#define PSTRINGV_cfR(A,B,D) RRRRPSTRV(A->dsc$a_pointer,B,A->dsc$w_length)
-#else
-#ifdef CRAYFortran
-#define  PSTRING_cfR(A,B,D) RRRRPSTR( _fcdtocp(A),B,_fcdlen(A))
-#define PSTRINGV_cfR(A,B,D) RRRRPSTRV(_fcdtocp(A),B,_fcdlen(A))
-#else
-#define  PSTRING_cfR(A,B,D) RRRRPSTR( A,B,D)
-#define PSTRINGV_cfR(A,B,D) RRRRPSTRV(A,B,D)
-#endif
-#endif
-#define PNSTRING_cfR(A,B,D) PSTRING_cfR(A,B,D)
-#define PPSTRING_cfR(A,B,D)
-
-#define    BYTE_cfFZ(UN,LN) INTEGER_BYTE     FCALLSC_QUALIFIER fcallsc(UN,LN)(
-#define  DOUBLE_cfFZ(UN,LN) DOUBLE_PRECISION FCALLSC_QUALIFIER fcallsc(UN,LN)(
-#define     INT_cfFZ(UN,LN) int   FCALLSC_QUALIFIER fcallsc(UN,LN)(
-#define LOGICAL_cfFZ(UN,LN) int   FCALLSC_QUALIFIER fcallsc(UN,LN)(
-#define    LONG_cfFZ(UN,LN) long  FCALLSC_QUALIFIER fcallsc(UN,LN)(
-#define   SHORT_cfFZ(UN,LN) short FCALLSC_QUALIFIER fcallsc(UN,LN)(
-#define    VOID_cfFZ(UN,LN) void  FCALLSC_QUALIFIER fcallsc(UN,LN)(
-#ifndef __CF__KnR
-/* The void is req'd by the Apollo, to make this an ANSI function declaration.
-   The Apollo promotes K&R float functions to double. */
-#define   FLOAT_cfFZ(UN,LN) FORTRAN_REAL FCALLSC_QUALIFIER fcallsc(UN,LN)(void
-#ifdef vmsFortran
-#define  STRING_cfFZ(UN,LN) void  FCALLSC_QUALIFIER fcallsc(UN,LN)(fstring *AS
-#else
-#ifdef CRAYFortran
-#define  STRING_cfFZ(UN,LN) void  FCALLSC_QUALIFIER fcallsc(UN,LN)(_fcd     AS
-#else
-#if  defined(AbsoftUNIXFortran) || defined(AbsoftProFortran)
-#define  STRING_cfFZ(UN,LN) void  FCALLSC_QUALIFIER fcallsc(UN,LN)(char    *AS
-#else
-#define  STRING_cfFZ(UN,LN) void  FCALLSC_QUALIFIER fcallsc(UN,LN)(char    *AS, unsigned D0
-#endif
-#endif
-#endif
-#else
-#if ! (defined(FLOATFUNCTIONTYPE)&&defined(ASSIGNFLOAT)&&defined(RETURNFLOAT))
-#define   FLOAT_cfFZ(UN,LN) FORTRAN_REAL      FCALLSC_QUALIFIER fcallsc(UN,LN)(
-#else
-#define   FLOAT_cfFZ(UN,LN) FLOATFUNCTIONTYPE FCALLSC_QUALIFIER fcallsc(UN,LN)(
-#endif
-#if defined(vmsFortran) || defined(CRAYFortran) || defined(AbsoftUNIXFortran)
-#define  STRING_cfFZ(UN,LN) void  FCALLSC_QUALIFIER fcallsc(UN,LN)(AS
-#else
-#define  STRING_cfFZ(UN,LN) void  FCALLSC_QUALIFIER fcallsc(UN,LN)(AS, D0
-#endif
-#endif
-
-#define    BYTE_cfF(UN,LN)     BYTE_cfFZ(UN,LN)
-#define  DOUBLE_cfF(UN,LN)   DOUBLE_cfFZ(UN,LN)
-#ifndef __CF_KnR
-#define   FLOAT_cfF(UN,LN)  FORTRAN_REAL FCALLSC_QUALIFIER fcallsc(UN,LN)(
-#else
-#define   FLOAT_cfF(UN,LN)    FLOAT_cfFZ(UN,LN)
-#endif
-#define     INT_cfF(UN,LN)      INT_cfFZ(UN,LN)
-#define LOGICAL_cfF(UN,LN)  LOGICAL_cfFZ(UN,LN)
-#define    LONG_cfF(UN,LN)     LONG_cfFZ(UN,LN)
-#define   SHORT_cfF(UN,LN)    SHORT_cfFZ(UN,LN)
-#define    VOID_cfF(UN,LN)     VOID_cfFZ(UN,LN)
-#define  STRING_cfF(UN,LN)   STRING_cfFZ(UN,LN),
-
-#define     INT_cfFF
-#define    VOID_cfFF
-#ifdef vmsFortran
-#define  STRING_cfFF           fstring *AS; 
-#else
-#ifdef CRAYFortran
-#define  STRING_cfFF           _fcd     AS;
-#else
-#define  STRING_cfFF           char    *AS; unsigned D0;
-#endif
-#endif
-
-#define     INT_cfL            A0=
-#define  STRING_cfL            A0=
-#define    VOID_cfL                        
-
-#define    INT_cfK
-#define   VOID_cfK
-/* KSTRING copies the string into the position provided by the caller. */
-#ifdef vmsFortran
-#define STRING_cfK                                                             \
- memcpy(AS->dsc$a_pointer,A0,_cfMIN(AS->dsc$w_length,(A0==NULL?0:strlen(A0))));\
- AS->dsc$w_length>(A0==NULL?0:strlen(A0))?                                     \
-  memset(AS->dsc$a_pointer+(A0==NULL?0:strlen(A0)),' ',                        \
-         AS->dsc$w_length-(A0==NULL?0:strlen(A0))):0;
-#else
-#ifdef CRAYFortran
-#define STRING_cfK                                                             \
- memcpy(_fcdtocp(AS),A0, _cfMIN(_fcdlen(AS),(A0==NULL?0:strlen(A0))) );        \
- _fcdlen(AS)>(A0==NULL?0:strlen(A0))?                                          \
-  memset(_fcdtocp(AS)+(A0==NULL?0:strlen(A0)),' ',                             \
-         _fcdlen(AS)-(A0==NULL?0:strlen(A0))):0;
-#else
-#define STRING_cfK         memcpy(AS,A0, _cfMIN(D0,(A0==NULL?0:strlen(A0))) ); \
-                 D0>(A0==NULL?0:strlen(A0))?memset(AS+(A0==NULL?0:strlen(A0)), \
-                                            ' ', D0-(A0==NULL?0:strlen(A0))):0;
-#endif
-#endif
-
-/* Note that K.. and I.. can't be combined since K.. has to access data before
-R.., in order for functions returning strings which are also passed in as
-arguments to work correctly. Note that R.. frees and hence may corrupt the
-string. */
-#define    BYTE_cfI  return A0;
-#define  DOUBLE_cfI  return A0;
-#if ! (defined(FLOATFUNCTIONTYPE)&&defined(ASSIGNFLOAT)&&defined(RETURNFLOAT))
-#define   FLOAT_cfI  return A0;
-#else
-#define   FLOAT_cfI  RETURNFLOAT(A0);
-#endif
-#define     INT_cfI  return A0;
-#ifdef hpuxFortran800
-/* Incredibly, functions must return true as 1, elsewhere .true.==0x01000000. */
-#define LOGICAL_cfI  return ((A0)?1:0);
-#else
-#define LOGICAL_cfI  return C2FLOGICAL(A0);
-#endif
-#define    LONG_cfI  return A0;
-#define   SHORT_cfI  return A0;
-#define  STRING_cfI  return   ;
-#define    VOID_cfI  return   ;
-
-#ifdef OLD_VAXC                                  /* Allow %CC-I-PARAMNOTUSED. */
-#pragma standard
-#endif
-
-#define FCALLSCSUB0( CN,UN,LN)             FCALLSCFUN0(VOID,CN,UN,LN)
-#define FCALLSCSUB1( CN,UN,LN,T1)          FCALLSCFUN1(VOID,CN,UN,LN,T1)
-#define FCALLSCSUB2( CN,UN,LN,T1,T2)       FCALLSCFUN2(VOID,CN,UN,LN,T1,T2)
-#define FCALLSCSUB3( CN,UN,LN,T1,T2,T3)    FCALLSCFUN3(VOID,CN,UN,LN,T1,T2,T3)
-#define FCALLSCSUB4( CN,UN,LN,T1,T2,T3,T4) \
-    FCALLSCFUN4(VOID,CN,UN,LN,T1,T2,T3,T4)
-#define FCALLSCSUB5( CN,UN,LN,T1,T2,T3,T4,T5) \
-    FCALLSCFUN5(VOID,CN,UN,LN,T1,T2,T3,T4,T5)
-#define FCALLSCSUB6( CN,UN,LN,T1,T2,T3,T4,T5,T6) \
-    FCALLSCFUN6(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6)       
-#define FCALLSCSUB7( CN,UN,LN,T1,T2,T3,T4,T5,T6,T7) \
-    FCALLSCFUN7(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7)
-#define FCALLSCSUB8( CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8) \
-    FCALLSCFUN8(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8)
-#define FCALLSCSUB9( CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9) \
-    FCALLSCFUN9(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9)
-#define FCALLSCSUB10(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA) \
-   FCALLSCFUN10(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA)
-#define FCALLSCSUB11(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB) \
-   FCALLSCFUN11(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB)
-#define FCALLSCSUB12(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC) \
-   FCALLSCFUN12(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC)
-#define FCALLSCSUB13(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD) \
-   FCALLSCFUN13(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD)
-#define FCALLSCSUB14(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE) \
-   FCALLSCFUN14(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)
-#define FCALLSCSUB15(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF) \
-   FCALLSCFUN15(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF)
-#define FCALLSCSUB16(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG) \
-   FCALLSCFUN16(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG)
-#define FCALLSCSUB17(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH) \
-   FCALLSCFUN17(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH)
-#define FCALLSCSUB18(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI) \
-   FCALLSCFUN18(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI)
-#define FCALLSCSUB19(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ) \
-   FCALLSCFUN19(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ)
-#define FCALLSCSUB20(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK) \
-   FCALLSCFUN20(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK)
-#define FCALLSCSUB21(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL) \
-   FCALLSCFUN21(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL)
-#define FCALLSCSUB22(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM) \
-   FCALLSCFUN22(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM)
-#define FCALLSCSUB23(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN) \
-   FCALLSCFUN23(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN)
-#define FCALLSCSUB24(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO) \
-   FCALLSCFUN24(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO)
-#define FCALLSCSUB25(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP) \
-   FCALLSCFUN25(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP)
-#define FCALLSCSUB26(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ) \
-   FCALLSCFUN26(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ)
-#define FCALLSCSUB27(CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR) \
-   FCALLSCFUN27(VOID,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR)
-
-
-#define FCALLSCFUN1( T0,CN,UN,LN,T1) \
-        FCALLSCFUN5 (T0,CN,UN,LN,T1,CF_0,CF_0,CF_0,CF_0)
-#define FCALLSCFUN2( T0,CN,UN,LN,T1,T2) \
-        FCALLSCFUN5 (T0,CN,UN,LN,T1,T2,CF_0,CF_0,CF_0)
-#define FCALLSCFUN3( T0,CN,UN,LN,T1,T2,T3) \
-        FCALLSCFUN5 (T0,CN,UN,LN,T1,T2,T3,CF_0,CF_0)
-#define FCALLSCFUN4( T0,CN,UN,LN,T1,T2,T3,T4) \
-        FCALLSCFUN5 (T0,CN,UN,LN,T1,T2,T3,T4,CF_0)
-#define FCALLSCFUN5( T0,CN,UN,LN,T1,T2,T3,T4,T5) \
-        FCALLSCFUN10(T0,CN,UN,LN,T1,T2,T3,T4,T5,CF_0,CF_0,CF_0,CF_0,CF_0)
-#define FCALLSCFUN6( T0,CN,UN,LN,T1,T2,T3,T4,T5,T6) \
-        FCALLSCFUN10(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,CF_0,CF_0,CF_0,CF_0)
-#define FCALLSCFUN7( T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7) \
-        FCALLSCFUN10(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,CF_0,CF_0,CF_0)
-#define FCALLSCFUN8( T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8) \
-        FCALLSCFUN10(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,CF_0,CF_0)
-#define FCALLSCFUN9( T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9) \
-        FCALLSCFUN10(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,CF_0)
-#define FCALLSCFUN10(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA) \
-        FCALLSCFUN14(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,CF_0,CF_0,CF_0,CF_0)
-#define FCALLSCFUN11(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB) \
-        FCALLSCFUN14(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,CF_0,CF_0,CF_0)
-#define FCALLSCFUN12(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC) \
-        FCALLSCFUN14(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,CF_0,CF_0)
-#define FCALLSCFUN13(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD) \
-        FCALLSCFUN14(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,CF_0)
-
-
-#define FCALLSCFUN15(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF) \
-        FCALLSCFUN20(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,CF_0,CF_0,CF_0,CF_0,CF_0)
-#define FCALLSCFUN16(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG) \
-        FCALLSCFUN20(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,CF_0,CF_0,CF_0,CF_0)
-#define FCALLSCFUN17(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH) \
-        FCALLSCFUN20(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,CF_0,CF_0,CF_0)
-#define FCALLSCFUN18(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI) \
-        FCALLSCFUN20(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,CF_0,CF_0)
-#define FCALLSCFUN19(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ) \
-        FCALLSCFUN20(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,CF_0)
-#define FCALLSCFUN20(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK) \
-        FCALLSCFUN27(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0)
-#define FCALLSCFUN21(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL) \
-        FCALLSCFUN27(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,CF_0,CF_0,CF_0,CF_0,CF_0,CF_0)
-#define FCALLSCFUN22(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM) \
-        FCALLSCFUN27(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,CF_0,CF_0,CF_0,CF_0,CF_0)
-#define FCALLSCFUN23(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN) \
-        FCALLSCFUN27(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,CF_0,CF_0,CF_0,CF_0)
-#define FCALLSCFUN24(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO) \
-        FCALLSCFUN27(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,CF_0,CF_0,CF_0)
-#define FCALLSCFUN25(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP) \
-        FCALLSCFUN27(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,CF_0,CF_0)
-#define FCALLSCFUN26(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ) \
-        FCALLSCFUN27(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,CF_0)
-
-
-#ifndef __CF__KnR
-#define FCALLSCFUN0(T0,CN,UN,LN) CFextern _(T0,_cfFZ)(UN,LN) ABSOFT_cf2(T0))   \
-        {_Icf(2,UU,T0,A0,0); _Icf(0,L,T0,0,0) CN(); _Icf(0,K,T0,0,0) _(T0,_cfI)}
-
-#define FCALLSCFUN14(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)    \
-                                 CFextern _(T0,_cfF)(UN,LN)                    \
- CFARGT14(NCF,DCF,ABSOFT_cf2(T0),T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE) )  \
- {                 CFARGT14S(QCF,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)    \
-  _Icf(2,UU,T0,A0,0); _Icf(0,L,T0,0,0)      CN(    TCF(LN,T1,1,0)  TCF(LN,T2,2,1) \
-    TCF(LN,T3,3,1)  TCF(LN,T4,4,1) TCF(LN,T5,5,1)  TCF(LN,T6,6,1)  TCF(LN,T7,7,1) \
-    TCF(LN,T8,8,1)  TCF(LN,T9,9,1) TCF(LN,TA,10,1) TCF(LN,TB,11,1) TCF(LN,TC,12,1) \
-    TCF(LN,TD,13,1) TCF(LN,TE,14,1) );                          _Icf(0,K,T0,0,0) \
-                   CFARGT14S(RCF,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)  _(T0,_cfI) }
-
-#define FCALLSCFUN27(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR)   \
-                                 CFextern _(T0,_cfF)(UN,LN)                    \
- CFARGT27(NCF,DCF,ABSOFT_cf2(T0),T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR) ) \
- {                 CFARGT27S(QCF,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR)   \
-  _Icf(2,UU,T0,A0,0); _Icf(0,L,T0,0,0)      CN(     TCF(LN,T1,1,0)  TCF(LN,T2,2,1)  \
-    TCF(LN,T3,3,1)  TCF(LN,T4,4,1)  TCF(LN,T5,5,1)  TCF(LN,T6,6,1)  TCF(LN,T7,7,1)  \
-    TCF(LN,T8,8,1)  TCF(LN,T9,9,1)  TCF(LN,TA,10,1) TCF(LN,TB,11,1) TCF(LN,TC,12,1) \
-    TCF(LN,TD,13,1) TCF(LN,TE,14,1) TCF(LN,TF,15,1) TCF(LN,TG,16,1) TCF(LN,TH,17,1) \
-    TCF(LN,TI,18,1) TCF(LN,TJ,19,1) TCF(LN,TK,20,1) TCF(LN,TL,21,1) TCF(LN,TM,22,1) \
-    TCF(LN,TN,23,1) TCF(LN,TO,24,1) TCF(LN,TP,25,1) TCF(LN,TQ,26,1) TCF(LN,TR,27,1) ); _Icf(0,K,T0,0,0) \
-                   CFARGT27S(RCF,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR)  _(T0,_cfI) }
-
-#else
-#define FCALLSCFUN0(T0,CN,UN,LN) CFextern _(T0,_cfFZ)(UN,LN) ABSOFT_cf3(T0)) _Icf(0,FF,T0,0,0)\
-        {_Icf(2,UU,T0,A0,0); _Icf(0,L,T0,0,0) CN(); _Icf(0,K,T0,0,0) _(T0,_cfI)}
-
-#define FCALLSCFUN14(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)    \
-                                 CFextern _(T0,_cfF)(UN,LN)                    \
- CFARGT14(NNCF,DDCF,ABSOFT_cf3(T0),T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)) _Icf(0,FF,T0,0,0) \
-       CFARGT14FS(NNNCF,DDDCF,_Z,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE);   \
- {                 CFARGT14S(QCF,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)    \
-  _Icf(2,UU,T0,A0,0); _Icf(0,L,T0,0,0)      CN(  TCF(LN,T1,1,0) TCF(LN,T2,2,1) \
-    TCF(LN,T3,3,1) TCF(LN,T4,4,1) TCF(LN,T5,5,1) TCF(LN,T6,6,1) TCF(LN,T7,7,1) \
-    TCF(LN,T8,8,1) TCF(LN,T9,9,1) TCF(LN,TA,10,1) TCF(LN,TB,11,1) TCF(LN,TC,12,1) \
-    TCF(LN,TD,13,1) TCF(LN,TE,14,1) );                          _Icf(0,K,T0,0,0) \
-                   CFARGT14S(RCF,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE)  _(T0,_cfI)}
-
-#define FCALLSCFUN27(T0,CN,UN,LN,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR)  \
-                                 CFextern _(T0,_cfF)(UN,LN)                    \
- CFARGT27(NNCF,DDCF,ABSOFT_cf3(T0),T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR)) _Icf(0,FF,T0,0,0) \
-       CFARGT27FS(NNNCF,DDDCF,_Z,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR); \
- {                 CFARGT27S(QCF,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR)  \
-  _Icf(2,UU,T0,A0,0); _Icf(0,L,T0,0,0)      CN(     TCF(LN,T1,1,0)  TCF(LN,T2,2,1)  \
-    TCF(LN,T3,3,1)  TCF(LN,T4,4,1)  TCF(LN,T5,5,1)  TCF(LN,T6,6,1)  TCF(LN,T7,7,1)  \
-    TCF(LN,T8,8,1)  TCF(LN,T9,9,1)  TCF(LN,TA,10,1) TCF(LN,TB,11,1) TCF(LN,TC,12,1) \
-    TCF(LN,TD,13,1) TCF(LN,TE,14,1) TCF(LN,TF,15,1) TCF(LN,TG,16,1) TCF(LN,TH,17,1) \
-    TCF(LN,TI,18,1) TCF(LN,TJ,19,1) TCF(LN,TK,20,1) TCF(LN,TL,21,1) TCF(LN,TM,22,1) \
-    TCF(LN,TN,23,1) TCF(LN,TO,24,1) TCF(LN,TP,25,1) TCF(LN,TQ,26,1) TCF(LN,TR,27,1) ); _Icf(0,K,T0,0,0) \
-                   CFARGT27S(RCF,T1,T2,T3,T4,T5,T6,T7,T8,T9,TA,TB,TC,TD,TE,TF,TG,TH,TI,TJ,TK,TL,TM,TN,TO,TP,TQ,TR)  _(T0,_cfI)}
-
-#endif
-
-
-#endif	 /* __CFORTRAN_LOADED */
diff --git a/include/cdTime/drscdf.h b/include/cdTime/drscdf.h
deleted file mode 100644
index 41163d4..0000000
--- a/include/cdTime/drscdf.h
+++ /dev/null
@@ -1,272 +0,0 @@
-/*
-     $Id$
-     $Log: drscdf.h,v $
- * Revision 2.8  1995/10/26  23:22:46  drach
- * - Added automatic copy of dictionary to/from NSL, NSL version
- *
- * Revision 2.7  1995/03/30  00:50:34  drach
- * Added disclaimer
- *
- * Revision 2.6  1995/01/30  19:14:22  drach
- * Minor revisions
- *
- * Revision 2.5  1994/11/23  19:16:58  drach
- * Added function declarations for K&R and ANSI C.
- *
- * Revision 2.4  1993/10/21  01:23:01  drach
- * Changed name of sync options for consistency, added sync error.
- *
- * Revision 2.3  1993/10/20  17:16:29  drach
- * Define autosync options.
- *
- * Revision 2.2  1993/07/14  22:30:30  drach
- * Removed text after #endif, etc.
- *
- * Revision 2.1  1993/07/13  01:12:47  drach
- * Merged Sun, Unicos, SGI, and HP versions.
- *
-# Revision 2.3  1992/10/14  23:14:54  drach
-# Added putdic options
-#
-# Revision 2.2  1992/10/06  00:53:59  drach
-# Added putdic errors.
-#
-# Revision 2.1  1992/05/22  01:07:07  drach
-# removed drsmg (error messages structure)
-#
-# Revision 2.0  1992/03/07  00:12:24  drach
-# Entered into RCS
-#
-                     Data Retrieval and Storage System
-
-**********************************************************************
-
-			DISCLAIMER
-
-   This software was prepared as an account of work sponsored by an
-   agency of the United States Government. Neither the United
-   States Government nor the University of California nor any of
-   their employees, makes any warranty, express or implied, or
-   assumes any liability or responsibility for the accuracy,
-   completeness, or usefulness of any information, apparatus,
-   product, or process disclosed, or represents that its use would
-   not infringe privately owned rights. Reference herein to any
-   specific commercial products, process, or service by trade name,
-   trademark, manufacturer, or otherwise, does not necessarily
-   constitute or imply its endorsement, recommendation, or favoring
-   by the United States Government or the University of California.
-   The views and opinions of authors expressed herein do not
-   necessarily state or reflect those of the United States
-   Government or the University of California, and shall not be
-   used for advertising or product endorsement purposes.
-   
-**********************************************************************
-
-
-
-*/
-/*#######################################################################
- *                drscdf.h
- *
-
- *#######################################################################*/
-/*     General definitions */
-#ifndef __drscdf_h
-#define __drscdf_h
-
-#define IDRS_NOVALUE 0
-#define IDRS_DEFAULT 0
-     
-     
-/*     DimensionType */
-#define IDRS_EQUALLY_SPACED 1
-#define IDRS_UNEQUALLY_SPACED 2
-
-/*     FileStatus */
-#define IDRS_READ 1
-#define IDRS_CREATE 2
-#define IDRS_EXTEND 3
-
-/*     MachineName */
-#define IDRS_SUN 1
-#define IDRS_CRAY 2
-
-#ifdef cray
-
-#define IDRS_MACHINE IDRS_CRAY
-#define IDRS_BYTES_PER_WORD 8
-#define IDRS_NSL 8			     /* Aslun flag: file is on NSL UniTree */
-#define IDRS_NOCOPY 16			     /* Aslun flag: do not copy dictionary from NSL on open */
-#else
-#define IDRS_MACHINE IDRS_SUN
-#define IDRS_BYTES_PER_WORD 4
-
-#endif
-
-/*     DRSVersion */
-/*     DRS_VERSION is current version */
-/*     DRS_MAXVERSION is max allowed version before version */
-/*        is considered 'novalue' */
-#define DRS_VERSION 2.1
-#define DRS_MAXVERSION 10.0
-     
-/*     Inquiry operators (INQDICT) */
-#define IDRS_GETFIRSTVAR 1
-#define IDRS_GETNEXTVAR 2
-
-/*     Standard argument lengths */
-#define IDRS_SOURCELEN 121
-#define IDRS_NAMELEN 17
-#define IDRS_TITLELEN 81
-#define IDRS_UNITSLEN 41
-#define IDRS_DATELEN 9
-#define IDRS_TIMELEN 9
-#define IDRS_TYPELEN 9
-
-#ifdef cray
-
-#define IDRS_FILENAMELEN 248
-#else
-#define IDRS_FILENAMELEN 1024
-
-#endif
-
-
-typedef char DRS_SOURCE[IDRS_SOURCELEN];
-typedef char DRS_NAME[IDRS_NAMELEN];
-typedef char DRS_TITLE[IDRS_TITLELEN];
-typedef char DRS_UNITS[IDRS_UNITSLEN];
-typedef char DRS_DATE[IDRS_DATELEN];
-typedef char DRS_TIME[IDRS_TIMELEN];
-typedef char DRS_TYPE[IDRS_TYPELEN];
-typedef char DRS_FILENAME[IDRS_FILENAMELEN];
-            
-/*     Cray-to-IEEE translation parameters */
-#define IDRS_LEFTHALFWORD 0
-#define IDRS_RIGHTHALFWORD 4
-
-/*     ElementType */
-#define IDRS_I4 1
-#define IDRS_I8 2
-#define IDRS_IEEE_R4 3
-#define IDRS_CRAY_R8 4
-#define IDRS_ASCII 5
-#define IDRS_USER 6
-#ifndef __EXTENDED_DRS_DATATYPES
-#define __EXTENDED_DRS_DATATYPES
-#define IDRS_I1 7
-#define IDRS_I2 8
-#define IDRS_IEEE_R8 9
-#define IDRS_CRAY_R16 10
-#define IDRS_IEEE_R16 11
-#endif
-
-				/* Synchronization options */
-#define IDRS_SYNC_OFF 1
-#define IDRS_SYNC_ON 2
-
-/*     Error reporting */
-#define IDRS_NOREPORT 1
-#define IDRS_FATAL 2
-#define IDRS_WARNING 3
-#define IDRS_INTERNAL 4
-     
-/*     Putdic options */
-#define IDRS_BLANKS_ARE_NULL 1
-#define IDRS_BLANKS_ARE_LITERAL 2
-
-/*     Error definitions */
-#define IDRS_SUCCESS 0
-#define IDRS_NOMEMORY 1
-#define IDRS_BINFAILED 2002
-#define IDRS_BADLEN 3
-#define IDRS_NOMONO 4
-#define IDRS_NOCOMPARISON 2005
-#define IDRS_VDBNOTFOUND 6
-#define IDRS_BADDIM 7
-#define IDRS_NOTMONOTONE 8
-#define IDRS_DICTREADERROR 9
-#define IDRS_NODICTFILE 10
-#define IDRS_BADLU 11
-#define IDRS_BADTYPE 12
-#define IDRS_AMBIGUITYEXISTS 13
-#define IDRS_CANNOTADDDATA 14
-#define IDRS_DICTFULL 15
-#define IDRS_VERSION1FILE 1016
-#define IDRS_NEWFILEFORMAT 1017
-#define IDRS_CANNOTREADHEADER 18
-#define IDRS_CANNOTREADDATA 19
-#define IDRS_BADDIMNAME 20
-#define IDRS_TOOMANYFILES 21
-#define IDRS_CANNOTOPENDICT 22
-#define IDRS_CANNOTOPENDATA 23
-#define IDRS_BADSTATUS 24
-#define IDRS_BADDIMTYPE 25
-#define IDRS_INDEXHIGH 2026
-#define IDRS_INDEXLOW 2027
-#define IDRS_INDEXBETWEEN 2028
-#define IDRS_NORANGE 29
-#define IDRS_SAVEBUFOVERFLOW 30
-#define IDRS_BADERRLEVEL 31
-#define IDRS_ERROROUTOFRANGE 32
-#define IDRS_CANNOTWRITEHEADER 33
-#define IDRS_CANNOTWRITEDATA 34
-#define IDRS_BADCHARLEN 35
-#define IDRS_BADOPER 36
-#define IDRS_NOMOREVARS 1037
-#define IDRS_DICTALREADYOPEN 38
-#define IDRS_LOOKUPFAILED 2039
-#define IDRS_DICTWRITEERROR 40
-#define IDRS_DICTEXTENDERROR 41
-#define IDRS_DATEXTENDERROR 42
-#define IDRS_DICTRUNCATEERR 43
-#define IDRS_DATTRUNCATEERR 44
-#define IDRS_BADIEEEFP 45
-#define IDRS_BADCRAYFP 46
-#define IDRS_BADCRAYINT 47
-#define IDRS_CANNOTCONVERT 48
-#define IDRS_INEXACTMATCH 1049
-#define IDRS_DUPLICATEVAR 50
-#define IDRS_CANNOTWRITEDIC 51
-#define IDRS_BADSYNCOPT 52
-
-#undef PROTO
-#ifdef __STDC__
-#define PROTO(x) x
-#else
-#define PROTO(x) ()
-#endif
-
-extern int Aslun PROTO((int lud,char* dicfil,int lu,char* datfil,int istat));
-extern int Cllun PROTO((int lu));
-extern int Cluvdb PROTO((void));
-extern int Drstest PROTO((int ierr));
-extern int Getdat PROTO((int lu,void* a,int isize));
-extern int Getcdim PROTO((int idim,char* source,char* name,char* title,char* units,int* dtype,int reqlen,float* var,int* retlen));
-extern int GetcdimD PROTO((int idim,char* source,char* name,char* title,char* units,int* dtype,int reqlen,double* var,int* retlen));
-extern int Getedim PROTO((int n,char* dsrc,char* dna,char* dti,char* dun,int* dtype,int* idim,float* df,float* dl));
-extern int GetedimD PROTO((int n,char* dsrc,char* dna,char* dti,char* dun,int* dtype,int* idim,double* df,double* dl));
-extern int Getelemd PROTO((int* type,int* bpe));
-extern int Getname PROTO((char* source,char* name,char* title,char* units,char* date,char* time,char* typed,int* nd));
-extern int Getrge2 PROTO((int lu,int idim,double elem1,double elem2,int* ind1,int* ind2,float* dlow,float* dhigh));
-extern int Getslab PROTO((int lu,int rank,int* order,float* fe,float* le,float* cycle,void* data,int* datadim));
-extern int Getvdim PROTO((int idim,char* source,char* title,int reqlen,float* var,int* retlen));
-extern int Inqdict PROTO((int lu,int oper));
-extern int Inqlun PROTO((int lu,char* datafile,int* nvar,float* version));
-extern int Prdict PROTO((int lup,int lu));
-extern int Putdat PROTO((int lu,void* a));
-extern int Putdic PROTO((int lu, int iopt));
-extern int Putvdim PROTO((int lu,int len,float* dimvar,int* i1,int* i2));
-extern int Setdate PROTO((char* date,char* time));
-extern int Setdim PROTO((int n,char* dna,char* dun,int idim,double df,double dl));
-extern int Seterr PROTO((int ierrlun,int reportlevel));
-extern int Setname PROTO((char* source,char* name,char* title,char* units,char* typed));
-extern int Setrep PROTO((int irep));
-extern int Setvdim PROTO((int n,char* dso,char* dna,char* dti,char* dun,double df,double dl));
-#ifdef NSL_DRS
-extern int drsn2lcp PROTO((char* infile, char* outfile));
-extern int drsl2ncp PROTO((char* infile, char* outfile));
-#endif
-
-#endif
-
diff --git a/include/cdTime/drsdef.h b/include/cdTime/drsdef.h
deleted file mode 100644
index 291ec46..0000000
--- a/include/cdTime/drsdef.h
+++ /dev/null
@@ -1,203 +0,0 @@
-c drsdef.H,v 2.7 1995/10/26 23:23:21 drach Exp
-c drsdef.H,v
-c Revision 2.7  1995/10/26  23:23:21  drach
-c - Added IDRS_NOCOPY aslun flag, NSL version
-c
-c Revision 2.6  1995/10/16  18:47:44  drach
-c - Modified for DEC Alpha
-c
-c Revision 2.5  1995/03/30  00:50:37  drach
-c Added disclaimer
-c
-c Revision 2.4  1993/10/21  01:23:26  drach
-c changed name of sync options for consistency, added sync error.
-c
-c Revision 2.3  1993/10/20  17:17:14  drach
-c Add autosync options.
-c
-c Revision 2.2  1993/07/14  22:35:35  drach
-c Corrected CVS comment header.
-c
-c  * Revision 2.1  1993/07/14  22:33:20  drach
-c  * Replaced drsdef.h with drsdef.H
-c  *
-c Revision 2.2  1993/07/13  17:53:31  drach
-c Fixed up CVS install
-c
-c  * Revision 2.1  1993/07/13  01:12:49  drach
-c  * Merged Sun, Unicos, SGI, and HP versions.
-c  *
-c Revision 2.4  1992/10/15  00:17:34  drach
-c Corrected misspelling
-c
-c Revision 2.3  1992/10/14  23:15:39  drach
-c Added putdic options.
-c
-c Revision 2.2  1992/10/06  00:54:25  drach
-c Added putdic errors.
-c
-c Revision 2.1  1992/05/22  01:08:29  drach
-c Removed drsmsg (error messages), moved to drserr.f
-c
-c Revision 2.0  1992/03/07  00:10:39  drach
-c Entered into RCS
-c
-c
-c                     Data Retrieval and Storage System
-c
-c**********************************************************************
-c
-c			DISCLAIMER
-c
-c   This software was prepared as an account of work sponsored by an
-c   agency of the United States Government. Neither the United
-c   States Government nor the University of California nor any of
-c   their employees, makes any warranty, express or implied, or
-c   assumes any liability or responsibility for the accuracy,
-c   completeness, or usefulness of any information, apparatus,
-c   product, or process disclosed, or represents that its use would
-c   not infringe privately owned rights. Reference herein to any
-c   specific commercial products, process, or service by trade name,
-c   trademark, manufacturer, or otherwise, does not necessarily
-c   constitute or imply its endorsement, recommendation, or favoring
-c   by the United States Government or the University of California.
-c   The views and opinions of authors expressed herein do not
-c   necessarily state or reflect those of the United States
-c   Government or the University of California, and shall not be
-c   used for advertising or product endorsement purposes.
-c   
-c**********************************************************************
-c
-c#######################################################################
-c                 drsdef.h
-
-c#######################################################################
-c     General definitions
-      parameter(IDRS_NOVALUE=0
-     $     ,IDRS_DEFAULT=0
-     $     )
-     
-c     DimensionType
-      parameter (IDRS_EQUALLY_SPACED = 1,
-     $     IDRS_UNEQUALLY_SPACED = 2)
-
-c     FileStatus
-      parameter (IDRS_READ = 1,
-     $     IDRS_CREATE = 2,
-     $     IDRS_EXTEND = 3)
-
-c     MachineName
-      parameter (IDRS_SUN = 1,
-     $     IDRS_CRAY = 2)
-
-      parameter (IDRS_MACHINE=IDRS_SUN,
-     $    IDRS_BYTES_PER_WORD=4
-     $    )
-c     see GETIND
-      parameter (IDRS_MAXPATH=1024)
-
-	character*8 DRS_FILETAG
-
-c     DRSVersion
-c     DRS_VERSION is current version
-c     DRS_MAXVERSION is max allowed version before version
-c     is considered *novalue*
-      parameter(DRS_VERSION=2.1,
-     $    DRS_MAXVERSION=10.0,
-     $    DRS_FILETAG='DRS DATA'
-     $    )
-
-c     Inquiry operators (INQDICT)
-      parameter(IDRS_GETFIRSTVAR=1
-     $     ,IDRS_GETNEXTVAR=2
-     $     )
-      
-c     Cray-to-IEEE translation parameters
-      parameter(IDRS_LEFTHALFWORD=0
-     $     ,IDRS_RIGHTHALFWORD=4
-     $     )
-
-c     ElementType
-      parameter(IDRS_I4=1
-     $     ,IDRS_I8=2
-     $     ,IDRS_IEEE_R4=3
-     $     ,IDRS_CRAY_R8=4
-     $     ,IDRS_ASCII=5
-     $     ,IDRS_USER=6
-     $     )
-
-c     Synchronization options
-      parameter(IDRS_SYNC_OFF=1
-     $     ,IDRS_SYNC_ON=2)
-
-c     Error reporting
-      parameter (IDRS_NOREPORT=1
-     $     ,IDRS_FATAL=2
-     $     ,IDRS_WARNING=3
-     $     ,IDRS_INTERNAL=4
-     $     )
-
-c     Putdic options
-      parameter (IDRS_BLANKS_ARE_NULL=1
-     $     ,IDRS_BLANKS_ARE_LITERAL=2
-     $     )
-
-c     Error definitions
-      parameter (IDRS_SUCCESS=0
-     $     ,IDRS_NOMEMORY=1
-     $     ,IDRS_BINFAILED=2002
-     $     ,IDRS_BADLEN=3
-     $     ,IDRS_NOMONO=4
-     $     ,IDRS_NOCOMPARISON=2005
-     $     ,IDRS_VDBNOTFOUND=6
-     $     ,IDRS_BADDIM=7
-     $     ,IDRS_NOTMONOTONE=8
-     $     ,IDRS_DICTREADERROR=9)
-      parameter (IDRS_NODICTFILE=10
-     $     ,IDRS_BADLU=11
-     $     ,IDRS_BADTYPE=12
-     $     ,IDRS_AMBIGUITYEXISTS=13
-     $     ,IDRS_CANNOTADDDATA=14
-     $     ,IDRS_DICTFULL=15
-     $     ,IDRS_VERSION1FILE=1016
-     $     ,IDRS_NEWFILEFORMAT=1017
-     $     ,IDRS_CANNOTREADHEADER=18
-     $     ,IDRS_CANNOTREADDATA=19)
-      parameter(IDRS_BADDIMNAME=20
-     $     ,IDRS_TOOMANYFILES=21
-     $     ,IDRS_CANNOTOPENDICT=22
-     $     ,IDRS_CANNOTOPENDATA=23
-     $     ,IDRS_BADSTATUS=24
-     $     ,IDRS_BADDIMTYPE=25
-     $     ,IDRS_INDEXHIGH=2026
-     $     ,IDRS_INDEXLOW=2027
-     $     ,IDRS_INDEXBETWEEN=2028
-     $     ,IDRS_NORANGE=29)
-      parameter(IDRS_SAVEBUFOVERFLOW=30
-     $     ,IDRS_BADERRLEVEL=31
-     $     ,IDRS_ERROROUTOFRANGE=32
-     $     ,IDRS_CANNOTWRITEHEADER=33
-     $     ,IDRS_CANNOTWRITEDATA=34
-     $     ,IDRS_BADCHARLEN=35
-     $     ,IDRS_BADOPER=36
-     $     ,IDRS_NOMOREVARS=1037
-     $     ,IDRS_DICTALREADYOPEN=38
-     $     ,IDRS_LOOKUPFAILED=2039
-     $     )
-      parameter(IDRS_DICTWRITEERROR=40
-     $     ,IDRS_DICTEXTENDERROR=41
-     $     ,IDRS_DATEXTENDERROR=42
-     $     ,IDRS_DICTRUNCATEERR=43
-     $     ,IDRS_DATTRUNCATEERR=44
-     $     ,IDRS_BADIEEEFP=1045
-     $     ,IDRS_BADCRAYFP=1046
-     $     ,IDRS_BADCRAYINT=1047
-     $     ,IDRS_CANNOTCONVERT=48
-     $     ,IDRS_INEXACTMATCH=1049
-     $     )
-      parameter(IDRS_DUPLICATEVAR=50
-     $     ,IDRS_CANNOTWRITEDIC=51
-     $     ,IDRS_BADSYNCOPT=52
-     $     ,IDRS_LASTERROR=53
-     $     )
-
diff --git a/include/cdTime/fcddrs.h b/include/cdTime/fcddrs.h
deleted file mode 100644
index 93b9f09..0000000
--- a/include/cdTime/fcddrs.h
+++ /dev/null
@@ -1,219 +0,0 @@
-c -*-Mode: Fortran;-*-
-c  Module:      fcddrs.h - Fortran include file for DRS wrapper routines
-c 
-c  Copyright:	1994, Regents of the University of California
-c 		This software may not be distributed to others without
-c 		permission of the author.
-c 
-c  Author:      Bob Drach, Lawrence Livermore National Laboratory
-c               drach at llnl.gov
-c 
-c  Version:     fcddrs.h,v 1.3 1995/03/31 06:53:25 drach Exp
-c 
-c  Revision History:
-c 
-c  fcddrs.h,v
-c Revision 1.3  1995/03/31  06:53:25  drach
-c Ported to HP9000
-c
-c Revision 1.2  1995/02/15  20:55:29  drach
-c - Added IDRS_VECTOR as synonym for IDRS_UNEQUALLY_SPACED
-c
-c Revision 1.1  1995/01/30  17:50:49  drach
-c - Initial version
-c
-c 
-c
-
-      real CW_FLOAT_NULL
-      integer CW_INT_NULL
-      integer CW_C_MAJORITY, CW_FORTRAN_MAJORITY
-      parameter(CW_FLOAT_NULL=1.0e20)
-      parameter(CW_INT_NULL=0)
-      parameter(CW_C_MAJORITY = 1, CW_FORTRAN_MAJORITY = 2)
-      parameter(IDRS_VECTOR = 2)
-
-c     Extended element types
-      parameter(IDRS_I1 = 7
-     $     ,IDRS_I2 = 8
-     $     ,IDRS_IEEE_R8 = 9
-     $     ,IDRS_CRAY_R16 = 10
-     $     ,IDRS_IEEE_R16 = 11
-     $     )
-
-#if (defined(hpux) || defined(ibm)) || defined(__linux_absoft)
-
-#ifndef NO_DECLARE
-
-      integer cw_aslun_
-      integer cw_cllun_
-      integer cw_cluvdb_
-      logical cw_drstest_
-      integer cw_getdat_
-      integer cw_getcdim_
-      integer cw_getcdimD_
-      integer cw_getedim_
-      integer cw_getedimD_
-      integer cw_getelemd_
-      integer cw_getname_
-      integer cw_getnd_
-      integer cw_getrge2_
-      integer cw_getrge2D_
-      integer cw_getslab_
-      integer cw_inqdict_
-      integer cw_inqlun_
-      integer cw_majority_
-      integer cw_setdim_
-      integer cw_seterr_
-      integer cw_setname_
-      integer cw_setvdim_
-      integer cw_putdat_
-      integer cw_putdic_
-      integer cw_putvdim_
-      integer cw_setdate_
-      integer cw_setrep_
-
-#endif
-
-#ifndef _fcddrs_h
-#define _fcddrs_h
-
-#define cw_aslun cw_aslun_
-#define cw_cllun cw_cllun_
-#define cw_cluvdb cw_cluvdb_
-#define cw_drstest cw_drstest_
-#define cw_getdat cw_getdat_
-#define cw_getcdim cw_getcdim_
-#define cw_getcdimD cw_getcdimD_
-#define cw_getedim cw_getedim_
-#define cw_getedimD cw_getedimD_
-#define cw_getelemd cw_getelemd_
-#define cw_getname cw_getname_
-#define cw_getnd cw_getnd_
-#define cw_getrge2 cw_getrge2_
-#define cw_getrge2D cw_getrge2D_
-#define cw_getslab cw_getslab_
-#define cw_inqdict cw_inqdict_
-#define cw_inqlun cw_inqlun_
-#define cw_majority cw_majority_
-#define cw_setdim cw_setdim_
-#define cw_seterr cw_seterr_
-#define cw_setname cw_setname_
-#define cw_setvdim cw_setvdim_
-#define cw_putdat cw_putdat_
-#define cw_putdic cw_putdic_
-#define cw_putvdim cw_putvdim_
-#define cw_setdate cw_setdate_
-#define cw_setrep cw_setrep_
-#endif
-
-#else
-
-#ifndef NO_DECLARE
-
-      integer cw_aslun
-      integer cw_cllun
-      integer cw_cluvdb
-      logical cw_drstest
-      integer cw_getdat
-      integer cw_getcdim
-      integer cw_getcdimD
-      integer cw_getedim
-      integer cw_getedimD
-      integer cw_getelemd
-      integer cw_getname
-      integer cw_getnd
-      integer cw_getrge2
-      integer cw_getrge2D
-      integer cw_getslab
-      integer cw_inqdict
-      integer cw_inqlun
-      integer cw_majority
-      integer cw_setdim
-      integer cw_seterr
-      integer cw_setname
-      integer cw_setvdim
-      integer cw_putdat
-      integer cw_putdic
-      integer cw_putvdim
-      integer cw_setdate
-      integer cw_setrep
-
-#endif
-
-#endif
-
-#ifdef CDCOMPAT
-#if (defined(hpux) || defined(ibm)) || defined(__linux_absoft)
-
-#ifndef _fcddrs_h
-#define _fcddrs_h
-
-#define aslun cw_aslun_
-#define cllun cw_cllun_
-#define cluvdb cw_cluvdb_
-#define drstest cw_drstest_
-#define getdat cw_getdat_
-#define getcdim cw_getcdim_
-#define getcdimD cw_getcdimD_
-#define getedim cw_getedim_
-#define getedimD cw_getedimD_
-#define getelemd cw_getelemd_
-#define getname cw_getname_
-#define getnd cw_getnd_
-#define getrge2 cw_getrge2_
-#define getrge2D cw_getrge2D_
-#define getslab cw_getslab_
-#define inqdict cw_inqdict_
-#define inqlun cw_inqlun_
-#define majority cw_majority_
-#define setdim cw_setdim_
-#define seterr cw_seterr_
-#define setname cw_setname_
-#define setvdim cw_setvdim_
-#define putdat cw_putdat_
-#define putdic cw_putdic_
-#define putvdim cw_putvdim_
-#define setdate cw_setdate_
-#define setrep cw_setrep_
-
-#endif
-
-#else
-
-#ifndef _fcddrs_h
-#define _fcddrs_h
-
-#define aslun cw_aslun
-#define cllun cw_cllun
-#define cluvdb cw_cluvdb
-#define drstest cw_drstest
-#define getdat cw_getdat
-#define getcdim cw_getcdim
-#define getcdimD cw_getcdimD
-#define getedim cw_getedim
-#define getedimD cw_getedimD
-#define getelemd cw_getelemd
-#define getname cw_getname
-#define getnd cw_getnd
-#define getrge2 cw_getrge2
-#define getrge2D cw_getrge2D
-#define getslab cw_getslab
-#define inqdict cw_inqdict
-#define inqlun cw_inqlun
-#define majority cw_majority
-#define setdim cw_setdim
-#define seterr cw_seterr
-#define setname cw_setname
-#define setvdim cw_setvdim
-#define putdat cw_putdat
-#define putdic cw_putdic
-#define putvdim cw_putvdim
-#define setdate cw_setdate
-#define setrep cw_setrep
-
-#endif
-
-#endif
-
-#endif
diff --git a/include/cdTime/gaussLats.h b/include/cdTime/gaussLats.h
deleted file mode 100644
index 4dc395e..0000000
--- a/include/cdTime/gaussLats.h
+++ /dev/null
@@ -1,232 +0,0 @@
-/* -*-Mode: C;-*-
- * Module:      gausslats.h - Definitions of Gaussian latitudes.
- *
- * Copyright:	1994, Regents of the University of California
- *		This software may not be distributed to others without
- *		permission of the author.
- *
- * Author:      Bob Drach, Lawrence Livermore National Laboratory
- *              drach at llnl.gov
- *
- * Version:     $Id$
- *
- * Revision History:
- *
- * $Log: gaussLats.h,v $
- * Revision 1.2  1994/10/25  00:59:13  drach
- * - Added R40 grid
- *
- * Revision 1.1  1994/08/12  21:45:48  drach
- * Entered into CVS
- *
- *
- */
-
-
-
-#define T21_LEN 32
-#define R15_LEN 40
-#define T32_LEN 48
-#define R21_LEN 56
-#define T42_LEN 64
-#define R31_LEN 80
-#define T63_LEN 96
-#define R40_LEN 102
-#define T106_LEN 160
-
-static double t21Lats[T21_LEN+2] = { 90.0,
- 0.85760587120445E+02, 0.80268779072251E+02, 0.74744540368636E+02, 0.69212976169371E+02,
- 0.63678635561097E+02, 0.58142954049203E+02, 0.52606526034345E+02, 0.47069642059688E+02,
- 0.41532461246656E+02, 0.35995078411272E+02, 0.30457553961152E+02, 0.24919928629948E+02,
- 0.19382231346434E+02, 0.13844483734385E+02, 0.83067028565188E+01, 0.27689030077360E+01,
--0.27689030077360E+01,-0.83067028565188E+01,-0.13844483734385E+02,-0.19382231346434E+02,
--0.24919928629948E+02,-0.30457553961152E+02,-0.35995078411272E+02,-0.41532461246656E+02,
--0.47069642059688E+02,-0.52606526034345E+02,-0.58142954049203E+02,-0.63678635561097E+02,
--0.69212976169371E+02,-0.74744540368636E+02,-0.80268779072251E+02,-0.85760587120445E+02,
- -90.0};
-
-static double r15Lats[R15_LEN+2] = { 90.0,
- 0.86597954212835E+02, 0.82190885554948E+02, 0.77757791251976E+02, 0.73318817296172E+02,
- 0.68877613808930E+02, 0.64435332287914E+02, 0.59992449212443E+02, 0.55549197158977E+02,
- 0.51105703159234E+02, 0.46662042537064E+02, 0.42218262871435E+02, 0.37774395783429E+02,
- 0.33330463202456E+02, 0.28886480912748E+02, 0.24442460668163E+02, 0.19998411511672E+02,
- 0.15554340633426E+02, 0.11110253951903E+02, 0.66661565251761E+01, 0.22220528574090E+01,
--0.22220528574090E+01,-0.66661565251761E+01,-0.11110253951903E+02,-0.15554340633426E+02,
--0.19998411511672E+02,-0.24442460668163E+02,-0.28886480912748E+02,-0.33330463202456E+02,
--0.37774395783429E+02,-0.42218262871435E+02,-0.46662042537064E+02,-0.51105703159234E+02,
--0.55549197158977E+02,-0.59992449212443E+02,-0.64435332287914E+02,-0.68877613808930E+02,
--0.73318817296172E+02,-0.77757791251976E+02,-0.82190885554948E+02,-0.86597954212835E+02,
- -90.0};
-
-static double t32Lats[T32_LEN+2] = { 90.0,
- 0.87159094555866E+02, 0.83478936669319E+02, 0.79777045654826E+02, 0.76070244462545E+02,
- 0.72361581029344E+02, 0.68652016789517E+02, 0.64941949488758E+02, 0.61231573188077E+02,
- 0.57520993797970E+02, 0.53810274031941E+02, 0.50099453412987E+02, 0.46388558111605E+02,
- 0.42677606172605E+02, 0.38966610469454E+02, 0.35255580461368E+02, 0.31544523284022E+02,
- 0.27833444451993E+02, 0.24122348326088E+02, 0.20411238433568E+02, 0.16700117693843E+02,
- 0.12988988582088E+02, 0.92778532515079E+01, 0.55667136279136E+01, 0.18555714859933E+01,
--0.18555714859933E+01,-0.55667136279136E+01,-0.92778532515079E+01,-0.12988988582088E+02,
--0.16700117693843E+02,-0.20411238433568E+02,-0.24122348326088E+02,-0.27833444451993E+02,
--0.31544523284022E+02,-0.35255580461368E+02,-0.38966610469454E+02,-0.42677606172605E+02,
--0.46388558111605E+02,-0.50099453412987E+02,-0.53810274031941E+02,-0.57520993797970E+02,
--0.61231573188077E+02,-0.64941949488758E+02,-0.68652016789517E+02,-0.72361581029344E+02,
--0.76070244462545E+02,-0.79777045654826E+02,-0.83478936669319E+02,-0.87159094555866E+02,
- -90.0};
-
-static double r21Lats[R21_LEN+2] = { 90.0,
- 0.87561335285568E+02, 0.84402246942727E+02, 0.81224502565854E+02, 0.78042543117275E+02,
- 0.74858984933994E+02, 0.71674653274293E+02, 0.68489889517576E+02, 0.65304860195126E+02,
- 0.62119656165245E+02, 0.58934331201119E+02, 0.55748919163754E+02, 0.52563442446061E+02,
- 0.49377916458473E+02, 0.46192352163669E+02, 0.43006757583317E+02, 0.39821138732503E+02,
- 0.36635500220498E+02, 0.33449845649242E+02, 0.30264177884999E+02, 0.27078499248141E+02,
- 0.23892811648733E+02, 0.20707116685476E+02, 0.17521415719380E+02, 0.14335709929790E+02,
- 0.11150000357943E+02, 0.79642879416817E+01, 0.47785735439230E+01, 0.15928579768305E+01,
--0.15928579768305E+01,-0.47785735439230E+01,-0.79642879416817E+01,-0.11150000357943E+02,
--0.14335709929790E+02,-0.17521415719380E+02,-0.20707116685476E+02,-0.23892811648733E+02,
--0.27078499248141E+02,-0.30264177884999E+02,-0.33449845649242E+02,-0.36635500220498E+02,
--0.39821138732503E+02,-0.43006757583317E+02,-0.46192352163669E+02,-0.49377916458473E+02,
--0.52563442446061E+02,-0.55748919163754E+02,-0.58934331201119E+02,-0.62119656165245E+02,
--0.65304860195126E+02,-0.68489889517576E+02,-0.71674653274293E+02,-0.74858984933994E+02,
--0.78042543117275E+02,-0.81224502565854E+02,-0.84402246942727E+02,-0.87561335285568E+02,
- -90.0};
-
-static double t42Lats[T42_LEN+2] = { 90.0,
- 0.87863798839235E+02, 0.85096526988318E+02, 0.82312912947887E+02, 0.79525606572659E+02,
- 0.76736899680368E+02, 0.73947515153990E+02, 0.71157752011587E+02, 0.68367756108313E+02,
- 0.65577607010828E+02, 0.62787351798963E+02, 0.59997020108491E+02, 0.57206631527643E+02,
- 0.54416199526086E+02, 0.51625733674938E+02, 0.48835240966250E+02, 0.46044726631102E+02,
- 0.43254194665351E+02, 0.40463648178115E+02, 0.37673089629045E+02, 0.34882520993773E+02,
- 0.32091943881744E+02, 0.29301359621763E+02, 0.26510769325211E+02, 0.23720173933535E+02,
- 0.20929574254490E+02, 0.18138970990239E+02, 0.15348364759492E+02, 0.12557756115231E+02,
- 0.97671455591956E+01, 0.69765335539487E+01, 0.41859205331892E+01, 0.13953069108195E+01,
--0.13953069108195E+01,-0.41859205331892E+01,-0.69765335539487E+01,-0.97671455591956E+01,
--0.12557756115231E+02,-0.15348364759492E+02,-0.18138970990239E+02,-0.20929574254490E+02,
--0.23720173933535E+02,-0.26510769325211E+02,-0.29301359621763E+02,-0.32091943881744E+02,
--0.34882520993773E+02,-0.37673089629045E+02,-0.40463648178115E+02,-0.43254194665351E+02,
--0.46044726631102E+02,-0.48835240966250E+02,-0.51625733674938E+02,-0.54416199526086E+02,
--0.57206631527643E+02,-0.59997020108491E+02,-0.62787351798963E+02,-0.65577607010828E+02,
--0.68367756108313E+02,-0.71157752011587E+02,-0.73947515153990E+02,-0.76736899680368E+02,
--0.79525606572659E+02,-0.82312912947887E+02,-0.85096526988318E+02,-0.87863798839235E+02,
- -90.0};
-
-static double r31Lats[R31_LEN+2] = { 90.0,
- 0.88288379267616E+02, 0.86071116222004E+02, 0.83840759055046E+02, 0.81607443388288E+02,
- 0.79373005516595E+02, 0.77138024633268E+02, 0.74902740311571E+02, 0.72667269403298E+02,
- 0.70431675646397E+02, 0.68195996748286E+02, 0.65960256438704E+02, 0.63724470396021E+02,
- 0.61488649395195E+02, 0.59252801086411E+02, 0.57016931052170E+02, 0.54781043462613E+02,
- 0.52545141496602E+02, 0.50309227620722E+02, 0.48073303779176E+02, 0.45837371526077E+02,
- 0.43601432119569E+02, 0.41365486590024E+02, 0.39129535790308E+02, 0.36893580433377E+02,
- 0.34657621120798E+02, 0.32421658364662E+02, 0.30185692604616E+02, 0.27949724221253E+02,
- 0.25713753546746E+02, 0.23477780873385E+02, 0.21241806460492E+02, 0.19005830540092E+02,
- 0.16769853321590E+02, 0.14533874995695E+02, 0.12297895737733E+02, 0.10061915710489E+02,
- 0.78259350666721E+01, 0.55899539511030E+01, 0.33539725026723E+01, 0.11179908561455E+01,
--0.11179908561455E+01,-0.33539725026723E+01,-0.55899539511030E+01,-0.78259350666721E+01,
--0.10061915710489E+02,-0.12297895737733E+02,-0.14533874995695E+02,-0.16769853321590E+02,
--0.19005830540092E+02,-0.21241806460492E+02,-0.23477780873385E+02,-0.25713753546746E+02,
--0.27949724221253E+02,-0.30185692604616E+02,-0.32421658364662E+02,-0.34657621120798E+02,
--0.36893580433377E+02,-0.39129535790308E+02,-0.41365486590024E+02,-0.43601432119569E+02,
--0.45837371526077E+02,-0.48073303779176E+02,-0.50309227620722E+02,-0.52545141496602E+02,
--0.54781043462613E+02,-0.57016931052170E+02,-0.59252801086411E+02,-0.61488649395195E+02,
--0.63724470396021E+02,-0.65960256438704E+02,-0.68195996748286E+02,-0.70431675646397E+02,
--0.72667269403298E+02,-0.74902740311571E+02,-0.77138024633268E+02,-0.79373005516595E+02,
--0.81607443388288E+02,-0.83840759055046E+02,-0.86071116222004E+02,-0.88288379267616E+02,
- -90.0};
-
-static double t63Lats[T63_LEN+2] = { 90.0,
- 0.88572168514010E+02, 0.86722530954669E+02, 0.84861970292044E+02, 0.82998941642838E+02,
- 0.81134976837678E+02, 0.79270559034861E+02, 0.77405888082079E+02, 0.75541061452879E+02,
- 0.73676132313210E+02, 0.71811132114274E+02, 0.69946080646983E+02, 0.68080990985652E+02,
- 0.66215872113999E+02, 0.64350730408872E+02, 0.62485570522036E+02, 0.60620395926826E+02,
- 0.58755209269380E+02, 0.56890012601357E+02, 0.55024807538312E+02, 0.53159595370020E+02,
- 0.51294377138951E+02, 0.49429153697123E+02, 0.47563925747979E+02, 0.45698693877702E+02,
- 0.43833458578951E+02, 0.41968220269075E+02, 0.40102979304249E+02, 0.38237735990564E+02,
- 0.36372490592812E+02, 0.34507243341501E+02, 0.32641994438518E+02, 0.30776744061723E+02,
- 0.28911492368718E+02, 0.27046239499945E+02, 0.25180985581271E+02, 0.23315730726141E+02,
- 0.21450475037398E+02, 0.19585218608822E+02, 0.17719961526447E+02, 0.15854703869695E+02,
- 0.13989445712357E+02, 0.12124187123456E+02, 0.10258928168006E+02, 0.83936689076924E+01,
- 0.65284094014800E+01, 0.46631497061779E+01, 0.27978898769568E+01, 0.93262996783805E+00,
--0.93262996783805E+00,-0.27978898769568E+01,-0.46631497061779E+01,-0.65284094014800E+01,
--0.83936689076924E+01,-0.10258928168006E+02,-0.12124187123456E+02,-0.13989445712357E+02,
--0.15854703869695E+02,-0.17719961526447E+02,-0.19585218608822E+02,-0.21450475037398E+02,
--0.23315730726141E+02,-0.25180985581271E+02,-0.27046239499945E+02,-0.28911492368718E+02,
--0.30776744061723E+02,-0.32641994438518E+02,-0.34507243341501E+02,-0.36372490592812E+02,
--0.38237735990564E+02,-0.40102979304249E+02,-0.41968220269075E+02,-0.43833458578951E+02,
--0.45698693877702E+02,-0.47563925747979E+02,-0.49429153697123E+02,-0.51294377138951E+02,
--0.53159595370020E+02,-0.55024807538312E+02,-0.56890012601357E+02,-0.58755209269380E+02,
--0.60620395926826E+02,-0.62485570522036E+02,-0.64350730408872E+02,-0.66215872113999E+02,
--0.68080990985652E+02,-0.69946080646983E+02,-0.71811132114274E+02,-0.73676132313210E+02,
--0.75541061452879E+02,-0.77405888082079E+02,-0.79270559034861E+02,-0.81134976837678E+02,
--0.82998941642838E+02,-0.84861970292044E+02,-0.86722530954669E+02,-0.88572168514010E+02,
- -90.0};
-
-static double r40Lats[R40_LEN+2] = { 90.0,
- 0.88655748210102E+02, 0.86914381231598E+02, 0.85162730544504E+02, 0.83408756335181E+02,
- 0.81653900766134E+02, 0.79898618712720E+02, 0.78143098323582E+02, 0.76387431365792E+02,
- 0.74631667892398E+02, 0.72875837512789E+02, 0.71119958858586E+02, 0.69364044237958E+02,
- 0.67608102107902E+02, 0.65852138471109E+02, 0.64096157706139E+02, 0.62340163082069E+02,
- 0.60584157089161E+02, 0.58828141657961E+02, 0.57072118308388E+02, 0.55316088253607E+02,
- 0.53560052473900E+02, 0.51804011770183E+02, 0.50047966803437E+02, 0.48291918124176E+02,
- 0.46535866194786E+02, 0.44779811406672E+02, 0.43023754093555E+02, 0.41267694541909E+02,
- 0.39511632999215E+02, 0.37755569680566E+02, 0.35999504773979E+02, 0.34243438444712E+02,
- 0.32487370838797E+02, 0.30731302085950E+02, 0.28975232301977E+02, 0.27219161590792E+02,
- 0.25463090046107E+02, 0.23707017752859E+02, 0.21950944788430E+02, 0.20194871223677E+02,
- 0.18438797123838E+02, 0.16682722549301E+02, 0.14926647556282E+02, 0.13170572197421E+02,
- 0.11414496522311E+02, 0.96584205779655E+01, 0.79023444092484E+01, 0.61462680592605E+01,
- 0.43901915696985E+01, 0.26341149811898E+01, 0.87803833361026E+00,-0.87803833361026E+00,
--0.26341149811898E+01,-0.43901915696985E+01,-0.61462680592605E+01,-0.79023444092484E+01,
--0.96584205779655E+01,-0.11414496522311E+02,-0.13170572197421E+02,-0.14926647556282E+02,
--0.16682722549301E+02,-0.18438797123838E+02,-0.20194871223677E+02,-0.21950944788430E+02,
--0.23707017752859E+02,-0.25463090046107E+02,-0.27219161590792E+02,-0.28975232301977E+02,
--0.30731302085950E+02,-0.32487370838797E+02,-0.34243438444712E+02,-0.35999504773979E+02,
--0.37755569680566E+02,-0.39511632999215E+02,-0.41267694541909E+02,-0.43023754093555E+02,
--0.44779811406672E+02,-0.46535866194786E+02,-0.48291918124176E+02,-0.50047966803437E+02,
--0.51804011770183E+02,-0.53560052473900E+02,-0.55316088253607E+02,-0.57072118308388E+02,
--0.58828141657961E+02,-0.60584157089161E+02,-0.62340163082069E+02,-0.64096157706139E+02,
--0.65852138471109E+02,-0.67608102107902E+02,-0.69364044237958E+02,-0.71119958858586E+02,
--0.72875837512789E+02,-0.74631667892398E+02,-0.76387431365792E+02,-0.78143098323582E+02,
--0.79898618712720E+02,-0.81653900766134E+02,-0.83408756335181E+02,-0.85162730544504E+02,
--0.86914381231598E+02,-0.88655748210102E+02,
- -90.0};
-
-static double t106Lats[T106_LEN+2] = { 90.0,
- 0.89141519426470E+02, 0.88029428867955E+02, 0.86910770814124E+02, 0.85790628883637E+02,
- 0.84669924084448E+02, 0.83548946912543E+02, 0.82427817524009E+02, 0.81306594522669E+02,
- 0.80185309872478E+02, 0.79063982481409E+02, 0.77942624246673E+02, 0.76821243027101E+02,
- 0.75699844222012E+02, 0.74578431663296E+02, 0.73457008145583E+02, 0.72335575754909E+02,
- 0.71214136079887E+02, 0.70092690351624E+02, 0.68971239538936E+02, 0.67849784414670E+02,
- 0.66728325602882E+02, 0.65606863613010E+02, 0.64485398865043E+02, 0.63363931708340E+02,
- 0.62242462435891E+02, 0.61120991295252E+02, 0.59999518497041E+02, 0.58878044221583E+02,
- 0.57756568624184E+02, 0.56635091839330E+02, 0.55513613984077E+02, 0.54392135160792E+02,
- 0.53270655459398E+02, 0.52149174959221E+02, 0.51027693730508E+02, 0.49906211835711E+02,
- 0.48784729330535E+02, 0.47663246264842E+02, 0.46541762683406E+02, 0.45420278626548E+02,
- 0.44298794130694E+02, 0.43177309228835E+02, 0.42055823950935E+02, 0.40934338324279E+02,
- 0.39812852373771E+02, 0.38691366122202E+02, 0.37569879590472E+02, 0.36448392797794E+02,
- 0.35326905761872E+02, 0.34205418499049E+02, 0.33083931024446E+02, 0.31962443352088E+02,
- 0.30840955495002E+02, 0.29719467465319E+02, 0.28597979274356E+02, 0.27476490932696E+02,
- 0.26355002450250E+02, 0.25233513836324E+02, 0.24112025099671E+02, 0.22990536248541E+02,
- 0.21869047290730E+02, 0.20747558233616E+02, 0.19626069084199E+02, 0.18504579849136E+02,
- 0.17383090534771E+02, 0.16261601147162E+02, 0.15140111692111E+02, 0.14018622175186E+02,
- 0.12897132601745E+02, 0.11775642976956E+02, 0.10654153305818E+02, 0.95326635931757E+01,
- 0.84111738437432E+01, 0.72896840621151E+01, 0.61681942527845E+01, 0.50467044201572E+01,
- 0.39252145685665E+01, 0.28037247022868E+01, 0.16822348255471E+01, 0.56074494254426E+00,
--0.56074494254426E+00,-0.16822348255471E+01,-0.28037247022868E+01,-0.39252145685665E+01,
--0.50467044201572E+01,-0.61681942527845E+01,-0.72896840621151E+01,-0.84111738437432E+01,
--0.95326635931757E+01,-0.10654153305818E+02,-0.11775642976956E+02,-0.12897132601745E+02,
--0.14018622175186E+02,-0.15140111692111E+02,-0.16261601147162E+02,-0.17383090534771E+02,
--0.18504579849136E+02,-0.19626069084199E+02,-0.20747558233616E+02,-0.21869047290730E+02,
--0.22990536248541E+02,-0.24112025099671E+02,-0.25233513836324E+02,-0.26355002450250E+02,
--0.27476490932696E+02,-0.28597979274356E+02,-0.29719467465319E+02,-0.30840955495002E+02,
--0.31962443352088E+02,-0.33083931024446E+02,-0.34205418499049E+02,-0.35326905761872E+02,
--0.36448392797794E+02,-0.37569879590472E+02,-0.38691366122202E+02,-0.39812852373771E+02,
--0.40934338324279E+02,-0.42055823950935E+02,-0.43177309228835E+02,-0.44298794130694E+02,
--0.45420278626548E+02,-0.46541762683406E+02,-0.47663246264842E+02,-0.48784729330535E+02,
--0.49906211835711E+02,-0.51027693730508E+02,-0.52149174959221E+02,-0.53270655459398E+02,
--0.54392135160792E+02,-0.55513613984077E+02,-0.56635091839330E+02,-0.57756568624184E+02,
--0.58878044221583E+02,-0.59999518497041E+02,-0.61120991295252E+02,-0.62242462435891E+02,
--0.63363931708340E+02,-0.64485398865043E+02,-0.65606863613010E+02,-0.66728325602882E+02,
--0.67849784414670E+02,-0.68971239538936E+02,-0.70092690351624E+02,-0.71214136079887E+02,
--0.72335575754909E+02,-0.73457008145583E+02,-0.74578431663296E+02,-0.75699844222012E+02,
--0.76821243027101E+02,-0.77942624246673E+02,-0.79063982481409E+02,-0.80185309872478E+02,
--0.81306594522669E+02,-0.82427817524009E+02,-0.83548946912543E+02,-0.84669924084448E+02,
--0.85790628883637E+02,-0.86910770814124E+02,-0.88029428867955E+02,-0.89141519426470E+02,
- -90.0};
diff --git a/include/cdTime/grads.h b/include/cdTime/grads.h
deleted file mode 100644
index 9f53f91..0000000
--- a/include/cdTime/grads.h
+++ /dev/null
@@ -1,1100 +0,0 @@
-/* Copyright (c) 1988-1995 by Brian Doty
-   See file COPYRIGHT for complete rights and liability information. */
-
-/* Handling of missing data values.  If SETMISS is 0, it is assumed
-   that missing data values will exactly match the value parsed from
-   the data description file (true on many machines).  If SETMISS is 1,
-   a test is done for a small range (+-value/EPSILON) and if true the
-   value is set to exactly the missing data value when read.  */
-
-#include <stdio.h>
-
-#define SETMISS 1
-#define EPSILON 1e5
-#define FUZZ_SCALE 1e-5
-
-/* RPTNUM: Number of garpt blocks to allocate per memory block
-   BLKNUM: Max number of memory requests
-   A max of RPTNUM*BLKNUM stations can be held per request         */
-
-#define RPTNUM 200
-#define BLKNUM 500
-
-#if GRADS_CRAY == 1
-#define CPULIMSIG SIGCPULIM
-#else
-#define CPULIMSIG SIGXCPU
-#endif
-
- /*******************\
- *  Data Structures  *
- \*******************/
-
-/* Pointer to data object */
-
-union gadata {
-  struct gagrid *pgr;
-  struct gastn *stn;
-};
-
-/* Date/time structure.         */
-
-struct dt {
-  int yr;
-  int mo;
-  int dy;
-  int hr;
-  int mn;
-};
-
-/* Collection structure */
-
-struct gaclct {
-  struct gaclct *forw;       /* Forward Pointer */
-  struct gastn *stn;         /* Pointer to station data */
-  struct gastn *stn2;        /* Pointer to station data */
-};
-
-/* info for LATS */
-
-struct galats {
-
-/*=== lats_parmtab ===*/
-  char ptname[256];         /* parameter file name */
-
-/*=== lats_create ===*/
-  int convention;           /* data convention (enum) */
-  int frequency;            /* data frequency (enum) e.g., hourly */
-  int calendar;             /* calendar of the time model (enum) e.g., standard */
-  int deltat;               /* number of time units between outputs, e.g., 12 for every 12 h */
-  char model[256];          /* model COMMENT */
-  char center[32];          /* data source which is the GRIB PROCESS ! NOT the GRIB CENTER */
-  char comment[256];        /* comment on data set which will go into the title of the .ctl file */
-  char oname[256];          /* name of the output file (dset) */
-
-/*=== lats_basetime ===*/
-  int lyr;                 /* lats basetime year */
-  int lmo;                 /* lats basetime month */
-  int lda;                 /* lats basetime day */
-  int lhr;                 /* lats basetime hour */
-
-/*=== lats_vertdim ===*/
-  char vertdimname[32];     /* name of the vertial dimension */
-  double levels[128];       /* vertical levels MAX IS 128!!!*/
-  int nlev;                 /* number of levels */
-
-/*=== lats_grid ===*/
-  int gridtype;             /* grid type (enum), calculated in GrADS except when LATS_GAUSSIAN */
-  char gridname[32];        /* name of the vertial dimension */
-  int ilinear;              /* linearity of the grid in x */
-  int jlinear;              /* linearity of the grid in y */
-  int nlon;                 /* # of points in x */
-  int nlat;                 /* # of points in y */
-  float lon_1;              /* starting longitide */
-  float lat_1;              /* starting latitude */
-  float lon_nlon;           /* ending longitude */
-  float lat_nlat;           /* ending latitude */
-
-/*=== lats_var ===*/
-  char var[32];             /* variable name */
-  char var_comment[256];    /* variable name */
-  int timestat;             /* variable time statistic (enum) */
-
-/*=== lats_write ===*/
-  double varlev;            /* level value of the variable  for lats_write*/
-
-/*--- time options ---*/
-  int time_opt;             /* 0 - grid relative ; 1 - dimension environment relative ; 2 - set time using baset time ; 3 - forecast hourly */
-  int fhour;                /* forecast hour if using lats forecast_hourly */
-
-/*--- internal id's to pass to the lats routines ---*/
-  int id_file;
-  int id_lev;
-  int id_grid;
-  int id_var;
-
-  int id_user_file;
-  int id_user_var;
-  int id_user_grid;
-  int id_user_lev;
-  int id_user_write;
-
-};
-
-
-/*mf 9612105 Contains global information for Mike Fiorino mf*/
-
-struct gamfcmn {
-  int cal365 ;               /* 365 (no leap year) calendar */
-  int fullyear ;             /* 1 - must specify full year 0 old default */
-  int warnflg;               /* warning level flag for messages */
-};
-
-/* Contains information about the user interface and graphics output. */
-struct gacmn {
-
-  int pass;                  /* Number of passes since last clear     */
-  int gpass[10];             /* Number of passes for each gx type     */
-  int loopdim;               /* Looping dimension                     */
-  int loopflg;               /* Looping on or off                     */
-  float loopincr;            /* Looping increment                     */
-
-  struct gafile *pfi1;       /* Pointer to first gafile in chain      */
-  struct gafile *pfid;       /* Pointer to default gafile             */
-  int fnum;                  /* File count                            */
-  int dfnum;                 /* Default file number   */
-
-  struct gadefn *pdf1;       /* Pointer to first define block         */
-
-  float dmin[3],dmax[3];     /* Current absolute coordinate limits    */
-  struct dt tmin,tmax;
-  int vdim[4];               /* Which dimensions vary?                */
-
-  float pxsize,pysize;       /* Physical page size in inches          */
-  int orient;                /* Page orientation                      */
-  int vpflag;                /* If 1, virtual page being used         */
-  float xsiz,xsiz1,xsiz2;    /* Physical plotting size in X direction */
-  float ysiz,ysiz1,ysiz2;    /* Physical plotting size in Y direction */
-  int paflg;                 /* User has specified plotting area      */
-  float pxmin,pxmax;         /* User specified plotting area          */
-  float pymin,pymax;
-  float aspect;              /* User specified aspect ratio           */
-
-  int clab;                  /* control contour labels.               */
-  int clskip;                /* Contour label skipping       */
-  char *clstr;               /* Contour label template */
-  float rainmn,rainmx;       /* control rainbow colors                */
-  int rbflg;                 /* User rainbow colors specified         */
-  int rbcols[100];           /* User rainbow colors                   */
-
-  float cmin,cmax,cint;      /* User specified contour limits         */
-  int cflag;                 /* If true, user specifies contour levels*/
-  float clevs[100];          /* User specified contour levels         */
-  int ccflg;                 /* If true, user specifies contour colors*/
-  int ccols[100];            /* User specified contour colors         */
-  int shdcls[120];           /* Shade colors after shading            */
-  float shdlvs[120];         /* Shade levels                          */
-  int shdcnt;                /* Number of shdlvs, shdcls              */
-  int ccolor,cstyle;         /* User contour/line appearance          */
-  int cthick;                /* User gx display line thickness        */
-  int cmark;                 /* Line marker type                      */
-  int csmth;                 /* Contour smoothing on or off           */
-  int cterp;                 /* Spline fit on or off                  */
-  float rmin,rmax,rint;      /* Axis limits for 1-D plots             */
-  float rmin2,rmax2,rint2;   /* Axis limits for 1-D plots             */
-  int aflag,aflag2;          /* Keep 1D axis limits fixed             */
-  int grflag,grstyl,grcolr;  /* Grid flag, linestyle, color           */
-  int dignum;                /* grid value plot control (gxout=grid)  */
-  float digsiz;
-  int arrflg;                /* Use already set arrow scaling         */
-  float arrsiz;              /* Arrow size in inches                  */
-  int arlflg;                /* Arrow label flag */
-  float arrmag;              /* Vector magnitude producing arrsiz arrw*/
-  float ahdsiz;              /* Arrow head size.       */
-  int miconn;                /* Connect line graph accross missing    */
-  int strmden;               /* Streamline density indicator  */
-  int mdlblnk,mdldig3;       /* Station model plot opts */
-
-  int fgvals[50];            /* Values for grid fill */
-  int fgcols[50];
-  int fgcnt;
-
-  int stidflg;               /* Plot station ids with values      */
-
-  float axmin,axmax,axint;   /* Overrides for X-axis labels           */
-  float aymin,aymax,ayint;   /* Overrides for Y-axis labels           */
-  int axflg, ayflg;          /* Is override in effect for the axis?   */
-  int frame;                 /* Display frame?  */
-
-  int rotate;                /* Rotate plot from default orientation  */
-  int xflip, yflip;          /* Flip X or Y axes                      */
-  int zlog;                  /* Z coordinate in log scale */
-
-  int mproj;                 /* Map projection -- used for X,Y plot   */
-                             /*  only.  0 = no map.                   */
-  int mpdraw;                /* Draw map outline - 0=no               */
-  float mpvals[10];          /* Map projection option values.         */
-  int mpflg;                 /* Map projection option values are set. */
-  char *mpdset[8];           /* Map data set names.                   */
-  int mpcols[256];           /* Map Color array                       */
-  int mpstls[256];           /* Map line styles array                 */
-  int mpthks[256];           /* Map line widths array                 */
-  int mapcol,mapstl,mapthk;  /* Default map color, style, thickness   */
-
-  int gout0;                 /* Graphics output type for stat.        */
-  int gout1;                 /* Graphics output type for 1-D.         */
-  int gout2a;                /* Graphics output type for 2-D.         */
-  int gout2b;                /* Graphics output type for 2-D.         */
-  int goutstn;               /* Graphics output type for stns */
-
-  int blkflg;                /* Leave certain values black when shadng*/
-  float blkmin, blkmax;      /* Black range */
-
-  int reccol,recthk;         /* Draw Rectangle color, brdr thickness  */
-  int lincol,linstl,linthk;  /* Draw line color, style, thickness     */
-  int mcolor;                /* auto color (orange or grey)           */
-  int strcol,strthk,strjst;  /* Draw string color, thckns, justifictn */
-  float strrot;              /* Draw string rotation */
-  float strhsz,strvsz;       /* Draw string hor. size, vert. size     */
-  int anncol,annthk;         /* Draw title color, thickness           */
-  int grflg;                 /* Grey Scale flag   */
-  int devbck;                /* Device background */
-  int xlcol,xlthck,ylcol,ylthck,clcol,clthck;  /* color, thickness */
-  int xlside,ylside,ylpflg;
-  float xlsiz,ylsiz,clsiz,xlpos,ylpos,yllow;         /* Axis lable size */
-  float xlevs[50],ylevs[50]; /* User specified x/y axis labels  */
-  int xlflg,ylflg;           /* Number of user specified labels */
-  int xtick,ytick;           /* Number of extra tick marks      */
-  float xlint,ylint;         /* User specified label increment */
-  char *xlstr, *ylstr;       /* user substitution string for labels */
-  int xlab,ylab;             /* Axis label options */
-  char *xlabs, *ylabs;       /* User specifies all labels */
-  int ixlabs, iylabs;        /* Count of user labels */
-  int lfc1,lfc2;             /* Linefill colors */
-  int wxcols[5];             /* wx symbol colors */
-  int wxopt;                 /* wx options */
-  int tser;                  /* station time series type */
-
-  int bargap;                /* Bar Gap in percent  */
-  int barolin;               /* Bar outline flag */
-  float barbase;             /* Bar Base Value      */
-  int barflg;                /* Bar flag: 1, use base value  */
-                             /*           0, draw from plot base */
-                             /*          -1, draw from plot top  */
-
-  int btnfc,btnbc,btnoc,btnoc2;     /* Current button attributes */
-  int btnftc,btnbtc,btnotc,btnotc2;
-  int btnthk;
-
-  int drvals[15];            /* Attributes for drop menus */
-
-  FILE *ffile;               /* grads.fwrite file handle */
-  char *fwname;              /* fwrite file name */
-
-  int grdsflg;               /* Indicate whether to put grads atrib.  */
-
-  int timelabflg;            /* Indicate whether to put cur time atrib.  */
-
-  int dbflg;                 /* Double buffer mode flag     */
-
-  int batflg;                /* Batch mode */
-
-  int numgrd,relnum;         /* Number of data objects held           */
-  int type[16];              /* Data type of each data object         */
-  union gadata result[16];   /* Pointers to held data objects         */
-  struct gaclct *clct[32];   /* Anchor for collection */
-  int clctnm[32];            /* Number of items collected */
-  int clcttp[32];            /* Varying dimension of collection */
-
-  int lastgx;                /* Last gx plotted */
-  int xdim, ydim;            /* Which dimensions on X and Y axis */
-                             /* Grid-to-world conversion info follows */
-
-  float (*xgr2ab) (float *, float);
-  float (*ygr2ab) (float *, float);
-  float (*xab2gr) (float *, float);
-  float (*yab2gr) (float *, float);
-  float *xgrval;
-  float *ygrval;
-  float *xabval;
-  float *yabval;
-
-  int impflg;                /* Implied run flag */
-  char *impnam;              /* Implided run script name */
-
-  int impcmd;                /* Implicit run */
-
-  int sig;                   /* User has signalled */
-
-  int ptflg;		     /* Pattern fill flag */
-  int ptopt;		     /* Pattern option: */
-			     /*		0, open  */
-			     /*		1, solid */
-			     /*		2, dot */
-			     /*		3, line  */
-  int ptden;		     /* Dot or line pattern density */
-  int ptang;		     /* Line pattern angle */
-
-  struct galats glats ;      /* LATS option struct */
-
-};
-
-
-
-/* GA status structure.  Contains necessary info about the scaling
-   and file structure in force.                                       */
-
-struct gastat {
-
-  struct gafile *pfi1;       /* Pointer to first gafile in chain      */
-
-  struct gafile *pfid;       /* Pointer to default gafile             */
-
-  int fnum;                  /* Default file number                   */
-
-  struct gadefn *pdf1;       /* Pointer to first define block         */
-
-  struct gaclct **pclct;     /* Pointer to the collection pointers    */
-
-  union gadata result;       /* Result goes here                      */
-
-  int type;                  /* Result type (grid or stn)             */
-
-  int idim,jdim;             /* Varying dimensions                    */
-
-  float dmin[3],dmax[3];     /* Range of absolute dimensions          */
-  struct dt tmin,tmax;
-
-};
-
-/* Description of a data file.                                        */
-
-/* This is to define the pointer added at the end of the gafile structure */
-/* -hoop, 95/07/10 and 95/11/10 */
-#if USESDF == 1
-#include "gasdf.h"
-#endif
-
-struct gafile {
-
-  struct gafile *pforw;      /* Forward pointer to next gafile block.
-                                List is anchored within gastat.       */
-
-  char name[256];            /* File name.                            */
-
-  char *tempname;            /* File name of open file (different with templates) */
-
-  char dnam[256];            /* Descriptor file name                  */
-
-  char *mnam;                /* Map(index) file name */
-
-  FILE *infile;              /* File pointer.                         */
-
-  int type;                  /* Type of file:  1 = grid
-                                               2 = simple station
-                                               3 = mapped station
-                                               4 = defined grid       */
-
-  char title[80];            /* Title -- describes the file.          */
-  float undef;               /* Global undefined value for this file  */
-  float ulow,uhi;            /* Undefined limits for SETMISS test     */
-
-  float *rbuf;               /* Buffer for file I/O equal in length
-                                to one grid row in the file, or equal
-                                in length to the size needed to hold
-                                the largest station report            */
-  char *pbuf;                /* Same as rbuf, for unpacking           */
-  char *bbuf;                /* Same as rbuf, for bit map I/O         */
-
-  int bswap;                 /* Byte swapping needed */
-
-  int mtype;                 /* Stn map file type                     */
-  int *tstrt;               /* Pointer to list length dnum[3] of
-                                start points of times in the file     */
-  int *tcnt;                /* Count of stns for assctd time         */
-  int stcnt;                /* Count of mapped stids when stn data
-                                and map file is type stidmap.         */
-  int stpos;                /* Position in map file of start of
-                                stid info for map file type stidmap.  */
-  FILE *mfile;               /* File pointer to stidmap file          */
-
-  int dnum[4];               /* Dimension sizes for this file.        */
-
-  int tlpflg;                /* Circular file flag                    */
-
-  int tlpst;                 /* Start time offset in circular file    */
-
-  int vnum;                  /* Number of variables.                  */
-
-  int ivnum;                 /* Number of level independent variables
-                                for station data file                 */
-
-  int lvnum;                 /* Number of level dependent variables
-                                for station data file                 */
-
-  struct gavar *pvar1;       /* Pointer to an array of structures.
-                                Each structure in the array has info
-                                about the specific variable.          */
-
-  int gsiz;                 /* Number of elements in a grid (x*y)    */
-                            /* This is for actual grid on disk,
-                               not psuedo grid (when pp in force) */
-
-  int tsiz;                 /* Number of elements in an entire time
-                                group (all variables at all levels
-                                for one time).                        */
-  int trecs;                /* Number of records (XY grids) per time
-                                group.                                */
-  int  fhdr;                 /* Number of bytes to ignore at file head*/
-
-  int wrap;                  /* The grid globally 'wraps' in X        */
-
-  int seqflg, yrflg, zrflg;  /* Format flags */
-
-  int ppflag;                /* Pre-projection type.
-                                0 = none
-                                1 = polar stereo
-                                2 = lambert conformal    */
-
-  int ppwrot;                /* Pre-projection wind rotation flag */
-
-  int ppisiz, ppjsiz;        /* Actual size of preprojected grid */
-
-  float ppvals[20];          /* Projection constants for pre-projected
-                                grids.  Values depend on projection. */
-
-  int *ppi[8];               /* Pointers to offsets for pre-projected
-                                grid interpolation */
-
-  float *ppf[8];             /* Pointers to interpolation constants
-                                for pre-projected grids */
-
-  float *ppw;                /* Pointer to wind rotation array */
-
-  float (*gr2ab[3]) (float *, float);
-                             /* Addresses of routines to do conversion
-                                from grid coordinates to absolute
-                                coordinates for X, Y, Z.  All Date/time
-                                conversions handled by gr2t.          */
-
-  float (*ab2gr[3]) (float *, float);
-                             /* Addresses of routines to do conversion
-                                from absolute coordinates to grid
-                                coordinates for X,Y,Z.  All date/time
-                                conversions handled by t2gr.          */
-
-  float *grvals[4];          /* Pointers to conversion information for
-                                grid-to-absolute conversion routines. */
-
-  float *abvals[4];          /* Pointers to conversion information for
-                                absolute-to-grid conversion routines. */
-
-  int linear[4];             /* Indicates if a dimension has a linear
-                                grid/absolute coord transformation
-                                (Time coordinate always linear).      */
-
-  int dimoff[4];             /* Dimension offsets for defined grids   */
-  int climo;                 /* Climatological Flag (defined grids)   */
-  int cysiz;                 /* Cycle size for climo grids            */
-
-  int idxflg;                /* File records are indexed */
-  int grbgrd;                /* GRIB Grid type */
-  struct gaindx *pindx;      /* Index Strucure if indexed file */
-
-  int tmplat;                /* File name template */
-  int *fnums;                /* File number for each time */
-  int fnumc;                 /* Current file number that is open */
-
-  int errcnt;                /* Current error count */
-  int errflg;                /* Current error flag */
-
-/*mf  mf*/
-  int  xyhdr;                /* Number of bytes to ignore at head of xy grids*/
-  int  thdr;                 /* Number of bytes to ignore at head of time chunk*/
-  int calendar;              /* Support for 365-day calendars */
-  int cray_ieee;             /* Support 32-bit IEEE data on cray */
-/*mf  mf*/
-
-
-/* Use of this with the ifdef has implications for checkpoint/restart, */
-/* as it changes the size of the gafile structure.  -hoop 95/07/10 */
-#if USESDF == 1
-  IO_STD *sdf_ptr ;		/* Pointer to SDF file structure */
-#endif
-
-};
-
-
-/* Structure that describes a grid (requestor or descriptor block).  */
-
-struct gagrid {
-
-  float *grid;               /* Address of the grid.                 */
-
-  struct gafile *pfile;      /* Address of the associated gafile
-                                structure to get the data from
-                                (requestor block only)               */
-
-  float undef;               /* Undefined value for this grid.       */
-
-  float rmin,rmax;           /* Minimum/Maximum grid value
-                                (rmin is set to the grid value when
-                                isiz=jsiz=1.  *grid points to here.) */
-
-  int isiz,jsiz;             /* isiz = number of elements per row.
-                                jsiz = number of rows.               */
-
-  int idim,jdim;             /* Dimension of rows and columns.
-                                 -1 = This dimension does not vary
-                                  1 = X dimension (usually longitude)
-                                  2 = Y dimension (usually lattitude)
-                                  3 = Z dimension (usually pressure)
-                                  4 = Time
-
-                                If both dimensions are -1, then the
-                                grid has one value, which will be
-                                placed in rmin.                      */
-
-  int iwrld, jwrld;          /* World coordinates valid?   */
-
-  int dimmin[4],dimmax[4];   /* Dimension limits for each dimension
-                                (X,Y,Z,T) in grid units.             */
-
-  struct gavar *pvar;        /* Pointer to the structure with info
-                                on this particular variable.  If
-                                NULL, this grid is the result of
-                                an expression evaluation where the
-                                variable type is unkown.             */
-
-  char *exprsn;              /* If grid is a 'final' result, this
-                                will point to a character string that
-                                contains the original expression.    */
-
-  int alocf;                 /* Scaling info allocated for us only */
-
-  float (*igrab) (float *, float);
-  float (*jgrab) (float *, float);
-                             /* Addresses of routines to perform
-                                grid-to-absolute coordinate
-                                transforms for this grid's i and j
-                                dimensions (unless i or j = 3).      */
-
-  float (*iabgr) (float *, float);
-  float (*jabgr) (float *, float);
-                             /* Absolute to grid conversion routines */
-
-  float *ivals, *jvals;      /* Pointers to conversion info for the
-                                grid to abs conversion routines      */
-  float *iavals, *javals;    /* Conversion info for abs to grid      */
-
-  int ilinr,jlinr;           /* Indicates if linear transformation   */
-
-
-};
-
-/* Structure that describes a report header in a stn file */
-
-struct rpthdr {
-  char id[8];                     /* Character station id           */
-  float lat;                      /* Latitude of report             */
-  float lon;                      /* Longitude of report            */
-  float t;                        /* Time in relative grid units    */
-  int  nlev;                      /* Number of levels following     */
-  int flag;                       /* Level independent var set flag */
-};
-
-/* Structure that describes a stid info block within a stidmap file */
-
-struct stninf {
-  char stid[8];
-  int offset;
-  int rcnt;
-};
-
-/* Structure that describes a single report                          */
-
-struct garpt {
-
-  struct garpt *rpt;         /* Address of next report               */
-
-  char stid[8];              /* Station id                           */
-
-  float lat,lon,lev,tim;     /* Location of station                  */
-
-  int work;                  /* Work area                            */
-
-  float val;                 /* Value of variable                    */
-
-};
-
-/* Structure that describes a collection of station reports.         */
-
-struct gastn {
-
-  struct garpt *rpt;         /* Address of start of link list        */
-
-  int rnum;                  /* Number of reports.                   */
-
-  struct garpt *blks[BLKNUM];    /* ptrs to memory holding rpts      */
-
-  struct gafile *pfi;        /* Address of the associated gafile
-                                structure to get the data from
-                                (requestor block only)               */
-
-  float undef;               /* Undefined value for this data.       */
-
-  int idim,jdim;             /* Varying dimensions for this data
-                                 -1 = This dimension does not vary
-                                  1 = X dimension (longitude)
-                                  2 = Y dimension (lattitude)
-                                  3 = Z dimension (pressure)
-                                  4 = Time                           */
-
-  float dmin[3],dmax[3];     /* Dimension limits for each dimension
-                                 (X,Y,Z) in world coords.
-                                 Non-varying dimensions can have
-                                 limits in this structure.           */
-
-  int rflag;                 /* Get stations within specified radius in
-                                degrees of fixed lat and lon         */
-  float radius;              /* Radius */
-
-  int sflag;                 /* Get specific station  */
-  char stid[8];              /* Station id to get */
-
-  int tmin,tmax;             /* Grid limits of time */
-
-  float *tvals;              /* Pointer to conversion info for the
-                                time conversion routines.            */
-
-  struct gavar *pvar;        /* Pointer to the structure with info
-                                on this particular variable.  If
-                                NULL, this grid is the result of
-                                an expression evaluation where the
-                                variable type is unkown.             */
-
-  struct garpt **prev;       /* Used for allocating rpt structures   */
-  struct garpt *crpt;
-  int rptcnt,blkcnt;
-
-};
-
-/* Structure that describes a variable in a file.  These structures
-   are built in arrays that are hung off of gafile structures.       */
-
-
-struct gavar {
-
-  char varnm[128];            /* Variable name.                       */
-
-  char abbrv[16];            /* Variable abbreviation.               */
-
-  int units[4];              /* Units indicator.                     */
-
-  int offset;               /* Offset in grid elements of the start
-                                of this variable within a time group
-                                within this file.                    */
-
-  int recoff;                /* Record (XY grid) offset of the start
-                                of this variable within a time group */
-
-  int levels;                /* Number of levels for this variable.
-                                0 is special and indiates one grid is
-                                available for the surface only.      */
-/*mf
-
-  new variable attribute to handles:
-
-  dfrm:
-
-  1-byte
-  int dat
-
-  var_t: variable t transform
-  var_z: variable z transform
-  y_x  : x-y transform
-
-mf*/
-
-  int dfrm;                  /* format  type indicator
-				1 - unsigned char
-				4 - int
-			     */
-
-  int var_t ;
-  int var_z ;
-  int y_x ;
-
-};
-
-/* Structure that describes a function call.                         */
-
-struct gafunc {
-
-  int argnum;                /* Number of arguments found by fncprs  */
-
-  char *argpnt[20];          /* Pointers to the argument strings     */
-
-  char buff[1000];           /* Argument string buffer               */
-
-};
-
-/* Structure that describes a user defined function */
-
-struct gaufb {
-  struct gaufb *ufb;  /* Forward pointer */
-  char name[8];       /* Function name   */
-  int alo,ahi;        /* Limits on number of args */
-  int atype[8];       /* Types of args. 0=expr,1=float,2=int,3=char */
-  int sflg;           /* Sequential or direct */
-  char *fname;        /* Name of user executable */
-  char *oname;        /* File name for data transfer to user */
-  char *iname;        /* File name for data transfer from user */
-};
-
-/* Structure that describes a defined grid */
-
-struct gadefn {
-
-  struct gadefn *pforw;      /* Linked list pointer                  */
-
-  struct gafile *pfi;        /* File Structure containing the data   */
-
-  char abbrv[20];            /* Abbreviation assigned to this        */
-
-};
-
-/* Stack to evaluate the expression.  The stack consists of an
-   array of structures.                                               */
-
-struct smem {
-  int type;        /* Entry type: -2 stn,-1 grid,1=op,2='(',3=')'    */
-  union sobj {
-    int op;        /* Operator: 0=*, 1=/, 2=+                        */
-    struct gagrid *pgr; /* Operand (grid or stn)                      */
-    struct gastn *stn;
-  } obj;
-};
-
-/* Index structure, for when the records in a data file are indexed.
-   The indexing file will contain this structure at the front, followed
-   by the specified number of header and indexing values.  These
-   header and indexing values are file format specific. */
-
-struct gaindx {
-  int type;                 /* Indexing file type */
-  int hinum;                /* Number of ints in header */
-  int hfnum;                /* Number of floats in header */
-  int intnum;               /* Number of index ints (long) */
-  int fltnum;               /* Number of index floats */
-  int *hipnt;               /* Pointer to header int values */
-  float *hfpnt;              /* Pointer to header float values */
-  int *intpnt;              /* Pointer to int index values */
-  float *fltpnt;             /* Pointer to float index values */
-} ;
-
-
- /***********************\
- *  Function Prototypes  *
- \***********************/
-
-/* Functions in GRADS.C */
-
-void gasig (int);
-int gaqsig (void);
-
-/* Functions in GAUSER:
-    gacmd:  Process a user command
-    gacln:  Reset variables
-    gaenab: Process an enable command
-    gadraw: Process a draw command
-    gadef:  Process a define command
-    gaudef: Process undefine command
-    gamodf: Modify defined grid
-    gaqury: Process a query command
-    gahelp: Process a help command
-    gaset:  Process the SET command
-    gadspl: Process a display command
-    gapars: Parse a compound expression for gadspl
-    gagrel: Release all held grids
-    gaopen: Open a data file from a descriptor file
-    cleanup: Clean up an input record
-    gaprnt: Process output messages
-    gagsdo: Execute command for a script
-    getpst: Allocate and initialize a gastat block              */
-
-void gainit (void);
-
-int gacmd (char *, struct gacmn *, int);
-void gacln (struct gacmn *,int);
-int gaenab (char *, struct gacmn *);
-int gadraw (char *, struct gacmn *);
-int gardrw (char *, struct gacmn *);
-int gaexec (char *, struct gacmn *);
-char *gagsdo (char *, int *);
-int gadef (char *, struct gacmn *, int);
-int gaudef (char *, struct gacmn *);
-int gamodf (char *, struct gacmn *);
-int gaqdef (char *, struct gacmn *, int);
-int gaqury (char *, char *, struct gacmn *);
-int gahelp (char *, struct gacmn *);
-int gaset (char *, char *, struct gacmn *);
-int gacoll (char *, struct gacmn *);
-int gadspl (char *, struct gacmn *);
-int gaspcl (char *, struct gacmn *);
-int gapars (char *, struct gastat *, struct gacmn *) ;
-void gagrel (struct gacmn *);
-int gaopen (char *, struct gacmn *);
-void cleanup (char *);
-struct gastat *getpst (struct gacmn *);
-void gaprnt (int, char *);
-
-int gaddes (char *, struct gafile *, int);
-int deflin (char *, struct gafile *, int, int);
-int deflev (char *, char *, struct gafile *, int);
-struct gafile *getpfi (void);
-
-/* Functions in GAEXPR:
-    gaexpr: Evaluate an expression by creating a stack
-    eval:   Process the expression stack
-    gaoper: Perforam operation between two operands
-    gagrop: Perform a grid operation
-    gastop: Perform a station operation
-    gascop: Perform an op between a constant and stations
-    gagrvl: Put a constant in grid format
-    varprs: Parse a variable in the expression
-    getdfn: Search defined grid chain for a predifined grid
-    gagchk: Check validity of operation between two grids
-    stnvar: Handle specialized parsing of stn variable                */
-
-int gaexpr (char *, struct gastat *) ;
-int eval (int, struct smem *, int *);
-int gaoper (struct smem *, int, int, int, int);
-struct gagrid *gagrop (struct gagrid *, struct gagrid *, int, int);
-struct gastn *gastop (struct gastn *, struct gastn *, int, int);
-struct gastn *gascop (struct gastn *, float, int, int);
-struct gagrid *gagrvl (float);
-char *varprs (char *, struct gastat *) ;
-int gagchk (struct gagrid *, struct gagrid *, int);
-struct gafile *getdfn (char *, struct gastat *);
-char *stnvar (char *, char *, struct gafile *, struct gavar *,
-              struct gastat *);
-
-/* Functions in GAFUNC:
-    rtnprs: Parse and execute a function call
-    gafopr: Perform opration for two-op function call
-    gafdef: Read user function definition table
-                                                                     */
-
-char *rtnprs (char *, char *, struct gastat *) ;
-int gafopr (struct gastat *, struct gastat *, int );
-void gafdef (void);
-
-/* Functions in GAIO:
-    gaggrd: Get a grid from a data file
-    gagrow: Get a row of data, possibly wrapped, from the file
-    gafcyx: Calculate file position of an item of data with x-y transposed
-    gafcor: Calculate file position of an item of data
-    garrow: Get an item or items from the data file
-    gagstn: Get a collection of stations
-    garead:
-    gardyx: garead for x-y transposed
-    gaglvs: Get appropriate var and levs from rpt
-    gaarpt: Allocate report block
-    gasstn: Seek to location in station file
-    garstn: Read station data
-    gacstn: Cache a station report
-    gagdef: Get grid from defined variable
-    clicyc: Adjust for cyclic climatological defined variable
-    gagpre: Predefined variable access         */
-
-int gaggrd (struct gagrid *);
-int gagrow (float *, int *);
-int gafcor (int, int, int, int);
-int gafcyx (int, int, int, int);
-int garrow (int, int, int, int, int, float *);
-int garead (int, int, float *);
-int gardyx (int, int, float *);
-int gagstn (struct gastn *);
-int gaglvs (int, struct rpthdr *, struct gastn *);
-struct garpt *gaarpt (struct gastn *);
-int gasstn (int);
-int garstn (int, char *, int);
-void gacstn (char *, char *, int, int);
-void gagcst (int, char *);
-int gagdef (void);
-void clicyc(int *);
-int gagpre (void);
-int gairow (int, int, int, int, int, int, float *);
-int gaird (int, int, int, int, int, int);
-int gaprow (int, int, int, int, int, int, float *);
-int gaopfn (int,int *);
-int gappcn (struct gafile *, int, int);
-void w3fb04 (float, float, float, float, float *, float *);
-void ll2lc (float *, float, float, float *, float *);
-void gaiomg (void);
-
-/* Functions in GAGX:
-    gagx:   Initialize graphics interface
-    gaplot: Generalized graphics output routine
-    gas1d:  Set up scaling for a 1-D grid
-    gas2d:  Set up scaling for a 2-D grid
-    gagrph: Plot line graph
-    gacntr: Plot contour plot
-    gastrm: Plot streamline plot
-    gafgrd: Fill grid boxes
-    gashad: Plot shaded plot
-    gavect: Plot vector feild
-    gascat: Plot scatter plot from two grids
-    gaarrw: Plot individual arrow
-    gaplvl: Plot grid values
-    gawmap: Plot appropriate map
-    gacsel: Select a contour interval
-    gaaxis: Generate proper axis labels for axes
-    galnch: Convert a longitude value to character form
-    galtch: Convert a latitude value to character form
-    gaconv: Perform grid level scaling
-    gatinc: Get date/time increment for time axis
-    gasfil: Shade fill a grid sqaure
-    trfill: Fill half a grid square (triangle)
-    gagfil: Fill grids with shaded ranges
-                                                                      */
-void gagx (struct gacmn *);
-void gaplot (struct gacmn *);
-void gas1d (struct gacmn *, float, float, int, int, struct gagrid *,
-             struct gastn *);
-void gas2d (struct gacmn *, struct gagrid *, int);
-void gagrph (struct gacmn *,int);
-void gastts (struct gacmn *);
-void galfil (struct gacmn *);
-void lfint (float, float, float, float, float *, float *);
-void lfout (float *, float *, float *, float *, int, int);
-void gacntr (struct gacmn *, int);
-void gastrm (struct gacmn *);
-void gashad (struct gacmn *);
-void gavect (struct gacmn *, int);
-void gascat (struct gacmn *);
-void gafgrd (struct gacmn *);
-void gafwrt (struct gacmn *);
-int  galats (struct gacmn *, int, int); /*mf --- GrADS-lats interface mf*/
-void gaarrw (float, float, float, float, float);
-void gaplvl (struct gacmn *);
-void gamscl (struct gacmn *);
-void gawmap (struct gacmn *, int);
-void gacsel (float, float, float *, float *, float *);
-void gaaxis (int, struct gacmn *, int);
-int galnch (float, char *);
-int galtch (float, char *);
-void gaconv (float, float, float *, float *);
-void gagexp (float *, int, int, float *, int, int, float);
-void gaglin (float *, int, int, float *, int, int, float);
-struct gagrid *gaflip (struct gagrid *, struct gacmn *);
-int gatinc (struct gacmn *, struct dt *, struct dt *);
-void gasfil (int, int, float, float, float, float, float, float, float, float);
-void trfill (float, float, float, float, float, float, float, float,
-     float, int, int);
-void gafstn (struct gacmn *);
-void gapstn (struct gacmn *);
-void gawsym (struct gacmn *);
-void gabarb (float, float, float, float, float, float, float, int);
-void gapmdl (struct gacmn *);
-void gasmdl (struct gacmn *, struct garpt *, float *, float *);
-float wndexit (float, float, float, float, float, float *,
-                                   float *, float *, float *);
-void gapprf (struct gacmn *);
-void gatser (struct gacmn *);
-void gampax (struct gacmn *);
-void wxsym (int, float, float, float, int, int *);
-void wxprim (int, float, float, float);
-void gagsav (int, struct gacmn *, struct gagrid *);
-void galnx (float, float, float *, float *);
-void galny (float, float, float *, float *);
-void gaalnx (float, float, float *, float *);
-void gaalny (float, float, float *, float *);
-void gagfil ( float *, int, int, float *, int *, int, float);
-void gafram (struct gacmn *);
-void gaaxpl (struct gacmn *, int, int);
-void gaselc (struct gacmn *, float, float);
-int gashdc (struct gacmn *, float);
-
-/* Functions in GAUTIL:
-    nxtcmd: Get next command from the user
-    timadd: Add an increment to a time
-    timsub: Subtract an increment from a time
-    t2gr:   Convert an absolute time to a grid value
-    gr2t:   Convert a grid value to an absolute time
-    timdif: Calculate difference between two times
-    qleap:  Determine if a year is a leap year
-    adtprs: Parse an absolute date/time expression
-    rdtprs: Parse a relative date/time expression
-    gaedit: Convert from float to character
-    cmpwrd: Compare two character strings
-    nxtwrd: Point to the next blank delimited word in a string
-    liconv: Linear conversion routine
-    gr2lev: Discrete level scaling routine
-    lev2gr: Discrete level scaling routine
-    intprs: Parse an integer expression
-    valprs: Parse a floating number expression
-    dimprs: Parse a dimension expression
-    lowcas: Convert a string to lower case
-    uppcas: Convert a string to upper case
-    getstr: Move part of a string to another string
-    getwrd: Get next word in a string as a string
-    gamnmx: Get minimum and maximum grid value
-    garemb: Remove blanks from and terminate a string
-    gagaus: Set up scaling for gaussian grid (R40)
-    gags30: Set up scaling for gaussian grid (R30)
-    gags20: Set up scaling for gaussian grid (R20)
-    gags15: Set up scaling for Ocean Grid (MOM32)
-    gamo32: Set up scaling for gaussian grid (R15)
-    gat2ch: Date/Time to character form
-    cmpch:  Compare two strings of specified length
-    gafree: Free stuff hung off pst block
-    gagfre: Free gagrid block and associated data
-    gasfre: Free gastn block and associated data
-    gagbb:  Unpack bit value
-    gagby:  Unpack byte value
-    gabswp: Byte swap data values
-    gahswp: Byte swap report header
-    flt2ibm: convert float to ibm float (ebisuzaki)
-    ibm2flt: convert ibm float to float (ebisuzaki)
-                                                                      */
-
-int nxtcmd (char *, char *);
-void timadd (struct dt *, struct dt *);
-void timsub (struct dt *, struct dt *);
-float t2gr (float *, struct dt *);
-void gr2t (float *, float, struct dt *);
-int timdif (struct dt *, struct dt *);
-int qleap (int);
-char *adtprs (char *, struct dt *, struct dt *);
-char *rdtprs (char *, struct dt *);
-int gaedit (float, char *, int);
-int cmpwrd (char *, char *);
-char *nxtwrd (char *);
-float liconv (float *, float);
-float gr2lev (float *, float);
-float lev2gr (float *, float);
-char *intprs (char *, int *);
-char *valprs (char *, float *);
-char *dimprs (char *, struct gastat *, struct gafile *,
-              int *, float *, int, int *);
-void lowcas (char *);
-void uppcas (char *);
-void getstr (char *, char *, int);
-void getwrd (char *, char *, int);
-void gamnmx (struct gagrid *);
-int garemb (char *);
-float *gagaus(int,int);
-float *gags30(int,int);
-float *gags20(int,int);
-float *gags15(int,int);
-float *gamo32(int,int);
-int gat2ch (struct dt *, int, char *);
-int cmpch (char *, char *, int);
-void gafree (struct gastat *);
-void gagfre (struct gagrid *);
-void gasfre (struct gastn *);
-void fnmexp (char *, char *, char *);
-int gagbb (char *, int, int);
-int gagby (char *, int, int);
-char *gafndt (char *, struct dt *, struct dt *, float *);
-void gabswp (float *, int);
-void gahswp (struct rpthdr *);
-int dayweek (struct dt *);
-
-/*mf -- Wesley Ebisuzaki routines -- mf*/
-
-int flt2ibm(float x, unsigned char *ibm);
-float ibm2flt(unsigned char *ibm);
-float ieee2flt(unsigned char *);
-int flt2ieee(float , unsigned char *);
-int be_int2int(unsigned char *) ;
-
-
-
-/* Functions in GASRCP:
-    gsfile: run a script file used in gauser.c
-*/
-
-char *gsfile (char *, int *, int);
diff --git a/include/cdTime/gx.h b/include/cdTime/gx.h
deleted file mode 100644
index a1670db..0000000
--- a/include/cdTime/gx.h
+++ /dev/null
@@ -1,442 +0,0 @@
-
-/* Copyright (c) 1988,1989,1990,1991 by Brian Doty
-   See file COPYRIGHT for complete rights and liability information. */
-
-void *galloc(int,char *);
-void gree();
-void glook();
-
-/* Installation options for the GX package. */
-
-/* HBUFSZ is the size of the metafile output buffer in
-   number of short integers.  The metafile buffer should be as
-   large as is convenient for the target system.  Frames larger
-   than the buffer will get bufferred into the meta file on disk,
-   when BUFOPT is 1.  Otherwise multiple buffers of size HBUFSZ
-   will be allocated as needed. */
-
-#define HBUFSZ 100000L
-#define BUFOPT 0
-
-/*------------------------------------------------------------------------------
-  New projections:    Mollweide Projection (mollweide)
-                      Orthographic Projection (orthogr)
-
-  Changes in GrADS C source code files:
-                      gxwmap.c
-                      gagx.c
-                      gauser.c
-                      gx.h
-   DKRZ
-     10.08.95   Karin Meier (karin.meier at dkrz.de)
-
-------------------------------------------------------------------------------*/
-
-#define pi 3.14159265358979
-static float lomin, lomax, lamin, lamax;
-
-
-/* Default directory containing the stroke and map data sets.
-   User can override this default via setenv GADDIR */
-
-static char *datad = "/usr/local/lib/grads";
-
-/* Option flag.  If 0, map data set is only read once into a
-   dynamically allocated memory area.  The memory is held onto
-   for the next call (about 35K).  If 1, the memory is allocated for
-   each call and the map data set is read each time.             */
-/* Lowres map only */
-
-#define MAPOPT 0
-
-/* Spacing to use for shading to get a 'solid' fill when drawing
-   lines side by side at lineweight 3.  */
-
-#define SDIFF 0.005
-
-/* Structure for setting up map projections.  Used to call
-   map projection routines.                                          */
-
-struct mapprj {
-  float lnmn,lnmx,ltmn,ltmx;        /* Lat,lon limits for projections */
-  float lnref;                      /* Reference longitude            */
-  float ltref1,ltref2;              /* Reference latitudes            */
-  float xmn,xmx,ymn,ymx;            /* Put map in this page area      */
-  float axmn,axmx,aymn,aymx;        /* Actual page area used by proj. */
-};
-
-/* Structure for holding info on displayed widgets. */
-
-struct gobj {
-  int type;                 /* Basic type of object. -1 - end of list;
-                                0 - none; 1 - btn; 2 - rbb; 3 = popm */
-  int i1,i2,j1,j2;          /* Extent of object */
-  int mb;                   /* Mouse button that invokes object */
-  union tobj {
-    struct gbtn *btn;       /* Pointer to button struct */
-    struct grbb *rbb;       /* Pointer to rubber-band struct */
-    struct gdmu *dmu;       /* Pointer to drop menu struct */
-  } iob;
-};
-
-/* Structure for holding information about GrADS button widgets */
-/* Also used for popmenus, which display on the screen the same
-   as buttons */
-
-struct gbtn {
-  int num;                       /* Button number (-1, unset) */
-  float x,y,w,h;                 /* Button location, size   */
-  int ilo,ihi,jlo,jhi;
-  int fc,bc,oc1,oc2,ftc,btc,otc1,otc2;  /* Colors           */
-  int thk;                       /* Thickness of outline    */
-  int state;                     /* Toggled or not?         */
-  int len;                       /* Length of string        */
-  char *ch;                      /* String content of btn   */
-};
-
-/* Structure holds info on rubber-band regions */
-
-struct grbb {
-  int num;                       /* Region number (-1, unset) */
-  int mb;                        /* Mouse button specific   */
-  float xlo,xhi,ylo,yhi;         /* Rubber band region      */
-  int type;                      /* 0 for box, 1 for line   */
-};
-
-/* Structure for info on drop menus */
-
-struct gdmu {
-  int num;                       /* Menu number             */
-  int casc;                      /* Anchored?               */
-  float x,y,w,h;                 /* Header button loc,size  */
-  int ilo,ihi,jlo,jhi;
-  int fc,bc,oc1,oc2;             /* Colors of base          */
-  int tfc,tbc,toc1,toc2;         /* Colors of selected base */
-  int bfc,bbc,boc1,boc2;         /* Colors of box           */
-  int soc1,soc2;                 /* Colors of selected item */
-  int thk;                       /* Thickness of outlines   */
-  int len;                       /* Length of string        */
-  char *ch;                      /* String content of menu  */
-};
-
-
-/* GrADS event queue. This queue is built as the mouse button
-   is clicked, and is cleared by a GrADS clear event.  Events
-   are removed from the queue via the 'q pos' command.  */
-
-struct gevent {
-  struct gevent *forw;   /* Forward pointer */
-  float x, y;            /* X and Y position of cursor */
-  int mbtn;              /* Mouse button pressed */
-  int type;              /* Type of event */
-  int info[10];          /* Integer info about event */
-  float rinfo[4];        /* Floating point info about event */
-};
-
-/* Structure for passing information on map plotting
-   options */
-
-struct mapopt {
-  int dcol,dstl,dthk;    /* Default color, style, thickness */
-  int *mcol,*mstl,*mthk;  /* Arrays of map line attributes */
-  float lnmin,lnmax,ltmin,ltmax;  /* Plot bounds */
-  char *mpdset;          /* Map data set name */
-};
-
-/* Function prototypes for GX library routines  */
-
-/* Functions in gxdev:
-   gxdbgn: Initialize hardware
-   gxdend: Terminate hardware
-   gxdfrm: New frame
-   gxdcol: New color
-   gxadcl: Assign rgb color
-   gxdwid: New line width
-   gxdmov: Move pen
-   gxddrw: Draw
-   gxdrec: Filled rectangle
-   gxdsgl: Set single buffer mode
-   gxddbl: Set doulbe buffer mode
-   gxdswp: Swap buffers
-   gxqfil: Query availability of hardware polygon fill
-   gxdfil: Hardware Polygon fill
-   gxdxsz: Resize X Window (X only)
-   gxdbtn: Get pointer pos at mouse btn press
-   gxgrey: Set grey scale
-   gxdbck: Set hardware background/foreground
-   gxrswd: Reset Widget Structures
-   gxcpwd: Copy widgets on swap in double buffer mode
-   gxevbn: Handle button press event
-   gxevrb: Handle rubber-band event
-   gxdptn: Set fill pattern
-                                                           */
-
-void gxdbgn (float, float);
-void gxdend (void);
-void gxdfrm (int);
-void gxdcol (int);
-void gxdacl (int, int, int, int);
-void gxdwid (int);
-void gxdmov (float, float);
-void gxddrw (float, float);
-void gxdrec (float, float, float, float);
-void gxdsgl (void);
-void gxdbl (void);
-void gxdswp (void);
-int  gxqfil (void);
-void gxdfil (float *, int);
-void gxdfl2 (float *, int);
-void gxdxsz (int, int);
-void gxgrey (int);
-void gxdbck (int);
-int gxdeve (int);
-void gxdbtn (int, float *, float *, int *, int *, int *, float *);
-void gxdpbn (int, struct gbtn *, int, int, int);
-void gxdrmu (int, struct gdmu *, int, int);
-void gxdsfn (void);
-void gxdtxt (char *, float, float);
-void gxdcf (void);
-int gxdfsw (char *, int, int);
-void gxdrdw (void);
-void gxrdrw (int);
-void gxrswd (int);
-void gxcpwd (void);
-void gxevbn (struct gevent *, int);
-void gxevrb (struct gevent *, int, int, int);
-int gxevdm (struct gevent *, int, int, int);
-int gxpopdm(struct gdmu *, int, int, int);
-void gxdrbb (int, int, float, float, float, float,int);
-char *gxdlg (char *);
-void gxdptn (int, int, int);
-void gxdssv (int);
-void gxdssh (int);
-void gxdsfr (int);
-
-/* Routines in gxsubs:
-   gxstrt: Initialize graphics output
-   gxend:  Terminate graphics output
-   gxfrme: Start new frame
-   gxcolr: Set color attribute
-   gxacol: Assign new rgb to color number from 16-99
-   gxbckg: Set background color
-   gxqbck: Query background color
-   gxwide: Set line width attribute
-   gxmove: Move to X, Y
-   gxdraw: Draw solid line to X, Y using current color and linewidth
-   gxstyl: Set linestyle
-   gxplot: Move or draw using linestyles
-   gxclip: Set clipping region
-   gxchin: Initialize stroke font
-   gxchpl: Draw character(s)
-   gxtitl: Draw centered title
-   gxvpag: Set up virtual page
-   gxvcon: Do virtual page scaling
-   gxscal: Set up level 1 (linear) scaling
-   gxproj: Set up level 2 (projection) scaling
-   gxgrid: Set up level 3 (grid) scaling
-   gxback: Set up level 1 to level 2 back transform
-   gxconv: Convert coordinates to level 0 (hardware)
-   gxxy2w: Convert level 0 to level 2
-   gxcord: Convert array of coordinates to level 0
-   gxrset: Reset projection or grid level scaling
-   gxrecf: Draw filled rectangle
-   gxqclr: Query current color value
-   gxqstl: Query current linestyle value
-   gxmark: Draw marker
-   gxfill: Polygon fill
-   bdterp: Clipping Boundry Interpolation
-   gxgsym: Get env var
-   gxgnam: Get full path name
-   gxptrn: Set fill pattern
-                                                                */
-
-void gxstrt (float, float,int);
-void gxend (void);
-void gxfrme (int);
-void gxsfrm (void);
-void gxcolr (int);
-void gxacol (int, int, int, int);
-void gxbckg (int);
-int gxqbck (void);
-void gxwide (int);
-void gxmove (float, float);
-void gxdraw (float, float);
-void gxstyl (int);
-void gxplot (float, float, int);
-void gxclip (float, float, float, float);
-void gxtitl (char *, float, float, float, float, float);
-void gxvpag (float, float, float, float, float, float);
-void gxvcon (float, float, float *, float *);
-void gxppvp (float, float, float *, float *);
-void gxscal (float, float, float, float, float, float, float, float);
-void gxproj ( void (*) (float, float, float*, float*) );
-void gxgrid ( void (*) (float, float, float*, float*) );
-void gxback ( void (*) (float, float, float*, float*) );
-void gxconv (float, float, float *, float *, int);
-void gxxy2w (float, float, float *, float *);
-void gxgrmp (float, float, float *, float *);
-void gxcord (float *, int, int);
-void gxpoly (float *, int, int);
-void gxrset (int);
-void gxrecf (float, float, float, float);
-int gxqclr (void);
-int gxqstl (void);
-void gxmark (int, float, float, float);
-void gxfill (float *, int);
-void bdterp (float, float, float, float, float *, float *);
-char *gxgsym(char *);
-char *gxgnam(char *);
-void gxptrn (int, int, int);
-
-/* Gxmeta routines handle graphics buffering and metafile output.
-   Routines in gxmeta:
-   gxhopt: Specify buffering option before open
-   gxhnew: Buffering initialization on startup
-   gxhbgn: Enable hardcopy (metafile) output
-   hout0:  Buffer 0 arg metafile command
-   hout1:  Buffer one arg metafile command
-   hout2:  Buffer two arg metafile command
-   hout4:  Buffer four arg metafile command
-   hout2i: Buffer two arg int metafile command
-   hout3i: Buffer three arg int metafile command
-   hout4i: Buffer four arg int metafile command
-   hfull:  Deal with full metafile memory buffer
-   gxhprt: Handle print command (output to metafile)
-   gxhwri: Write buffer to metafile
-   gxhend: Close output metafile
-   gxhfrm: Handle new frame action
-   gxhdrw: Handle redraw operation
-                                           */
-
-void gxhopt (int);
-void gxhnew (float, float);
-int gxhbgn (char *);
-void hout0 (int);
-void hout1 (int, int);
-void hout2 (int, float, float);
-void hout4 (int, float, float, float, float);
-void hout2i (int, int, int);
-void hout3i (int, int, int, int);
-void hout4i (int, int, int, int, int);
-void hfull (void);
-void gxhprt (void);
-int gxhwri (void *, int);
-void gxhend (void);
-void gxhfrm (int);
-void gxhdrw (int);
-
-/* Routines in gxchpl:
-   gxchii: Initialize character plotting
-   gxchdf: Set default font
-   gxchpl: Plot character string
-   gxchln: Determine length (in plotting units) of a string
-   gxchgc: Get character info given character and font
-   gxchrd: Read in a font
-                            */
-void gxchii (void);
-void gxchdf (int);
-void gxchpl (char *, int, float, float, float, float, float);
-int gxchln (char *, int, float, float *);
-char *gxchgc (int, int, int *);
-int gxchrd (int);
-
-/* Routine in gxcntr:
-   gxclmn: Specify minimum distance between labels
-   gxclev: Plot contour at specified value
-   gxcflw: Follow a contour segment
-   gxcspl: Spline fit a contour segment
-   gxclab: Draw buffered contour labels.
-   pathln: Find shortest col path through grid box
-   gxcrel: Release storage used by the contouring system
-                                                        */
-void gxclmn (float);
-void gxclev (float *, int, int, int, int, int, int,
-                                    float, float, char *, int, int);
-void gxcflw (int, int, int, int);
-void gxcspl (void);
-void gxclab (float,int,int);
-int pathln (float, float, float, float);
-void gxcrel (void);
-
-/* Routines in gxshad -- color filled contour routine:
-
-   gxshad -- do color filled contours
-   gxsflw -- Follow shade area boundries
-   spathl -- Calculate col path lengths
-   undcol -- Determine undefined-grid-side col characteristics
-   putxy  -- Buffer current coordinate
-   shdcmp -- Compress contour line
-   shdmax -- Determine max or min interior
-                                                                  */
-void gxshad ( float *, int, int, float *, int *, int, float);
-int gxsflw (int, int, int);
-int spathl (float, float, float, float);
-int undcol (int, int);
-int putxy (float, float);
-void shdcmp (void);
-int shdmax (void);
-
-/* routines in gxstrm:  gxstrm (do streamlines) */
-
-void gxstrm (float *, float *, float *, int, int, float, float, float,
-   int, float *, int *, int, int);
-void strmar (float, float, float, float);
-int gxshdc (float *, int *, int, float);
-
-/* Routines in gxwmap:
-   gxwmap: Draw world map
-   gxnmap: Draw medium res n.am. map
-   gxmout: Output section of world map
-   gxnste: Set up projection scaling for north polar stereographic
-   gxnpst: Scaling routine for north polar stereographic projection
-   gxaarw: Direction adjustment for map projection
-   gxgmap: Medium and hi res map drawer
-   gxhqpt: Plot quadrant of medium or hi res map
-                                                                  */
-
-void gxdmap (struct mapopt *);
-void gxwmap (float, float, float, float);
-void gxnmap (float, float, float, float);
-void gxmout (int, float, float, float, float, float);
-int  gxltln (struct mapprj *);
-int  gxscld (struct mapprj *, int, int);
-int  gxnste (struct mapprj *);
-void gxnpst (float, float, float *, float *);
-void gxnrev (float, float, float *, float *);
-int  gxsste (struct mapprj *);
-void gxspst (float, float, float *, float *);
-void gxsrev (float, float, float *, float *);
-float gxaarw (float, float);
-void gxgmap (int, int, float, float, float, float);
-void gxhqpt (int, int, int, float, float, float, float, float);
-int  gxrobi (struct mapprj *);
-void gxrobp (float, float, float *, float *);
-void gxrobb (float, float, float *, float *);
-/*---- DKRZ: appending new projections ---  10.08.95 Karin Meier
-
-    gxmoll: Setup scaling Mollweide projection
-    gxortg: Setup scaling Orthographic projection
-
----- DKRZ: end of new projections ---  karin.meier at dkrz.de ----*/
-
-/*---- Mollweide Projection ----*/
-
-int  gxmoll (struct mapprj *);
-void gxmollp (float, float, float *, float *);
-void gxmollb (float, float, float *, float *);
-
-/*---- Orthographic Projection ----*/
-
-int  gxortg (struct mapprj *);
-void gxortgp (float, float, float *, float *);
-void gxortgb (float, float, float *, float *);
-
-/*------- DKRZ appendingd end ------*/
-
-/*---- Lambert Conformal Projection ----*/
-
-int  gxlamc (struct mapprj *);
-void gxlamcp (float, float, float *, float *);
-void gxlamcb (float, float, float *, float *);
-
-/*------- DKRZ appendingd end ------*/
diff --git a/include/cdTime/isdb.h b/include/cdTime/isdb.h
deleted file mode 100644
index 0b69e5e..0000000
--- a/include/cdTime/isdb.h
+++ /dev/null
@@ -1,104 +0,0 @@
-#ifndef ISDB_INCLUDE
-#define ISDB_INCLUDE
-
-/* max value from rand; HW/OS dependent */
-#define MAX_RAND 2147483647.  	/* SUN */		
-/* #define MAX_RAND 32767. */			/* HP */
-
-#define NEONS_VRSN 3.6		/* release version of NEONS software */
-
-#define BYTE_BIT_CNT  8		/* count of bits per byte */
-#define WORD_BIT_CNT  32 	/* count of bits per word */
-#define WORD_BYTE_CNT 4		/* count of bytes per word */
- 
-#define	OPN_RD    1		/* open database for read only */
-#define	OPN_WR_RD 2		/* open database for write+read */
-
-#define MAX_FILE_CNT  15	/* maximum count of open files */
-
-#define ISDB_MODE   0666 	/* mode for image files placed into db */
-#define LOCK_MODE   0200 	/* mode for locking files while writing */
-#define INGEST_OWN "ingest"   	/* owner of image files before loaded in db */ 
-#define INGEST_MODE 0644 	/* mode for ingest files before loaded in db */ 
-
-
-#define CLNDR_HOUR   0		/* calendar time, units = hours */
-#define CLIMO_DAY    1		/* climatology time, units = day in year */
-#define CLIMO_WEEK   2		/* climatology time, units = week in year */
-#define CLIMO_MONTH  3		/* climatology time, units = month in year */
-#define CLIMO_SEASON 4		/* climatology time, units = season in year */
-
-typedef struct {		/* date structure */
-   int year;			/* year number since 0 BC */
-   int month;			/* month number in year */
-   int day;			/* day number in month */
-   int type;			/* time coordinate type */
-} DATE;
-
-typedef struct {		/* info from table as_band */
-    long   chan_num;		/* channel number within sensor */
-    char   band_name[31];	/* name of band */
-    long   bit_cnt;		/* count of bits in pixel */
-    float  scl_fctr;		/* scaling factor */
-    float  reference;		/* reference value */
-    char   unit_name[31];	/* name of physical units */
-} AS_BAND;
-
-typedef struct {		/* info from tables grid_reg_geom/as_reg_im */
-    char   prjn_name[21];	/* projection name */
-    char   stor_dsc[21];	/* (+x in +y)/(+x in -y)/(-y in +x)/etc */ 
-    long   nx;			/* count of columns */
-    long   ny;			/* count of rows */
-    double lat;			/* lat of origin in degrees */
-    double lon;			/* lon of origin in degrees */
-    long   orig_ix;		/* column # for origin, left column is 1 */
-    long   orig_iy;		/* row # for origin; top row is 1 */
-    float  x_int_dis;		/* distance interval between columns in km */
-    float  y_int_dis;		/* distance interval between rows in km */
-    float  parm_1;		/* geom parm 1, depends on projection */
-    float  parm_2;		/* geom parm 2, depends on projection */
-    float  parm_3;		/* geom parm 3, depends on projection */
-} REG_GEOM;
-
-typedef struct {		/* info from table as_sat_im */
-    long   bgn_lin_num;		/* beginning line number in orbit or pass */ 
-    long   bgn_smp_num;		/* beginning sample number in scan line */
-    long   lin_int;		/* lin interval relative to sensor scan mode */
-    long   smp_int;		/* smp interval relative to sensor scan mode */
-    float  roll_ang;		/* satellite roll angle in degrees */
-    float  pch_ang;		/* satellite pitch angle in degrees */
-    float  yaw_ang;		/* satellite yaw angle in degrees */
-} SAT_GEOM;
-
-typedef struct {		/* info from table grid_spct_geom */
-    char   stor_dsc[21];	/* (+x in +y)/(+x in -y)/(-y in +x)/etc */ 
-    char   trnc_type[21];	/* spectral truncation type (triangular/etc) */ 
-    long   coef_cnt;		/* count of complex coefficients used */ 
-    long   max_lat_wav_num;	/* max latitudinal wavenumber (M in GRIB) */
-    long   max_lon_wav_num_1;	/* max longitudinal wavenumber 1 (J in GRIB) */
-    long   max_lon_wav_num_2;	/* max longitudinal wavenumber 2 (K in GRIB) */
-} SPCT_GEOM;
-
-typedef struct {		/* info from table sat_oe */
-    char   seq_name[21];	/* orb-elem sequence name */
-    DATE   date;		/* date for orbital elements */
-    double hour;		/* hour of day for orbital elements */
-    double parm_1;		/* orb-elem parm 1 value */
-    double parm_2;		/* orb-elem parm 2 value */
-    double parm_3;		/* orb-elem parm 3 value */
-    double parm_4;		/* orb-elem parm 4 value */
-    double parm_5;		/* orb-elem parm 5 value */
-    double parm_6;		/* orb-elem parm 6 value */
-    double parm_7;		/* orb-elem parm 7 value */
-} ORB_ELEM;
-
-typedef struct {		/* bit-map structure */
-   short lin_cnt;		/* count of lines in bitmap */
-   short smp_cnt;		/* count of samples per line in bitmap */
-   short pad_bit_cnt;		/* count of bits for padding lines in bitmap */
-   short ofst_byte_cnt;		/* byte offset into bitmap array where actual
-				   bitmap data begins */
-   unsigned char *bmap;		/* unsigned char array containing bitmap */
-} BITMAP;
-
-#endif  /* ISDB_INCLUDE */
diff --git a/include/cmor.h b/include/cmor.h
deleted file mode 100644
index 1b7dba0..0000000
--- a/include/cmor.h
+++ /dev/null
@@ -1,288 +0,0 @@
-#ifndef CMOR_H
-#define CMOR_H
-#define CMOR_MAX_STRING 1024
-#define CMOR_DEF_ATT_STR_LEN 256
-#define CMOR_MAX_ELEMENTS 500
-#define CMOR_MAX_AXES CMOR_MAX_ELEMENTS*3
-#define CMOR_MAX_VARIABLES CMOR_MAX_ELEMENTS
-#define CMOR_MAX_GRIDS 10
-#define CMOR_MAX_DIMENSIONS 7
-#define CMOR_MAX_ATTRIBUTES 100
-#define CMOR_MAX_ERRORS 10
-#define CMOR_MAX_TABLES 10
-#define CMOR_MAX_GRID_ATTRIBUTES 15
-
-#define CMOR_QUIET 0
-
-#define CMOR_EXIT_ON_MAJOR 0
-#define CMOR_EXIT 1
-#define CMOR_EXIT_ON_WARNING 2
-
-#define CMOR_VERSION_MAJOR 2
-#define CMOR_VERSION_MINOR 0
-#define CMOR_VERSION_PATCH 0
-#define CMOR_CF_VERSION_MAJOR 1
-#define CMOR_CF_VERSION_MINOR 4
-
-#define CMOR_WARNING 20
-#define CMOR_NORMAL 21
-#define CMOR_CRITICAL 22
-
-#define CMOR_N_VALID_CALS 8
-
-#define CMOR_PRESERVE_4 10
-#define CMOR_APPEND_4 11
-#define CMOR_REPLACE_4 12
-#define CMOR_PRESERVE_3 13
-#define CMOR_APPEND_3 14
-#define CMOR_REPLACE_3 15
-#define CMOR_PRESERVE CMOR_PRESERVE_3
-#define CMOR_APPEND CMOR_APPEND_3
-#define CMOR_REPLACE CMOR_REPLACE_3
-
-extern int USE_NETCDF_4;
-extern int CMOR_MODE;
-extern int CMOR_TABLE;
-extern int CMOR_VERBOSITY;
-extern int CMOR_NETCDF_MODE;
-
-extern int cleanup_varid;
-
-extern int cmor_naxes;
-extern int cmor_nvars;
-extern int cmor_ntables;
-extern int cmor_ngrids;
-
-extern int cmor_nerrors;
-extern int cmor_nwarnings;
-
-extern char cmor_input_path[CMOR_MAX_STRING];
-
-extern char cmor_traceback_info[CMOR_MAX_STRING];
-
-typedef struct cmor_grid_ {
-  int id;
-  char mapping[CMOR_MAX_STRING];
-  int nattributes;
-  char attributes_names[CMOR_MAX_GRID_ATTRIBUTES][CMOR_MAX_STRING];
-  double attributes_values[CMOR_MAX_GRID_ATTRIBUTES];
-  int axes_ids[CMOR_MAX_DIMENSIONS];
-  int original_axes_ids[CMOR_MAX_DIMENSIONS];
-  int ndims;
-  int istimevarying;
-  int nvertices;
-  double *lons;
-  double *lats;
-  double *blons;
-  double *blats;
-/*   double *area; */
-/*   double *volumes; */
-  int associated_variables[6]; /* for lon/lat/blon/blat/area/volumes */
-} cmor_grid_t;
-
-extern cmor_grid_t cmor_grids[CMOR_MAX_GRIDS];
-
-typedef struct cmor_axis_def_ {
-  int table_id;
-  int climatology;
-  char id[CMOR_MAX_STRING];
-  char standard_name[CMOR_MAX_STRING];
-  char units[CMOR_MAX_STRING];
-  char axis;
-  char positive;
-  char long_name[CMOR_MAX_STRING];
-  char out_name[CMOR_MAX_STRING];
-  char type;
-  char stored_direction;
-  double valid_min;
-  double valid_max;
-  int n_requested;
-  double *requested;
-  char *crequested;
-  char cname[CMOR_MAX_STRING];
-  int n_requested_bounds;
-  double *requested_bounds;
-  double tolerance;
-  double value;
-  double bounds_value[2];
-  char required[CMOR_MAX_STRING];
-  char formula[CMOR_MAX_STRING];
-  char convert_to[CMOR_MAX_STRING];
-  char z_factors[CMOR_MAX_STRING];
-  char z_bounds_factors[CMOR_MAX_STRING];
-  char index_only;
-  int must_have_bounds;
-} cmor_axis_def_t;
-
-typedef struct cmor_axis_ {
-  int ref_table_id;
-  int ref_axis_id;
-  int isgridaxis;
-  char axis;
-  char iunits[CMOR_MAX_STRING];
-  char id[CMOR_MAX_STRING];
-  int length;
-  double *values;
-  double *bounds;
-  char **cvalues;
-  int revert;
-  int offset;
-  char type;
-  char attributes_values_char[CMOR_MAX_ATTRIBUTES][CMOR_MAX_STRING];
-  double attributes_values_num[CMOR_MAX_ATTRIBUTES];
-  char attributes_type[CMOR_MAX_ATTRIBUTES]; /*stores attributes type */
-  char attributes[CMOR_MAX_ATTRIBUTES][CMOR_MAX_STRING]; /*stores attributes names */
-  int nattributes ; /* number of character type attributes */
-  int hybrid_in;
-  int hybrid_out;
-  int store_in_netcdf;
-} cmor_axis_t;
-extern cmor_axis_t cmor_axes[CMOR_MAX_AXES];
-
-typedef struct cmor_variable_def_ {
-  int table_id;
-  char id[CMOR_MAX_STRING];
-  char standard_name[CMOR_MAX_STRING];
-  char units[CMOR_MAX_STRING];
-  char cell_methods[CMOR_MAX_STRING];
-  char cell_measures[CMOR_MAX_STRING];
-  char positive;
-  char flag_values[CMOR_MAX_STRING];
-  char flag_meanings[CMOR_MAX_STRING];
-  char long_name[CMOR_MAX_STRING];
-  char comment[CMOR_MAX_STRING];
-  int ndims;
-  int dimensions[CMOR_MAX_DIMENSIONS];
-  char type;
-  float valid_min;
-  float valid_max;
-  float ok_min_mean_abs;
-  float ok_max_mean_abs;
-  int shuffle;
-  int deflate;
-  int deflate_level;
-  char required[CMOR_MAX_STRING];
-  char realm[CMOR_MAX_STRING];
-  char frequency[CMOR_MAX_STRING];
-  char out_name[CMOR_MAX_STRING];
-} cmor_var_def_t;
-
-typedef struct cmor_var_ {
-  int self;
-  int grid_id;
-  int sign;
-  int zfactor;
-  int ref_table_id;
-  int ref_var_id;
-  int initialized;
-  int closed;
-  int nc_var_id;
-  int nc_zfactors[CMOR_MAX_VARIABLES];
-  int nzfactor;
-  int ntimes_written;
-  int ntimes_written_coords[10];
-  int associated_ids[10];
-  int ntimes_written_associated[10];
-  int time_nc_id;
-  int time_bnds_nc_id;
-  char id[CMOR_MAX_STRING];
-  int ndims;
-  int singleton_ids[CMOR_MAX_DIMENSIONS];
-  int axes_ids[CMOR_MAX_DIMENSIONS];
-  int original_order[CMOR_MAX_DIMENSIONS];
-  char attributes_values_char[CMOR_MAX_ATTRIBUTES][CMOR_MAX_STRING];
-  double attributes_values_num[CMOR_MAX_ATTRIBUTES];
-  char attributes_type[CMOR_MAX_ATTRIBUTES]; /*stores attributes type */
-  char attributes[CMOR_MAX_ATTRIBUTES][CMOR_MAX_STRING]; /*stores attributes names */
-  int nattributes ; /* number of  attributes */
-  char type;
-  char itype;
-  double missing;
-  double omissing;
-  double tolerance;
-  float valid_min;
-  float valid_max;
-  float ok_min_mean_abs;
-  float ok_max_mean_abs;
-  int shuffle;
-  int deflate;
-  int deflate_level;
-  int nomissing;
-  char iunits[CMOR_MAX_STRING];
-  char ounits[CMOR_MAX_STRING];
-  int isbounds;
-  int needsinit; /* need to be init or associated to file */
-  int zaxis; /* for z vars, associated axis stored here */
-  double *values;
-  double first_time;
-  double last_time;
-  /* double first_bound; */
-  /* double last_bound; */
-  char base_path[CMOR_MAX_STRING];
-  char current_path[CMOR_MAX_STRING];
-  char suffix[CMOR_MAX_STRING];
-  int suffix_has_date;
-} cmor_var_t;
-
-extern cmor_var_t cmor_vars[CMOR_MAX_VARIABLES];
-
-typedef struct cmor_mappings_ {
-  int nattributes;
-  char id[CMOR_MAX_STRING];
-  char attributes_names[CMOR_MAX_GRID_ATTRIBUTES][CMOR_MAX_STRING];
-  char coordinates[CMOR_MAX_STRING];
-} cmor_mappings_t;
-
-typedef struct cmor_table_ {
-  int id;
-  int nvars;
-  int naxes;
-  int nexps;
-  int nmappings;
-  float cf_version;
-  float cmor_version;
-  char project_id[CMOR_MAX_STRING];
-  char table_id[CMOR_MAX_STRING];
-  char expt_ids[CMOR_MAX_ELEMENTS][CMOR_MAX_STRING];
-  char sht_expt_ids[CMOR_MAX_ELEMENTS][CMOR_MAX_STRING];
-  char date[CMOR_MAX_STRING];
-  cmor_axis_def_t axes[CMOR_MAX_ELEMENTS];
-  cmor_var_def_t vars[CMOR_MAX_ELEMENTS];
-  cmor_mappings_t mappings[CMOR_MAX_ELEMENTS];
-  float missing_value;
-  double interval;
-  char URL[CMOR_MAX_STRING];
-  char product[CMOR_MAX_STRING];
-  char realm[CMOR_MAX_STRING];
-  char path[CMOR_MAX_STRING];
-  char required_gbl_att[CMOR_MAX_STRING];
-  char frequency[CMOR_MAX_STRING];
-  char **forcings;
-  int nforcings;
-  unsigned char md5[16];
-} cmor_table_t;
-
-extern cmor_table_t cmor_tables[CMOR_MAX_TABLES];
-
-typedef struct cmor_dataset_def_ {
-  char outpath[CMOR_MAX_STRING];
-  char conventions[CMOR_MAX_STRING];
-  char attributes_names[CMOR_MAX_ATTRIBUTES][CMOR_MAX_STRING];
-  char attributes_values[CMOR_MAX_ATTRIBUTES][CMOR_MAX_STRING];
-  int nattributes;
-  int realization;
-  int leap_year;
-  int leap_month;
-  int month_lengths[12];
-  int initiated;
-  int associate_file; /*flag to store associated variables separately */
-  int associated_file; /* ncid of associated file */
-  char associated_file_name[CMOR_MAX_STRING]; /*associated file path */
-  char tracking_id[CMOR_MAX_STRING]; /*associated tracking id */
-} cmor_dataset_def;
-
-extern cmor_dataset_def cmor_current_dataset;
-
-/* Now the funcs declarations */
-#include "cmor_func_def.h"
-#endif
diff --git a/include/cmor_func_def.h b/include/cmor_func_def.h
deleted file mode 100644
index 661ea14..0000000
--- a/include/cmor_func_def.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/* this file contains function definitions for cmor */
-/* cmor.c */
-#ifndef CMOR_FUNC_H
-#define CMOR_FUNC_H
-#include <udunits2.h>
-#include "cdmsint.h"
-#include <stdio.h>
-
-extern void cmor_md5 (FILE *inputfile,unsigned char checksum[16]);
-
-extern void cmor_is_setup(void);
-extern void cmor_add_traceback(char *name);
-extern void cmor_pop_traceback(void);
-extern int cmor_prep_units(char *uunits, char *cunits, ut_unit **user_units,ut_unit **cmor_units,cv_converter **ut_cmor_converter);
-extern int cmor_have_NetCDF4(void);
-extern int cmor_have_NetCDF41min(void);
-extern int cmor_have_NetCDF3(void);
-extern int cmor_have_NetCDF363(void);
-extern void cmor_handle_error(char error_msg[CMOR_MAX_STRING],int level);
-extern int cmor_setup(char *path,int *netcdf, int *verbosity, int *mode, char *logfile, int *cmor_create_subdirectories);
-extern int cmor_put_nc_num_attribute(int ncid,int nc_var_id,char *name, char type, double value, char *var_name);
-extern int cmor_put_nc_char_attribute(int ncid,int nc_var_id,char *name,char *value,char *var_name);
-extern int cmor_set_cur_dataset_attribute(char *name, char *value, int optional);
-extern int cmor_get_cur_dataset_attribute(char *name, char *value);
-extern int cmor_has_cur_dataset_attribute(char *name);
-extern int cmor_dataset(char *outpath, 
-			char *experiment_id,
-			char *institution, 
-			char *source,   
-			char *calendar, 
-			int realization, 
-			char *contact, 
-			char *history, 
-			char *comment, 
-			char *references,	 
-			int leap_year, 
-			int leap_month, 
-			int month_lengths[12],
-			char *model_id,
-			char *forcing,
-			int initialization_method,
-			int physics_version,
-			char *institute_id,
-			char *parent_experiment_id,
-			double *branch_time);
-extern int strncpytrim(char *out, char *in, int max);
-extern int cmor_convert_string_to_list(char *values,char type, void **target, int *nelts);
-extern int cmor_define_zfactors_vars(int var_id,int ncid, int *nc_dim,char *formula_terms,int *nzfactors, int *zfactors, int *nc_zfactors,int i,int dim_bnds);
-extern int cmor_create_output_path(int var_id,char *outpath);
-extern double cmor_convert_interval_to_seconds(double val, char *units);
-extern int cmor_write(int var_id,void *data, char type, char *suffix, int ntimes_passed, double *time_vals, double *time_bounds, int *refvar);
-extern int cmor_close_variable(int var_id, char *file_name, int *preserve);
-extern int cmor_close(void);
-/* cmor_axis.c */
-extern void cmor_init_axis_def(cmor_axis_def_t *axis, int table_id);
-extern int cmor_set_axis_def_att(cmor_axis_def_t *axis,char att[CMOR_MAX_STRING],char val[CMOR_MAX_STRING] );
-extern void cmor_trim_string(char *in,char *out);
-extern int cmor_calendar_c2i(char *calendar, cdCalenType *ical);
-extern int cmor_convert_time_units( char *inunits, char *outunits, char *loutunits);
-extern int cmor_convert_time_values( void *values_in, char type, int nvalues, double *values_out, char *inunits, char *outunits, char *calin, char *calout);
-extern int cmor_set_axis_attribute(int id, char *attribute_name, char type, void *value);
-extern int cmor_get_axis_attribute(int id, char *attribute_name, char type, void *value);
-extern int cmor_has_axis_attribute(int id, char *attribute_name);
-extern int cmor_check_values_inside_bounds(double *values,double *bounds, int length, char *name);
-extern int cmor_check_monotonic(double *values,int length, char *name,int isbounds, int axis_id);
-extern int cmor_treat_axis_values(int axis_id, double *values, int length, int n_requested, char *units, char *name, int isbounds);
-extern int cmor_check_interval(int axis_id, char *interval, double *values, int nvalues, int isbounds);
-extern int cmor_axis(int *axis_id, char *name,char *units, int length,void *coord_vals, char type, void *cell_bounds,int cell_bounds_ndim,char *interval);
-/* cmor_variable.c */
-extern void cmor_init_var_def(cmor_var_def_t *var, int table_id);
-extern int cmor_is_required_variable_attribute(cmor_var_def_t var, char *attribute_name);
-extern int cmor_has_required_variable_attributes(int var_id);
-extern int cmor_set_variable_attribute(int id, char *attribute_name, char type, void *value);
-extern int cmor_get_variable_attribute(int id, char *attribute_name, void *value);
-extern int cmor_has_variable_attribute(int id, char *attribute_name);
-extern int cmor_get_variable_attribute_names(int id, int *nattributes,char attributes_names[][CMOR_MAX_STRING]);
-extern int cmor_get_variable_attribute_type(int id, char *attribute_name, char *type);
-extern int cmor_zfactor (int *zvar_id,int axis_id, char *name, char *units, int ndims, int axes_ids[], char type, void *values, void *bounds);
-extern int cmor_update_history(int var_id,char *add);
-extern int cmor_variable(int *var_id, char *name, char *units, int ndims, int axes_ids[], char type, void *missing, double *tolerance, char *positive, char*original_name, char *history, char *comment);
-extern int cmor_set_var_def_att(cmor_var_def_t *var,char att[CMOR_MAX_STRING],char val[CMOR_MAX_STRING] );
-extern int cmor_get_variable_time_length(int *var_id, int *length);
-extern int cmor_get_original_shape(int *var_id, int *shape_array, int *rank, int blank_time);
-extern int cmor_write_var_to_file(int ncid,cmor_var_t *avar,void *data,char itype, int ntimes_passed, double *time_vals, double *time_bounds);
-/* cmor_grid.c */
-extern void cmor_set_mapping_attribute(cmor_mappings_t *mapping,char att[CMOR_MAX_STRING],char val[CMOR_MAX_STRING] );
-extern void cmor_init_grid_mapping(cmor_mappings_t *mapping,char *id);
-extern int cmor_copy_data(double **dest1, void *data, char type, int nelts);
-extern int cmor_has_grid_attribute(int gid, char *name);
-extern int cmor_get_grid_attribute(int gid, char *name, double *value);
-extern void cmor_convert_value(char *units,char *ctmp,double *tmp);
-extern int cmor_set_grid_attribute(int gid, char *name, double *value, char *units);
-extern int cmor_attribute_in_list(char *name, int n, char (*atts)[CMOR_MAX_STRING]);
-extern int cmor_grid_valid_mapping_attribute_names(char *name, int *natt, char (*att)[CMOR_MAX_STRING],int *ndims, char (*dims)[CMOR_MAX_STRING]);
-extern int cmor_set_grid_mapping(int gid, char *name, int nparam, char **attributes_names, int lparams, double attributes_values[CMOR_MAX_GRID_ATTRIBUTES], char **units, int lnunits );
-extern int cmor_grid(int *grid_id, int ndims, int *axes_ids, char type, void *lat, void *lon, int nvertices, void *blat, void *blon);
-extern void cmor_init_table(cmor_table_t *table, int id);
-extern int cmor_set_dataset_att(cmor_table_t *table, char att[CMOR_MAX_STRING],char val[CMOR_MAX_STRING] );
-extern int cmor_set_table(int table);
-extern int cmor_load_table(char table[CMOR_MAX_STRING], int *table_id);
-extern int cmor_time_varying_grid_coordinate(int *coord_grid_id, int  grid_id, char *name, char *units, char type, void *missing, int *coordinate_type);
-#endif
diff --git a/include/cmor_md5.h b/include/cmor_md5.h
deleted file mode 100644
index 5fcf5f0..0000000
--- a/include/cmor_md5.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/* See md5.c for explanation and copyright information.  */
-
-/*
- * $FreeBSD: src/contrib/cvs/lib/md5.h,v 1.2 1999/12/11 15:10:02 peter Exp $
- */
-
-#ifndef MD5_H
-#define MD5_H
-
-/* Unlike previous versions of this code, uint32 need not be exactly
-   32 bits, merely 32 bits or more.  Choosing a data type which is 32
-   bits instead of 64 is not important; speed is considerably more
-   important.  ANSI guarantees that "unsigned long" will be big enough,
-   and always using it seems to have few disadvantages.  */
-typedef unsigned long cvs_uint32;
-
-struct cvs_MD5Context {
-	cvs_uint32 buf[4];
-	cvs_uint32 bits[2];
-	unsigned char in[64];
-};
-
-void cvs_MD5Init PROTO ((struct cvs_MD5Context *context));
-void cvs_MD5Update PROTO ((struct cvs_MD5Context *context,
-			   unsigned char const *buf, unsigned len));
-void cvs_MD5Final PROTO ((unsigned char digest[16],
-			  struct cvs_MD5Context *context));
-void cvs_MD5Transform PROTO ((cvs_uint32 buf[4], const unsigned char in[64]));
-
-#endif /* !MD5_H */
diff --git a/install-sh b/install-sh
deleted file mode 100755
index 4d4a951..0000000
--- a/install-sh
+++ /dev/null
@@ -1,323 +0,0 @@
-#!/bin/sh
-# install - install a program, script, or datafile
-
-scriptversion=2005-05-14.22
-
-# This originates from X11R5 (mit/util/scripts/install.sh), which was
-# later released in X11R6 (xc/config/util/install.sh) with the
-# following copyright and license.
-#
-# Copyright (C) 1994 X Consortium
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to
-# deal in the Software without restriction, including without limitation the
-# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-# sell copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
-# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
-# Except as contained in this notice, the name of the X Consortium shall not
-# be used in advertising or otherwise to promote the sale, use or other deal-
-# ings in this Software without prior written authorization from the X Consor-
-# tium.
-#
-#
-# FSF changes to this file are in the public domain.
-#
-# Calling this script install-sh is preferred over install.sh, to prevent
-# `make' implicit rules from creating a file called install from it
-# when there is no Makefile.
-#
-# This script is compatible with the BSD install script, but was written
-# from scratch.  It can only install one file at a time, a restriction
-# shared with many OS's install programs.
-
-# set DOITPROG to echo to test this script
-
-# Don't use :- since 4.3BSD and earlier shells don't like it.
-doit="${DOITPROG-}"
-
-# put in absolute paths if you don't have them in your path; or use env. vars.
-
-mvprog="${MVPROG-mv}"
-cpprog="${CPPROG-cp}"
-chmodprog="${CHMODPROG-chmod}"
-chownprog="${CHOWNPROG-chown}"
-chgrpprog="${CHGRPPROG-chgrp}"
-stripprog="${STRIPPROG-strip}"
-rmprog="${RMPROG-rm}"
-mkdirprog="${MKDIRPROG-mkdir}"
-
-chmodcmd="$chmodprog 0755"
-chowncmd=
-chgrpcmd=
-stripcmd=
-rmcmd="$rmprog -f"
-mvcmd="$mvprog"
-src=
-dst=
-dir_arg=
-dstarg=
-no_target_directory=
-
-usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
-   or: $0 [OPTION]... SRCFILES... DIRECTORY
-   or: $0 [OPTION]... -t DIRECTORY SRCFILES...
-   or: $0 [OPTION]... -d DIRECTORIES...
-
-In the 1st form, copy SRCFILE to DSTFILE.
-In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
-In the 4th, create DIRECTORIES.
-
-Options:
--c         (ignored)
--d         create directories instead of installing files.
--g GROUP   $chgrpprog installed files to GROUP.
--m MODE    $chmodprog installed files to MODE.
--o USER    $chownprog installed files to USER.
--s         $stripprog installed files.
--t DIRECTORY  install into DIRECTORY.
--T         report an error if DSTFILE is a directory.
---help     display this help and exit.
---version  display version info and exit.
-
-Environment variables override the default commands:
-  CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
-"
-
-while test -n "$1"; do
-  case $1 in
-    -c) shift
-        continue;;
-
-    -d) dir_arg=true
-        shift
-        continue;;
-
-    -g) chgrpcmd="$chgrpprog $2"
-        shift
-        shift
-        continue;;
-
-    --help) echo "$usage"; exit $?;;
-
-    -m) chmodcmd="$chmodprog $2"
-        shift
-        shift
-        continue;;
-
-    -o) chowncmd="$chownprog $2"
-        shift
-        shift
-        continue;;
-
-    -s) stripcmd=$stripprog
-        shift
-        continue;;
-
-    -t) dstarg=$2
-	shift
-	shift
-	continue;;
-
-    -T) no_target_directory=true
-	shift
-	continue;;
-
-    --version) echo "$0 $scriptversion"; exit $?;;
-
-    *)  # When -d is used, all remaining arguments are directories to create.
-	# When -t is used, the destination is already specified.
-	test -n "$dir_arg$dstarg" && break
-        # Otherwise, the last argument is the destination.  Remove it from $@.
-	for arg
-	do
-          if test -n "$dstarg"; then
-	    # $@ is not empty: it contains at least $arg.
-	    set fnord "$@" "$dstarg"
-	    shift # fnord
-	  fi
-	  shift # arg
-	  dstarg=$arg
-	done
-	break;;
-  esac
-done
-
-if test -z "$1"; then
-  if test -z "$dir_arg"; then
-    echo "$0: no input file specified." >&2
-    exit 1
-  fi
-  # It's OK to call `install-sh -d' without argument.
-  # This can happen when creating conditional directories.
-  exit 0
-fi
-
-for src
-do
-  # Protect names starting with `-'.
-  case $src in
-    -*) src=./$src ;;
-  esac
-
-  if test -n "$dir_arg"; then
-    dst=$src
-    src=
-
-    if test -d "$dst"; then
-      mkdircmd=:
-      chmodcmd=
-    else
-      mkdircmd=$mkdirprog
-    fi
-  else
-    # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
-    # might cause directories to be created, which would be especially bad
-    # if $src (and thus $dsttmp) contains '*'.
-    if test ! -f "$src" && test ! -d "$src"; then
-      echo "$0: $src does not exist." >&2
-      exit 1
-    fi
-
-    if test -z "$dstarg"; then
-      echo "$0: no destination specified." >&2
-      exit 1
-    fi
-
-    dst=$dstarg
-    # Protect names starting with `-'.
-    case $dst in
-      -*) dst=./$dst ;;
-    esac
-
-    # If destination is a directory, append the input filename; won't work
-    # if double slashes aren't ignored.
-    if test -d "$dst"; then
-      if test -n "$no_target_directory"; then
-	echo "$0: $dstarg: Is a directory" >&2
-	exit 1
-      fi
-      dst=$dst/`basename "$src"`
-    fi
-  fi
-
-  # This sed command emulates the dirname command.
-  dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'`
-
-  # Make sure that the destination directory exists.
-
-  # Skip lots of stat calls in the usual case.
-  if test ! -d "$dstdir"; then
-    defaultIFS='
-	 '
-    IFS="${IFS-$defaultIFS}"
-
-    oIFS=$IFS
-    # Some sh's can't handle IFS=/ for some reason.
-    IFS='%'
-    set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
-    shift
-    IFS=$oIFS
-
-    pathcomp=
-
-    while test $# -ne 0 ; do
-      pathcomp=$pathcomp$1
-      shift
-      if test ! -d "$pathcomp"; then
-        $mkdirprog "$pathcomp"
-	# mkdir can fail with a `File exist' error in case several
-	# install-sh are creating the directory concurrently.  This
-	# is OK.
-	test -d "$pathcomp" || exit
-      fi
-      pathcomp=$pathcomp/
-    done
-  fi
-
-  if test -n "$dir_arg"; then
-    $doit $mkdircmd "$dst" \
-      && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \
-      && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \
-      && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \
-      && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; }
-
-  else
-    dstfile=`basename "$dst"`
-
-    # Make a couple of temp file names in the proper directory.
-    dsttmp=$dstdir/_inst.$$_
-    rmtmp=$dstdir/_rm.$$_
-
-    # Trap to clean up those temp files at exit.
-    trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
-    trap '(exit $?); exit' 1 2 13 15
-
-    # Copy the file name to the temp name.
-    $doit $cpprog "$src" "$dsttmp" &&
-
-    # and set any options; do chmod last to preserve setuid bits.
-    #
-    # If any of these fail, we abort the whole thing.  If we want to
-    # ignore errors from any of these, just make sure not to ignore
-    # errors from the above "$doit $cpprog $src $dsttmp" command.
-    #
-    { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
-      && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
-      && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \
-      && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } &&
-
-    # Now rename the file to the real destination.
-    { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \
-      || {
-	   # The rename failed, perhaps because mv can't rename something else
-	   # to itself, or perhaps because mv is so ancient that it does not
-	   # support -f.
-
-	   # Now remove or move aside any old file at destination location.
-	   # We try this two ways since rm can't unlink itself on some
-	   # systems and the destination file might be busy for other
-	   # reasons.  In this case, the final cleanup might fail but the new
-	   # file should still install successfully.
-	   {
-	     if test -f "$dstdir/$dstfile"; then
-	       $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \
-	       || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \
-	       || {
-		 echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
-		 (exit 1); exit 1
-	       }
-	     else
-	       :
-	     fi
-	   } &&
-
-	   # Now rename the file to the real destination.
-	   $doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
-	 }
-    }
-  fi || { (exit 1); exit 1; }
-done
-
-# The final little trick to "correctly" pass the exit status to the exit trap.
-{
-  (exit 0); exit 0
-}
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-end: "$"
-# End:
diff --git a/setup.py.in b/setup.py.in
deleted file mode 100755
index 302dcd4..0000000
--- a/setup.py.in
+++ /dev/null
@@ -1,67 +0,0 @@
-import numpy
-from numpy.distutils.core import setup, Extension
-#from numpy.distutils.ccompiler import CCompiler
-import os,sys,string
-
-include_dirs = [numpy.lib.utils.get_include(),"include","include/cdTime"]
-
-library_dirs = [ os.path.join("@prefix@","lib") ,'.']
-include_dirs.append(os.path.join("@prefix@","include"))
-libraries = []
-
-for st in ["@NCLDFLAGS@", "@NCCFLAGS@", "@UDUNITS2FLAGS@", "@UDUNITS2LDFLAGS@", "@UUIDFLAGS@", "@UUIDLDFLAGS@"]:
-   sp = st.strip().split()
-   for s in sp:
-      if s[:2]=='-L':
-        library_dirs.append(s[2:])
-      if s[:2]=='-l':
-        libraries.append(s[2:])
-      if s[:2]=='-I':
-        include_dirs.append(s[2:])
-
-srcfiles = "@LIBSOURCES@".split()
-srcfiles.insert(0,os.path.join("Src","_cmormodule.c"))
-
-macros=[]
-for m in "@MACROS@".split():
-   macros.append((m[2:],None))
-   
-ld =[]
-for p in library_dirs:
-   if os.path.exists(p):
-      ld.append(p)
-library_dirs=ld
-
-ld =[]
-for p in include_dirs:
-   if os.path.exists(p):
-      ld.append(p)
-include_dirs=ld
-
-print 'Setting up python module with:'
-print 'libraries:',libraries
-print 'libdir:',library_dirs
-print 'incdir',include_dirs
-print 'src:',srcfiles
-print 'macros:',macros
-
-setup (name = "CMOR",
-       version='2.0',
-       author='Charles Doutriaux, PCMDI',
-       description = "Python Interface to CMOR output library",
-       url = "http://www-pcmdi.llnl.gov/cmor",
-       packages = ['cmor'],
-       package_dir = {'cmor': 'Lib'},
-       ext_modules = [
-    Extension('cmor._cmor',
-              srcfiles,
-	      include_dirs = include_dirs,
-              library_dirs = library_dirs,
-              libraries = libraries,
-              define_macros = macros,
-              extra_compile_args = [ "@DEBUG@", ]
-              ),
-    
-    ]
-      )
-
diff --git a/show_git.c b/show_git.c
deleted file mode 100644
index a5be51c..0000000
--- a/show_git.c
+++ /dev/null
@@ -1,11 +0,0 @@
-#include <stdio.h>
-#include <string.h>
-#define R_OK 4
-int main() {
-  FILE *fp;
-  char s1[50];
-  fp = popen("git log -n 1 --pretty=\"format:%H\"  ","r");
-  fscanf(fp,"%s",s1);
-  printf("%s\n",s1);
-  return 0;
-}

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/cmor-tables.git



More information about the debian-science-commits mailing list